(ย้ายจาก SO)
ฉันมี iptables ปกป้องเซิร์ฟเวอร์ sip มันปิดกั้น IP ทั้งหมดยกเว้นที่ฉันเปิดขึ้นเป็นพิเศษและดูเหมือนจะใช้ได้กับทุกคน ฉันได้ทดสอบจากที่อยู่ IP จำนวนมากที่ไม่ได้อยู่ในรายการสีขาวและพวกเขาทั้งหมดได้ลดลงตามที่ควร
แต่ฉันได้เลือก "แฮ็กเกอร์" ที่ดูเหมือนจะสามารถข้ามกฎ iptables ได้ INVITEs พิสูจน์ของเขาทำให้มันผ่านและฉันไม่มีความคิดอย่างไรหรือว่ามันเป็นไปได้ ใน 10 ปีฉันไม่เคยเห็นสิ่งนี้มาก่อน
ฉันคิดว่ามันต้องเป็นสิ่งที่ฉันทำไปแล้ว แต่ฉันมองไม่เห็น
iptables ที่สร้างเช่นนี้ (MYIP ที่กำหนดไว้ที่ด้านบน - redacted):
iptables -F
iptables -X
iptables -N ALLOWEDSIP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -d $MYIP --dport 22 -j ACCEPT
iptables -t filter -A INPUT -j ALLOWEDSIP
# This is my white list.
iptables -A ALLOWEDSIP -j RETURN
ตอนนี้เมื่อไม่มีอะไรใน ALLOWEDSIP สิ่งที่ฉันควรทำคือ SSH (ซึ่งฉันทำได้) ถ้าฉันโทรไปที่นั่นพวกเขาทั้งหมดจะถูกทิ้ง แต่ wireshark แสดงให้ฉันเห็น (ไอพีของฉัน redacted):
89.163.146.25 -> x.x.x.x SIP/SDP 805 Request: INVITE sip:521088972597572280@x.x.x.x |
x.x.x.x -> 89.163.146.25 SIP 417 Status: 100 Giving a try |
x.x.x.x -> 89.163.146.25 SIP 875 Status: 407 Proxy Authentication Required |
การโทรของเขากระทบกับสวิตช์ของฉันและแม้ว่า ACL จะถูกปฏิเสธในที่สุดพวกเขาก็ไม่ควรไปถึงที่นั่น ไม่มีอะไรที่จะผ่าน ดึงผมออกมา ใครรู้บ้าง
เพื่อความสมบูรณ์นี่คือผลลัพธ์ของ iptables -L:
# iptables -L --line-numbers -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 10 640 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
2 0 0 ACCEPT all -- lo any anywhere anywhere
3 0 0 ACCEPT tcp -- any any anywhere <redacted>.com tcp dpt:6928
4 0 0 ALLOWEDSIP all -- any any anywhere anywhere
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 6 packets, 544 bytes)
num pkts bytes target prot opt in out source destination
Chain ALLOWEDSIP (1 references)
num pkts bytes target prot opt in out source destination
1 0 0 RETURN all -- any any anywhere anywhere
แก้ไข: เพิ่งเห็นสิ่งนี้จาก wireshark พวกเขาจะทำสิ่งที่น่ากลัวเช่นการสร้างวิธีอื่นแล้วเล่นในกฎที่จัดตั้งขึ้น? บางทีพวกเขาอาจจะเล่นในหลุมที่เกี่ยวข้อง?
89.163.146.25 -> <redacted> RTCP 806 Source port: tag-pm Destination port: sip
แก้ไข 2: UDP เป็นกุญแจสำคัญที่นี่ เมื่อฉันตั้งค่า OpenSIPS ให้ฟัง TCP เท่านั้นดูเหมือนว่าปัญหาจะหายไป ความพยายามของพวกเขาจะไม่ผ่านไปอีกต่อไปแม้ว่าพวกเขาจะส่งข้อความ "tag-pm" เพิ่มเติม ไม่ได้อธิบายว่าทำไมแพ็คเก็ตถึงได้รับ opensips แม้ว่า iptables ควรหยุดมันก่อน ชอบที่จะรู้ว่าสิ่งที่ฉันทำผิดที่นี่
แก้ไข 3: หากฉันลบ RELATED ฉันจะหยุดตอบกลับพวกเขาดังนั้นจึงเป็นเรื่องเกี่ยวกับสิ่งนั้น แต่ฉันคิดว่าฉันต้องการความเกี่ยวข้อง มีเคล็ดลับในการแก้ไขปัญหาหรือไม่?
RELATED
-p icmp
อาจจะแก้ปัญหาได้ (หรือเป็นวิธีการทำงานที่เหมาะสมซึ่งคุณไม่ต้องการให้อ่านเกี่ยวกับผู้ช่วยควบคุม)
ESTABLISHED
ควรทำงานกับ UDP ดูเหมือนว่าแพ็กเก็ตโฟลว์และยอมรับการตอบกลับการร้องขอ (ขาออก) "แฮ็กเกอร์" ของคุณมี IP แบบคงที่หรือไม่ ;-) ถ้าเป็นเช่นนั้นให้ตรวจสอบ / proc / net / nf_conntrack เพื่อดูว่าตารางสถานะประกอบด้วยอะไรบ้างเมื่อพวกเขาอยู่ในปัจจุบัน / ไม่ / เชื่อมต่อ ...RELATED
เป็นสิ่งที่ยุ่งยากกว่า ... ไม่รู้ว่ามันทำอะไรกับ SIP . ไม่modprobe
อาจจะแสดงโมดูล ipt_sip หรือสิ่งที่โหลดที่จะทำ "วิเศษ" สิ่งที่?