Въпреки че 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 среди.