Linux-en suebakiak ezinbesteko zeregina du sistema informatiko bat ziurtatzeko. Oztopo gisa jokatzen du, sareko trafikoa kontrolatzen eta iragazten du sistema baimendu gabeko sarbideetatik, erasoetatik eta bestelako mehatxuetatik babesteko. Behar bezala konfiguratuta dagoen Firewallik gabe, zerbitzaria hainbat motatako zibererasoen aurrean zaurgarria izan daiteke, eta datuen segurtasun eta konfidentzialtasunerako ondorio larriak eragin ditzake.
Artikulu honetan, Linux Firewall konfiguratzeko bi tresna nagusi aztertuko ditugu: firewalld eta iptables. Haien ezaugarri, funtzionaltasun eta abantailen analisi konparatiboa egingo dugu. Gainera, tresna hauetako bakoitza konfiguratzeko eta erabiltzeko argibide zehatzak emango ditugu, baita Linux plataforman zure sistema Firewall batekin ziurtatzeko praktika onak ere eztabaidatuko ditugu. Ekintza guztiak erakutsiko dira zerbitzari birtuala root sarbidearekin.
Firewalld konfiguratzen Linux-en
Firewalld (Firewall Daemon) Linux sistema eragileetako suebakia kudeatzeko programa bat da. Suebakiaren arauak konfiguratzeko erabiltzaile-interfazea eskaintzen du, sareko aplikazioen konexioak baimendu edo blokeatzeko. Aurrez instalatuta dago zerbitzariaren banaketa gehienetan. Firewalld aurrez instalatuta ez badago, banaketaren biltegi ofizialetatik independentean instala daiteke.
Red Hat sistemetarako (adibidez, RHEL, CentOS, Fedora) instalazioa komandoarekin egiten da:
yum install firewalld
Debian/Ubunturako:
apt-get install firewalld
Instalatu ondoren, berehala abiarazi eta aktibatu daiteke komandoarekin:
systemctl start firewalld
Ondoren, zerbitzua abiarazteko gehitu behar duzu:
systemctl enable firewalld
Une honetan, ufw desgaitzea gomendatzen dugu, tresna hau firewalld edo iptables-ekin aldi berean erabiltzea ez baita gomendagarria. Egiaztatu egoera:
systemctl status ufw
Gelditzeko, idatzi komandoa:
systemctl stop ufw
Desaktibazio osoa lortzeko:
ufw disable
Ekintza horien ondoren, suebakia konfiguratzen jarrai dezakezu.
Lehenik eta behin, beharrezkoa da konfiantza-eremuak zehaztu. Firewalld-ek zonen kontzeptua erabiltzen du sareko interfazeen konfiantza maila zehazteko. Interfaze bakoitzari zona bat esleitzen zaio eta suebakiaren arauak eremuaren arabera aplikatzen dira. Eskuragarri dauden zona guztien zerrenda komandoarekin irekitzen da:
firewall-cmd --get-zones
Normalean, 4 gune nagusi erabiltzen dira:
- Publikoa: Zona hau ez-segurutzat jotzen dituzun sareetarako da;
- Pribatua: Etxeko sareei edo beste sare fidagarrietako konexioei aplikatzen zaie;
- Barne: Barne-sareetarako erabiltzen da, hala nola erakunde edo sare korporatibo batekoak;
- DMZ: Eremu honetan Internetetik eskuragarri egon beharko luketen zerbitzariak jarri ohi dira.
Hala ere, hau adibide bat besterik ez da. Zure eremua gehi dezakezu komandoa erabiliz:
firewall-cmd --permanent --new-zone=nameyourzone
Gehitu ondoren, berriro kargatu behar da:
firewall-cmd --reload
Zona bat ezabatzeko, antzeko metodo bat erabiltzen da
firewall-cmd --permanent --delete-zone=nameyourzone
Zonak zehaztu ondoren, beharrezkoa da trafikoa baimendu behar diren zerbitzu eta portuetarako. Zerbitzu jakin bat baimentzeko, erabili komandoa:
firewall-cmd --zone=public --add-service=name
Non izena zerbitzuaren izena da. Adibidez, Apacherako trafikoa baimentzeko:
firewall-cmd --zone=public --add-service=http
Baimendutako atakak definitzeko, erabili komandoa:
firewall-cmd --zone=public --add-port=number/protocol
Adibidez, SSHrako 22 ataka estandarrak honela izango luke:
firewall-cmd --zone=public --add-port=22/tcp
Fase honetan, arau nagusiak dagoeneko sortuta daude. Ondoren, zehaztu trafikoa nola prozesatuko den iturriaren, helmugaren, portuaren eta beste irizpide batzuen arabera. Arau bat gehitzeko (erabiliz publikoa zona adibide gisa):
firewall-cmd --zone=public rule
Adibidez, edozein iturritatik sarrerako trafikoa 80 atakara (HTTP) baimentzeko:
firewall-cmd --zone=public --add-port=80/tcp --permanent
Arau bat kentzeko:
firewall-cmd --permanent --remove-rule=rule_specification
Non araua arau mota da (adibidez, portua, zerbitzua, arau aberatsa, etab.), eta arau_zehaztapena arauaren beraren zehaztapena da.
Firewalld konfigurazioan aldaketak egin ondoren, horiek gorde eta aplikatzea beharrezkoa da. Aldaketak gordetzeko, erabili komandoa:
firewall-cmd --runtime-to-permanent
Aldaketak aplikatzeko:
firewall-cmd --reload
Konfigurazioa amaitutakoan, hautatutako parametroak egiazta ditzakezu arau guztien zerrenda irekiz:
firewall-cmd --list-all
Arazoren bat sortzen bada, egiaztatu Firewalld erregistroak komandoarekin:
journalctl -u firewalld
Oharra: Konexioa konfiguratzeko algoritmo orokorra bakarrik estali dugu. Tresnak funtzionalitate zabala du. Eskuragarri dauden aukera guztiei buruzko informazio osoa lortzeko, erabil dezakezu dokumentazio ofiziala edo ireki laguntza:
firewall-cmd --help
Linux-en iptables konfiguratzen
Firewalld ez bezala, iptables tresna zaharragoa da, baina oraindik ere oso erabilia den Linux-en suebakia kudeatzeko. Linux kernel mailan paketeak iragazteko arauen ikuspegi zuzenagoa eta malguagoa eskaintzen du. Hala ere, iptables-ek ezagutza eta esperientzia aurreratuagoak behar ditu Firewalld-ekin alderatuta, hasiberrientzat hain eskuragarria izateko. Egiaztatu tresnaren aurrez instalatutako bertsioa komandoarekin:
iptables -V
Tresna instalatuta ez badago, instalatu beharko da. Ubuntun, Debian instalatzeko komandoa:
apt install iptables
Red Hat sistemetarako (adibidez, CentOS, Fedora):
yum install iptables
Instalatu ondoren aktibatzeko komandoa:
systemctl start iptables
Abiarazteko, exekutatu:
systemctl enable iptables
iptables konfigurazioa hasi aurretik, garrantzitsua da nola funtzionatzen duen ulertzea. Hau programaren sintaxiak laguntzen du. Honela dirudi:
iptables -t table action chain additional_parameters
Sakon dezagun elementu bakoitzean.
Iptables-ek lau taula nagusi ditu: iragazkia, nat, mangle eta gordina. Bakoitza pakete mota batzuk prozesatzeko diseinatuta dago eta bere arau-kateak ditu:
- iragazi: Hau da gehien erabiltzen den taula, paketeak iragazteko arauak dituena. Paketeak baimendu edo ukatu erabakitzeko erabiltzen da.
- nat: Taula hau paketeetan sareko helbideak eta atakak aldatzeko erabiltzen da. Masquerading (NAT) konfiguratzeko erabili ohi da.
- mangle: Taula honetan, paketeen goiburuak alda ditzakezu. Pakete-eragiketa espezializatuetarako erabiltzen da, esate baterako, markatzeko.
- gordinak: Taula hau konexioen jarraipenaren sistematik igaro aurretik aplikatzen diren arauak konfiguratzeko erabiltzen da. Normalean jarraipen-sistemak aldatu behar ez dituen arauak ezartzeko erabiltzen da, hala nola helbide jakin batzuetatik paketeak botatzeko.
Mahai bakoitzak kate multzo bat dauka. Kateak sekuentzialki egiaztatzen diren arau-segida bat dira. Aurrez definitutako hiru kate daude:
- INPUT (sarrera). Kate honetako arauek zehazten dute zer egin sarrerako paketeekin.
- IRTEERA (irteera). Kate hau zure ordenagailuak sareko beste gailu edo ordenagailu batzuetara bidaltzen dituen pakete guztiei aplikatzen zaie.
- AURRERA (birbidaltzea). Kate honetako arauek birbidaltutako paketeekin zer egin zehazten dute.
Azkenik, kate bakoitzak ekintzaren bat (helburua) dauka. Praktikan, 5 ekintza nagusi erabiltzen dira:
- ONARTZEN: Utzi paketea suebakitik pasatzen.
- TANTA: Paketea baztertu eta baztertu erantzunik gabe.
- Uko: paketea baztertu eta igorleari ICMP errore-mezu bat bidali.
- Saioa: Paketea sistemaren erregistroan erregistratu eta beste ekintza bat egin (adibidez, ONARTU edo ERANTZI).
- Itzulia: Uneko kateko arauak egiaztatzeari utzi eta dei-katera itzuli (hala badagokio).
Konfigurazioa hasteko, ireki lehendik dauden arauen zerrenda komandoarekin:
iptables -L
Iptables konfiguratzeko gida gisa, ikus ditzagun gehien erabiltzen diren komandoen adibide praktikoak. Erosotasunerako, adibideak 3 taldetan banatuko ditugu, kate zehatzaren arabera.
Chain INPUT:
- Baimendu sarrerako trafikoa TCP protokoloaren bidez 80 atakan:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2. Baimendu sarrerako trafikoa UDP protokoloaren bidez 22 atakan:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
3. Blokeatu sarrerako trafikoa IP helbide zehatz batetik:
iptables -A INPUT -s 192.168.1.100 -j DROP
Chain OUTPUT:
- Baimendu irteerako trafikoa TCP protokoloaren bidez 443 atakan:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
2. Baimendu irteerako trafikoa UDP protokoloaren bidez 80 atakan:
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
3. Blokeatu irteerako trafikoa ataka zehatz batera (adibidez, 21):
iptables -A OUTPUT -p tcp --dport 21 -j DROP
Chain AURRERA:
- Blokeatu birbidaltutako trafikoa IP helbide sorta zehatz batetik:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP
2. Blokeatu sareko interfaze jakin batetik paketeak birbidaltzea:
iptables -A FORWARD -i eth1 -j DROP
3. Mugatu ataka jakin baterako aldibereko konexio kopurua (adibide honetan, minutuko 10 konexio 80 atakan):
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT
Ikus dezakezunez, kasu bakoitzean argumentu gehigarri bat (komandoa) erabiltzen da. Argumentu posibleen zerrenda osoa eta tresnaren funtzionalitatearen euskarri orokorra lortzeko, idatzi:
iptables -h
Ezarpenak zuzenak direla ziurtatzeko, sartu berriro komandoa arauen zerrenda ikusteko:
iptables -L
Arau zehatz bat ezabatzeko, erabili komandoa:
iptables -D chain rule_number
Adibidez, INPUT katetik 1. zenbakia ezabatu nahi baduzu, komandoak itxura hau izango du:
iptables -D INPUT 1
Arau guztiak komando batekin ezabatzeko:
iptables -F
Ohar garrantzitsua: iptables arauak ez dira automatikoki gordetzen sistema edo zerbitzua berrabiarazi ondoren. Arauak gordetzeko, konfigurazio fitxategi batera gehitu eta berrabiarazi ondoren leheneratu behar dira. The iptables-gorde iptables-restore utilitateek lagundu dezakete horretan. Arauak gordetzeko, idatzi komandoa:
iptables-save > /etc/iptables/rules.v4
Honek uneko iptables arauak rules.v4 fitxategian gordetzen ditu. Berrabiarazi ondoren leheneratzeko, idatzi:
iptables-restore < /etc/iptables/rules.v4
Komando honek arauak leheneratzen ditu rules.v4 fitxategitik.
Ondorioa
Firewalld edo iptables erabiliz Linuxen Firewall konfiguratzea zerbitzariaren segurtasuna bermatzeko alderdi garrantzitsua da. Bi tresnek sareko trafikoa kudeatzeko eta sistema baimendu gabeko sarbideetatik eta zibererasoetatik babesteko baliabide fidagarriak eskaintzen dituzte. Firewalld eta iptables-en aukeraketa erabiltzailearen behar eta lehentasun zehatzen araberakoa da, haien funtzionaltasun eta indargune desberdinak kontuan hartuta.