ขอสอบถามเรื่อง IPTABLE ครับ หาอ่านดูแล้วลองแล้วก็ยังไม่ได้

อันนี้ที่ผมทำ ระบบที่ต้องการคือ ปิดทุก port และเปิด port web mail msn และบังคับให้ใช้ Squid (Squid3)

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#ตรงนี้ให้ออก Squid ครับ ใช้ Squid3
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080

#ส่วนบนนี้ใช้ได้ครับ
#พอใส่ส่วนล่างนี้ตายเลยครับ เล่น web ไม่ได้ทั้งหมดเลย ต้องเอาบรรทัดที่ กำหนดให้ออก Squid ออกถึงจะให้ได้ทำยังไงมันจะทำงานร่วมกันได้ครับ
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

iptables -A INPUT -p TCP -s 0/0 --dport 22 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --dport 80 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --dport 8080 -j ACCEPT
iptables -A FORWARD -p TCP -s 0/0 --dport 80 -j ACCEPT
iptables -A FORWARD -p TCP -s 0/0 --dport 8080 -j ACCEPT

>> iptables -P INPUT DROP
>> iptables -P OUTPUT ACCEPT
>> iptables -P FORWARD DROP
น่าจะเกี่ยวกับ Policy ตอน FORWARD ครับ ในที่นี้ คือ ขาออก ไปได้ แต่ขากลับอาจจะเข้ามาไม่ได้
ลองเปลี่ยน
iptables -P FORWARD DROP
เป็น
iptables -P FORWARD ACCEPT
ทดสอบ แนวความคิดดูก่อน ถ้าใช้แบบหลังได้ แสดงว่าที่ตั้งข้อสังเกตเป็นจริง ก็ตรวจสอบว่า ต้องเพิ่มอะไรลงไปที่
iptables -A FORWARD ....
เพื่อให้ได้ตามที่เราต้องการอีกทีครับ

___
Neutron: Linux Addict!

ทดสอบแล้วครับ ใช่จริงๆ แต่ไม่รู้ว่าจะต้องเพิ่มอะไรลงไป
iptables -A FORWARD ....
80 ก็เปิดแล้ว
8080 ก็เปิด
ไม่รู้จะเปิดอะไรอีก

อาจจะลองเพิ่มอย่างนี้ดูนะครับ

>> iptables -P INPUT DROP
>> iptables -P OUTPUT ACCEPT
>> iptables -P FORWARD DROP

iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

>> iptables -A INPUT -p TCP -s 0/0 --dport 22 -j ACCEPT
>> iptables -A INPUT -p TCP -s 0/0 --dport 80 -j ACCEPT
>> iptables -A INPUT -p TCP -s 0/0 --dport 8080 -j ACCEPT
>> iptables -A FORWARD -p TCP -s 0/0 --dport 80 -j ACCEPT
>> iptables -A FORWARD -p TCP -s 0/0 --dport 8080 -j ACCEPT

iptables -A FORWARD -o eth1 -j ACCEPT

กรณีนี้ ผมไม่รู้ Clients' IP นะครับ แต่ถ้าจะเจาะจงไปอีกคือ

iptables -A FORWARD -o eth1 -d 192.168.1.0/24 -j ACCEPT

ก็เปลี่ยน IP ตามที่ใช้จริงละกันครับ

___
Neutron: Linux Addict!

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้