
나는 데비안 VPS에 메일링 시스템을 설정했습니다. 사용자에게 이메일을 보낼 수 없다는 점을 제외하면 모든 것이 원활하게 작동합니다 root
.
/etc/aliases
다음 과 같이 지정하는 해결 방법이 있습니다 .
root: <some_other_user>
그러면 주소가 지정된 모든 이메일이 사서함 root@<fqdn>
으로 들어갑니다 <some_other_user>@<fqdn>
.
보안적인 측면에서는 훨씬 낫지만, 사용자에게 이메일을 보낼 수 있는 방법이 있는지 궁금합니다 root
.
그렇습니다. Postfix를 사용하면 기술적으로 가능합니까? 그렇다면 어떻게 해야 합니까?
업데이트:
로그 는 다음과 같습니다 postfix.service
.
Apr 26 22:18:25 <hostname><fqdn> postfix/qmgr[2375]: 3905421760: from=<ddnomad@<fqdn>>, size=631, nrcpt=1 (queue active)
Apr 26 22:18:26 <hostname><fqdn> postfix/local[2429]: 3905421760: to=<mailuser@<fqdn>>, orig_to=<root@<fqdn>>, relay=local, delay=1.3, delays=0.21/0.01/0/1, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
제가 알기로는 편지가 성공적으로 전송되었다는 의미입니다. 하지만 그 편지는 결코 root
님의 우편함 으로 배달되지 않았습니다 .
답변1
postfix는 procmail
이메일을 전달하기 위해 를 사용하며, 보안상의 이유로 실행되는 postfix
호출 로 전송된 이메일은 결국 사용자에게 전송됩니다 .procmail
nobody
root
nobody
데비안 메일링 리스트는 나보다 더 잘 설명합니다., 해결 방법을 제안합니다.
postfix의 자체 배달 에이전트는 루트의 메일함으로 배달할 수 있지만 postfix는 절대 외부 프로그램(예: procmail)을 루트로 분기하지 않습니다. UID를 배달되는 메일의 소유자로 변경하거나 해당 사용자가 루트인 경우 UID를 none으로 변경합니다.
따라서 procmail은 루트의 메일을 전달할 때 none으로 실행됩니다.
나는 /var/spool/mail/root를 /var/spool/mail/nobody에 심볼릭 링크함으로써 이 문제를 해결합니다. 그런 다음 루트의 메일을 루트로 읽을 수 있습니다.
이는 권장되는 방법이 아닙니다. 대부분의 사람들은 /etc/aliases에서 루트 메일을 다른 사용자에게 직접 전달하는 것을 권장합니다.
스레드의 더 위쪽에서 그들은 또한 다음을 기억합니다.postfix
루트 메일에 대한 FAQ:
로컬 메일 전달을 위해 procmail(또는 다른 명령)을 사용하는 경우 Postfix는 메일을 루트로 전달하지 않습니다. 대신 Postfix는 procmail(또는 무엇이든)을 none으로 실행합니다. 아마도 언젠가 Wietse는 외부 명령을 루트로 실행할 수 있을 만큼 Postfix를 신뢰하게 될 것입니다. 해결 방법: 루트로 로그인하면 안 되는 것처럼(특이한 상황 제외) 루트로 메일을 받아서도 안 됩니다.
실제 사용자에게 메일을 전달하는 루트에 대한 메일 별칭을 만듭니다.