Postfix: 로컬 사용자(PHP)가 외부 수신자에 대해 SMTPD를 사용하도록 강제합니다.

Postfix: 로컬 사용자(PHP)가 외부 수신자에 대해 SMTPD를 사용하도록 강제합니다.

내 서버가 해킹당했고 인터넷을 통해 많은 스팸이 전송되었습니다. 내가 한 첫 번째 일은 postfix를 종료하고 나가는 포트 25를 닫은 다음 웹사이트, postfix 대기열을 정리하고 postfix를 완전히 재설정하는 데 시간을 보내는 것이었습니다.

SASL 인증 및 TLS 강제 적용과 같은 Postfix SMTPD에 대한 많은 제한 사항을 활성화했습니다.

하지만 저는 PHP 함수가 SMTPD를 호출하고 이메일이 대기열 에 들어가게 되므로 (그리고 모든 SMTPD 보호를 우회하기 때문에) mail()SMTPD에 신경 쓰지 않는다고 생각합니다 .sendmailmaildropincoming

나는 그것이 어떻게 작동하는지 더 잘 이해하기 위해 Postfix 데몬과 큐에 대한 작은 스케치를 만들었습니다. 접미사 개요

다음 설정을 원합니다.

  • sendmail이 외부 수신자에게 이메일을 전달하는 것을 방지하지만 로컬 사용자에게 이메일을 전달하는 것을 허용하고 "외부" 매핑인 경우에도 /etc/aliases의 매핑을 따를 수 있도록 허용합니다.

내 목표는 최종 사용자가 로컬 SMTPD에 직접 연락할 수밖에 없고 smtpd_client_restrictions = permit_sasl_authenticated, reject내 구성으로 인해 강제로 로그인하도록 하는 것입니다.

답변1

이것은 답변의 일부일 뿐입니다.

허용되는 로컬 사용자를 결정하는 방법은 다음과 같습니다 sendmail.

  • 파일 만들기/etc/postfix/sendmailAllowedUsers, 허용된 각 사용자에 대해 한 줄에 "User OK"를 입력합니다.
  • authorized_submit_users = hash:/etc/postfix/sendmailAllowedUsers가입하다마스터 파일
  • 달리기postmap /etc/postfix/sendmailAllowedUsers
  • 달리기postfix reload

이것은 내 질문에 대한 부분적인 답변일 뿐입니다.이메일을 보내그리고우편목록에 없는 사용자를 대상으로 하는 명령은 내가 원하는 것이 아닙니다.

모든 사람이 사용할 수 있도록 하고 싶지만 sendmail로컬 수신자만 사용할 수 있습니다.

관련 정보