Прежде всего необходимо создать дополнительные цепочки с помощью команды -N. Сразу после создания цепочки еще не имеют ни одного правила. В нашем примере создаются цепочки
iptables [-N
7.2.6.1. Цепочка bad_tcp_packets
Эта цепочка предназначена для отфильтровывания пакетов с «неправильными» заголовками и решения ряда других проблем. Здесь отфильтровываются все пакеты, которые распознаются как NEW, но не являются SYN пакетами, а так же обрабатываются /-пакеты, имеющие статус . Эта цепочка может быть использована для защиты от вторжения и сканирования портов. Сюда, так же, добавлено правило для отсеивания пакетов со статусом INVALID.
Если вы пожелаете почитать более подробно об этой проблеме, то смотрите раздел
Причина, по которой для SYN/ACK-пакетов со статусом NEW применяется действие , достаточно проста. Она описывается в разделе
7.2.6.2. Цепочка allowed
TCP пакет, следуя с интерфейса $INET_IFACE, попадает в цепочку
Первое правило проверяет, является ли пакет
7.2.6.3. Цепочка для TCP
Итак, мы подошли к TCP соединениям. Здесь мы указываем, какие порты могут быть доступны из Internet. Несмотря на то, что даже если пакет прошел проверку здесь, мы все равно все пакеты передаем в цепочку
Я открыл TCP порт с номером 21, который является портом управления FTP соединениями. и далее, я разрешаю все RELATED соединения, разрешая, тем самым, PASSIVE FTP, при условии, что был загружен модуль ip_conntrack_ftp. Если вам потребуется запретить FTP соединения, то вам потребуется выгрузить модуль ip_conntrack_ftp и удалить строку $IPTABLES -A tcp_packets -p TCP -s 0/0 –dport 21 -j allowed из сценария rc.firewall.txt.
Порт 22 – это SSH, который намного более безопасен чем telnet на 23 порту. Если Вам вздумается предоставить доступ к командной оболочке (shell) кому бы то ни было из Интернет, то лучше конечно пользоваться SSH. Однако , хочу заметить, что вообще-то считается дурным тоном предоставлять доступ к брандмауэру любому кроме вас самих. Ваш сетевой экран должен иметь только те сервисы, которые действительно необходимы и не более того.
Порт 80 – это порт HTTP, другим словами – web сервер, уберите это правило, если у вас нет web сервера.