iptables를 이용해서 밖으로 나가는 메일을 특정 서버로 포워딩 시키는게 가능한가요?

klimit의 이미지

iptables를 이용해서 로컬에서 나가는 메일을 특정 IP의 서버로 보내려면 어떻게 해야 할까요?

iptables -t nat -A PREROUTING -s localhost -d [목적지] -j REDIRECT

단순히 위와 같이 하면 안되는거 같습니다.

부디 제게 가르침을 주시기 바랍니다.

ironiris의 이미지

qmail 에서는
/var/qmail/control/smtproutes 파일같은 것을 만들어줘서 자체적으로 지원가능한데
꼭 iptables 를 써야하는 것이 아니라면 이것을 추천합니다.

bacon의 이미지

확인을 해보진 않았으나 DNAT을 사용하면 될듯합니다.

10.20.30.40:25로 나가는 tcp패킷의 목적지 주소를 40.30.20.10 바꾸려면
iptables -t nat -A OUTPUT --destination 10.20.30.40 --protocol tcp --destination-port 25 --jump DNAT --to-destination 40.30.20.10

포트 25로 나가는 모든 tcp패킷이라면
iptables -t nat -A OUTPUT --protocol tcp --destination-port 25 --jump DNAT --to-destination 40.30.20.10

OUTPUT체인에 넣었기 때문에 로컬에서 나가는 패킷에만 해당되겠죠.