» »

iptables problem

iptables problem

poweroff ::

Torej, rad bi naredil požarni zid, ki bo spustil notri samo web promet in ssh iz določenega IP naslova, pri čemer pa bo tukaj preverjal še ali se iz tega naslova skuša izvajati brutforce na SSH.

Zadevo sem zastavil takole:

#!/bin/sh
# IP streznika
SERVER_IP="xxx.xxx.xxx.xxx"

# Flushing all rules
/sbin/iptables -F
/sbin/iptables -X

# Setting default filter policy
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

# Allow unlimited traffic on loopback
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

# Allow incoming http
/sbin/iptables -A INPUT -p tcp -s 0/0 -d $SERVER_IP --sport 513:65535 --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s $SERVER_IP -d 0/0 --sport 80 --dport 513:65535 -m state --state ESTABLISHED -j ACCEPT

# Allow incoming SSH from certain IPs
/sbin/iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -d $SERVER_IP --sport 513:65535 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s $SERVER_IP -d xxx.xxx.xxx.xxx --sport 22 --dport 513:65535 -m state --state ESTABLISHED -j ACCEPT

# Rrate-limit all incoming SSH connections to 8 in a one minute window
/sbin/iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
/sbin/iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP

Problem je, da zadeva ne deluje - zaklenem se ven. No, za vsak slučaj sem v cronjob dodal tudi tole (crond je laufal):
*/1 * * * * /sbin/iptables

In kaj se je zgodilo? Valjda sem se zaklenil ven, plus cron mi ni odklenil mašine. JE bilo treba klicat hosting providerja za reset... :'(

OS je pa CentOS.

Any idea?
sudo poweroff

misek ::

Sem nekoč bral en članek o takšnih zadevah. Ena izmed pomembnih točk je bila: ne piši pravila, če ne poznaš podrobnosti iptable delovanja. Boljše je uporabiti vnaprej pripravljene skripte. Recimo Arno's iptables firewall že ima SSH Brute Force Protection plugin.

poweroff ::

No, saj to je ena skripta, ki sem jo malenkost prilagodil.
sudo poweroff

Bakunin ::

poweroff je izjavil:


Problem je, da zadeva ne deluje - zaklenem se ven. No, za vsak slučaj sem v cronjob dodal tudi tole (crond je laufal):
*/1 * * * * /sbin/iptables
...
Any idea?


ce imas "default policy" na DROP, potem bos moral tudi ti spremeniti preko cronjoba

recimo:
resetiptables.sh

# Flushing all rules
/sbin/iptables -F
/sbin/iptables -X

# Setting default filter policy
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT

pa mislim, da imas cronjob narobe napisan [ man 5 crontab].

jaz sicer za tak primer uporabim v sosednjem oknu (screen?): sleep 30 && resetiptables.sh

kar se pa iptables "rules" tice


# Allow incoming SSH from certain IPs

...

# Rrate-limit all incoming SSH connections to 8 in a one minute window
..

jaz bi na tvojem mestu naredil nov "queue" in delal z njim.

(lahko ti posljem primer na ZS)

Zgodovina sprememb…

  • spremenil: Bakunin ()

c3p0 ::

*/1 * * * * /sbin/iptables

*/1 ti je isto kot *

S tem da ti ta ukaz tu ne naredi nič.

Drugače pa priporočam brezplačni firewall CSF, vključuje tudi monitoring daemon, ki blokira IPje glede na razne bf poskuse. Tudi npr. večkrat napačno vpisano geslo preko brskalnika, pop3. Super za strežnike, kjer je dosti uporabnikov in ne moreš kar vsega zaklenit le na par IPjev.

Da ni treba klicat providerja, je pa dobro imet kak strežnik z IPMI modulom. :)

poweroff ::

OK, kaj pa tole:

*/2 * * * * /home/matthai/resetiptables.sh

Po moji logiki bi se to moralo zagnati vsake 2 minute.. pa se ne.
sudo poweroff

misek ::

Zapis meni deluje ok. A na roke gre zagnati skripto (je executable)?

poweroff ::

Na roke jo zaženem in deluje (ker ima notri en echo).

Pač sh resetiptables.sh

Notri pa je echo "RESET" >> /home/matthai/obvestilo.txt
sudo poweroff

misek ::

Tudi v cron daj sh /home/matthai/resetiptables.sh. Šeboljše pa je da daš v prvo vrstico skripte #!/bin/sh

c3p0 ::

Se skripta sploh zaganja kot root?

Poglej tudi v loge, zna kaj pisat.

Bakunin ::

focus!

problem je v iptables in ne v crontab.

odpres si se en ssh na streznik in tam pozenes 'sleep 15 && /home/matthai/resetiptables.sh'

in ce v prvotni ssh seji pozenes firewall in zaj****, bos imel spet dostop v 15 sekundah.

K.I.S.S.

overlord_tm ::

Glede crona, ga poganjas kot root, ali kot kak drug user? Mozno da nima pravic po iptables sarit.

poweroff ::

Cron problem sem rešil takole:

*/2 * * * * /bin/bash /home/matthai/resetiptables.sh

Iptables pa grem zdajle pogledat kje je problem.
sudo poweroff

poweroff ::

# Rrate-limit all incoming SSH connections to 8 in a one minute window

sem vrgel ven - problem ostaja. Ampak imam vsaj dostop nazaj v 2 minutah. :)
sudo poweroff

misek ::

A web server se tudi ne odziva?

poweroff ::

Nope, crkne vse. Sem pa vrgel tisto skripto stran in sam napisal novo:

#!/bin/sh

# Flushing all rules
/sbin/iptables -F

# Setting default filter policy
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP

# Allow unlimited traffic on loopback
/sbin/iptables -A INPUT -i lo -j ACCEPT

# Keep existing connections
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow ALL incoming http
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# Allow incoming SSH from certain IPs
/sbin/iptables -A INPUT -p tcp -s ******* --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s ******* --dport 22 -j ACCEPT

Tole sedaj dela, a v konzoli javi iptables: Unknown error 4294967295

Tole mi izgleda kot OpenVZ problem... bo treba kontaktirat hosting providerja.
sudo poweroff

c3p0 ::

Možno da ti provider ni vklopil ipt_state modula za tvoj VPS. Vsekakor je bolj komot opcija XEN VPS, a je ponavadi dražji.

redo ::

Morda je problem v tvojih OUTPUT vrsticah in stanjem ESTABLISHED?

$ man iptables


NEW meaning that the packet has started a new connection, or other‐
wise associated with a connection which has not seen packets in
both directions, and

ESTABLISHED
meaning that the packet is associated with a connection which
has seen packets in both directions,

poweroff ::

redo, po moje ne, ker če dam to ven, se mi prekinejo obstoječe povezave in se zaklenem ven. Vsaj tako razumem tole.
sudo poweroff

redo ::

Če zakomentiraš OUTPUT vrstice, ali zbrišeš spraševanje po stanjih v le-teh ali dodaš stanje NEW, se še vedno zakleneš?

redo ::

redo je izjavil:

Če zakomentiraš OUTPUT vrstice ...

(in nastaviš OUTPUT privzeto na ACCEPT, seveda)

Zgodovina sprememb…

  • spremenilo: redo ()

poweroff ::

Nisem še preiskusil. Bom najprej počakaj na openvz rešitev glede tiste napake. Pa sem grem potem špilat dalje...
sudo poweroff

poweroff ::

Neat. Error:
iptables: Unknown error 4294967295

Mi vrne tale ukaz:
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Še to - hosting provider pravi, da ni problem pri njih.
sudo poweroff

Zgodovina sprememb…

  • spremenilo: poweroff ()

c3p0 ::

To je pogost VPS problem (zgoraj sem namignil kje je napaka) -> menjaj providerja.

poweroff ::

Žal menjava providerja ni mogoča...
sudo poweroff


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

ProtFtp Passive mode in iptables

Oddelek: Programska oprema
252242 (2064) SasoS
»

iptables problem z SSH

Oddelek: Omrežja in internet
121908 (1762) sverde21
»

pomoč pri iptables

Oddelek: Omrežja in internet
102601 (2430) HellRaiseR
»

iptables skripta

Oddelek: Omrežja in internet
72115 (1895) karafeka
»

iptables + forward

Oddelek: Operacijski sistemi
332324 (1899) tx-z

Več podobnih tem