กฎ iptables บนเซิร์ฟเวอร์หยุดการส่งต่อพอร์ตแบบไดนามิก ssh (พร็อกซี SOCKS) บนเครื่องท้องถิ่น


0

ฉันใช้เดเบียน 9 กับ VPS ที่เช่า ในแล็ปท็อปของฉันฉันใช้การส่งต่อพอร์ตแบบไดนามิก ssh (โดยใช้โปรโตคอล SOCKS) เพื่อติดตามปริมาณการใช้งานของบางแอปพลิเคชัน ทุกอย่างทำงานได้ดี แต่เมื่อฉันโหลดกฎ iptables บนเซิร์ฟเวอร์ (VPS) แอปพลิเคชันใด ๆ บนแล็ปท็อปของฉันที่ใช้การส่งต่อพอร์ตในเครื่องไม่ทำงาน

นี่คือคำสั่งที่ฉันใช้เพื่อส่งต่อพอร์ตโลคัล 8080 ของแล็ปท็อป (เดเบียน 8) ไปยัง VPS ของฉัน:

ssh -D 8080 -N username@30.123.234.6

คำสั่งด้านบนเริ่มส่งคืนข้อผิดพลาดดังนี้:

channel 7: open failed: connect failed: Connection timed out
channel 8: open failed: connect failed: Connection timed out
channel 9: open failed: connect failed: Connection timed out
channel 3: open failed: connect failed: Connection timed out
etc...

นี่คือเอาต์พุตของ iptables -L บน VPS มีใครบ้างที่เห็นว่าทำไมกฎเหล่านี้จะทำให้เกิดปัญหานี้ ความคิดใด ๆ ชื่นชมมาก

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  google-public-dns-a.google.com  anywhere            
ACCEPT     all  --  resolver3.opendns.com  anywhere            
ACCEPT     all  --  resolver1.opendns.com  anywhere            
SYN_FLOOD_LOG_DROP  tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,ACK/SYN
UDP_FLOOD_LOG_DROP  udp  --  anywhere             anywhere            
ICMP_FLOOD_LOG_DROP  icmp --  anywhere             anywhere            
       tcp  --  anywhere             anywhere             tcp dpt:ssh     state NEW recent: SET name: DEFAULT side: source mask: 255.255.255.255
SSH_LOG_DROP  tcp  --  anywhere             anywhere             tcp dpt:ssh state NEW recent: UPDATE seconds: 60 hit_count: 4 name: DEFAULT side: source mask: 255.255.255.255
       tcp  --  anywhere             anywhere             tcp dpt:xmpp-client state NEW recent: SET name: DEFAULT side: source mask: 255.255.255.255
XMPP_LOG_DROP  tcp  --  anywhere             anywhere             tcp dpt:xmpp-client state NEW recent: UPDATE seconds: 60 hit_count: 8 name: DEFAULT side: source mask: 255.255.255.255
       tcp  --  anywhere             anywhere             tcp dpt:http state NEW recent: SET name: DEFAULT side: source mask: 255.255.255.255
HTTP_LOG_DROP  tcp  --  anywhere             anywhere             tcp dpt:http state NEW recent: UPDATE seconds: 60 hit_count: 8 name: DEFAULT side: source mask: 255.255.255.255
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:xmpp-client
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  localhost            anywhere             tcp dpt:5582

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain HTTP_LOG_DROP (1 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             LOG level warning prefix "IPTables DROP:HTTPATTACK  "
DROP       all  --  anywhere             anywhere            

Chain ICMP_FLOOD_LOG_DROP (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere             limit: avg 1/sec burst 3
LOG        all  --  anywhere             anywhere             LOG level warning prefix "IPTables DROP:ICMPFLOOD  "
DROP       all  --  anywhere             anywhere            

Chain SSH_LOG_DROP (1 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             LOG level warning prefix "IPTables DROP:SSHATTACK  "
DROP       all  --  anywhere             anywhere            

Chain SYN_FLOOD_LOG_DROP (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere             limit: avg 1/sec burst 3
LOG        all  --  anywhere             anywhere             LOG level warning prefix "IPTables DROP:SYNFLOOD  "
DROP       all  --  anywhere             anywhere            

Chain UDP_FLOOD_LOG_DROP (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere             state NEW recent: UPDATE seconds: 1 hit_count: 20 name: DEFAULT side: source mask: 255.255.255.255
LOG        all  --  anywhere             anywhere             LOG level warning prefix "IPTables DROP:UDPFLOOD  "
DROP       all  --  anywhere             anywhere            

Chain XMPP_LOG_DROP (1 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             LOG level warning prefix "IPTables DROP:XMPPATTACK  "
DROP       all  --  anywhere             anywhere           

ขอบคุณ.


มันเข้าสู่ระบบอะไร? (นอกจากนี้เพียงเพื่อล้างคำศัพท์ของคุณคุณไม่ได้ใช้พร็อกซีถุงเท้า socks5 บน vps มันเป็นการส่งต่อพอร์ตแบบไดนามิก ssh ซึ่งใช้โปรโตคอลถุงเท้าในเครื่องท้องถิ่นของคุณ) คุณพยายามเชื่อมต่อขาออกกับ VPS นั้นหรือไม่ อาจพลาดที่จะยอมรับแพ็คเก็ตที่จัดตั้งขึ้น ฉันจะแปลงนโยบายการปล่อยเป็นกฎปฏิเสธ / บันทึกก่อนจากนั้นคุณจะเห็นแพ็กเก็ตที่ไม่ได้รับ
eckes

การบันทึกสิ่งที่ลดลงช่วยได้มาก ขอบคุณ!
Dmitri

คำตอบ:


1

ฉันรับข้อเสนอแนะของ eckes และพยายามบันทึกสิ่งที่ DROPped ตามนโยบายการป้อนข้อมูล ดังนั้นฉันเพิ่มกฎต่อไปนี้เป็นล่าสุดในห่วงโซ่การป้อนข้อมูล:

iptables -A INPUT -j LOG --log-prefix "IPTables DROP: wrong drop " --log-level 4

นี่แสดงให้เห็นว่าหลายสิ่งหลายอย่างกำลังตกหล่นซึ่งอาจไม่ควร ตัวอย่างคือบรรทัดนี้จากบันทึก:

12 ธ.ค. 22:45:13 เคอร์เนล myservername: [41817.875804] IPTables DROP: วางผิด IN = ens18 OUT = MAC = aa: 43: 9d: 07: 06: a7: 00: 1:: d0: 5d: 08 : 00 SRC = 149.56.134.238 DST = 30.123.234.6 LEN = 113 TOS = 0x00 PREC = 0x00 TTL = 49 ID = 471 DF PROTO = TCP SPT = 6667 DPT = 47054 ACK PSH URGP = 01000

ฉันเชื่อมต่อกับเซิร์ฟเวอร์ IRC 149.56.134.238 (cherryh.freenode.net) ในขณะที่ทำการทดสอบจากแล็ปท็อปของฉันโดยใช้การส่งต่อพอร์ตแบบไดนามิก ssh ตามที่อธิบายไว้ ฉันขาดการเชื่อมต่อหลังจากกฎ iptables ถูกโหลดบนเซิร์ฟเวอร์ (VPS)

ดังนั้นฉันจึงรับคำแนะนำของ eckes อีกครั้งและพยายามยอมรับแพ็กเก็ต ESTABLISHED ที่เกี่ยวข้องโดยเพิ่มบรรทัดนี้เป็นกฎสุดท้ายของ chain (แต่ก่อนหน้ากฎการดีบัก LOG ที่กล่าวถึงด้านบน)

iptables -A INPUT -m conntrack --cstate ESTABLISHED,RELATED -j ACCEPT

แก้ไขปัญหา. ฉันเดาว่าบทเรียนที่เรียนรู้คือขั้นตอนแรกที่มีปัญหา iptables คือการตรวจสอบสิ่งที่ตกจริง!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.