Основна настройка на iptables - Rusadmin

Една от първите задачи след инсталирането на системата е правилното конфигуриране на iptables за филтриране на трафика. Политиката по подразбиране позволява всичко, което не е забранено. Това не е най-добрият метод по отношение на сигурността, тъй като в този режим сървърът е изложен на нарушители.

Можете например да сканирате отворени портове на сървъра. Въз основа на това е възможно да се определят използваните услуги, тяхната версия, име и версия на операционната система. Следва изборът на уязвимости към тях. Или някои icmp съобщения може да дадат допълнителна информация.

Като цяло, описанието защо трябва да конфигурирате защитна стена е достойно за отделна статия, от която има безброй. И ако четете тази статия, тогава определено знаете защо имате нужда от нея. ;)

Както всички статии на сайта, тази инструкция е написана въз основа на личен опит, а ла "Аз го правя по този начин", някой друг го прави по различен начин.

Инсталиране на предпоставки

И така, системата вече има основния инструмент от списъка с необходими инструменти - iptables. Но това не е достатъчно. Ще ви трябват и tarpit филтър и iptables-persistent за зареждане на правилата при стартиране на системата.

По време на инсталацията на persistent ще бъдат зададени два въпроса относно запазването на текущите правила. Можете да отговорите с „Да“ и тогава необходимите файлове с правилата ще бъдат създадени в папката /etc/iptables/rules/, която ще редактираме.

Правила за редактиране на ip версия 4

Всички други правила ще бъдат добавени преди реда COMMIT. И на първо място, добавяме правило, което позволява локален трафик.

След това, правило, което позволява всички вече установени активни връзки за tcp и udp протоколи. Това е необходимо за правилната работа на мрежата, тъй като без него отговорите на изходящитевръзките ще бъдат отхвърлени.

Сега трябва да добавим правило, което позволява нови входящи връзки към определени услуги. Имам уеб сървър и поща, както и ssh.

Важна забележка! Винаги добавяйте разрешително правило за ssh, така че да не загубите достъп до сървъра по-късно след прилагане на правилата.

Тук могат да се добавят други портове, разделени със запетая. Многопортовото разширение ви позволява да посочите няколко порта, за да не създавате почти еднакви правила за всеки поотделно. ;)

Ако имате само една услуга на сървъра, за която трябва да отворите един порт, тогава правилото ще бъде следното:

Може също да се наложи да отворите някои udp портове. Единствената разлика от горните правила е, че трябва да се посочи -p udp вместо -p tcp.

Важно е да имате предвид, че куката работи само с tcp. По същия начин можете да приложите забрана на ip на ниво iptables, вместо стандартното отпадане. За съжаление не е подходящ за udp. Затова забраняваме всички други входящи udp - пакети, за които не сме създали изключения по-рано.

Също така сме приети за icmp. Тук, като тип icmp, можете да посочите код или еквивалентно име. Имам код. :)

Разрешаваме входящи ехо отговори, в случай че пингваме някой друг хост от сървъра.

И входящи пингове, ако някой пингва нашия сървър.

Както и съобщение за изтичане на пакета.

Това е необходимият минимум от съобщения за правилната работа на мрежата. Може да имате нужда от други кодове. Вече знаете как да ги разрешите. :)

Сега нека започнем да създаваме правила за изходящи icmp съобщения. Тези правила изглеждат подобни, но веригата вече ще бъде ИЗХОД. Следователно няма смисъл да ги описваме.

С изключение на дванадесетия. Позволяваизпращане на съобщение за невалиден параметър (грешка в IP хедъра или липсва необходима опция).

Ние забраняваме всички останали изходящи ICMP, така че сървърът да не измами твърде много.