Како да мигрирате од FirewallD во Iptables на CentOS 7
Вовед
Како и повеќето други дистрибуции на Линукс, CentOS 7 ја користи рамката netfilter
во кернелот на Линукс со цел да пристапи до пакетите што течат низ мрежниот стек. Ова го обезбедува потребниот интерфејс за проверка и манипулација со пакетите со цел да се имплементира систем за заштитен ѕид.
Повеќето дистрибуции го користат заштитниот ѕид iptables
, кој ги користи куките netfilter
за да ги спроведе правилата за заштитен ѕид. CentOS 7 доаѓа со алтернативна услуга наречена firewalld
која ја исполнува истата цел.
Иако firewalld
е многу способно решение за заштитен ѕид со одлични карактеристики, можеби на некои корисници им е полесно да се придржуваат до iptables
доколку се задоволни со неговата синтакса и задоволни со неговото однесување и перформанси. iptables
командата всушност се користи од самиот firewalld
, но iptables
услугата е не е стандардно инсталиран на CentOS 7. Во ова упатство, ќе покажеме како да ја инсталирате услугата iptables
на CentOS 7 и да го мигрирате вашиот заштитен ѕид од firewalld
во iptables
(проверете го ова водич ако сакате да научите како да користите FirewallD наместо тоа).
Зачувајте ги вашите тековни правила за заштитен ѕид (опционално)
Пред да се префрлите на iptables
како решение за заштитен ѕид на вашиот сервер, добра идеја е да ги зачувате тековните правила што ги спроведува firewalld
. Спомнавме погоре дека демонот firewalld
всушност ја користи командата iptables
за да зборува со куките на јадрото netfilter
. Поради ова, можеме да ги исфрлиме тековните правила користејќи ја командата iptables
.
Префрлете го тековниот сет на правила на стандарден излез и во датотека во вашиот домашен директориум наречен firewalld_iptables_rules
со внесување:
- sudo iptables -S | tee ~/firewalld_iptables_rules
Направете го истото со ip6tables
:
- sudo ip6tables -S | tee ~/firewalld_ip6tables_rules
Во зависност од зоните на firewalld
кои беа активни, услугите што беа овозможени и правилата што беа пренесени од firewall-cmd
директно на iptables
, множеството на фрлени правила може да биде доста обемно.
Услугата firewalld
ги имплементира своите политики за заштитен ѕид користејќи нормални правила iptables
. Тоа го постигнува со градење рамка за управување користејќи синџири iptables
. Повеќето од правилата што веројатно ќе ги видите ќе се користат за создавање на овие синџири за управување и насочување на протокот на сообраќај во и надвор од овие структури.
Правилата за заштитен ѕид што на крајот ќе ги префрлите на вашата услуга iptables
нема да треба да ја рекреираат рамката за управување на која се потпира firewalld
. Поради ова, поставеното правило што ќе го имплементирате најверојатно ќе биде многу поедноставно. Овде го зачувуваме целиот сет за да ги задржиме колку што е можно повеќе необработени податоци непроменети.
Можете да видите некои од посуштинските линии за да добиете идеја за политиката што ќе треба да ја рекреирате со впишување вакво нешто:
- grep 'ACCEPT\|DROP\|QUEUE\|RETURN\|REJECT\|LOG' ~/firewalld_iptables_rules
Ова најмногу ќе ги прикаже правилата што резултираат со конечна одлука. Правилата кои само прескокнуваат до синџирите креирани од корисникот нема да бидат прикажани.
Преземете и инсталирајте ја услугата Iptables
За да ја започнете транзицијата на вашиот сервер, треба да го преземете и инсталирате пакетот iptables-service
од складиштата на CentOS.
Преземете и инсталирајте ги услужните датотеки со внесување:
- sudo yum install iptables-services
Ова ќе ги преземе и инсталира скриптите systemd
што се користат за управување со услугата iptables
. Исто така, ќе напише некои стандардни конфигурациски датотеки iptables
и ip6tables
во директориумот /etc/sysconfig
.
Конструирајте ги вашите правила за заштитен ѕид на Iptables
Следно, треба да ги конструирате правилата за заштитен ѕид iptables
со менување на датотеките /etc/sysconfig/iptables
и /etc/sysconfig/ip6tables
. Овие датотеки ги содржат правилата што ќе се читаат и применуваат кога ќе ја стартуваме услугата iptables
.
Како ќе ги конструирате правилата за заштитен ѕид зависи од тоа дали процесот system-config-firewall
е инсталиран и се користи за управување со овие датотеки. Проверете го горниот дел од датотеката /etc/sysconfig/iptables
за да видите дали препорачува рачно уредување или не:
- sudo head -2 /etc/sysconfig/iptables
Ако излезот изгледа вака, слободно уредете ги рачно датотеките /etc/sysconfig/iptables
и /etc/sysconfig/ip6tables
за да ги имплементирате политиките за вашиот заштитен ѕид iptables
:
output# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
Отворете ги и уредете ги датотеките со привилегии sudo
за да ги додадете вашите правила:
- sudo nano /etc/sysconfig/iptables
- sudo nano /etc/sysconfig/ip6tables
Откако ќе ги поставите вашите правила, можете да ги тестирате вашите правила IPv4 и IPv6 користејќи ги овие команди:
- sudo sh -c 'iptables-restore -t < /etc/sysconfig/iptables'
- sudo sh -c 'ip6tables-restore -t < /etc/sysconfig/ip6tables'
Ако, од друга страна, излезот од испитувањето на датотеката /etc/sysconfig/iptables
изгледа вака, не треба рачно да ја уредувате датотеката:
output# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
Ова значи дека алатката за управување со system-config-firewall
е инсталирана и се користи за управување со оваа датотека. Сите рачни промени ќе бидат препишани од алатката. Ако го видите ова, треба да направите промени во вашиот заштитен ѕид користејќи една од придружните алатки. За текстуалниот UI, напишете:
- sudo system-config-firewall-tui
Ако го имате инсталирано графичкиот интерфејс, можете да го стартувате со внесување:
- sudo system-config-firewall
Ако ви треба помош за учење за правилата и синтаксата на iptables
, следните водичи може да бидат корисни иако тие главно се насочени кон системите на Ubuntu:
- Како да поставите заштитен ѕид користејќи Iptables на Ubuntu 14.04
- Iptables Essentials: вообичаени правила и команди за заштитен ѕид
- Како да се имплементира основен шаблон за заштитен ѕид со Iptables на Ubuntu 14.04
Запрете ја услугата FirewallD и стартувајте ја услугата Iptables
Следно, треба да го запреме тековниот заштитен ѕид firewalld
и да ги прикажеме нашите услуги iptables
. Ќе ја користиме конструкцијата &&
за да ги стартуваме новите услуги на заштитен ѕид штом услугата firewalld
успешно ќе се исклучи:
- sudo systemctl stop firewalld && sudo systemctl start iptables; sudo systemctl start ip6tables
Можете да потврдите дека firewalld
не работи со внесување:
- sudo firewall-cmd --state
Можете исто така да видите дека правилата што ги поставивте во директориумот /etc/sysconfig
се вчитани и применети со внесување:
- sudo iptables -S
- sudo ip6tables -S
Во овој момент, услугите iptables
и ip6tables
се активни за тековната сесија. Меѓутоа, во моментов, услугата firewalld
сè уште е таа што автоматски ќе стартува кога серверот ќе се рестартира.
Ова е најдобро време да ги тестирате политиките на вашиот заштитен ѕид за да бидете сигурни дека го имате нивото на пристап што ви треба, бидејќи можете да го рестартирате серверот за да се вратите на стариот заштитен ѕид доколку има какви било проблеми.
Оневозможете ја услугата FirewallD и овозможете ги услугите на Iptables
Откако ќе ги тестирате правилата за заштитен ѕид за да се осигурате дека вашата политика правилно се спроведува, можете да продолжите и да ја оневозможите услугата firewalld
со внесување:
- sudo systemctl disable firewalld
Ова ќе спречи услугата да се стартува автоматски при подигање. Бидејќи услугата firewalld
не треба да се стартува рачно додека работат услугите iptables
, можете да преземете дополнителен чекор со маскирање на услугата. Ова ќе спречи рачно да се стартува и услугата firewalld
:
- sudo systemctl mask firewalld
Сега, можете да ги овозможите вашите услуги iptables
и ip6tables
така што тие ќе започнат автоматски при подигнување:
- sudo systemctl enable iptables
- sudo systemctl enable ip6tables
Ова треба да ја заврши транзицијата на вашиот заштитен ѕид.
Заклучок
Имплементирањето на заштитен ѕид е суштински чекор кон одржување на безбедноста на вашите сервери. Додека firewalld
е одлично решение за заштитен ѕид, понекогаш користењето на најпознатата алатка или користењето на истите системи низ поразновидна инфраструктура има најголема смисла.