abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

    Ladislav Hagara | Komentářů: 0
    dnes 00:11 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 0
    včera 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 11
    26.4. 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 9
    26.4. 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 41
    25.4. 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 14
    25.4. 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 3
    25.4. 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    25.4. 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 840 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: iptables porty

    21.1.2010 20:53 f1lo | skóre: 16
    iptables porty
    Přečteno: 1950×
    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: 80 | 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: 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   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.