Как заблокировать все порты, кроме 22,80,443, для всего входящего трафика, кроме localhost?

Как заблокировать все порты, кроме 22,80,443, для всего входящего трафика, кроме localhost?

Я хочу такое поведение:

Все внешние компьютеры могут подключаться только к портам моего сервера 22(ssh), 80(http) и 443(https).

Однако все локальные приложения могут подключаться к любому порту по своему усмотрению.

Я поискал и вот что мне выдало:

iptables -A INPUT -p tcp -m tcp -m multiport ! --dports 22,80,443 -j DROP

Он делает то, что я хочу, но также блокирует все приложения localhost. Что мне нужно изменить, чтобы разрешить привязку приложений localhost к любому порту?

И как мне тогда сделать правило постоянным?

Спасибо!

решение1

Правила сопоставляются по порядку. Сделайте одно, разрешающее localhost, перед тем, которое запрещает.

iptables -A ВХОД -p tcp -s localhost -m tcp -m multiport ! --dports 22,80,443 -j ПРИНЯТЬ

iptables -A ВХОД -p tcp -m tcp -m multiport ! --dports 22,80,443 -j ОТБРОС

О том, как их сохранить в зависимости от вашей ОС, читайте здесь. https://www.thomas-krenn.com/en/wiki/Saving_Iptables_Firewall_Rules_Permanently

Связанный контент