Portál AbcLinuxu, 27. dubna 2024 19:55


Dotaz: iptables porty

21.1.2010 20:53 f1lo | skóre: 16
iptables porty
Přečteno: 1950×
Odpovědět | Admin
Příloha:
Dobrý den,

Budu server stěhovat z domova (kde my jede MikroTik - spravuju ho přes WinBox) do serverovny a tak bude třeba pravidla pro porty nastavit přímo na serveru.

Jedu na Debian stable a nejspíše bude nejlepší využít iptables, ale nemám s ním natolik dobré zkušenosti (mám na serveru nějaký skript na zákaz určitých IP - hackeři apod., ale to je tak vše) a tak bych Vás chtěl poprosit o menší příklad, jak by vypadaly takové 2 pravidla: 1.Pravidlo, které by zákázalo všechny ostatní porty, než ty které povolím v dalších pravidlech - viz bod 2. 2.Pravidlo, které povolí komunikaci na portu 3306 (pro příklad)

Pro přehled Vám zde ukážu obrázek, jak jsem to do teď nastavoval přes WinBox.

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.1.2010 23:09 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: iptables porty
Odpovědět | | Sbalit | Link | Blokovat | Admin
#!/bin/sh

echo "0" > /proc/sys/net/ipv4/ip_forward

MOJE_IP=192.168.3.67

/sbin/iptables -X
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

# local
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
/sbin/iptables -A INPUT -i lo -j ACCEPT

# to co jsme navázali my
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#nase odchozi pakety povolime
/sbin/iptables -A OUTPUT -s $MOJE_IP -j ACCEPT

# WWW povolime
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# povolime vas port tcp 3306
/sbin/iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

# odmitne port 113 auth
/sbin/iptables -A INPUT -i eth0 -p TCP --dport 113 -j REJECT


22.1.2010 07:30 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: iptables porty
DROP na INVALID pakety je špatný, 'mkay?
In Ada the typical infinite loop would normally be terminated by detonation.
22.1.2010 15:26 f1lo | skóre: 16
Rozbalit Rozbalit vše Re: iptables porty
Super, děkuji moc. Jen se ještě zeptám, abych měl jasno.

Proč, když je pravidlo pro zakázání portu, je tam -i eth0 a u pravidla pro povolení tam toto není? Děkuji
22.1.2010 15:30 f1lo | skóre: 16
Rozbalit Rozbalit vše Re: iptables porty
A ještě jsem se zapomněl zeptat, proč se musí zvlášť zakazovat port 113? Vždyť to nepustí žádné jiné porty, než ty které povolím (v našem případě 80 a 3306) ne?
22.1.2010 15:34 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: iptables porty
řekl bych oboje protože to je blbě... to -i eth0 je tam zbytečné a ten port 113 je tam extra kvůli tomu, že pán používá default DENY, a zjistil že když chodí na irc, tak trpí
In Ada the typical infinite loop would normally be terminated by detonation.
22.1.2010 17:31 Ash | skóre: 53
Rozbalit Rozbalit vše Re: iptables porty
Port 113 není tak úplně zakázaný. Je rozdíl mezi DROP a REJECT. Dříve existovaly služby, které pokud jste využíval, se vás snažily autentizovat zpětným kontaktem na port 113. Pokud byste příchozí pakety na 113 zahazoval, s největší pravděpodobností by vás daná služba odmítla, popřípadě by (vám) tam vznikla velká prodleva než vyprší její timeout pro autentizaci. Např. při navazování nějakého ftp. spojení. V současnosti se to snad (...) už nepoužívá, ale "jeden nikdy neví:)".
22.1.2010 20:11 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: iptables porty
Prostě je to stará verze iptables co jsem používal kdysi a -i eth0 je tam proto že tam bylo více zařízení atd.... atd....

Prostě jsem skopíroval část ze svého firewalu aby byla inspirace.

Pokud chcete celý tak jsem používal toto: (dnes už je i tento starý a PC jsou zapojena jinak - možná tam jsou chybičky, ale tehdy to stačilo)
#!/bin/sh

echo "1" > /proc/sys/net/ipv4/ip_forward

# rp_filter na zamezeni IP spoofovani
for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do
   echo "1" > ${interface}
done

# Modul pro FTP prenosy
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

# Cesta k programu iptables
IPTABLES="/sbin/iptables"

# IP a broadcast adresa a rozhrani vnitrni site
LAN1_IP="10.0.0.2"
LAN1_BCAST="10.0.0.255/32"
LAN1_IFACE="eth0"
INET_IP="194.228.223.93"
INET_IFACE="eth1"

# Firevall
/sbin/iptables -X
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables -t nat -X
/sbin/iptables -t nat -F POSTROUTING
/sbin/iptables -t nat -F PREROUTING
/sbin/iptables -t nat -F OUTPUT

/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

/sbin/iptables -t mangle -X
/sbin/iptables -t mangle -F OUTPUT
/sbin/iptables -t mangle -F PREROUTING

# MASKARADA
/sbin/iptables -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to $INET_IP

# TOS flagy slouzi k optimalizaci datovych cest. Pro ssh, ftp a telnet
# pozadujeme minimalni zpozdeni. Pro ftp-data zase maximalni propostnost
$IPTABLES -t mangle -A PREROUTING -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A PREROUTING -p tcp --dport ssh -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A PREROUTING -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A PREROUTING -p tcp --dport telnet -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A PREROUTING -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput


#
# Pridavne retezce pro snazsi kontrolu na rezervovane adresy
#
# Zahazovat a logovat (max. 5 x 3 pakety za hod)
$IPTABLES -N logdrop
$IPTABLES -F logdrop
$IPTABLES -A logdrop -m limit --limit 5/h --limit-burst 3 -j LOG --log-prefix "Log droop: " --log-level 6
$IPTABLES -A logdrop -j DROP

# V tomto retezci se kontroluje, zda prichozi pakety nemaji nesmyslnou IP adresu
$IPTABLES -N IN_FW
$IPTABLES -F IN_FW
$IPTABLES -A IN_FW -i $LAN1_IFACE -s 192.168.0.0/16 -j logdrop # rezervovano podle RFC1918
$IPTABLES -A IN_FW -i $INET_IFACE -s 10.0.0.0/8 -j logdrop     #   ---- dtto ----
$IPTABLES -A IN_FW -s 172.16.0.0/12 -j logdrop  #   ---- dtto ----
$IPTABLES -A IN_FW -s 96.0.0.0/4 -j logdrop     # rezervovano podle IANA
$IPTABLES -A IN_FW -s 127.0.0.0/8 -j logdrop
$IPTABLES -A IN_FW -i $INET_IFACE -s $INET_IP -j logdrop

# ... dalsi rezervovane adresy mozno doplnit podle
#       http://www.iana.com/assignments/ipv4-address-space

# Blokování spamerů

$IPTABLES -A IN_FW -s 61.72.0.0/13 -j logdrop
$IPTABLES -A IN_FW -s 61.80.0.0/12 -j logdrop
$IPTABLES -A IN_FW -s 61.154.0.0/255.255.0.0 -j logdrop
$IPTABLES -A IN_FW -s 195.166.224.0/19 -j logdrop
$IPTABLES -A IN_FW -s 65.182.134.212/27 -j logdrop
$IPTABLES -A IN_FW -s 65.182.134.224/29 -j logdrop
$IPTABLES -A IN_FW -s 65.182.134.232 -j logdrop
$IPTABLES -A IN_FW -s 65.182.134.233 -j logdrop
$IPTABLES -A IN_FW -s 65.6.55.0/255.255.255.0 -j logdrop
$IPTABLES -A IN_FW -s 130.228.184.234 -j logdrop
$IPTABLES -A IN_FW -s 62.166.232.0/22 -j logdrop


# Retezec pro stanoveni limitu prichozich SYN konexi (ochrana pred SYN floods)
# propusti pouze 4 SYN segmenty/sec
$IPTABLES -N syn-flood
$IPTABLES -F syn-flood
$IPTABLES -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPTABLES -A syn-flood -j DROP

# FORWARD
# Navazovani spojeni ala Microsoft -
# Paket navazuje spojeni, ale nema nastaveny priznak SYN, pryc s nim
$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
# Nechceme rezervovane adresy na rozhrani
$IPTABLES -A FORWARD -j IN_FW
$IPTABLES -A FORWARD -p tcp --syn -j syn-flood
$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT

# Routing pouze pro navazana spojeni (stavovy firewall)
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Sluzbu AUTH neni dobre filtrovat pomoci DROP, protoze to muze
# vest k prodlevam pri navazovani nekterych spojeni. Proto jej
# sice zamitneme, ale tak, aby nedoslo k nezadoucim prodlevam.
$IPTABLES -A FORWARD -p TCP --dport 113 -j REJECT --reject-with tcp-reset #AUTH server

#Zakázání něktrerých služeb které se nesmí routovat
$IPTABLES -A FORWARD -p tcp --dport 23:25 -j logdrop
$IPTABLES -A FORWARD -p udp --dport 23:25 -j logdrop
$IPTABLES -A FORWARD -p tcp --dport 137:139 -j logdrop
$IPTABLES -A FORWARD -p udp --dport 137:139 -j logdrop
$IPTABLES -A FORWARD -p tcp --dport 67:69 -j logdrop
$IPTABLES -A FORWARD -p udp --dport 67:69 -j logdrop
$IPTABLES -A FORWARD -p tcp --dport 445 -j logdrop
$IPTABLES -A FORWARD -p udp --dport 445 -j logdrop

# Routing ze sítě do internetu povolen
$IPTABLES -A FORWARD -i $LAN1_IFACE -o $INET_IFACE -j ACCEPT

# Ostatni pakety budou zahozeny, tak je budeme logovat (12 x 5 pkt/hod)
$IPTABLES -A FORWARD -m limit --limit 12/h -j LOG --log-prefix "FORWARD drop: " --log-level 6

#
# Retezec INPUT
#

# Navazovani spojeni ala Microsoft -
# Paket navazuje spojeni, ale nema nastaveny priznak SYN, pryc s nim
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# local
$IPTABLES -A INPUT -i lo -j ACCEPT

# Nejprve se zbavime nezadoucich adres
$IPTABLES -A INPUT -j IN_FW

# Odfiltrovat pokusy o syn-flooding
$IPTABLES -A INPUT -p tcp --syn -j syn-flood

# Odfiltrovat pokusy o zahlceni icmp
$IPTABLES -A INPUT -p icmp -j syn-flood
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT

# Pakety od navazanych spojeni jsou v poradku
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Stejne jako pakety z lokalni site, jsou-li urceny pro nas
$IPTABLES -A INPUT -i $LAN1_IFACE -d $LAN1_IP -j ACCEPT
$IPTABLES -A INPUT -i $LAN1_IFACE -d $LAN1_BCAST -j ACCEPT
$IPTABLES -A INPUT -i $LAN1_IFACE -d $INET_IP -j ACCEPT


# Pravidla pro povolene sluzby

# WWW
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT

# DC
#/sbin/iptables -A INPUT -p tcp --dport 9176 -j ACCEPT
# DC
#/sbin/iptables -A INPUT -p udp --dport 9176 -j ACCEPT
# edonkey
#/sbin/iptables -A INPUT -p tcp --dport 4662 -j ACCEPT
# edonkey
#/sbin/iptables -A INPUT -p udp --dport 4662 -j ACCEPT
# edonkey
#/sbin/iptables -A INPUT -p tcp --dport 4663 -j ACCEPT
# edonkey
#/sbin/iptables -A INPUT -p udp --dport 4663 -j ACCEPT

#SMTP
$IPTABLES -A INPUT -p tcp --dport 25 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 25 -j ACCEPT

# Sluzbu AUTH neni dobre filtrovat pomoci DROP, protoze to muze
# vest k prodlevam pri navazovani nekterych spojeni. Proto jej
# sice zamitneme, ale tak, aby nedoslo k nezadoucim prodlevam.
$IPTABLES -A INPUT -p TCP --dport 113 -m limit --limit 12/h -j LOG --log-prefix "INPUT   drop: " --log-level 6
$IPTABLES -A INPUT -p TCP --dport 113 -j REJECT --reject-with tcp-reset #AUTH server

# Vsechno ostatni je zakazano - tedy logujeme, maxim. 12x5 pkt/hod
$IPTABLES -A INPUT -m limit --limit 12/h -j LOG --log-prefix "INPUT   drop: " --log-level 6

#
# Retezec OUTPUT
#

# local
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# TOS flagy slouzi k optimalizaci datovych cest. Pro ssh, ftp a telnet
# pozadujeme minimalni zpozdeni. Pro ftp-data zase maximalni propostnos
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --dport ssh -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --dport ftp -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --dport telnet -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput

# Povolime odchozi pakety, ktere maji nase IP adresy
$IPTABLES -A OUTPUT -s $LAN1_IP -j ACCEPT
$IPTABLES -A OUTPUT -s $INET_IP -j ACCEPT
# Ostatni pakety logujeme (nemely by byt zadne takove)
$IPTABLES -A OUTPUT -j LOG --log-prefix "OUTPUT  drop: " --log-level 6


# LOGUJ OSTATNI
#/sbin/iptables -A OUTPUT -j LOG --log-prefix "OUTPUT  drop posledni: " --log-level 6
#/sbin/iptables -A INPUT  -j LOG --log-prefix "INPUT   drop posledni: " --log-level 6
#/sbin/iptables -A FORWARD -j LOG --log-prefix "FORWARD drop posledni: " --log-level 6

dmnc_net avatar 4.2.2010 10:59 dmnc_net | skóre: 12 | blog: dmnc
Rozbalit Rozbalit vše Re: iptables porty
$IPTABLES -A IN_FW -s 96.0.0.0/4 -j logdrop # rezervovano podle IANA
POZOR, tento obrovsky pool 96.0.0.0/4 uz nejakou dobu neni rezervovany (http://www.iana.com/assignments/ipv4-address-space) a nektere rozsahy jsou dokonce pouzity na uzemi CR.
22.1.2010 16:34 qiRzT | skóre: 14 | blog: U_Marvina
Rozbalit Rozbalit vše Re: iptables porty
Já radši používám něco v tomhle stylu (okomentovaný výstup z iptables-save):
# Generated by iptables-save v1.4.1.1 on Fri Jan 22 16:22:30 2010                                                                                   
*filter                                                                                      
#vsechny chainy povolime                                                     
:INPUT ACCEPT [552271:431396236]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [552271:431396236]

#povolime port 22
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
#povolime nase spojeni
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
#povolime ping
-A INPUT -i eth0 -p icmp -j ACCEPT

#-A INPUT -i eth0 -j LOG #odkomentovat, pokud chceme vsechno ostatni logovat


#o ostatnim rekneme, ze je to nedostupne
-A INPUT -i eth0 -j REJECT --reject-with icmp-port-unreachable

COMMIT
# Completed on Fri Jan 22 16:22:30 2010
Oproti predchozimu je tu rozdil v tom, ze kdyz zadas iptables -F, tak se vsechno povoli. Coz se muzes ocenit pri vzdalenem pristupu, protoze je IMHO mensi sance, ze si odriznes vlastni spojeni.
Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
22.1.2010 16:51 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: iptables porty
tady je zase problém s tím, že je REJECT na INVALID :)

nemluvě o tom, že icmp není ping...

abych jen nekibicoval, tak já používám cca toto.
#!/bin/sh                                                                   
for tables in iptables ip6tables; do
        $tables -P INPUT DROP       
        $tables -P FORWARD DROP     
        for tab in filter nat mangle; do
                $tables -t $tab -F      
                $tables -t $tab -X      
        done                            
done                                    


for tables in iptables ip6tables; do
        $tables -A INPUT -j ACCEPT -i lo

        # prostor pro povolování služeb
        for port in 22 443; do
                $tables -A INPUT -j ACCEPT -p tcp \
                        -m state --state NEW --dport $port
        done
done

iptables -A INPUT -j ACCEPT -m state --state NEW \
        -p icmp --icmp-type echo-request

for tables in iptables ip6tables; do
        $tables -A INPUT -m state --state NEW -j REJECT -p tcp --reject-with tcp-reset
        $tables -A INPUT -m state --state NEW -j REJECT
        $tables -P INPUT ACCEPT
        $tables -P FORWARD ACCEPT
done

In Ada the typical infinite loop would normally be terminated by detonation.
22.1.2010 20:06 qiRzT | skóre: 14 | blog: U_Marvina
Rozbalit Rozbalit vše Re: iptables porty
No neni no.. dovolil jsem si jistou "jak se te jazykové konstrukci říká". Nicméně tvrzení, že tím řádkem povoluju ping není taky úplně špatně - bez toho řádku by nidko pomocí pingu nezjistil, jestli můj počítač odpovídá.

Co znamená, že je REJECT na INVALID a proč je to problém?
Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
vencour avatar 22.1.2010 20:10 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: iptables porty

Když je paket vadnej, proč bys na něj měl vůbec odpovídat? Čili proč generovat další provoz, vyšší vrstvy se už mají o něco postarat, pokud jim to něco bude chybět, od toho je tcp spolehlivé.

Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
22.1.2010 21:10 qiRzT | skóre: 14 | blog: U_Marvina
Rozbalit Rozbalit vše Re: iptables porty
OK, to dává smysl. Proč je ale špatně i DROP, ten nic neposílá, nebo se pletu? A jak to řeší předchozí skript? Nikde tam není něco jako --state INVALID.
Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
22.1.2010 21:32 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: iptables porty
Přesně tak, ten skript to neřeší. INVALID packety si musí vyřešit hostitel sám, protože někdy je správná odpověď DROP a někdy REJECT.
In Ada the typical infinite loop would normally be terminated by detonation.
22.1.2010 22:25 qiRzT | skóre: 14 | blog: U_Marvina
Rozbalit Rozbalit vše Re: iptables porty
A neprotiřečí si to s tím co psal vencour? Mohl bys to přiblížit nebo aspoň nějaký odkaz, kde by to bylo vysvětlené. Resp. je mi jasné, že v tom mém případě to mnohdy zbytečně generuje další paket. Ale jestli to dobře chápu, tak INVALID znamená, že ten paket je nějak poškozený, proč ho potom nezahodit? Co nadělá vyšší vrstva? Nebo jde jen o to, že tím pádem někde dojde k timeoutu, kdežto když bych ho nezahodil, tak se může (na vyšší vrstvě) generovat nějaký chybový paket?
Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
23.1.2010 07:45 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: iptables porty
Když je paket vadnej, proč bys na něj měl vůbec odpovídat? Čili proč generovat další provoz, vyšší vrstvy se už mají o něco postarat, pokud jim to něco bude chybět, od toho je tcp spolehlivé.
Potíž je v tom, co si o invalid myslí netfilter a tcp.

Momentálně je v netfilteru INVALID považován každý packet, který nějakým způsobem "nesedí". Například může patřit platnému spojení ale mít špatný checksum. V tom případě normální TCP packet zahodí a počká si na nové odvysílání. Pokud byste provedli nad tímto packetem REJECT, tak zabijete platné spojení.

Na druhou stranu jsou INVALID i packety, které nepatří žádnému spojení. A na takové packety (resp. jejich podstatnou část) odpovídá TCP stack REJECTem, tedy posláním RST. Pokud budete takové pakety zahazovat, může to vyústit v zajímavé důsledky. Například si někdo může nastavit IP adresu shodnou s Vámi a celkem beztrestně s ní navazovat TCP spojení.

Podtrženo sečteno, normální TCP stack se chová v různých situacích různě. Netfilter neumí tyto situace dost dobře rozlišit... pokud se přikloníte k jedné akci, budete se odchylovat od standardního chování.

K čemuž bych ještě připojil malý dovětek o DROP obecně (tj. na nové spojení). Je to také jedno z porušení standardního chování. Dělat mrtvého brouka nepřináší žádný bezpečnostní benefit. Je lepší se chovat standardně, tj. tak, jako by dané služby byly zavřené, například pomocí takové sady pravidel, jak jsem uvedl výše.

In Ada the typical infinite loop would normally be terminated by detonation.
vencour avatar 23.1.2010 09:37 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: iptables porty

Jo taky pravda, musel jsem jednou zkoumat chování vpn klienta a iptables mi dané pakety klasifikovaly jako vadné. Tak jsem přidal vpn bránu jako "-d X accept" a "-s X accept" a bylo po problémech.

Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
23.1.2010 10:44 qiRzT | skóre: 14 | blog: U_Marvina
Rozbalit Rozbalit vše Re: iptables porty
Dík za vysvětlení, pořád se mám co učit :-) Takže jestli tomu dobře rozumím, tak s tím mým nastavením se mi může stát to, že někdy přijdu tcp spojení, který by jinak (pokud bych INVALID paket předal dál) vydrželo? Nemůže takový paket být zpracován už jako RELATED,ESTABLISHED?

A ještě jeden dotaz - myslel jsem si že POLICY (tj. -P) se nastavuje jako globální záležitost - to na co se nenajde pravidlo, na to se použije POLICY. V tomhle smyslu, ale moc nerozumím tomu skriptu - přijde mi to jako:

-P INPUT DROP

nějaká pravidla

-P INPUT ACCEPT

To první -P INPUT DROP mi přijde zbytečné, pač se to na konci přehodí. Nebo je to tak, že -P je součást toho řetězce? Kde se pletu?

Dík.
Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
23.1.2010 12:00 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: iptables porty
Takže jestli tomu dobře rozumím, tak s tím mým nastavením se mi může stát to, že někdy přijdu tcp spojení, který by jinak (pokud bych INVALID paket předal dál) vydrželo?
Ano, zrovna tuhle anomálii jsem už viděl i "naživo". Zkuste na pomalé lince začít něco stahovat a pravděpodobně na to narazíte taky.
Nemůže takový paket být zpracován už jako RELATED,ESTABLISHED?

Neznám vnitřnosti netfilteru tak detailně, abych na to odpověděl; zkuste se zeptat v mail listu netfilteru. Kdysi tam nějaká diskuse kolem toho byla a výsledkem byl modul "unclean", jehož osud je ale nejistý, existuje-li ještě.
-P INPUT DROP

nějaká pravidla

-P INPUT ACCEPT
To je jen pojistka proti tomu, když ten skript někdo pustí na běžícím stroji. Na začátku se vyprazdňuje celá konfigurace (-F a -X), takže pokud by tam zůstal ACCEPT, tak máte otevřené dveře do doby, než skript nastaví další pravidla. Ta doba nemusí být nutně zanedbadelná, zvlášť u delších skriptů.

BTW další poučka zní že tento skript se spustí ještě předtím, než nahodíte jakýkoliv interface (snad kromě loopbacku), jinak se vystavujete stejnému problému, neboť konfigurace firewallu po startu počítače je ACCEPT.
In Ada the typical infinite loop would normally be terminated by detonation.
23.1.2010 15:53 qiRzT | skóre: 14 | blog: U_Marvina
Rozbalit Rozbalit vše Re: iptables porty
Dík za vysvětlení :-)
Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
7.2.2010 12:09 f1lo | skóre: 16
Rozbalit Rozbalit vše Re: iptables porty
Vaše řešení se mi zdá nejpřehlednější a nejlépe řešené a splňuje přesně to, co jsem požadoval.

Jen se ještě zeptám, v skriptu jsem zahlédl ip6tables, tzn. mohu tento skript využít i pro ipv6?

Děkuji
9.2.2010 06:30 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: iptables porty
Díky.

IPv6 se použít dá, ale v tom co jsem poslal jsem zapomněl ještě na jednu pasáž a sice
for type in neighbour-solicitation echo-request; do
        ip6tables -A INPUT -j ACCEPT -m state --state NEW \
                -p ipv6-icmp --icmpv6-type $type
done
kde to podstatné je ten "neighbour-solicitation".

(Patří to někam kolem toho jak se povoluje ten ipv4 ping.)

A pak dále má smysl pro každou povolenou službu použít for cyklus s iptables i ip6tables, tak jak je naznačeno.

In Ada the typical infinite loop would normally be terminated by detonation.
9.2.2010 21:32 f1lo | skóre: 16
Rozbalit Rozbalit vše Re: iptables porty
Dobře, děkuji mnohokrát, moc jste mi pomohl.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.