Для управления портами в Linux используется утилита командной строки — iptables.
Все запросы выполняются от root-пользователя.
Для просмотра правил iptables:
iptables -L
Отображает OUTPUT, INPUT, FORWARD политики.
Для удаления уже созданных правил используем:
iptables -F
Первичные правила необходимые для установки:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
И запрещающее правило для новых входящих пакетов
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Для открытия порта, например 80 по протоколу TCP необходимо выполнить следующую команду:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Давайте расшифруем данные команды:
- -A — добавление правила в конец существующей цепочке;
- INPUT — к какой цепочке добавить правило;
- -p tcp — указываем протокол TCP. Возможно указание и других протоколов (UDP, ICMP, SCTP)
- —dport 80 — указали адресованные какому порту пакеты мы хотим фильтровать.
- -j ACCEPT — что необходимо сделать с пакетом. В данном случае — разрешить.
После всех действий необходимо для остальных портов поменять политику по умолчанию на DROP:
iptables -P INPUT DROP
Чтобы добавить порт после добавления последней команды, необходимо (например для порта 22):
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
Данная политика будет добавлена в начало всех остальных политик.
Более подробная информация по работе с Iptables вы можете просмотреть на данной странице.