프로그램/스크립트를 업로드하는 사람이 내 컴퓨터에 스팸을 보내는 것을 방지하고 싶습니다.
유일한 합법적인 사용 사례는 제출 포트를 통해 postfix에 연결하고 인증 후 이메일을 제출하는 것입니다. 그런 다음 Postfix는 다른 메일 서버에 연결하여 보냅니다.
*:SMTP 포트로 나가는 연결을 허용하고(이 연결을 열려고 하는 프로그램이 postfix인 경우) 다른 연결 시도를 무시하기 위해 iptables를 사용하는 것을 고려 중입니다.
두 가지 질문이 있습니다.
1) postfix 프로그램이 연결을 열려고 한다는 것을 iptables에서 어떻게 식별합니까?
2) 스크립트가 sendmail을 호출하고 인증 없이 직접 메시지를 보내는 것을 방지하는 방법은 무엇입니까? 아마도 cron과 같은 일부 프로그램이 sendmail을 사용하여 root@localhost로 이메일을 보내려고 시도하기 때문에 쉽지 않을 수도 있습니다. 이것은 여전히 작동합니다.
시스템은 데비안을 안정적으로 실행합니다.
답변1
(1) Postfix를 식별하는 가장 쉬운 방법은 --owner --uid-owner postfix
Postfix 사용자를 지정하기 위해 iptables를 일치시키는 것입니다. 다음 솔루션과 유사하게 자체 네트워크 네임스페이스 또는 cgroup에서 Postfix를 실행할 수도 있습니다.프로세스에 대한 네트워크 액세스를 차단하시겠습니까?(해당 네임스페이스 또는 cgroup만 SMTP 트래픽을 시작할 수 있습니다.)
(2) 스크립트 sendmail
가 실행되었습니다가지다인증: 시스템에서 사용자로 실행됩니다. 실제로 이 인터페이스를 사용하는 것들이 많이 있습니다. Cron은 그 중 하나이지만 무작위 스크립트도 마찬가지입니다. 이메일을 보내는 시스템의 거의 모든 것이 Cron을 사용합니다. 설치된 MUA(mutt 등)도 일반적으로 기본적으로 이를 사용합니다.
아마도 파일 시스템 권한을 사용하거나(ACL을 사용하여 특정 그룹이나 특정 사용자에게만 실행 가능하게 함) Postfix 구성을 사용하거나(저는 개인적으로 Exim을 사용하기 때문에 이를 수행하는 방법을 잘 모르겠습니다) 특정 사용자에게만 잠글 수 있을 것입니다. ).