The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"почему подвисает SSH при блокировке NEW ! SYN ?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (Linux iptables, ipchains / Linux)
Изначальное сообщение [ Отслеживать ]

"почему подвисает SSH при блокировке NEW ! SYN ?"  +/
Сообщение от greenwar (ok) on 14-Мрт-15, 22:18 
столкнулся с такой непоняткой:
документация утверждает, что надо так:
iptables -A INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j DROP
обычные люди про conntrack не знают и привыкли так:
iptables -A INPUT -m state --state NEW -p tcp ! SYN,RST,ACK,FIN SYN -j DROP
в общем и целом оно работает, НО! через ~ минуту бездействия подвисает и потом приходится ждать, пока дойдёт новое соединение и сессия отвиснет.
может и не отвиснуть.
я это дело залогировал и увидел ACK PSH:
SRC=xx.xx.xx.xx DST=xx.xx.xx.xx LEN=100 TOS=0x00 PREC=0x20 TTL=57 ID=36151 DF PROTO=TCP SPT=55967 DPT=39512 WINDOW=2480 RES=0x00 ACK PSH URGP=0

что странно ^^

пробовал так: ! SYN,RST,ACK,FIN SYN
и PSH подставлял, SYN SYN пробовал и т.д., оно всё-равно в логах про них говорит
конкретно даже вот это правило:
-A INPUT -p tcp -m state --state NEW ! --tcp-flags SYN,RST,ACK,FIN,PSH SYN -j LOG --log-level DEBUG --log-prefix="NEW packets: "
в логи выводит вышеуказанную строку про ACK PSH
флаг PSH он вообще не из NEW, по идее, он про то, что данные протолкнуть надо, поэтому его присутствие загадочно
чё он хочет то от меня?

iptables -I INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j DROP
будет блокировать все попытки открыть входящее TCP-соединение не SYN-пакетом. Попытка установить соединение таким образом может быть либо ошибкой, либо атакой.

ssh криво открывает новые соединения или что?
но по логам там и фтп такой же косяк ловит, правда это уже не я

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "почему подвисает SSH при блокировке NEW ! SYN ?"  –2 +/
Сообщение от pavlinux (ok) on 15-Мрт-15, 00:18 
> обычные люди про conntrack не знают и привыкли так:

Обычные люди юзают контрак для отладки, потом парсят и делают правила bpf

И ваще, айпистол уже отстой nftables рулит!

> в общем и целом оно работает, НО! через ~ минуту бездействия подвисает

Лечу по фото, дорого. Весь файервол показывай.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "почему подвисает SSH при блокировке NEW ! SYN ?"  +1 +/
Сообщение от greenwar (ok) on 15-Мрт-15, 00:19 
>> обычные люди про conntrack не знают и привыкли так:
> Обычные люди юзают контрак для отладки, потом парсят и делают правила bpf
> И ваще, айпистол уже отстой nftables рулит!

как iptables может быть отстоем, а nftables - нет, когда они оба всего-лишь интерфейсы для управления netfilter, который и есть сам файрволл?

причём тут bpf какой-то левый, когда про iptables спрашивают... непонятно
хоть пассивный FTP проверял в этом bpf?

>> в общем и целом оно работает, НО! через ~ минуту бездействия подвисает
> Лечу по фото, дорого. Весь файервол показывай.

на:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]

-P FORWARD DROP
-P INPUT DROP
-P OUTPUT DROP

-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

-A INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j LOG --log-level DEBUG --log-prefix="NEW packets: "
-A INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j DROP
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

-A INPUT -j ACCEPT
-A OUTPUT -j ACCEPT

COMMIT

вот в таком виде глючит

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "почему подвисает SSH при блокировке NEW ! SYN ?"  –1 +/
Сообщение от pavlinux (ok) on 15-Мрт-15, 01:47 
> на:

Тут не учебный сайт.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "почему подвисает SSH при блокировке NEW ! SYN ?"  +/
Сообщение от Andrey Mitrofanov on 15-Мрт-15, 10:48 
> столкнулся с такой непоняткой:
> документация утверждает, что надо так:
> iptables -A INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j DROP
> обычные люди про conntrack не знают и привыкли так:
> iptables -A INPUT -m state --state NEW

Обычные люди и про iptables не слышали.

И да, есть многое на свете, друг Горацио, что не записано https://www.opennet.ru/openforum/vsluhforumID10/5303.html в man iptables

> в общем и целом оно работает, НО! через ~ минуту бездействия подвисает
> и потом приходится ждать, пока дойдёт новое соединение и сессия отвиснет.
> ssh криво открывает новые соединения или что?
> но по логам там и фтп такой же косяк ловит, правда это

У меня
https://www.opennet.ru/openforum/vsluhforumID1/93014.html#1
https://www.opennet.ru/openforum/vsluhforumID10/4463.html#16
были smpt+pop3 на аналоговых модемах или через "vpn"-ы на виндовых клиентах.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "почему подвисает SSH при блокировке NEW ! SYN ?"  +/
Сообщение от greenwar (ok) on 15-Мрт-15, 17:42 
> У меня
> https://www.opennet.ru/openforum/vsluhforumID1/93014.html#1
> https://www.opennet.ru/openforum/vsluhforumID10/4463.html#16
> были smpt+pop3 на аналоговых модемах или через "vpn"-ы на виндовых клиентах.

ну понятно, в общем крутить таймауты
спасибо

зы: кстати, так как-то проще: sysctl -a |grep -E conntrack.+?timeout

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "почему подвисает SSH при блокировке NEW ! SYN ?"  +/
Сообщение от Алексей (??) on 16-Мрт-15, 09:38 
> iptables -A INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j
> DROP
> обычные люди про conntrack не знают и привыкли так:
> iptables -A INPUT -m state --state NEW -p tcp ! SYN,RST,ACK,FIN SYN
> -j DROP
> в общем и целом оно работает

Это совершенно разные подходы. Первый использует таблицу conntrack ядра для определения статуса соединения. Второй использует напрямую флаги в tcp пакете. Первый вариант не будет работать, если, например, выключен conntrack. Второй вариант будет работать всегда. Выберите какой-то один подход. Либо с использованием tcp флагов, либо с использованием conntrack.

Пример для conntrack:
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру