logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

IPTABLES, blokowanie całego ruchu sieciowego oprócz wybranych usług

bulwaa7 26 Maj 2013 09:59 4998 1
REKLAMA
  • #1 12346678
    bulwaa7
    Poziom 9  
    Posty: 16
    Mam 2 serwery
    ClearOS
    interfejs wyjściowy 192.168.1.90
    interfejs wewnątrz sieci 192.168.3.1

    Ubuntu Server
    interfejs podłączony pod ClearOS 192.168.3.90

    Potrzebuję zablokować cały ruch sieciowy przez IPTABLES w ClearOS do Ubuntu Server (192.168.3.90) od zewnątrz sieci oprócz portu 22222, 22223 i portu 80.

    Dokonałem coś takiego:
    Przekierowanie SSH z ClearOS na UbuntuServer
    iptables -t nat -A PREROUTING -p tcp -d 192.168.1.90 --dport 22223 -j DNAT --to-destination 192.168.3.90:22222 [działa]

    Przekierowanie HTTP z ClearOS na Ubuntu Server
    iptables -t nat -A PREROUTING -p tcp -d 192.168.1.90 --dport 80 -j DNAT --to-destination 192.168.3.90:80 [działa]

    Blokowanie całego ruchu z i do adresu IP 192.168.3.90
    iptables -A INPUT -s 192.168.3.90 -j DROP
    iptables -A OUTPUT -s 192.168.3.90 -j DROP
    iptables -A FORWARD -s 192.168.3.90 -j DROP

    Specjalnie nadałem tym trzem komendom wyższy priorytet (w celu sprawdzenia działania reguły), dzięki czemu przekierowanie na porty 22222 i 80 nie powinno działać, a niestety działa. Co zrobiłem źle? Jak powinna wyglądać reguła blokująca cały ruch sieciowy z i do 192.168.3.90 oprócz portów, 22223, 22222 i 80?
  • REKLAMA
  • #2 12354777
    ozzon
    Poziom 15  
    Posty: 116
    Pomógł: 10
    Ocena: 9
    Czy to jest całość konfiguracji firewalla ?

    Działa Ci pewnie dlatego, że nie powyłączałeś polis ogólnych. Na początku konfiguracji proponuję wpisać skrypt z zestawu jak poniżej (zmień tylko nazwy interfaceów):

      
       iptables -F
       iptables -F -t nat
       iptables -X
       iptables -P OUTPUT ACCEPT
       iptables -P FORWARD DROP
       iptables -P INPUT DROP
    
    # Ogólne zasady dla routera, pakiety powracające z zewnątrz
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    # Wejście z wewnątrz bez ograniczeń
    iptables -A INPUT -i eth1 -j ACCEPT
    


    I dopiero po tym tworzył dalsze reguły. Proponuję prostą funkcję
    function most_tcp()
    # parametry (port_zewnętrzny, IP_wewnętrzne, Port_wewnętrzny)
    {
    iptables -v -t nat -A PREROUTING -d "$out_ip" -p tcp --dport "$1" -j DNAT --to "$2:$3"
    iptables -v -t nat -A POSTROUTING -s "$2" -p tcp --sport "$3" -j SNAT --to "$out_ip:$1"
    iptables -v -A FORWARD -d "$2" -p tcp --dport "$3" -j ACCEPT
    }
    
    most_tcp 22222 192.168.3.90 22222
    most_tcp 22223 192.168.3.90 22223
    most_tcp 80 192.168.3.90 80
    


    Ustaw jeszcze zmienną $out_ip=192.168.1.90
REKLAMA