
iptables
2개의 NIC가 있는 상자를 사용하여 모든 인터페이스의 포트 443을 한 인터페이스의 8080으로 리디렉션해야 합니다 .
또한 해당 인터페이스의 다른 모든 항목도 차단해야 합니다.
내 iptables 파일은 다음과 같습니다.
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp -d 10.10.1.9 --dport 443 -j DNAT --to 10.10.1.9:8080
-A PREROUTING -i eth1 -p tcp -d 10.10.1.10 --dport 443 -j DNAT --to 10.10.1.9:8080
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
내가 뭘 잘못하고 있는 걸까요, 아니면 왜 이것이 작동하지 않는 걸까요?
답변1
INPUT 테이블에서 포트 443은 차단 해제되었지만 8080은 차단 해제되지 않았습니다. 또한 전달 규칙을 최적화할 수 있다고 생각합니다. 나는 당신의 conf가 이 방법으로 더 나을 것이라고 생각합니다 :-
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -p tcp --dport 443 -j DNAT --to 10.10.1.9:8080
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT