Прежде всего необходимо создать дополнительные цепочки с помощью команды -N
. Сразу после создания цепочки еще не имеют ни одного правила. В нашем примере создаются цепочкиiptables
[-N7.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 сервера.