Iptables: ทำไมการเปลี่ยนเส้นทางของฉันไม่ทำงาน


0

Linux slackware ฉันใส่เซิร์ฟเวอร์ ftp กับผู้ใช้ที่ไม่มีสิทธิพิเศษ ใช้พอร์ต 2121 ต้องการเปลี่ยนเส้นทางแพ็กเก็ตทั้งหมดตั้งแต่ 21 ถึง 2121 เพื่อให้ ftp ของฉันใช้ได้ เป็นมาตรฐานโดยไม่ระบุพอร์ต

telnet host 2121 OK

telnet host 21 NO!
ncftp host NO! 

ฉันใช้กฎง่าย ๆ นี้

iptables -A PREROUTING -p tcp --dport 21 -j REDIRECT --to-port 2121

และ modprobe โมดูลเหล่านั้น

 modprobe nf_conntrack_ftp
 modprobe ip_nat_ftp
 modprobe ip_conntrack_ftp

อินเตอร์เฟสคือ br0 และ ip_forward ถูกเปิดใช้งาน

ทำไมไม่ทำงาน


มันเปิดใช้งานหรือไม่ serverfault.com/questions/140622/... BTW ฉันไม่สามารถบอกลิงค์ที่คุณควรไปจากโพสต์ผิดพลาดของเซิร์ฟเวอร์ดั้งเดิม

ใช่เปิดใช้งานฉันได้ลองใช้กฎของโพสต์นี้แล้ว แต่ใช้งานไม่ได้
elbarna

คำตอบ:


1

วิธีแก้ปัญหาพบว่าฉันใช้กฎเหล่านั้น

#!/bin/sh

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -t nat -F
iptables -X


iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 2121 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp --dport 21 -j REDIRECT --to-ports 2121
iptables -t nat -I OUTPUT -p tcp -o lo --dport 21 -j REDIRECT --to-ports 2121

และทำงานได้สมบูรณ์แบบ

การกำหนดค่าไฟร์วอลล์อื่นอาจเป็นเช่นนี้

*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i br0 -p tcp --dport 2121 -j DNAT --to-destination 192.168.0.2:21
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 -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2121 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i br0 -m state --state NEW -m tcp -p tcp -d 192.168.0.2 --dport 21 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.