abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 10:35 | Komunita

Na blogu Oracle se objevila zpráva o tom, že plánovaná verze Java EE 8 bude uvolněna jako open source (referenční implementace a compatibility kit). V současné době je uvolněna jen Java SE (standard edition) pod licencí GPLv2 v podobě OpenJDK (Open Java Development Kit), kterou začal v roce 2006 uvolňovat Sun.

Max | Komentářů: 0
včera 23:55 | IT novinky

Google na YouTube oficiálně představil Android 8.0 Oreo. Přehled novinek v příspěvku na blogu věnovaném vývojářům.

Ladislav Hagara | Komentářů: 11
včera 16:44 | Zajímavý článek

Po téměř 3 měsících od vydání třetího čísla publikoval Michal Špaček na svých stránkách čtvrté číslo newsletteru věnovanému bezpečnosti, bezpečnému vývoji převážně webových aplikací a bezpečnosti uživatelů. Jedná se současně o číslo poslední: "Nepíše se mi to lehce, a trvalo to, než jsem to ze sebe dostal, ale tohle je poslední newsletter v této podobě. Ani jsem ho nestihl pojmenovat a už jsem ho zabil. Nezbývá mi tolik času, abych každou událost, novinku a změnu v prohlížeči detailně popisoval tak, jak bych v newsletteru chtěl, mrzí mě to".

Ladislav Hagara | Komentářů: 1
včera 07:00 | Nová verze

Byla vydána diaspora* ve verzi 0.7.0.0. Jedná se o svobodný software, který slouží jako osobní webový server pro poskytování služeb sociální sítě (Wikipedie). Přehled novinek v příspěvku na blogu a na GitHubu. Sociální síť diaspora* byla před pěti lety předána komunitě.

Ladislav Hagara | Komentářů: 0
včera 06:00 | IT novinky

Společnost Hardkernel stojící za jednodeskovými počítači ODROID představila na YouTube minipočítač určený pro domácí cloud ODROID-HC1 vycházející z ODROID-XU4. Minipočítač s kovovou krabičkou, do které stačí vložit 2 a půl palcový disk, lze koupit za 49 dolarů. ODROID-HC1 je stohovatelný.

Ladislav Hagara | Komentářů: 37
20.8. 16:22 | Nová verze

Byl vydán DB Browser for SQLite (sqlitebrowser) ve verzi 3.10.0. Nejnovější stabilní verze této grafické nadstavby nad relačním databázovým systémem SQLite (Wikipedie) přináší například integraci s DBHub.io, tj. platformou pro sdílení SQLite databází. Podrobnosti na GitHubu.

Ladislav Hagara | Komentářů: 2
20.8. 08:00 | IT novinky

Andy Rubin, spoluzakladatel společnosti Android, jež byla v roce 2005 koupena Googlem, nyní CEO společnosti Essential Products, oznámil předprodej chytrého telefonu Essential. Telefon se začne rozesílat 1. září. Cena telefonu je 699 dolarů. Cena telefonu současně s 360° kamerou s rozlišením 4K byla stanovena na 749 dolarů. Kameru, v budoucnu i další příslušenství, lze k telefonu připojit pomocí konektoru s magnety.

Ladislav Hagara | Komentářů: 0
19.8. 13:44 | Zajímavý software

Evropská komise vydala novou verzi 1.4.0.1 svého open source v Javě naprogramovaného softwaru pro online průzkumy EUSurvey. Online dotazníky lze vytvářet na stránkách Evropské komise nebo si lze software stáhnout (zip a war) a nainstalovat lokálně. Zdrojové kódy jsou k dispozici pod licencí EUPL (European Union Public Licence).

Ladislav Hagara | Komentářů: 0
18.8. 23:55 | Komunita

Ubuntu 17.10 (Artful Aardvark) bude ve výchozím stavu zobrazovat Dok (Launcher). Jedná se o rozšíření GNOME Shellu Ubuntu Dock. To bylo forknuto z rozšíření Dash to Dock. Ukázka na YouTube [reddit].

Ladislav Hagara | Komentářů: 8
17.8. 15:33 | Nová verze

Byla vydána verze 17.08.0 KDE Aplikací (KDE Applications). Přehled novinek v kompletním seznamu změn a na stránce s dalšími informacemi. Aplikace kmag, kmousetool, kgoldrunner, kigo, konquest, kreversi, ksnakeduel, kspaceduel, ksudoku, kubrick, lskat a umbrello byly portovány na KDE Frameworks 5.

Ladislav Hagara | Komentářů: 0
Těžíte nějakou kryptoměnu?
 (5%)
 (2%)
 (18%)
 (76%)
Celkem 374 hlasů
 Komentářů: 21, poslední 13.8. 09:57
    Rozcestník

    Dotaz: iptables porty

    21.1.2010 20:53 f1lo | skóre: 16
    iptables porty
    Přečteno: 1861×
    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:


    Odpovědi

    21.1.2010 23:09 Petr Šobáň | skóre: 79 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: iptables porty
    #!/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: 79 | 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: 55 | 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: 55 | 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   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.