Как да конфигурирате защитната стена на iptables за защита на Linux

Въпреки че Linux е една от най -надеждните и сигурни операционни системи, благодарение на своите характеристики, винаги ще има някаква уязвимост, независимо дали е присъща на системата или неволно от потребителя. За да повишим сигурността на Linux, имаме различни инструменти, предназначени да защитават услуги, процеси, профили или файлове и днес ще се съсредоточим върху специален инструмент, наречен Iptables.

Какво е IptablesIptables е усъвършенстван инструмент за защитна стена, който е интегриран в ядрото на Linux, което е част от проект, наречен netfilter.

Благодарение на Iptables ще можем точно и директно да управляваме всички входящи и изходящи връзки към сървъра. Iptables е разработен за IPv4 адресиране, докато за IPv6 имаме Ip6таблици.

1. Структура на Iptables в Linux


Структурата, която откриваме в Iptables, е следната:

СуровоТой е отговорен за филтрирането на пакетите преди всяка друга съществуваща таблица

ФилтърТова е таблицата по подразбиране на приложението

NatИзползва се за превод на мрежови адреси

Мангрови гориИзползва се за промяна на специализирани мрежови пакети

СигурностМоже да се приложи за задължителни правила за мрежова връзка за контрол на достъпа

2. Структура на командите в Iptables в Linux


В Iptables всяко правило е команда, която показва как трябва да се обработва мрежовия пакет трафик.
Можем да използваме следната структура:
 -A ВХОД -i eth0 -p tcp -m състояние -УСТАНОВЕН, СВЪРЗАН --sport 80 -j ПРИЕМА
Използваните параметри са:
  • -A: Показва, че правилата ще бъдат добавени към Iptables
  • -i: Показва интерфейса, към който ще се прилага правилото
  • -p: Отнася се до протокола, където ще се прилага правилото
  • -m: Позовава се на факта, че има условие, което трябва да бъде изпълнено, за да се приложи правилото
  • --state: Позволява приемане на нови връзки
  • --sport: Показва порта на източника
  • -j: (Jump) показва, че те могат да приемат целия трафик, който отговаря на дадените условия.

3. Създаване на правила с помощта на Iptables в Linux


Въпреки че можем да добавим правилата ръчно, много по -практично е да създадете файл с правила и след това да го импортирате. В този случай ще създадем файла в пътя / tmp / iptables-ip4 и можем да използваме редактор за съответната му настройка:
 sudo nano / tmp / iptables-ip4
Синтаксисът ще бъде следният:
 * филтър # Правила за добавяне на COMMIT
Сега ще създадем следните правила в посочения файл:

Loopback = Това е външният интерфейс на Linux

 -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT

Ping = Позволява ни да проверяваме мрежовите връзки

 -A ВХОД -i eth0 -p icmp -m състояние -състояние НОВ -тип -mpmp 8 -j ACCEPT -A ВХОД -i eth0 -p icmp -m състояние -състояние УСТАНОВЕН, СВЪРЗАН -j ПРИЕМА -A ИЗХОД - o eth0 -p icmp -j ПРИЕМАМ

Web = Чрез тези правила ние контролираме входящия и изходящия трафик.

 -A ВХОД -i eth0 -p tcp -m състояние -състояние УСТАНОВЕН, СВЪРЗАН -спорт 80 -j ПРИЕМА -А ВХОД -i eth0 -p tcp -m състояние -състояние УСТАНОВЕН, СВЪРЗАН -спорт 443 -j ПРИЕМА -A ИЗХОД -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT -A ИЗХОД -o eth0 -p tcp -m tcp --dport 443 -j ACCEPT

В случай на добавяне на DNS ще използваме следните редове:

 -A ВХОД -i ens3 -s 192.168.0.1 -p udp --sport 53 -m състояние -състояние УСТАНОВЕНО, СВЪРЗАНО -j ПРИЕМАНЕ -A ИЗХОД -o ens3 -d 192.168.0.1 -p udp --dport 53 -m udp -j ПРИЕМАМ

Забележка:Тук трябва да променим IP, ако е необходимо

Време = Тези правила позволяват връзка с NTP за правилна синхронизация на времето

 -A ВХОД -i eth0 -p udp -m състояние -състояние УСТАНОВЕНО, СВЪРЗАНО --dport 123 -j ПРИЕМАНЕ -А ИЗХОД -o eth0 -p udp -m udp --sport 123 -j ПРИЕМАНЕ

Печат = Позволява активиране на USB портове за свързване на принтери

 -A INPUT -p udp -m udp --dport 631 -j ACCEPT -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A OUTPUT -p udp -m udp --sport 631 -j ACCEPT -A ИЗХОД -p tcp -m tcp --sport 631 -j ПРИЕМАМ

Имейл = Можем да активираме различните имейл протоколи

 # IMAP -A ВХОД -i eth0 -p tcp -m състояние -състояние УСТАНОВЕН, СВЪРЗАН --sport 993 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 993 -j ACCEPT
 # POP3 -A ВХОД -i eth0 -p tcp -m състояние -състояние УСТАНОВЕНО, СВЪРЗАНО --sport 995 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 995 -j ACCEPT
 # SMTP -A ВХОД -i eth0 -p tcp -m състояние -състояние УСТАНОВЕН, СВЪРЗАН --sport 465 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 465 -j ACCEPT

SSH = Разрешаване на защитени връзки към компютъра, използвайки протокола SSH

 # Вход -A ВХОД -i ens3 -p tcp -m състояние -състояние НОВО, УСТАНОВЕНО --dport 22 -j ПРИЕМАНЕ -А ИЗХОД -o ens3 -p tcp -m състояние -състояние УСТАНОВЕН -спорт 22 -j ПРИЕМАНЕ
 # Изход -A ИЗХОД -o ens3 -p tcp -m състояние -състояние НОВО, УСТАНОВЕНО -dport 22 -j ACCEPT -A ВХОД -i ens3 -p tcp -m състояние -състояние УСТАНОВЕН --sport 22 -j ACCEPT

DHCP: Можем да създадем правила за оторизиране на IP адресиране чрез DHCP

 -A ВХОД -i eth0 -p udp -m състояние -състояние УСТАНОВЕНО, СВЪРЗАНО --sport 67:68 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --dport 67:68 -j ACCEPT

Отхвърлете всички връзки: Можем да добавим следните редове, за да забраним всичко по -горе:

 -A ВХОД -j ОТХВЪРЛЯНЕ -НАПРЕД -J ОТХВЪРЛЯНЕ -А ИЗХОД -j ОТХВЪРЛЯНЕ

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

Увеличете

Запазваме промените

Ctrl + O

Оставяме редактора да използва

Ctrl + X

4. Импортиране на правилата с помощта на Iptables Linux


След като файлът бъде редактиран, можем да импортираме тези правила в Iptable, като изпълним следната команда:
 sudo iptables -F && sudo iptables -X
Можем да видим състоянието на правилата с помощта на командата sudo iptables -S:

Увеличете

В случай, че искаме да възстановим всички правила, ще изпълним следния ред:

 sudo iptables-restore < / tmp / itpables-ip4
Ако искаме тези правила да бъдат постоянни, ще изпълним следното:
 sudo apt инсталирате iptables-persistent
По този начин Iptables е най -добрият ни съюзник при конфигурирането на защитната стена в Linux среди.

wave wave wave wave wave