Въведение в IPTABLES: конфигуриране на защитна стена в Linux

IPTABLES

за конфигуриране на защитна стена или защитна стена в Linux, ние можем да използваме iptables, мощен инструмент, който изглежда забравен от много потребители. Въпреки че има и други методи, като ebtables и arptables за филтриране на трафика на ниво връзка, или Squid на ниво приложение, iptables могат да бъдат много полезни в повечето случаи, като прилагат добра сигурност в нашата система на ниво трафик и транспорт на мрежата.

Ядрото на Linux изпълнява iptables, част от която се грижи за филтриране на пакети и че в тази статия ще ви научим да конфигурирате по прост начин. Най-просто казано, iptables идентифицира каква информация може и какво не може да влиза, изолирайки вашия екип от потенциални заплахи. И въпреки че има и други проекти като Firehol, Firestarter и др., Много от тези защитни стени използват iptables ...

Е, Нека се захващаме за работа, с примери ще разберете всичко по-добре (за тези случаи е необходимо да имате привилегии, така че използвайте sudo пред командата или станете root):

Общият начин за използване на iptables да създадете политика на филтър е:

IPTABLES-АРГУМЕНТИ ВХОДНО-ИНД

Където е -ARGUMENT аргумента, който ще използваме, обикновено -P за установяване на политика по подразбиране, въпреки че има и други като -L, за да видите политиките, които сме конфигурирали, -F за изтриване на създадена политика, -Z за нулиране на броячите на байтове и пакети и т.н. Друга опция е -A за добавяне на политика (не по подразбиране), -I за вмъкване на правило на определена позиция и -D за изтриване на дадено правило. Ще има и други аргументи, които да сочат към -p протоколи, –порт пристанищен порт, –порт за пристанищен порт, -i входящ интерфейс, -o изходящ интерфейс, -s IP адрес на източника и -d IP адрес на дестинация.

iptables вход-изход

Освен това I / O би представлявал, ако политика той се прилага към входа INPUT, към изхода OUTPUT или е ПРЕДАВАНЕ на пренасочване напред (има и други като ПРЕДВАРИТЕЛНО, ПОСТРОЙТИРАНЕ, но ние няма да ги използваме). И накрая, това, което нарекох ACTION, може да приеме стойността ACCEPT, ако приемем, REJECT, ако отхвърлим или DROP, ако премахнем. Разликата между DROP и REJECT е, че когато пакетът бъде отхвърлен с REJECT, машината, която го е произвела, ще знае, че е отхвърлен, но с DROP действа тихо и нападателят или произходът няма да разберат какво се е случило и няма знаем дали имаме защитна стена или връзката просто е неуспешна. Има и други като LOG, които изпращат проследяване на syslog ...

За промяна на правилата, можем да редактираме файла iptables с нашия предпочитан текстов редактор, nano, gedit, ... или да създадем скриптове с правила (ако искате да ги замените, можете да го направите, като поставите # пред реда, така че да е игнориран като коментар) през конзолата с команди, както ще го обясним тук. В Debian и производни можете също да използвате инструментите iptables-save и iptables-restore ...

Най-екстремната политика е да се блокира всичко, абсолютно целия трафик, но това ще ни остави изолирани, с:

iptables -P INPUT DROP

Да приема всичко това:

iptables -P INPUT ACCEPT

Ако искаме това целият изходящ трафик от нашия екип се приема:

iptables -P OUTPUT ACEPT

La друго радикално действие би било заличаването на всички политики от iptables с:

iptables -F

Нека да преминем към по-конкретни правилаПредставете си, че имате уеб сървър и следователно трафикът през порт 80 трябва да бъде разрешен:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

И ако в допълнение към предишното правило, ние искаме екип с iptables да се вижда само от компютри в нашата подмрежа и това остава незабелязано от външна мрежа:

iptables -A INPUT -p tcp -s 192.168.30.0/24 --dport 80 -j ACCEPT

В предишния ред това, което казваме на iptables, е да добавим правило -A, така че да се приемат INPUT входовете и TCP протоколът през порт 80. А сега си представете, че искате от мен сърфирането в мрежата е отхвърлено за локални машини, преминаващи през машината, работеща с iptables:

iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 DROP

Мисля, че използването е просто, като се вземе предвид за какво е предназначен всеки параметър на iptables, можем да добавим прости правила. Можете да правите всички комбинации и правила, които си представяме ... За да не се разширявам повече, просто добавете още едно нещо и то е, че ако машината се рестартира, създадените политики ще бъдат изтрити. Таблиците се рестартират и ще останат както преди, следователно, след като сте дефинирали добре правилата, ако искате да ги направите постоянни, трябва да ги накарате да стартират от /etc/rc.local или ако имате Debian или производни използвайте инструментите, които са ни дадени (iptables-save, iptables-restore и iptables-apply).