현재 또 다른 Postfix MTA를 배포 중이며 이번에는 master.cf
불필요한 서비스를 줄이고 비활성화하여 잠재적인 공격 표면을 줄이고 프로세스에 대해 더 잘 이해하고 싶습니다.
MTA는 가상 사용자로부터 이메일을 수신하여 적절한 maildir로 전달하고 마지막으로 인증된 사용자로부터 메일을 중계해야 합니다.
OpenSMTPd(전체 구성을 단일 15줄 파일로 표현할 수 있음)로 전환하는 것은 현재로서는 불가능하므로(milter 지원 없음) Postfix를 사용하고 있습니다.
문제의 공포:
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (no) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
#submission inet n - n - - smtpd
pickup unix n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
최소 구성을 설명하는 매뉴얼 페이지는 없으며 각 서비스의 매뉴얼 페이지는 모듈이 필요한지 여부를 실제로 알려주지 않습니다. 끝없는 시행착오).
현재 실패한 시도는 다음과 같습니다(제출 포트는 생략되었으며 지금은 메일 배달만 작동시키려고 합니다).
smtp inet n - - - - smtpd
cleanup unix n - - - 0 cleanup
qmgr unix - - - 300 1 qmgr
rewrite unix - - - - - trivial-rewrite
proxymap unix - - - - - proxymap
virtual unix - n - - - virtual
anvil unix - - - - 1 anvil
local unix - n - - - local
수신된 모든 메일은 Postfix를 다시 시작할 때만 (maildir로) 전달된다는 점만 제외하면 작동합니다. 그리고 저는 이것이 불완전하고 반송을 처리할 수 없다고 확신하므로 여전히 답변을 찾고 있습니다.
답변1
나는 당신에게 서비스를 제거하는 것을 권장하지 않습니다기본 master.cf. 당신은 최소한의 구성을 시도했을 때 그것에 물렸습니다.
postfix에 많은 서비스가 있는 이유 중 하나는보안. 장점 중 하나는 특정 작업을 수행하기 위해 별도의 데몬/서비스로 실행되는 postfix입니다. 따라서 postfix는 master
postfix 서비스별로 권한과 권한을 조정할 수 있습니다. 예를 들어qmgr(8) 데몬외부 세계와 통신하지 않으며 chrooted 환경에서 고정된 낮은 권한으로 실행될 수 있습니다.
어쨌든 비활성화할 수 있는 postfix 서비스가 무엇인지 알기 위해 끝없는 시행착오를 겪을 시간이 없습니다. 그래서 일부 서비스에 대한 정보를 제공하고 이를 여러 그룹별로 그룹화합니다.
# INPUT SERVICE
smtp inet n - n - - smtpd
#submission inet n - n - - smtpd
pickup unix n - n 60 1 pickup
# PROCESSING SERVICE
cleanup unix n - n - 0 cleanup
qmgr unix n - n 300 1 qmgr
rewrite unix - - n - - trivial-rewrite
# OUTPUT SERVICE
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
smtp unix - - n - - smtp
relay unix - - n - - smtp
# HELPER
# Generate bounce
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
# For postfix recipient/sender verification See www.postfix.org/ADDRESS_VERIFICATION_README.html
verify unix - - n - 1 verify
# Outgoing Connection manager
scache unix - - n - 1 scache
# TLS Cache Manager
tlsmgr unix - - n 1000? 1 tlsmgr
# maintains statistics about client connection counts or client request rates
anvil unix - - n - 1 anvil
# Needed by mailq command
showq unix n - n - - showq
# Needed by postqueue -f
flush unix n - n 1000? 0 flush
# Proxymap
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap