Intereting Posts
Как загрузить модуль ядра HID из командной строки ядра? Как два идентичных виртуальных адреса указывают на разные физические адреса? Функция Bash, которая принимает входные данные от параметра или трубы uniq a csv файл, игнорирующий столбец, возможно, awk? SSH на машину, которая получает сетевое подключение с устройства Android (Google TV) Если ssh-add будет тихим, если ключ уже есть Игнорирование /etc/logrotate.conf из-за плохого режима файла Grub2 в Ubuntu 12.04 не добавляет «тихий всплеск» к ядру Fedora Выполнять команду в sftp-подключении через скрипт Как определить успех программы при выполнении последовательности подобных задач? Запустить скрипт при выключении ext4 или NTFS потеряли все файлы за последние 2 года. Как я могу их восстановить? Плохо ли иметь файловые системы почти полностью? После перезагрузки подключитесь к удаленному рабочему столу Fedora 23: «обновление dnf» застряло в «Выполнение транзакции»

Как добавить правила в исходную таблицу iptables?

Я работаю над Linux Mint 18.1 и GNU / Linux Debian 9 Stretch (тестирование).

У меня есть только IPv4. Я хотел бы повысить уровень безопасности в своей сети, я прочел следующее: Блокировать хорошо известные атаки TCP . Предположим, я хотел бы попробовать, несмотря на этот комментарий .

Проблема в том, что я не знаю, как добавить эти правила в raw таблицу iptables ?

Здесь, я полагаю, вы не заботитесь о IPv6. Таким образом, файл, который вы хотите изменить:

 /etc/sysconfig/iptables 

Поместите это вверху вашего файла iptables. Это скелетная реализация таблицы RAW, которая используется перед любой таблицей, связанной с маршрутизацией (например, FILTER). Обратите внимание: каждая таблица имеет свою команду COMMIT в нижней части своих определений:

 *raw :TCPFLAGS - [0:0] # the two rules below assure that only TCP packets get examined. All others continue into the *filter table. -A PREROUTING -p tcp -j TCPFLAGS -A PREROUTING -j ACCEPT # quickly accept standard handshakes # ALLOW ACK or ACK/SYN #-A TCPFLAGS -j ACCEPT -A TCPFLAGS -p tcp --tcp-flags FIN,ACK,URG,PSH,RST ACK -j ACCEPT # allow ACK/FIN with either URG or PSH, or both, or neither # but SYN and RST can't be set -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,ACK,RST ACK,FIN -j ACCEPT # allow SYN or ACK/SYN -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,URG,PSH,RST SYN -j ACCEPT # allow RST or ACK/RST -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,URG,PSH,RST RST -j ACCEPT # this rule catches xmas-tree and fin attacks -A TCPFLAGS -p tcp --tcp-flags FIN FIN -j DROP # this rule catches xmas-tree and syn/rst attacks -A TCPFLAGS -p tcp --tcp-flags SYN SYN -j DROP # this rule catches null attacks -A TCPFLAGS -p tcp --tcp-flags ALL NONE -j DROP #-A TCPFLAGS -p tcp -ecn-tcp-cwr -j DROP # these rules catch bad ack combinations #-A TCPFLAGS -p tcp --tcp-flags ACK ACK -j ACC -A TCPFLAGS -j ACCEPT # so, what do we accept for tcp? # handshakes (ACK/FIN), (ACK/SYN), (SYN), (ACK), (RST), (ACK/RST), and data packets with # PSH or URG or FIN or ACK COMMIT 

Вышеприведенные выше определения фильтров *. Я не претендую на правильность правил. Обратите внимание, что я прокомментировал некоторые правила, которые не сработали для меня. Если вы найдете что-то не так с моими правилами, пожалуйста, оставьте это ниже.

С помощью iptables-save я узнал, какой формат подходит для сохранения:

 /etc/iptables/rules.v4 

Ниже приведен пример правил по ссылке в вопросе:

 *raw :PREROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A PREROUTING -p icmp -m u32 ! --u32 "0x4&0x3fff=0x0" -j DROP -A PREROUTING -p icmp -m length --length 1492:65535 -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP COMMIT