Како да мигрирате од 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 со внесување:

  1. sudo iptables -S | tee ~/firewalld_iptables_rules

Направете го истото со ip6tables:

  1. sudo ip6tables -S | tee ~/firewalld_ip6tables_rules

Во зависност од зоните на firewalld кои беа активни, услугите што беа овозможени и правилата што беа пренесени од firewall-cmd директно на iptables, множеството на фрлени правила може да биде доста обемно.

Услугата firewalld ги имплементира своите политики за заштитен ѕид користејќи нормални правила iptables. Тоа го постигнува со градење рамка за управување користејќи синџири iptables. Повеќето од правилата што веројатно ќе ги видите ќе се користат за создавање на овие синџири за управување и насочување на протокот на сообраќај во и надвор од овие структури.

Правилата за заштитен ѕид што на крајот ќе ги префрлите на вашата услуга iptables нема да треба да ја рекреираат рамката за управување на која се потпира firewalld. Поради ова, поставеното правило што ќе го имплементирате најверојатно ќе биде многу поедноставно. Овде го зачувуваме целиот сет за да ги задржиме колку што е можно повеќе необработени податоци непроменети.

Можете да видите некои од посуштинските линии за да добиете идеја за политиката што ќе треба да ја рекреирате со впишување вакво нешто:

  1. grep 'ACCEPT\|DROP\|QUEUE\|RETURN\|REJECT\|LOG' ~/firewalld_iptables_rules

Ова најмногу ќе ги прикаже правилата што резултираат со конечна одлука. Правилата кои само прескокнуваат до синџирите креирани од корисникот нема да бидат прикажани.

Преземете и инсталирајте ја услугата Iptables

За да ја започнете транзицијата на вашиот сервер, треба да го преземете и инсталирате пакетот iptables-service од складиштата на CentOS.

Преземете и инсталирајте ги услужните датотеки со внесување:

  1. 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 за да видите дали препорачува рачно уредување или не:

  1. 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 за да ги додадете вашите правила:

  1. sudo nano /etc/sysconfig/iptables
  2. sudo nano /etc/sysconfig/ip6tables

Откако ќе ги поставите вашите правила, можете да ги тестирате вашите правила IPv4 и IPv6 користејќи ги овие команди:

  1. sudo sh -c 'iptables-restore -t < /etc/sysconfig/iptables'
  2. 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, напишете:

  1. sudo system-config-firewall-tui

Ако го имате инсталирано графичкиот интерфејс, можете да го стартувате со внесување:

  1. sudo system-config-firewall

Ако ви треба помош за учење за правилата и синтаксата на iptables, следните водичи може да бидат корисни иако тие главно се насочени кон системите на Ubuntu:

  • Како да поставите заштитен ѕид користејќи Iptables на Ubuntu 14.04
  • Iptables Essentials: вообичаени правила и команди за заштитен ѕид
  • Како да се имплементира основен шаблон за заштитен ѕид со Iptables на Ubuntu 14.04

Запрете ја услугата FirewallD и стартувајте ја услугата Iptables

Следно, треба да го запреме тековниот заштитен ѕид firewalld и да ги прикажеме нашите услуги iptables. Ќе ја користиме конструкцијата && за да ги стартуваме новите услуги на заштитен ѕид штом услугата firewalld успешно ќе се исклучи:

  1. sudo systemctl stop firewalld && sudo systemctl start iptables; sudo systemctl start ip6tables

Можете да потврдите дека firewalld не работи со внесување:

  1. sudo firewall-cmd --state

Можете исто така да видите дека правилата што ги поставивте во директориумот /etc/sysconfig се вчитани и применети со внесување:

  1. sudo iptables -S
  2. sudo ip6tables -S

Во овој момент, услугите iptables и ip6tables се активни за тековната сесија. Меѓутоа, во моментов, услугата firewalld сè уште е таа што автоматски ќе стартува кога серверот ќе се рестартира.

Ова е најдобро време да ги тестирате политиките на вашиот заштитен ѕид за да бидете сигурни дека го имате нивото на пристап што ви треба, бидејќи можете да го рестартирате серверот за да се вратите на стариот заштитен ѕид доколку има какви било проблеми.

Оневозможете ја услугата FirewallD и овозможете ги услугите на Iptables

Откако ќе ги тестирате правилата за заштитен ѕид за да се осигурате дека вашата политика правилно се спроведува, можете да продолжите и да ја оневозможите услугата firewalld со внесување:

  1. sudo systemctl disable firewalld

Ова ќе спречи услугата да се стартува автоматски при подигање. Бидејќи услугата firewalld не треба да се стартува рачно додека работат услугите iptables, можете да преземете дополнителен чекор со маскирање на услугата. Ова ќе спречи рачно да се стартува и услугата firewalld:

  1. sudo systemctl mask firewalld

Сега, можете да ги овозможите вашите услуги iptables и ip6tables така што тие ќе започнат автоматски при подигнување:

  1. sudo systemctl enable iptables
  2. sudo systemctl enable ip6tables

Ова треба да ја заврши транзицијата на вашиот заштитен ѕид.

Заклучок

Имплементирањето на заштитен ѕид е суштински чекор кон одржување на безбедноста на вашите сервери. Додека firewalld е одлично решение за заштитен ѕид, понекогаш користењето на најпознатата алатка или користењето на истите системи низ поразновидна инфраструктура има најголема смисла.