iptables를 사용하여 SSH를 제외한 모든 트래픽을 하나의 로컬 포트로 리디렉션하는 방법 포트 1233에서

호스트 OS : 우분투 16.06 LTS
내 서버는 포트 1233에서 수신 대기합니다. 모든 TCP 및 UDP 트래픽을 SSH 포트를 제외한 포트 1233으로 리디렉션해야합니다. 다음 IPTable 규칙을 사용하여 모든 포트를 성공적으로 1233으로 리디렉션했습니다.

*filter
:INPUT ACCEPT [89:12442]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [114:10536]
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [2:64]
:INPUT ACCEPT [2:261]
:OUTPUT ACCEPT [8:524]
:POSTROUTING ACCEPT [8:524]
-A PREROUTING -p tcp -m tcp -j REDIRECT --to-ports 1233
-A PREROUTING -p udp -j REDIRECT --to-ports 1233
COMMIT

또한 SSH 포트에 대한 규칙을 추가했지만 서버와의 SSH 연결을 성공적으로 설정할 수 없었습니다. PREROUTING 체인이 먼저 실행됩니다. 검색을 한 후에이 문제와 관련된 많은 질문을 발견했지만이 시나리오를 다루는 것은 하나도 아닙니다.

이러한 유형의 구현의 유스 케이스에 대해 궁금해 할 것입니다. 그것은 허니팟 서버이고 우리의 생각은 허니팟을 설정하여 SSH를 제외한 모든 트래픽을 수신하는 것입니다. 내가 포트 범위를 정의하거나 iptables의 다중 포트 기능을 사용할 수는 있지만 22를 제외하고 모든 포트를 리디렉션해야한다는 것을 알고 있습니다.



답변

내 SSH 서버 22 포트에서 수신 대기했습니다. 다음 IPTables 규칙을 성공했습니다.

iptables -t nat -A PREROUTING -p tcp --dport 1:21 -j REDIRECT --to-port 5000
iptables -t nat -A PREROUTING -p tcp --dport 23:65389 -j REDIRECT --to-port 5000
iptables -t nat -A PREROUTING -p udp -j REDIRECT --to-port 5000
service iptables-persistent save
service iptables-persistent reload