Firehol

Allikas: Kuutõrvaja
Redaktsioon seisuga 11. juuli 2007, kell 14:48 kasutajalt Jj (arutelu | kaastöö) (=Logi)

Sissejuhatus

Sageli on vaja linux masinatele luua keerukamaid tulemüüre. Iptables on selleks enda keeruka süntaksiga üsnagi ebamugav. Raske reegleid lugeda ja neid muuta ja nõuab põhjalikumalt süntaksi tundmist ja jälgimist.

Sellepärast on loodud mõningaid seadistamist hõlbustavaid tarkvarasid näiteks Firehol

Seadistus

Firehol install näiteks gentool toimub käsuga

emerge firehol

ja ,et serveris käivitudes stardiks

rc-update add firehol default

Töötamise eelduseks on muidugi see ,et meil oleks kernelis iptables olemas. Kuna see viimane pikem teema siis antud palas sellel ei peatu.

seadistusfail asub kaustas /etc/firehol

Näite seadistusfailist firehol.conf ühe tavalise veebiserveri kohta

#!/bin/bash

version 5

interface "eth0" internet src not "${UNROUTABLE_IPS}"
 policy drop
 server "http https icmp ssh" accept
 client "dns smtp icmp ntp" accept


Mis siis tegime.

eth0'il unroutable ip'd blokeerime ehk siis näiteks sisevõrguaadressid jms vaikimisi kõik paketid blokeeritakse lubame server reaga serverisse sisse pordid http https icmp ja ssh välja lubame serverist client reaga dns'i smtp icmp ja ntp

Gentool näiteks võiks selleks ,et toimiks emerge --sync ja softi uuendamine lisada ka rea

 client "http ftp rsync" accept

Kui soovime veel paranoilisemad olla ja näiteks keelata ssh ainult sisevõrku tuleb konfi muuta selliselt


#!/bin/bash

version 5

asutuse_kontor="192.168.1.0/25"

interface "eth0" internet src not "${UNROUTABLE_IPS}"
 policy drop
 server "http https icmp" accept
 server "ssh" accept src "${asutuse_kontor}"
 client "dns smtp icmp ntp" accept

Kui vahel on vaja näiteks avada mõne vähemtuntud teenuse port fireholile võib kasutada custom käsku

 server custom shoutcast tcp/8000 default accept

Ja avati tcp port 8000 ning sai ta nimeks shoutcast

Firehol on samas üsna paindlik lubades konfi lisada otse ka iptables ridu

Näiteks võime lisada sinna otse rea

DB="192.168.1.100"
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 3306 -j DNAT --to-destination ${DB}:3306

Selle reaga suunatakse kõik sisevõrgus tehtud ühenduskatsed pordile 3306 ehk mysql serverile ümber masinale 192.168.1.100 Nagu märkasite saab kasutada iptables käskudes ka muutujaid firehol konfis.

Serverite kaitseks saab kasutada ddos mõningaid abivahendeid. Üks käsk on porotection

 protection strong 200/sec 100

võimalused on veel strong, full or all. Sellel real blokeeritakse kui 200 sekundi jooksul tuleb ühest allikast rohkem kui 100 päringut.

Logi

tail -f /var/log/messages abil võib näha erinevaid ebatavalisi ja blokeeritud ühendusi firehol poolt.