Linux жүйесіндегі брандмауэр компьютерлік жүйені қорғауда маңызды рөл атқарады. Ол жүйені рұқсат етілмеген қол жеткізуден, шабуылдардан және басқа қауіптерден қорғау үшін желілік трафикті басқаратын және сүзетін кедергі ретінде әрекет етеді. Дұрыс конфигурацияланған брандмауэр болмаса, сервер әртүрлі кибершабуылдарға осал болуы мүмкін, бұл деректер қауіпсіздігі мен құпиялылық үшін ауыр зардаптарға әкелуі мүмкін.
Бұл мақалада біз Linux брандмауэрін конфигурациялауға арналған екі негізгі құралды қарастырамыз: брандмауэр және iptables. Біз олардың ерекшеліктеріне, функционалдық мүмкіндіктеріне және артықшылықтарына салыстырмалы талдау жасаймыз. Бұған қоса, біз осы құралдардың әрқайсысын орнату және пайдалану бойынша егжей-тегжейлі нұсқауларды береміз, сондай-ақ жүйеңізді Linux платформасында брандмауэр арқылы қорғаудың ең жақсы тәжірибелерін талқылаймыз. Барлық әрекеттер а бойынша көрсетіледі Виртуалды сервер түбірлік қол жетімділігі бар.
Linux жүйесінде брандмауэрді конфигурациялау
Firewalld (Брандмауэр Daemon) — Linux операциялық жүйелеріндегі желіаралық қалқанды басқаруға арналған бағдарлама. Ол желілік қолданбалардың қосылымдарына рұқсат беру немесе блоктау үшін желіаралық қалқан ережелерін конфигурациялау үшін пайдаланушы интерфейсін қамтамасыз етеді. Ол көптеген сервер дистрибутивтерінде әдепкі бойынша алдын ала орнатылған. Firewalld алдын ала орнатылмаған болса, оны таратудың ресми репозитарийлерінен тәуелсіз орнатуға болады.
Red Hat жүйелері үшін (мысалы, RHEL, CentOS, Fedora) орнату келесі пәрменмен орындалады:
yum install firewalld
Debian/Ubuntu үшін:
apt-get install firewalld
Орнатқаннан кейін оны пәрмен арқылы бірден іске қосуға және белсендіруге болады:
systemctl start firewalld
Әрі қарай, іске қосу үшін қызметті қосу керек:
systemctl enable firewalld
Осы кезде ufw функциясын өшіруді ұсынамыз, себебі бұл құралды брандмауэрмен немесе iptables көмегімен бір уақытта пайдалану ұсынылмайды. Күйді тексеріңіз:
systemctl status ufw
Оны тоқтату үшін пәрменді енгізіңіз:
systemctl stop ufw
Толық өшіру үшін:
ufw disable
Осы әрекеттерден кейін брандмауэрді конфигурациялауға кірісуге болады.
Біріншіден, сенім аймақтарын анықтау қажет. Брандмауэр желілік интерфейстерге сенімділік деңгейін анықтау үшін аймақтар тұжырымдамасын пайдаланады. Әрбір интерфейске бір аймақ тағайындалады және брандмауэр ережелері аймаққа негізделген. Барлық қолжетімді аймақтардың тізімі келесі пәрменмен ашылады:
firewall-cmd --get-zones
Әдетте 4 негізгі аймақ қолданылады:
- қоғамдық: Бұл аймақ қауіпті деп санайтын желілерге арналған;
- жеке: Үй желілеріне немесе басқа сенімді желі қосылымдарына қолданылады;
- ішкі: Ұйымдағы немесе корпоративтік желідегі сияқты ішкі желілер үшін пайдаланылады;
- DMZ: Бұл аймақ әдетте интернеттен қол жеткізуге болатын серверлер орналастырылады.
Дегенмен, бұл бір ғана мысал. Пәрменді пайдаланып өзіңіздің аймағыңызды қосуға болады:
firewall-cmd --permanent --new-zone=nameyourzone
Қосқаннан кейін қайта жүктеу қажет:
firewall-cmd --reload
Аймақты жою үшін ұқсас әдіс қолданылады
firewall-cmd --permanent --delete-zone=nameyourzone
Аймақтарды анықтағаннан кейін қажетті қызметтер мен порттар үшін трафикке рұқсат беру қажет. Белгілі бір қызметке рұқсат беру үшін пәрменді пайдаланыңыз:
firewall-cmd --zone=public --add-service=name
қайда ат қызметтің атауы болып табылады. Мысалы, Apache үшін трафикке рұқсат беру үшін:
firewall-cmd --zone=public --add-service=http
Рұқсат етілген порттарды анықтау үшін пәрменді пайдаланыңыз:
firewall-cmd --zone=public --add-port=number/protocol
Мысалы, SSH үшін стандартты 22 порты келесідей болады:
firewall-cmd --zone=public --add-port=22/tcp
Бұл кезеңде негізгі ережелер қазірдің өзінде жасалған. Әрі қарай, көзге, тағайындалған жерге, портқа және басқа критерийлерге байланысты трафиктің қалай өңделетінін анықтаңыз. Ережені қосу үшін (қолдану қоғамдық аймақ мысал ретінде):
firewall-cmd --zone=public rule
Мысалы, кез келген көзден 80 (HTTP) портына кіріс трафикке рұқсат беру үшін:
firewall-cmd --zone=public --add-port=80/tcp --permanent
Ережені жою үшін:
firewall-cmd --permanent --remove-rule=rule_specification
қайда ереже ереже түрі болып табылады (мысалы, порт, сервис, rich-regle, т.б.), және ереже_спецификациясы ереженің өзіндік ерекшелігі болып табылады.
Брандмауэр конфигурациясына өзгерістер енгізгеннен кейін оларды сақтау және қолдану қажет. Өзгерістерді сақтау үшін пәрменді пайдаланыңыз:
firewall-cmd --runtime-to-permanent
Өзгерістерді қолдану үшін:
firewall-cmd --reload
Орнатуды аяқтағаннан кейін барлық ережелер тізімін ашу арқылы таңдалған параметрлерді тексеруге болады:
firewall-cmd --list-all
Қандай да бір мәселе туындаса, брандмауэр журналдарын пәрменмен тексеріңіз:
journalctl -u firewalld
Ескерту: Біз қосылымды орнатудың жалпы алгоритмін ғана қарастырдық. Құралдың кең функционалдығы бар. Барлық қолжетімді опциялар туралы толық ақпарат алу үшін мынаны пайдалана аласыз ресми құжаттар немесе анықтаманы ашу:
firewall-cmd --help
Linux жүйесінде iptables конфигурациялау
Firewalld-тан айырмашылығы, iptables ескі, бірақ әлі де Linux жүйесінде желіаралық қалқанды басқаруға арналған кеңінен қолданылатын құрал. Ол Linux ядросы деңгейінде пакеттерді сүзу ережелеріне тікелей және икемді тәсілді ұсынады. Дегенмен, iptables Firewalld-пен салыстырғанда анағұрлым озық білім мен тәжірибені қажет етеді, бұл оны жаңадан бастағандар үшін қол жетімді етеді. Құралдың алдын ала орнатылған нұсқасын келесі пәрмен арқылы тексеріңіз:
iptables -V
Құрал орнатылмаған болса, оны орнату қажет болады. Ubuntu, Debian жүйесінде орнату пәрмені:
apt install iptables
Red Hat жүйелері үшін (мысалы, CentOS, Fedora):
yum install iptables
Орнатқаннан кейін белсендіру пәрмені:
systemctl start iptables
Іске қосу үшін келесі әрекеттерді орындаңыз:
systemctl enable iptables
iptables конфигурациясын бастамас бұрын оның қалай жұмыс істейтінін түсіну маңызды. Бұған бағдарламаның синтаксисі көмектеседі. Ол келесідей көрінеді:
iptables -t table action chain additional_parameters
Әр тармаққа тереңірек үңілейік.
Iptables төрт негізгі кестеден тұрады: сүзгі, нат, мангл және шикі. Әрқайсысы пакеттердің белгілі бір түрлерін өңдеуге арналған және өзінің ережелер тізбегі бар:
- фильтр: Бұл пакетті сүзу ережелерін қамтитын ең жиі қолданылатын кесте. Ол пакеттерге рұқсат беру немесе бас тарту туралы шешім қабылдау үшін қолданылады.
- нат: Бұл кесте желі мекенжайлары мен пакеттердегі порттарды өзгерту үшін пайдаланылады. Ол жиі маскарадтауды (NAT) орнату үшін қолданылады.
- манжа: Бұл кестеде пакет тақырыптарын өзгертуге болады. Ол таңбалау сияқты арнайы пакет операциялары үшін пайдаланылады.
- шикі: Бұл кесте қосылымды бақылау жүйесі арқылы өтпес бұрын қолданылатын ережелерді конфигурациялау үшін пайдаланылады. Ол әдетте белгілі бір мекенжайлардан пакеттерді тастау сияқты бақылау жүйесі өзгертпейтін ережелерді орнату үшін пайдаланылады.
Әрбір кестеде тізбектер жиынтығы бар. Тізбектер – ретімен тексерілетін ережелер тізбегі. Алдын ала анықталған үш тізбек бар:
- INPUT (кіріс). Бұл тізбектегі ережелер кіріс пакеттермен не істеу керектігін анықтайды.
- OUTPUT (шығыс). Бұл тізбек сіздің компьютеріңіз басқа құрылғыларға немесе желідегі компьютерлерге жіберетін барлық пакеттерге қолданылады.
- АЛҒА (қайта жіберу). Бұл тізбектегі ережелер қайта жіберілген пакеттермен не істеу керектігін анықтайды.
Ақырында, әрбір тізбек белгілі бір әрекетке (мақсат) ие. Іс жүзінде 5 негізгі әрекет қолданылады:
- ҚАБЫЛДАУ: Пакеттің брандмауэр арқылы өтуіне рұқсат беріңіз.
- DROP: пакетті қабылдамаңыз және ешбір жауапсыз тастаңыз.
- ҚАБЫЛДАҢЫЗ: Пакетті қабылдамаңыз және жіберушіге ICMP қате туралы хабарды жіберіңіз.
- LOG: Пакетті жүйелік журналға тіркеңіз және басқа әрекетті орындаңыз (мысалы, ҚАБЫЛДАУ немесе ҚОСУ).
- RETURN: Ағымдағы тізбектегі ережелерді тексеруді тоқтатыңыз және қоңырау шалу тізбегіне оралыңыз (бар болса).
Орнатуды бастау үшін пәрменмен бар ережелер тізімін ашыңыз:
iptables -L
Iptables конфигурациялау бойынша нұсқаулық ретінде ең жиі қолданылатын командалардың практикалық мысалдарын қарастырайық. Ыңғайлы болу үшін мысалдарды нақты тізбекке байланысты 3 топқа бөлеміз.
шынжыр INPUT:
- 80 портында TCP протоколы арқылы кіріс трафикке рұқсат беріңіз:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2. 22 портта UDP протоколы арқылы кіріс трафикке рұқсат беріңіз:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
3. Белгілі бір IP мекенжайынан келетін трафикті блоктау:
iptables -A INPUT -s 192.168.1.100 -j DROP
шынжыр OUTPUT:
- 443 портында TCP протоколы арқылы шығыс трафикке рұқсат беріңіз:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
2. 80 портында UDP протоколы арқылы шығыс трафикке рұқсат беріңіз:
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
3. Белгілі бір портқа шығатын трафикті блоктау (мысалы, 21):
iptables -A OUTPUT -p tcp --dport 21 -j DROP
шынжыр АЛДЫНДА:
- IP мекенжайларының белгілі бір ауқымынан қайта жіберілген трафикті блоктау:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP
2. Белгілі бір желі интерфейсінен пакеттерді қайта жіберуді блоктаңыз:
iptables -A FORWARD -i eth1 -j DROP
3. Белгілі бір порт үшін бір мезгілде қосылымдар санын шектеңіз (бұл мысалда 10 портта минутына 80 қосылым):
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT
Көріп отырғаныңыздай, әрбір жеке жағдайда қосымша аргумент (команда) қолданылады. Ықтимал аргументтердің толық тізімін және құралдың жұмысына жалпы қолдау көрсету үшін мынаны енгізіңіз:
iptables -h
Параметрлердің дұрыстығына көз жеткізу үшін ережелер тізімін көру үшін пәрменді қайта енгізіңіз:
iptables -L
Белгілі бір ережені жою үшін пәрменді пайдаланыңыз:
iptables -D chain rule_number
Мысалы, INPUT тізбегінен №1 ережені жойғыңыз келсе, пәрмен келесідей болады:
iptables -D INPUT 1
Барлық ережелерді бір пәрменмен жою үшін:
iptables -F
Маңызды ескерту: iptables ережелері жүйені немесе қызметті қайта жүктегеннен кейін автоматты түрде сақталмайды. Ережелерді сақтау үшін оларды конфигурация файлына қосып, қайта жүктегеннен кейін қалпына келтіру керек. The iptables-сақтау және iptables-қалпына келтіру утилиталар бұған көмектесе алады. Ережелерді сақтау үшін пәрменді енгізіңіз:
iptables-save > /etc/iptables/rules.v4
Бұл ережелер.v4 файлында ағымдағы iptables ережелерін сақтайды. Қайта жүктегеннен кейін қалпына келтіру үшін мынаны енгізіңіз:
iptables-restore < /etc/iptables/rules.v4
Бұл пәрмен ережелерді rules.v4 файлынан қалпына келтіреді.
қорытынды
Firewalld немесе iptables көмегімен Linux жүйесінде брандмауэрді теңшеу сервер қауіпсіздігін қамтамасыз етудің маңызды аспектісі болып табылады. Екі құрал да желілік трафикті басқарудың және жүйені рұқсатсыз кіруден және кибершабуылдардан қорғаудың сенімді құралдарын ұсынады. Брандмауэр мен iptables арасындағы таңдау олардың әртүрлі функционалдығы мен күшті жақтарын ескере отырып, пайдаланушының нақты қажеттіліктері мен қалауларына байланысты.