LINUX.ORG.RU
ФорумAdmin

Прервать соединение

 ,


0

2

Можно ли в линуксе как-то дропнуть соединение к одному конкретному серверу? IP известен. Но нужно дропнуть так, чтобы не нужна была перезагрузка. И восстановить его потом, тоже без перезагрузки и рестарта приложения. Восстановить - в смысле, что разрешить соединиться снова. Т.е. на какое-то время запретить соединения, а потом разрешить.

Я не админ, мне для программистского теста нужно.

★★★★★

iptables -I INPUT -s <ip> -j DROP

Как потестишь , вернешь на место

iptables -D INPUT -s <ip> -j DROP

pyatak123 ()
Ответ на: комментарий от pyatak123

Разве это отработает на уже установленном соединении? ИМХО, нет.

DALDON ★★★★★ ()
Ответ на: комментарий от DALDON

Так, как написано, отработает. Соединение повиснет нельзя будет сделать новое.

anonymous ()
Ответ на: комментарий от anonymous

А как же там всякие таблицы состояния? Не бегает же каждый пакет по всем правилам... Пробегают только первые пакеты вроде как? Я не прав?

DALDON ★★★★★ ()
Ответ на: комментарий от DALDON

Если первым будет правило с матчем типа -m state --state ESTABLIHED,RELATED, то тогда будет бегать по таблицам состояний. И да, будет пробегать по всем правилам. Не путай iptables с pf :)

anonymous ()
Ответ на: комментарий от DALDON

Если добавить первым правилом(до разрешающего RELATED,ESTABLISHED соединения) - отработает

Pinkbyte ★★★★★ ()
Ответ на: комментарий от DALDON

Нет не отрубает поскольку ключик -I ставит правило самым первым и дальнейший пропуск по состоянию не дойдет. А ты думал что только избранные проходят цепочки пакетного фильтра ?

pyatak123 ()
Ответ на: комментарий от pyatak123



А ты думал что только избранные проходят цепочки пакетного фильтра ?

Ну всякие там SYN, ACK, а уже установленные соединения идут мимо правил, чтобы не грузить CPU.
Но, я вполне допускаю, что я не прав.

DALDON ★★★★★ ()
Последнее исправление: DALDON (всего исправлений: 1)
Ответ на: комментарий от pyatak123

Ты знаешь, проверил на уже установленном соединении tcp/ip - всё так, поставил действие REJECT, и сразу установленная VNC сессия отвалилась.

DALDON ★★★★★ ()
Ответ на: комментарий от DALDON

Ну и зря, правило даже не содержит указание протокола , а если бы это было icmp который без соединения , а если udp ? Каждый пакетик проходит всю цепочку.

pyatak123 ()
Ответ на: комментарий от pyatak123

Ну всякие костыли для таблиц состояния есть вроде даже и для udp/icmp, и видимо при особой необходимости, могут использоваться.

DALDON ★★★★★ ()
Последнее исправление: DALDON (всего исправлений: 1)
Ответ на: комментарий от DALDON

У этих протоколов нет состояния. И костыли им не нужны - им ходить нечем в принципе.

pyatak123 ()
Ответ на: комментарий от pyatak123

Ну там вроде есть костыли для NATов всяких.

DALDON ★★★★★ ()
Ответ на: комментарий от DALDON

Ну всякие там SYN, ACK, а уже установленные соединения идут мимо правил, чтобы не грузить CPU.

Нет. Любой пакет L3 проходит через включенный iptables. Всё. Точка. Другое дело, что как правило как можно выше(первым, вторым) ставят правило пропускать все пакеты в уже установленных соединениях, дабы не гонять многострадальный пакет по всем нижестоящим матчерам.

И да, в Linux есть conntrack на UDP и даже(о, боже ж ты мой!) на ICMP-пакеты. Хотя по логике вещей состояния у этих протоколов нет.

От така фигня :-)

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Понял, спасибо! Теперь вкурил, к чему эти «глупости» с


Другое дело, что как правило как можно выше(первым, вторым) ставят правило пропускать все пакеты в уже установленных соединениях






И да, в Linux есть conntrack на UDP и даже(о, боже ж ты мой!) на ICMP-пакеты. Хотя по логике вещей состояния у этих протоколов нет.

Да, именно это я пытался донести до pyatak123.

DALDON ★★★★★ ()
Ответ на: комментарий от DALDON

Да , вы правы.

ICMP reply messages can also be considered as ESTABLISHED, if we created a packet that in turn generated the reply ICMP message.

pyatak123 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.