alias_maps와 virtual_alias_maps에 대해 혼동


22

나는 이미 여기뿐만 아니라 다른 게시물에 대한 문서를 다시 읽었으며 여전히 나에게 분명하지 않습니다. 나는 차이를 이해하는 것이 여러 가지를 시험하고있다 alias_maps그리고 virtual_alias_maps나는 후위 이러한 2 개 개의 별도 설정의 사용을 볼 수 없습니다. 이것은 지금까지 내가 찾은 것입니다 (참고-전자 메일을 보내기 위해 null 클라이언트와 같은 웹 서버와 동일한 서버에서 postfix를 사용하고 있습니다) :

1) / etc / aliases 파일 :

root: me@somedomain.com

위의를에 추가하면 alias_mapsfail2ban과 같은 일부 서비스가 이것을 선택할 수 있으며 언급 된 별칭 이메일 주소로 루트 이메일을 보냅니다. 그러나 나는 mail명령 과 같은 다른 서비스 가 이것을 존중하지 않고 존재하지 않는 root@mydomain.com으로 직접 이메일을 보내려고한다는 것을 알았습니다 ( myorigin@ mydomain.com을 추가하는 접미사 설정 이라고 생각합니다 ) . 이 문제를 해결하기 위해virtual_alias_maps

2) / etc / postfix / virtual

root     me@someotherdomain.com

위의 내용을 추가하면 모든 서비스가이 가상 별칭 이메일을 사용합니다. 또한 위의 내용을 추가하면 fail2ban조차도 /etc/aliases/파일의 초기 설정을 무시 하고 가상 파일에 지정된 전자 메일 주소를 따르기 시작합니다.

이제 이것은 나를 더욱 혼란스럽게했습니다.

  1. /etc/aliases/가상 별칭 맵 내에 전자 메일이있는 경우 전자 메일이이를 덮어 쓰는 것처럼 보이는 이유는 무엇 입니까?

  2. 이 두 개의 별명 ​​매핑을하는 목적은 무엇이며 언제 무엇을 사용할지 결정합니까?

  3. fail2ban (이메일로 구성됨 root@localhost)이 alias_maps(/ etc / aliases /)에 제공된 이메일 주소를 먼저 따르고 나중에 virtual_alias_maps추가 된 것을 무시하기로 결정한 이유 는 무엇입니까?

  4. 왜 모든 서비스가 / etc / aliases에 언급 된 이메일 별칭을 읽지 않고 이메일 별칭이 가상 별칭 맵에 추가 된 경우에만 작동합니까?

나는 어제부터 몇 시간을 보냈지 만 여전히 확실하지 않습니다. 누군가 내 혼란을 해결하도록 도와 줄 수 있습니까?

편집 : 이것은 이메일을 mail root명령을 사용하여 루트로 보낼 때 메일 로그 입니다. root의 별명 이메일은 / etc / aliases /에 언급되어 있습니다. 하지만이 루트 별명 이메일을에서 aliases_maps로 이동할 때까지 메일이 작동하지 않습니다.virtual_aliases_maps

루트 이메일 별칭이 다음에 언급 될 때 기록 /etc/aliases/:

Nov 14 16:39:27 Debian postfix/pickup[4339]: 0F12643432: uid=0 from=<root>

Nov 14 16:39:27 Debian postfix/cleanup[4495]: 0F12643432: message-id=<20141114110927.0F12643432@Debian.domainname.com>

Nov 14 16:39:27 Debian postfix/qmgr[4338]: 0F12643432: from=<root@domainname.com>, size=517, nrcpt=1 (queue active)

Nov 14 16:39:27 Debian postfix/error[4496]: 0F12643432: to=<root@domainname.com>, orig_to=<root>, relay=none, delay=0.04, delays=0.03/0/0/0.01, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to domainname.com[128.199.147.136]:25: Connection refused)

이것은에서 이동 루트의 전자 메일 별칭 후 로그 인 /etc/aliases/에게 /etc/postfix/virtual이메일 전송은 변경 후 성공적이다 :

Nov 14 16:44:58 Debian postfix/pickup[4545]: ADD9A43436: uid=0 from=<root>

Nov 14 16:44:58 Debian postfix/cleanup[4563]: ADD9A43436: message-id=<20141114111458.ADD9A43436@Debian.domainname.com>

Nov 14 16:44:58 Debian postfix/qmgr[4544]: ADD9A43436: from=<root@domainname.com>, size=453, nrcpt=1 (queue active)

Nov 14 16:45:00 Debian postfix/smtp[4551]: ADD9A43436: to=<admin@somesite.com>, orig_to=<root>, relay=somesite.com[108.160.157.120]:25, delay=1.9, delays=0.03/0/0.97/0.88, dsn=2.0.0, status=sent (250 OK id=1XpEqC-0002ry-9s)

Nov 14 16:45:00 Debian postfix/qmgr[4544]: ADD9A43436: removed

I also noticed that some other services (like mail command) does not respect this->이 조건과 관련된
메일 로그

@masegaloeh 메일 로그로 내 게시물을 업데이트했습니다
Neel

답변:


35

일부 배경

Postfix는 milter 및 aliases와 같은 이전 sendmail의 일부 기능을 상속했습니다. 이 파일 /etc/aliasesaliases상속의 일부이며에 의해 구현됩니다 alias_maps. 다른 한편으로, postfix에는 이메일 별칭을 처리하기위한 virtual_maps/ virtual_alias_maps가 있습니다. 그래서 그들 사이의 차이점은 무엇입니까?

모수 alias_maps

  • 현지 (8) 배송 에만 사용

  • 에 따르면 접미사의 주소 클래스 에 의해 이메일 의지 배달 지역 (8) 수신자 도메인 이름은 등록 된 것인지mydestination

  • 검색 입력은 전체 이메일 요지에서 로컬 부 (예를 참고 MyUser myuser@example.com에서)였다. 수신자의 도메인 부분을 버립니다.

  • 조회 결과 에는 다음 중 하나 이상 이 포함될 수 있습니다.

    • 이메일 주소 : 이메일이 이메일 주소로 전달됩니다
    • / file / name : 이메일이 / file / name에 추가됩니다
    • | 명령 : 메일은에 파이프 명령
    • : 포함 / 파일 / 이름 :에서 별칭 포함 / 파일 / 이름을

모수 virtual_alias_maps

  • 에서 사용하는 가상 (5) 배달

  • 다른 주소 클래스보다 항상 처음 호출됩니다 . 그것은받는 사람 도메인에 나와되었는지 여부를 상관하지 않는다 mydestination, virtual_mailbox_domains또는 다른 장소. 다른 위치에 정의 된 주소 / 별칭을 무시합니다.

  • 검색 입력은 일부 형식이

    • user @ domain : 문자 그대로 user @ domain 과 일치 합니다 .

    • 사용자 :이 일치 사용자의 사이트가 동일한 경우 @site을 $myorigin사이트에 표시되는 경우, $mydestination또는이 나열되는 경우 $inet_interfaces$proxy_interfaces. 이 기능은 로컬 별명 (5) 데이터베이스의 기능과 겹칩니다.

    • @domain : domain로컬 부분 에 관계없이 모든 이메일과 일치합니다.

  • 조회 결과가 있어야합니다

    • 유효한 이메일 주소
    • 도메인이없는 사용자. 후위는 추가합니다 $myorigin경우 append_at_myorigin설정

가상 별칭 맵 내에 전자 메일이있을 때 / etc / aliases가 필요한 이유는 무엇입니까?

위에서 볼 수 있듯이 alias_maps(/ etc / aliases)에는 명령에 파이핑하는 것과 같은 몇 가지 추가 기능 (전달 이외에)이 있습니다. 그것은 virtual_alias_maps단지 앞으로의 이메일 과 대조됩니다 .

이 두 개의 별명 ​​매핑을하는 목적은 무엇이며 언제 무엇을 사용할지 결정합니까?

alias_maps단점은 원래받는 형태가있는 경우가 차별화 할 수 있습니다 root@example.com 또는 root@example.net . 둘 다의 루트 항목에 매핑됩니다 alias_maps. 다른 한편으로는을 사용하여 다른 전달 주소를 정의 할 수 있습니다 virtual_alias_maps.

fail2ban (root @ localhost로 이메일을 보내도록 구성됨)이 alias_maps (/ etc / aliases /)에 제공된 이메일 주소를 먼저 따르고 나중에 virtual_alias_maps가 추가 된 후이를 무시하기로 결정한 이유는 무엇입니까?

virtual_alias_maps가 추가되기 전에 : alias_mapslocalhost가에 나열되어 있으므로 root @ localhost의 별명이 지정되었습니다 mydestination.

virtual_alias_maps 정의 후 : virtual_alias_maps 의 항목에 root도메인 부분이없고 localhost가에 나열되어 mydestination있으므로 일치 root me@example.com합니다.

왜 모든 서비스가 / etc / aliases에 언급 된 이메일 별칭을 읽지 않고 이메일 별칭이 가상 별칭 맵에 추가 된 경우에만 작동합니까?

명령 mail root은 이메일을 루트로 보냅니다. 도메인 부분이 없기 때문에 postfix trivial-rewrite 는 도메인 부분에 myorigin을 추가합니다. 따라서 메일은 root @ myorigin 으로 보내집니다 .

virtual_alias_maps가 추가되기 전에 : 불행히도에 myorigin나열되지 않으므로에 mydestination의해 별칭이 지정되지 않습니다 alias_maps.

virtual_alias_maps가 추가 된 후 : virtual_alias_maps 의 항목에 root도메인 부분과 myorigin이 (와 명백하게) 동일하지 않으므로 myorigin일치 root me@example.com합니다.


1
문장에서 단점은 ... 당신이 차별화 할 수있는 단어가 있습니다 아마 될 운명이되었다 할 수 없습니다 . 그렇지 않으면 나는 그것을 이해할 수 없습니다. alias_maps
Daniel Böhmer

2
  1. /etc/aliasescron에서 mail to root와 같이 주로 로컬 전달을 위해 로컬 별칭을 별도로 유지하는 것이 좋으며 virtual_alias_mapsSQL DB와 함께 사용할 수도 있습니다.

  2. virtual_alias_maps 가상 사용자 (및 가상 도메인)가있는 경우 (종종 시스템 사용자에 매핑되지는 않지만 가상 도메인이없고 사용자가 거의없는 경우)에는 이러한 종류의 기능이 필요하지 않을 수 있습니다.

  3. fail2ban은 신경 쓰지 않고 MTA에 전자 메일을 제출합니다.

  4. 보다 구체적이고 어떤 서비스, 어떻게, 어디서 메일을 제출해야합니까?


@NickW 몇 가지 감사합니다. (1) No : 4의 경우 mail command가이를 수행하는 서비스 중 하나입니다. / etc / aliases가 주로 로컬 사용자에게 로컬로 전달되는 경우, shouldnt mail root명령이 실제로이 범주에 포함되어야합니까? 현지 배송시이 서비스가 / etc / aliases의 정보를 고려하는 이유는 무엇입니까? (2) 내 시나리오에 대한 이러한 고려, 그것은 모두에 언급 된 사용자 별칭 이메일 주소가 좋은 연습 후입니다 /etc/aliases뿐만 아니라 virtual_alias_maps그들이 모든 작동 그래서는?
Neel

1
1. mail 명령은 /etc/aliases기본적으로 정말 어리석은 질문을 사용해야 newaliases합니다. 파일을 업데이트 한 후에 실행 한 것입니다. 2. 사람들이 로컬 컴퓨터에서 메일을 수신 할 경우 과도한 이메일이라고 말하면 올바른 이메일 주소를 사용하도록 스크립트를 구성하는 것이 좋습니다. 그렇게하면 postfix를 통해 라우팅되고 올바른 대상으로 전달됩니다.
NickW

안녕하세요 @NickW 예 newaliases변경 후를 사용하여 별칭을 다시 작성했습니다 . 별칭을 사용하지 않는 이유 @$domain_name는 사용자 뒤에 추가되는 접미사 설정 때문일 수 있습니다. 따라서 virtual_alias_maps해당 전자 메일을 리디렉션해야합니다. 나는 후위 문서에이 글을 읽을 이유는 어쩌면 그게 전부 mail루트 명령이 작동하지 않습니다 aliases: postfix.org/STANDARD_CONFIGURATION_README.html#some_local가 어쨌든, 내가이 더 나은 닉을 이해하는 데 도움을 너무 많이 주셔서 감사합니다. 정말 고맙습니다 .. :)
Neel

:)
NickW
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.