Strona 1 z 1

Iptables - tymczasowe zablokowanie portu 80 dla klienta

: 25 marca 2013, 16:45
autor: grzesiekp
Witam serdecznie,
mam taki oto testowy firewall:

Kod: Zaznacz cały

# ustawienie domyslnej polityki
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT


# utrzymanie połączeń nawiązanych
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED


# localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


# stary zakres pracowniczy
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source XXX.XXX.XXX.XXX
Sieć działa bez zarzutu. Teraz chcę na chwilę zablokować ruch na porcie 80 dla jednego klienta, więc w Bashu wpisuję z palca regułkę:

Kod: Zaznacz cały

sudo iptables -A FORWARD -p tcp -s 192.168.0.197 --dport 80 -j DROP -m state --state ESTABLISHED,RELATED,NEW
Regułka przechodzi, iptables nie wyrzuca błędu.
Ale na kliencie 192.168.0.197 nadal ładują się strony. Dlaczego?

W jaki sposób z palca wpisać regułkę, która zadziała "natychmiast"? Chodzi o kolejność reguł?

Pozdrawiam,
Grzegorz.

: 25 marca 2013, 16:51
autor: Unit
Zobacz sobie w iptables-save, gdzie ta regułka się znajduje i czy inna jej nie nadpisuje.

: 25 marca 2013, 19:53
autor: grzesiekp
Lekko zmodyfikowałem skrypt, ale nadal to samo.

Wynik iptables -L -nv

Kod: Zaznacz cały

Chain INPUT (policy DROP 24 packets, 1725 bytes)
 pkts bytes target     prot opt in     out     source               destination
   59  3654 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0


Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 1436  950K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0
   32  1825 ACCEPT     all  --  eth2   eth0    0.0.0.0/0            0.0.0.0/0
    0     0 DROP       tcp  --  *      *       192.168.0.197        0.0.0.0/0            tcp dpt:80 state NEW,RELATED,ESTABLISHED


Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
   48 12536 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0



Próba z taką regułką (wynik powyżej):

Kod: Zaznacz cały

# czyszczenie starych reguł
iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
iptables -t mangle -F
iptables -t mangle -X


# ustawienie domyslnej polityki
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT


# utrzymanie połączeń nawiązanych
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED


# localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to XXX.XXX.XXX.XXX
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -p tcp -s 192.168.0.197 --dport 80 -j DROP -m state --state ESTABLISHED,RELATED,NEW

: 25 marca 2013, 21:25
autor: piroaa

Kod: Zaznacz cały

iptables -I FORWARD -p tcp -s 192.168.0.197 --dport 80 -j DROP
Pozdrawiam.

: 05 kwietnia 2013, 11:31
autor: sethiel
Iptables używałem dawno temu, ale na 99% można wywołać:

Kod: Zaznacz cały

iptables -L -jeszcze_jakiś_parametr
aby zobaczyć numery linii.

Potem w odpowiedni łańcuch wrzucasz sobie regułkę o określonym numerze linii.

: 19 kwietnia 2013, 14:16
autor: Cyphermen
Piroaa dał ci odpowiedź, przełącznik -A daje twoją regułę na sam koniec a wcześniej masz ACCEPT na wszystko wiec jest nadpisywane

: 07 maja 2013, 19:28
autor: Yampress
Ja bym ten cały firewall przebudował
i na początku wywalił to:
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -o lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
Masz sprzeczne reguły w nim. Wciskasz coś co nie rozumiesz co do czego jest.