(переміщено з SO)
У мене є iptables, що захищають sip-сервер. Він блокує всі IP-адреси, крім тих, які я спеціально відкрив, і, здається, працює майже для всіх. Я перевірив з безлічі ip-адрес, які не перелічені білим кольором, і всі вони потрапляють як слід.
АЛЕ я підібрав "хакера", який, здається, може обійти правила iptables. Його зондування INVITE вдається зробити це, і я не маю уявлення як, або що це було навіть можливо. За 10 років я цього раніше не бачив.
Я гадаю, що це повинно бути щось, що я зробив, але я не бачу цього.
iptables, створені так (MYIP визначено вгорі - відредаговано):
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
Тепер, маючи НІЧОГО в дозволі, все, що я повинен бути в змозі зробити, це SSH в (що я можу). Якщо я кидаю дзвінки на це, всі вони опускаються. Але Wireshark показує мені це (мій ip відредагований):
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
РЕДАКТУВАТИ: щойно це бачили з провідного шквалу. Чи могли вони робити щось жахливе, як встановити інший спосіб, ніж грати за встановленим правилом? Можливо, вони грають на якійсь дірі у ЗВ'ЯЗАНІ?
89.163.146.25 -> <redacted> RTCP 806 Source port: tag-pm Destination port: sip
EDIT 2: тут є ключовим моментом UDP. Коли я встановив OpenSIPS слухати лише TCP, проблема, схоже, відходить. Жодна їхня спроба більше не проходить, хоча вони надсилають більше таких повідомлень "тегів". Не пояснює, чому пакети навіть дістаються до відкритих вікон. iptables повинні були зупинити їх першими. Хочеться знати, що я тут зробив неправильно.
РЕДАКТ 3: Якщо я видаляю ПОВ'ЯЗАНІ, я припиняю відповідати на них, тож це щось стосується. Але я думаю, що мені потрібно пов'язане. Якісь поради щодо вирішення проблем?
RELATED
до -p icmp
. Можливо, це вирішує це (або це підходяща робота, навколо якої не потрібно від вас читати про помічників, які займаються контратакою).
ESTABLISHED
повинні працювати на UDP. Схоже, пакет передає потік і приймає відповіді на (вихідні) запити. У ваших "хакерів" є статичні IP-адреси? ;-) Якщо так, перевірте / proc / net / nf_conntrack, щоб побачити, що таблиця стану містить про них, коли вони наразі / не / підключені ...RELATED
- це більш хитра штука ... Не знаю, що це робить для SIP . Чи маєmodprobe
можливо показати модуль ipt_sip або що - то навантажувати , що буде робити «чарівні» речі?