Erinevus lehekülje "Firehol" redaktsioonide vahel

Allikas: Kuutõrvaja
(Seadistus)
60. rida: 60. rida:
 
välja lubame serverist client reaga dns'i smtp icmp ja ntp
 
välja lubame serverist client reaga dns'i smtp icmp ja ntp
  
Nimekirja teenustest mida firehol toetab n2eme http://firehol.sourceforge.net/services.html
+
Nimekirja teenustest mida firehol toetab näeme http://firehol.sourceforge.net/services.html
 
 
  
 
On ka kena selleasemel ,et drop'ida mittesobivad paketid pigem nad reject'ida
 
On ka kena selleasemel ,et drop'ida mittesobivad paketid pigem nad reject'ida
123. rida: 122. rida:
 
sinna v2ib aadresse kirjutada teineteise j2rele tyhikuga eraldatuna ning m22rata saab ka terveid v2rke
 
sinna v2ib aadresse kirjutada teineteise j2rele tyhikuga eraldatuna ning m22rata saab ka terveid v2rke
  
Reegleid n2eb kirjutades
+
Reegleid näeb kirjutades
  
 
  iptables -L
 
  iptables -L
  
Hea ylevaatlik k2sk on ka
+
Hea ylevaatlik käsk on ka
  
 
  firehol status
 
  firehol status
135. rida: 134. rida:
 
  cat /proc/net/ip_conntrack
 
  cat /proc/net/ip_conntrack
  
K2iki fireholi reeglite k2ske n2eb ametlikust manualist manualis http://firehol.sourceforge.net/commands.html
+
Kõiki fireholi reeglite käske näeb ametlikust manualist manualis http://firehol.sourceforge.net/commands.html
 
seal leidub veel hulga huvitavaid ja kasulikke nippe
 
seal leidub veel hulga huvitavaid ja kasulikke nippe
  
===N2idiskonf: Kodune tulemyyr koos NAT'iga===
+
===Näidiskonf: Kodune tulemüür koos NAT'iga===
  
 
konfiguratsioon koduseks ruuteriks millel kaks võrgukaarti
 
konfiguratsioon koduseks ruuteriks millel kaks võrgukaarti
 
ja sisemisele toimib nat. Väliselt on lubatud sisse vaid ssh port.
 
ja sisemisele toimib nat. Väliselt on lubatud sisse vaid ssh port.
  
eth0 on siis v2line kaart mis yhendatud internetiallikaga ning eth1 sisev2rgu tarbeks
+
eth0 on siis väline kaart mis yhendatud internetiallikaga ning eth1 sisevõrgu tarbeks
  
 
  version 5
 
  version 5
161. rida: 160. rida:
 
           masquerade
 
           masquerade
  
Ylej22nud read peaksid olema juba tuttavad peale route all accept'i ja masquerade mis lylitavad
+
Ülejäänud read peaksid olema juba tuttavad peale route all accept'i ja masquerade mis lülitavad
 
sisse NATimise.
 
sisse NATimise.
  

Redaktsioon: 5. jaanuar 2009, kell 16:27

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

http://firehol.sourceforge.net/

http://en.wikipedia.org/wiki/FireHOL

Seadistus

Vajalik on iptablesi tugi kernelis

Networking ---> 
 Networking options ---> 
  [*] Network packet filtering (replaces ipchains) ---> 
 Core Netfilter Configuration ---> 
  <*> Netfilter Xtables support (required for ip_tables)

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 firehol.conf nimega

Peale seadistusfaili tasub anda käsk

firehol try

Millejärel kontrollitakse reegleid ja küsitakse yes/no küsimust enne reeglite aktiveerimist mis võib osutuda vahel kasulikuks ,et mitte jääda nö ukse taha :)

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

Nimekirja teenustest mida firehol toetab näeme http://firehol.sourceforge.net/services.html

On ka kena selleasemel ,et drop'ida mittesobivad paketid pigem nad reject'ida Nii ,et saatjal ei tekiks timeout'i. Selleks tuleb asendada policy drop reaga

policy reject

Olles mitte nii paranoiline võib kirjutada ka

client all accept

Lubades nii kõik väljuva liikluse

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.

Soovides mingeid ip'sid permanentselt blokeerida saab seda teha reaga

blacklist all <ip aadress>

sinna v2ib aadresse kirjutada teineteise j2rele tyhikuga eraldatuna ning m22rata saab ka terveid v2rke

Reegleid näeb kirjutades

iptables -L

Hea ylevaatlik käsk on ka

firehol status

Loodud yhendusi n2eb k2ige lihtsamalt /proc/net/ip_conntrack failist

cat /proc/net/ip_conntrack

Kõiki fireholi reeglite käske näeb ametlikust manualist manualis http://firehol.sourceforge.net/commands.html seal leidub veel hulga huvitavaid ja kasulikke nippe

Näidiskonf: Kodune tulemüür koos NAT'iga

konfiguratsioon koduseks ruuteriks millel kaks võrgukaarti ja sisemisele toimib nat. Väliselt on lubatud sisse vaid ssh port.

eth0 on siis väline kaart mis yhendatud internetiallikaga ning eth1 sisevõrgu tarbeks

version 5

interface "eth0" Internet
         protection strong
         server "ssh" accept
         client all accept

interface "eth1" LAN
         policy accept
         client all accept

router lan2internet inface "eth1" outface "eth0"
         client all accept
         route all accept
         masquerade

Ülejäänud read peaksid olema juba tuttavad peale route all accept'i ja masquerade mis lülitavad sisse NATimise.

Logi

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

Logimise ulatust saab muuta reaga

FIREHOL_LOG_LEVEL

näiteks FIREHOL_LOG_LEVEL="7"