나는 이미 여기뿐만 아니라 다른 게시물에 대한 문서를 다시 읽었으며 여전히 나에게 분명하지 않습니다. 나는 차이를 이해하는 것이 여러 가지를 시험하고있다 alias_maps
그리고 virtual_alias_maps
나는 후위 이러한 2 개 개의 별도 설정의 사용을 볼 수 없습니다. 이것은 지금까지 내가 찾은 것입니다 (참고-전자 메일을 보내기 위해 null 클라이언트와 같은 웹 서버와 동일한 서버에서 postfix를 사용하고 있습니다) :
1) / etc / aliases 파일 :
root: me@somedomain.com
위의를에 추가하면 alias_maps
fail2ban과 같은 일부 서비스가 이것을 선택할 수 있으며 언급 된 별칭 이메일 주소로 루트 이메일을 보냅니다. 그러나 나는 mail
명령 과 같은 다른 서비스 가 이것을 존중하지 않고 존재하지 않는 root@mydomain.com으로 직접 이메일을 보내려고한다는 것을 알았습니다 ( myorigin
@ mydomain.com을 추가하는 접미사 설정 이라고 생각합니다 ) . 이 문제를 해결하기 위해virtual_alias_maps
2) / etc / postfix / virtual
root me@someotherdomain.com
위의 내용을 추가하면 모든 서비스가이 가상 별칭 이메일을 사용합니다. 또한 위의 내용을 추가하면 fail2ban조차도 /etc/aliases/
파일의 초기 설정을 무시 하고 가상 파일에 지정된 전자 메일 주소를 따르기 시작합니다.
이제 이것은 나를 더욱 혼란스럽게했습니다.
-
/etc/aliases/
가상 별칭 맵 내에 전자 메일이있는 경우 전자 메일이이를 덮어 쓰는 것처럼 보이는 이유는 무엇 입니까? -
이 두 개의 별명 매핑을하는 목적은 무엇이며 언제 무엇을 사용할지 결정합니까?
-
fail2ban (이메일로 구성됨
root@localhost
)이alias_maps
(/ etc / aliases /)에 제공된 이메일 주소를 먼저 따르고 나중에virtual_alias_maps
추가 된 것을 무시하기로 결정한 이유 는 무엇입니까? -
왜 모든 서비스가 / 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
답변
일부 배경
Postfix는 milter 및 aliases와 같은 이전 sendmail의 일부 기능을 상속했습니다. 이 파일 /etc/aliases
은 aliases
상속의 일부이며에 의해 구현됩니다 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_maps
localhost가에 나열되어 있으므로 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
합니다.
답변
-
/etc/aliases
cron에서 mail to root와 같이 주로 로컬 전달을 위해 로컬 별칭을 별도로 유지하는 것이 좋으며virtual_alias_maps
SQL DB와 함께 사용할 수도 있습니다. -
virtual_alias_maps
가상 사용자 (및 가상 도메인)가있는 경우 (종종 시스템 사용자에 매핑되지는 않지만 가상 도메인이없고 사용자가 거의없는 경우)에는 이러한 종류의 기능이 필요하지 않을 수 있습니다. -
fail2ban은 신경 쓰지 않고 MTA에 전자 메일을 제출합니다.
-
보다 구체적이고 어떤 서비스, 어떻게, 어디서 메일을 제출해야합니까?