IPTABLES chuyển tiếp tất cả các cổng ngoại trừ ssh


1

Tôi có định tuyến nat và gói hoạt động tốt, nhưng tôi muốn chuyển tiếp tất cả các cổng ngoại trừ SSH sang một ip tĩnh (192.168.0.3)

Điều gì sẽ là cú pháp iptables chính xác để làm điều này?

Câu trả lời:


3

Vì các quy tắc iptables được thực hiện theo thứ tự (áp dụng trận đấu đầu tiên, nên các quy tắc sau thậm chí không được kiểm tra), bạn có thể thực hiện như sau:

 iptables -t nat -A PREROUTING -i eth0 -d 192.168.0.2 -j DNAT --to 192.168.0.3
 iptables -t nat -A PREROUTING -i eth0 -d 192.168.0.2 -j DNAT --to 192.168.0.3
 iptables -A FORWARD -i eth0 -d 192.168.0.2 --dport 22 -j REJECT
 iptables -A FORWARD  -i eth0 -d 192.168.0.2 -j ACCEPT
 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

giả định rằng máy tính mà bạn đang thực hiện việc này có địa chỉ IP 192.168.0.2, nếu không thì thay đổi nó cho phù hợp. Quy tắc cuối cùng là cần thiết để đảm bảo kết nối của máy tính với địa chỉ IP 192.168.0.3.


eth0 là giao diện WAN hay LAN?
Avery3R

@MMavipc Tôi giả sử eth0 là giao diện WAN
MariusMatutiae

Chỉ cần làm rõ, điều này sẽ chỉ chuyển tiếp các cổng đến 192.168.0.3 phải không? Tôi có 192.168.0.0/16 NATed
Avery3R

@MMavipc Đúng. Nếu bạn đã định dạng 192.168.0.0/16, thì có lẽ bạn không cần quy tắc iptables cuối cùng.
MariusMatutiae

2
Hai lệnh đầu tiên có vẻ giống hệt nhau; tôi đang thiếu gì Ngoài ra, vì lệnh thứ ba sử dụng --dport, không cần nói -p tcp(hoặc -p udp)?
G-Man
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.