Закрываем порт в Linux с помощью iptables

Если в Linux требуется ограничить доступ к определенному порту, например к порту ssh (22 порт) при этом оставив доступ к этому порту с одного или нескольких ip адресов с этим помогут правила iptables.

/sbin/iptables -I INPUT 1 -s 134.249.114.157 -p tcp -m tcp --dport 22 -j ACCEPT || true
/sbin/iptables -I INPUT 2 -s 185.220.3.222 -p tcp -m tcp --dport 22 -j ACCEPT || true
/sbin/iptables -I INPUT 3 -p tcp -m tcp --dport 22 -j DROP || true


Первые два правила iptables добавляют в цепочку INPUT разрешение на подключение к порту 22 с указанных ip адресов, третье правило iptables закрывает доступ к порту 22 для всех остальных ip адресов.

Для просмотра всех правил добавленных в iptables воспользуйтесь командой:

iptables -L -n --line-numbers


В итоге получим ответ по всем цепочкам с правилами:

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  134.249.114.157      0.0.0.0/0            tcp dpt:22
2    ACCEPT     tcp  --  185.220.3.222        0.0.0.0/0            tcp dpt:22
3    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination


Если нужно удалить определенное правило iptables, например второе правило и предоставить доступ к VPS серверу с ip адреса 185.220.3.222 выполните команду:

iptables -D INPUT 2


После чего можете повторно проверить список всех правил командой iptables -L -n --line-numbers

Для очистки всех цепочек iptables от всех правил выполните команду:

iptables -F
  • 0
  • 27 сентября 2018, 17:31
  • GreatAlex

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.