Всички операционни системи, базирани на ядрото на Linux, имат вградена защитна стена, която следи и филтрира входящия и изходящия трафик въз основа на правилата, зададени от потребителя или платформата. В разпределението CentOS 7 по подразбиране тази функция се изпълнява от iptables помощната програма, взаимодействаща с вградената защитна стена на netfilter. Понякога системният администратор или мрежовият мениджър трябва да персонализира работата на този компонент, като напише съответните правила. В днешната статия бихме искали да говорим за основите на iptables конфигурацията в гореспоменатата ОС.
Съдържанието
Самият инструмент е на разположение за работа веднага след завършване на инсталацията на CentOS 7, но освен това ще трябва да инсталирате някои услуги, които ще обсъдим по-късно. В тази платформа има друг вграден инструмент, който изпълнява функцията на защитна стена, наречена FirewallD. За да избегнете конфликти при по-нататъшна работа, препоръчваме ви да деактивирате този компонент. За подробни указания по тази тема вижте други наши материали на следния линк.
Още подробности: Деактивирайте firewallD в CentOS 7
Както знаете, системата може да използва IPv4 и IPv6. Днес ще се съсредоточим върху примера на IPv4, но ако искате да конфигурирате друг протокол, ще трябва да използвате ip6tables вместо командата iptables в конзолата.
На първо място, добавете допълнителни компоненти на полезността, разглеждана днес в системата. Те ще помогнат при създаването на правила и други параметри. Зареждането се извършва от официалното хранилище, така че не отнема много време.
sudo yum install iptables-services
отговаря за инсталирането на sudo yum install iptables-services
. Въведете го и натиснете клавиша Enter . sudo iptables --version
. Сега операционната система е напълно готова за по-нататъшно конфигуриране на защитната стена чрез помощната програма iptables . Предлагаме да се запознаем с конфигурацията на артикулите, като започнем с управлението на услугите.
Управлението на режима на работа с iptables се изисква в случаите, когато трябва да проверите ефекта на определени правила или просто да рестартирате компонента. Това се прави с помощта на вградените команди.
sudo service iptables stop
и натиснете клавиша Enter, за да спрете услугите. sudo service iptables start
. Такова рестартиране, стартиране или спиране на помощната програма е на разположение по всяко време, не забравяйте да върнете само връщаната стойност, когато тя е в търсенето.
Както вече споменахме, защитната стена се управлява ръчно или автоматично добавяне на правила. Например, някои допълнителни приложения могат да имат достъп до инструмента, като променят определени правила. Въпреки това, повечето от тези действия все още се извършват ръчно. Списък с всички текущи правила е достъпен чрез командата sudo iptables -L
.
В показания резултат ще има информация за три вериги: “INPUT” , “OUTPUT” и “FORWARD” - съответно входящ, изходящ и преден трафик.
Можете да определите състоянието на всички вериги, като напишете sudo iptables -S
.
Ако правилата, които виждате, не ви подхождат, те просто се премахват. Целият списък се изчиства по следния начин: sudo iptables -F
. След активирането, правилата ще бъдат изтрити абсолютно за всичките три вериги.
Когато е необходимо да се засягат само политики от една верига, към реда се добавя допълнителен аргумент:
sudo iptables -F INPUT
sudo iptables -F OUTPUT
sudo iptables -F FORWARD
Липсата на всички правила означава, че вече няма настройки за филтриране на трафика към никоя от страните. След това системният администратор вече задава нови параметри, като използва същата конзола, команда и различни аргументи.
Всяка верига е конфигурирана отделно за получаване или блокиране на трафика. Като зададете определена стойност, можете да се уверите, че входящият трафик ще бъде блокиран. За да направите това, командата трябва да бъде sudo iptables --policy INPUT DROP
, където INPUT е името на веригата, а DROP е стойността за нулиране.
Точно същите параметри са зададени за други схеми, например, sudo iptables --policy OUTPUT DROP
. Ако трябва да зададете стойността за получаване на трафик, тогава DROP се променя на ACCEPT и sudo iptables --policy INPUT ACCEPT
.
Както знаете, всички мрежови приложения и процеси работят чрез конкретен порт. Чрез блокиране или разрешаване на определени адреси можете да контролирате достъпа до всички мрежови цели. Нека да анализираме пренасочването на портове, използвайки пример 80 . В "Терминал" ще бъде достатъчно да въведете командата sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
, където -A е добавянето на ново правило, INPUT е индикация на верига, -P е дефиниция на протокол, в този случай TCP, и -dport е пристанището на местоназначението.
Същата команда се прилага за порт 22 , който се използва от SSH услугата: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
.
За да блокирате посочения порт, се използва низ от точно същия тип, само в края ACCEPT се променя на DROP . Резултатът е например sudo iptables -A INPUT -p tcp --dport 2450 -j DROP
.
Всички тези правила се съхраняват в конфигурационния файл и можете да ги прегледате по всяко време. Не забравяйте, че това се прави чрез sudo iptables -L
. Ако IP адресът на мрежата трябва да бъде разрешен заедно с пристанището, линията е леко променена - след като са добавени TPC , -s и самия адрес. sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPT
, където 12.12.12.12/32 е необходимия IP адрес.
Блокирането се осъществява на същия принцип, като накрая се променя стойността на ACCEPT на DROP . Тогава се оказва, например, sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j DROP
.
ICMP (Internet Control Message Protocol) е протокол, който е част от TCP / IP и се използва за изпращане на съобщения за грешки и аварийни ситуации при работа с трафик. Например, когато исканият сървър е недостъпен, този инструмент изпълнява сервизни функции. Помощната програма iptables ви позволява да я блокирате чрез защитна стена и можете да направите това с командата sudo iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP
. Тя ще блокира заявките от твоя и към твоя сървър.
Входящите заявки са блокирани малко по-различно. След това трябва да въведете sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP
. След активирането на тези правила сървърът няма да отговори на пинг заявки.
Понякога сървърите са обект на DDoS атаки или други неупълномощени действия от нарушители. Правилната конфигурация на защитната стена ще ви позволи да се предпазите от този вид хакове. Като начало препоръчваме да зададете такива правила:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 100 -j ACCEPT
, където - лимит 20 / минута е границата на честотата на положителните резултати. Можете сами да зададете единица за измерване, например /second, /minute, /hour, /day
. - номер на ограничението - ограничение за броя на пакетите, които трябва да се предават. Всички стойности се задават индивидуално според предпочитанията на администратора. sudo iptables -N block-scan
. sudo iptables -A block-scan -p tcp —tcp-flags SYN,ACK,FIN,RST -m limit —limit 1/s -j RETURN
. sudo iptables -A block-scan -j DROP
. В тези случаи изразът block-scan е името на използваната схема. Показаните днес настройки са само основата на работата в инструмента за управление на защитната стена. В официалната документация на помощната програма ще намерите описание на всички налични аргументи и опции и ще можете да конфигурирате защитната стена специално за вашите заявки. По-горе бяха разгледани стандартните правила за безопасност, които се използват най-често и в повечето случаи са необходими.