Portaal Portaal Pingviini veeb foorumi pealeht
  Viki  |  IRC  |  Otsing  |  Küsimused ja vastused  |  Profiil  |  Privaatsõnumite vaatamiseks logi sisse  | Logi sisse või Registreeru
<empty>
Vaata järgmist teemat
Vaata eelmist teemat

Postita uus teemaVasta teemale
Autor Sõnum
priit
Vana Pingviin
Vana Pingviin


Vanus: 39
Liitunud: 04.08.2005
Postitused: 521
Asukoht: Tartu
Distributsioon: CentOS / OS X
estonia.gif
postituspostitatud: 07.01.2009, 00:39  postituse pealkiri:  iptables  

Hei. Lugu selline, et hankisin edale ühe odava unmanaged VPSi. Pole ise varem iptablesit kasutanud ning proovisin siis ühe õpetuse järgi ja tulemus oli:

Kood:

# /etc/iptables.up.rules

*filter

# standard rules for general traffic
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i venet0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

# allow ssh to port 30000
-A INPUT -p tcp --dport 30000 -j ACCEPT

# allow apache to port 80
-A INPUT -p tcp --dport 80 -j ACCEPT

# any traffic from localhost
-A INPUT -s 127.0.0.1 -j ACCEPT

# ICMP/Ping
-A INPUT -p icmp -j ACCEPT

# reject everything else coming through to any IP
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT

# EOF


Konkreetse setupi puudus on see, et väljuvad ühendused on keelatud (st pakette ei võetud vastu).

Et saada ka serverist välja, suutsin kokku keerata mingite saitide abiga töötava skripti:
Kood:

# /etc/iptables.up.rules

*filter

# allow ssh to port 30000
-A INPUT -p tcp --dport 30000 -j ACCEPT

# allow apache to port 80
-A INPUT -p tcp --dport 80 -j ACCEPT

# any traffic from localhost
-A INPUT -s 127.0.0.1 -j ACCEPT

# ICMP/Ping
-A INPUT -p icmp -j ACCEPT

-A OUTPUT -p ALL -j ACCEPT
-A INPUT -p ALL -j ACCEPT

# reject everything else coming through to any IP
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT


Kuna olen iptablesis algaja, siis tahaks väga teada, kui turvaline see asi praegu on. Mõte oli asjal keelata kõik sissetulevad ühendused, va pordid 30000 (ssh) ja 80 (apache2).


mihkel
Vana Pingviin
Vana Pingviin



Liitunud: 16.04.2006
Postitused: 1284

Distributsioon: Fedora/Centos
estonia.gif
postituspostitatud: 07.01.2009, 09:14  postituse pealkiri:  (teema puudub)  

Üks asi, mida silmas pidada on see, et reegleid täidetakse ülevalt alla. Nii vara hommikul ei viitsi sinu skripti eriti süveneda. Selle asemel pasteerin siia oma ipv4 müüri. Isegi mingi kahtlase väärtusega kommentaarid on sees.

Kood:

#!/bin/sh

#Kustutame ära kõik olemasolevad reeglid ja ahelad
iptables -F
iptables -X

# Määrame vaikereeglistiku. Kui edaspidi ei ole reegleid,
# mis väidaksid vastupidist, siis lubatakse ainult väljaminevad
# paketid.
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Ignoreerime pakke, mis on mingil põhjusel vigased ja logime need
iptables -A INPUT -m state --state INVALID -j LOG --log-prefix " INPUT invalid: "
iptables -A INPUT -m state --state INVALID -j DROP

# Lubame kohalikud sissetulevad paketid
iptables -A INPUT -i lo -j ACCEPT

# Kui sissetulev pakett eksisteerib, kui me tulemüüri käivitame või
# on seotud olemasolevaga, siis lubame ühenduse. Kui seda reeglit pole,
# siis interneti põhimõtteliselt kasutada ei saa, kuna eelnevalt keelasime
# kõik sissetulevad pakteid.
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Keelame pordid 135 kuni 139, mida windowsi masinad genereerivad. Nii jälle
# logi puhtam.
iptables -A INPUT -p UDP -i eth0 -d 192.168.1.255 --destination-port 135:139 -j DROP

# Dropime dhcp päringud, et need ei satuks logisse.
iptables -A INPUT -p UDP -i eth0 -d 255.255.255.255 --destination-port 67:68 -j DROP

# Port 113 kinni, et irc ei uimerdaks
#iptables -A INPUT -p tcp --dport 113 -j LOG --log-prefix " Ipv4 identd "
iptables -A INPUT -p tcp --dport 113 -j REJECT
iptables -A INPUT -p udp --dport 113 -j REJECT

# Avame pordi 55666
# -i eth0 võib asendada mingi muu liidesega või üldse ära jätta.
iptables -A INPUT -p tcp -i eth0 --dport 55566 -j ACCEPT
#iptables -A INPUT -p udp -i eth0 --dport 55566 -j ACCEPT

# Esimene reegel lubab pingida sisevõrgust ilma piirangudeta.
# Teine reegel lubab esimese 5 ICMP paketti olenemata nende saabumise
# kiirusest, pärast seda ainult 10 paketti per minut.
# Kolmas reegel logib kõik juhud, mille teine reegel blokeerib.
# Neljas reegel ütleb, et kõik, mis ei mahu esimese kahe reegli alla, tuleb
# maha lüüa.
#iptables -A INPUT -p icmp -m iprange --src-range 192.168.1.60-192.168.1.65 -j ACCEPT
iptables -A INPUT -p icmp -m limit --limit 10/m --limit-burst 5 -j ACCEPT
iptables -A INPUT -p icmp -j LOG --log-prefix " Jube ping: "
iptables -A INPUT -p icmp -j DROP

# Logime juhud, mis ei mahu eelnevate reeglite alla
# Logi kirjutatakse /var/log/messages faili
iptables -A INPUT -j LOG --log-prefix " INPUT DROP "

# Logime FORWARD INVALID paketid ja DROPime need
iptables -A FORWARD -m state --state INVALID -j LOG --log-prefix " FORWARD invalid: "
iptables -A FORWARD -m state --state INVALID -j DROP

# Logime FORWARD DROP juhud
iptables -A FORWARD -j LOG --log-prefix " FORWARD DROP "

# Logime OUTPUT INVALID paketid ja DROPime need
# iptables -A OUTPUT -m state --state INVALID -j LOG --log-prefix " OUTPUT invalid: "
iptables -A OUTPUT -m state --state INVALID -j DROP





Lisaks sellele olen muutnud /etc/sysctl.conf failist paari tuuma parameetrit, et veel kõvemaks ajada Smile

Selline loom kaitseb siis mu kodumasina ipv4 liiklust.


johnsmith
Vana Pingviin
Vana Pingviin


Vanus: 49
Liitunud: 24.07.2006
Postitused: 714
Asukoht: Universum
Distributsioon: Ubuntu/Gentoo/FreeBSD
finland.gif
postituspostitatud: 07.01.2009, 12:29  postituse pealkiri:  (teema puudub)  

Seesamune, et kõik ülejäänud liiklus mis ei vasta reeglitele selle eest hoolitseb policy üldiselt: näiteks nii
Kood:

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT


Muidugi reegleid otsitakse ülevalt alla numbrijärjestuses olenevalt mis reegel enne sisestati kui ei kasutata eraldi reegli numbrit. Kas siis leitakse reegel mis vastab või kasutatakse "policyd"

Teine reegel on absurd kuna lubab kõik liikluse enne kui keelab kõik ülejäänu:
Kood:

-A OUTPUT -p ALL -j ACCEPT
-A INPUT -p ALL -j ACCEPT


Tegemist on siis avatud tulemüüriga teise skripti puhul.

Miks sul esimese reegli puhul väljaminev liiklus ei toimi ei oska praegu küll lambist öelda äkki pole kernelis dünaamiliste state reeglite moodulit ?

Panen oma lihtsad kodumasina reeglid vaatamiseks kuigi kommentaare pole. Ma olen üritanud ka vähe piirata seda liiklust mis läheb välja:

Kood:

LO_IP=192.168.1.8
LO_INT=127.0.0.1

/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc

iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT
iptables -N nameserver
iptables -A OUTPUT -p ALL -d 192.168.6.1 -j ACCEPT
iptables -A nameserver --dst 192.168.2.50 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j nameserver
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT 
iptables -A OUTPUT -p udp --dport 67 -j ACCEPT
iptables -A OUTPUT -p udp -d 192.168.2.0/24 --dport 137 -j ACCEPT
iptables -A OUTPUT -p udp -d 192.168.2.0/24 --dport 138 -j ACCEPT
iptables -A OUTPUT -p udp -d 192.168.2.0/24 --source-port 137 -j ACCEPT
iptables -A OUTPUT -p udp -d 192.168.2.0/24 --source-port 138 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 873 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 49152:65535 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT   
iptables -A OUTPUT -p tcp --dport 45074 -j ACCEPT   
iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 11371 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.2.0/24 --source-port 445 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.2.0/24 --source-port 139 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.2.0/24 --dport 139 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.2.0/24 --dport 445 -j ACCEPT
iptables -A OUTPUT -p tcp -d 10.0.0.0/24 --source-port 445 -j ACCEPT
iptables -A OUTPUT -p tcp -d 10.0.0.0/24 --source-port 139 -j ACCEPT
iptables -A OUTPUT -p tcp -d 10.0.0.0/24 --dport 139 -j ACCEPT
iptables -A OUTPUT -p tcp -d 10.0.0.0/24 --dport 445 -j ACCEPT
iptables -A OUTPUT -p tcp -d 10.0.0.0/24 --dport 4081 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.2.0/24 --dport 37890 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.2.50 --dport 631 -j ACCEPT
iptables -A OUTPUT -p tcp -m helper --helper ftp -j ACCEPT
iptables -A OUTPUT -p tcp -m helper --helper irc-6667 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -d xxx.xxx.xxx.xxx --dport 119 -j ACCEPT
iptables -A OUTPUT -p tcp -d xxx.xxx.xxx.xxx --dport 119 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 45000 -j ACCEPT
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8  -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 3  -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 4  -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8  -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 13 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 14 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.2.0/24 --dport 137 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.2.0/24 --dport 138 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.2.0/24 --dport 139 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.2.0/24 --dport 445 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.2.0/24 --source-port 137 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.2.0/24 --source-port 138 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.2.0/24 --source-port 139 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.2.0/24 --source-port 445 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.0/24 --dport 137 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.0/24 --dport 138 -j ACCEPT
iptables -A INPUT -p tcp -s 10.0.0.0/24 --dport 139 -j ACCEPT
iptables -A INPUT -p tcp -s 10.0.0.0/24 --dport 445 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.0/24 --source-port 137 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.0/24 --source-port 138 -j ACCEPT
iptables -A INPUT -p tcp -s 10.0.0.0/24 --source-port 139 -j ACCEPT
iptables -A INPUT -p tcp -s 10.0.0.0/24 --source-port 445 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.2.0/24 --source-port 37890 -j ACCEPT
iptables -A INPUT -p ALL -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p ALL -s $LO_INT -j ACCEPT
iptables -A INPUT -p ALL  -d $LO_INT -j ACCEPT

_________________
"Thinking is the hardest work there is, which is probably the reason why so few engage in it" - Henry Ford

priit
Vana Pingviin
Vana Pingviin


Vanus: 39
Liitunud: 04.08.2005
Postitused: 521
Asukoht: Tartu
Distributsioon: CentOS / OS X
estonia.gif
postituspostitatud: 09.01.2009, 02:13  postituse pealkiri:  (teema puudub)  

Suur tänu vastuste eest, aga tundub, et probleem on ikkagi VPSis või OpenVZis, sest kumbki skriptid ei lase mul välja ühenduda (loomulikult tegin vastavad muudatused oma vajaduste jaoks). Oma koduarvutis pole veel proovinud, sest NVidia draiverid on mind liiga närvi ajanud Smile. Kui iptablesi osas targemaks ei saa, proovin järgmisel kuul CheapVPSi asemel Slicehosti (sealne artiklite all olev iptables Debiani jaoks ka ei töötanud).

Aga vähemalt tean nüüd, kuidas Apache+MySQL koos Linuxi baasinstalliga ainult 50 MB RAMi hõivavad Smile


Näita (aja järgi):      
Postita uus teemaVasta teemale


Vaata järgmist teemat
Vaata eelmist teemat
Powered by phpBB2 Plus based on phpBB © 2001/7 phpBB Group