LINUX.ORG.RU
ФорумAdmin

Пара глупых вопросов по iptables

 


1

5

К моему удивлению, ничего не смог нарыть в гугле на тему:

- Как закрыть входящий TCP порт так, чтобы при коннекте к нему возвращался RST (т.е. скрыть факт использования iptables)

- Как закрыть все входящие порты кроме SSH/HTTP и при этом не задеть входящие пакеты HTTP трафика (в них же прописывается не 80й порт, а уникальный на соединение)?



Последнее исправление: scf (всего исправлений: 2)

На 1-й вопрос ответ в мане:

-j REJECT --reject-with tcp-reset

VovanE
()

на второй, насколько я понял, достаточно нечто типа

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

George
()

HTTP трафика (в них же прописывается не 80й порт, а уникальный на соединение)?

Ну как бы про conntrack и RELATED,ESTABLISHED соединения уже написали.

Но почему это в HTTP уникальный порт? Порт входящий в HTTP, как и у ssh всегда один и стандартно 80.

Это у FTP и SIP для примера, сессия данных поднимается на заранее согласованном порту. Но и для них есть модули iptables для отслеживания номера порта в контрольной сессии.

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

Но почему это в HTTP уникальный порт?

Скорее всего, он имеет в виду порт источника.

ТС, верно мыслишь, когда клиент обращается к сайту, он к нему идёт по 80 порту. А у себя он выходит из того, который система дала. А система, чаще всего, выбирает из портов всё что выше 32768. На фаерволе это отличается директивами:

 --sport, --dport 
Таким образом, если ты хочешь, чтобы твой сервер был виден снаружи через 22 и 80, и не резались пакеты тех соединений, что ты сам инициировал, делай, как писали выше, и ещё:
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT 

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

Скорее всего, он имеет в виду порт источника.

Я поэтому и выделил слово «входящий». Порт источника рандомный по умолчанию у любой TCP сессии.

что ты сам инициировал, делай, как писали выше, и ещё

Только не «сам инициировал», а те, которые уже были установлены и разрешены другими правилами.

Еще если политика цепочки OUTPUT отлична от ACCEPT, надо аналогичное правило stateful добавить(--state RELATED,ESTABLISHED), чтобы ответные пакеты тоже проходили.

nstorm
()

Заюзай fwbuilder: натыкаешь мышкой правила и, через пункт «compile» (или как-то так) посмотришь результат.

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