@BloodVIRUS

Как в iptables запретить все порты, кроме некоторых?

Здравствуйте! Казалось бы, вопрос у меня простой, он должен быть банальный, но почему-то не все так просто...
на сервере хочу закрыть порты, оставить служебные, 22, 80, 443 и подобные. В общем до 1024 порта не трогать. А так же диапазон 7630-7650, и 8070-8180 не трогать.

правила должны быть простыми:
iptables -A INPUT -p tcp --sport 1024:7630 -j DROP
iptables -A INPUT -p tcp --sport 7650:8070 -j DROP
iptables -A INPUT -p tcp --sport 8180:65535 -j DROP

iptables -A OUTPUT -p tcp --dport 1024:7630 -j DROP
iptables -A OUTPUT -p tcp --dport 7650:8070 -j DROP
iptables -A OUTPUT -p tcp --dport 8180:65535 -j DROP

но почему-то при вводе их отваливается SSH и сервер становится недоступным наглухо..
что я не учитываю?
  • Вопрос задан
  • 313 просмотров
Пригласить эксперта
Ответы на вопрос 2
@SunTechnik
Соединение по ssh с сервером происходит - входящий пакет - port 22, а вот у исходящего пакета, порт назначения может быть любым ( так как клиент возмет себе первый свободный).

Прописав блокировку старших портов в цепочке Output - вы заблокировали клиентов.

Нормальная практика - как написал ky0.

Пример правил, как разрешить ssh:

iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Разрешили входящий пакет

iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
Правило для исходящих пакетов. (можно пакетам, уже для установленного соединения, порт источника - 22)

iptables -P INPUT DROP
iptables -P OUTPUT DROP
Запретили все остальное...
Ответ написан
Комментировать
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Сначала в цепочке перечисляете нужные порты с ACCEPT, после них делаете глобальное правило (без порта) с DROP.

И у вас какая-то чехарда с src и dst - вы точно понимаете, какой из вариантов для чего нужно юзать?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы