Iptables Мрежова сигурност и филтриране на пакети - Centos - Laquo; Unix, Linux - Laquo; Бележки
Основната задача на защитната стена (защитна стена) е филтриране и обработка на пакети, преминаващи през мрежата. Когато анализира входен пакет, защитната стена решава съдбата на този пакет: пуснете пакета (DROP), приемете пакета (ACCEPT) или направете нещо друго с него.
В Linux защитната стена е модул на ядрото, наречен netfilter, който представлява набор от куки за манипулиране на мрежовия стек. Интерфейсът за промяна на правилата, по които защитната стена обработва пакети, е помощната програма iptables за IPv4 и помощната програма ip6tables за IPv6.
Цялото филтриране на трафика се извършва от системното ядро. Iptables не е демон и не създава нови процеси в системата. Активирането или деактивирането на iptables е просто изпращане на сигнал към ядрото. Висока скорост на филтриране се постига чрез анализ само на заглавки на пакети.
Основните характеристики на iptables включват:
- Работен процес на Iptables
- Манжелна маса
- Nat маса
- Филтърна таблица
- Помощна програма Iptables
- Примери за команди на Iptables
- DDoS защита с iptables
- Балансиране на товара с iptables
- Добавки, GUI за iptables
- Допълнително четене
Работен процес на Iptables
Нека разгледаме основния процес на работа на iptables (източник на изображението rigacci.org).
Входящият пакет първо достига до мрежовото устройство, след което се прихваща от драйвера и се предава на ядрото. След това пакетът се предава през множество таблици и едва след това се предава на локалното приложение или се пренасочва към друга система, ако е транзитен пакет.
Има три вида таблици, използвани в iptables:
Основната цел на таблицата mangle е да модифицира заглавката на пакета. В тази таблица могат да се извършват следните действия:
- задаване на бита на типа услуга;
- задаване на полето Time To Live;
- поставяне на етикет върху опаковка, който може да бъде проверен в други правила;
Вериги в таблицата на мангите:
- PREROUTING - използва се за извършване на промени в пакетите, влизащи в iptables, преди да се вземе решение за маршрутизация;
- POSTROUTING - използва се за извършване на промени в пакетите на изхода от iptables, след вземане на решение за маршрутизация;
- INPUT - използва се за извършване на промени в пакетите, преди те да бъдат предадени на локалното приложение;
- OUTPUT - използва се за модифициране на пакети, идващи от приложението в iptables;
- НАПРЕД - използва се за извършване на промени в транзитни пакети;
Веригите в тази таблица:
Таблицата се използва за филтриране на пакети. В тази таблица има три вериги:
- INPUT - верига за входящи пакети;
- НАПРЕД - верига за препратени (транзитни) пакети;
- OUTPUT - верига за изходящи пакети;
Пакетът, преминаващ през тези вериги, може да бъде обект на действия: ПРИЕМАНЕ, ПАДАНЕ, ОТКАЗ, ЛОГ.
За да обобщим, пристигащият пакет преминава през веригата от правила. Всяко правило съдържа условие и цел (действие). Ако пакетът отговаря на условието, той се изпраща до целта, в противен случай следващото правило във веригата се прилага към пакета. Ако пакетът не отговаря на някое от условията във веригата, тогава към него се прилага действието по подразбиране.
Възстановяване на правила от файл
Всяко правило в iptables е отделен ред, оформен съгласно определени правила и съдържащ критерии и действия. Като цяло правилото има следния формат:
- t таблица - указва името на таблицата, за която ще бъде създадено правилото;
- команда - команда, която определя действието на iptables - добавяне на правило, изтриване на правило и др .;
- match - задава критериите за тестване, по които се определя дали пакетът попада под правилото или не;
- цел/скок - какво действие трябва да се извърши, когато критерият е изпълнен;
- -A - добавяне на правило към веригата, правилото ще бъде добавено в края на веригата;
- -D - премахнете правилото от веригата;
- -R - заменете едно правило с друго;
- -I - вмъкнете ново правило във веригата;
- -L - показва списъка с правила в посочената верига;
- -F - изчиства всички правила в посочената верига;
- -Z - нулиране на всички броячи в посочената верига;
- -N - създайте нова верига с дадено име;
- -X - изтриване на веригата;
- -P - задава политика по подразбиране за веригата;
- -E - преименуване на персонализирана верига;
Примери за команди на Iptables
Пакетите могат да бъдат филтрирани по следните параметри:
Опцията -s се използва за филтриране по източник. Например ще откажем всички входящи пакети от 192.168.1.95 хоста:
Можете също да посочите цялото за мрежата:
Можете също да използвате отрицание (знак!). Например всички пакети от хостове, различни от 192.168.1.96, ще бъдат изтрити: