Назад | Перейти на главную страницу

iptables для блокировки всех портов, кроме одного, на PPP0

У меня 2 аккаунта dsl. Один из них для общего использования, который настроен на моем маршрутизаторе, а второй - на сервере. Мой маршрутизатор хорошо защищен, но после настройки PPPoe на моем сервере я заметил, что безопасность маршрутизатора полностью игнорируется, и все порты на моем сервере по существу открыты для всего мира.

Итак, я попробовал заблокировать все соединения по PPP.

iptables -A INPUT -i ppp0 -p tcp -j DROP
iptables -I INPUT -i ppp0 -p tcp --dport 563 -j ACCEPT

Но теперь я не могу подключиться к порту 563 или от него.

Я подозреваю, что я в корне неправильно понимаю, как работают iptables.

Вам нужно установить несколько правил по умолчанию, а затем политику для остальных. Это хорошая отправная точка:

iptables -A INPUT --match state --state RELATED,ESTABLISHED -j ACCEPT --match comment --comment "Accept traffic from outgoing connections and stuff like FTP."
iptables -A INPUT -p icmp -j ACCEPT --match comment --comment "Allow ping"
iptables -A INPUT -p tcp --dport 22 -j ACCEPT --match comment --comment "Allow SSH"
iptables -A INPUT --in-interface lo -j ACCEPT --match comment --comment "Allow everything on the localhost"
iptables -P INPUT DROP

Затем вы можете добавить свое правило:

iptables -A INPUT -i ppp0 -p tcp --dport 563 -j ACCEPT

Порядок имеет значение! Вы не выберете неправильный маршрут, но вам нужно изменить порядок. Сначала поставьте ПРИНЯТЬ, затем ОТКАЗАТЬ, и все будет в порядке.