Skocz do zawartości
Zaloguj się, aby obserwować  
Zelo66

[IPtables] Banowanie czasowe

Polecane posty

Witam, posiadam ubuntu 12.04 z wirtualizacją LXDE. Chciał bym banować czasowo IP, dla danego portu przez IPtables.

Szukałem, szukałem i polecenie na blokowanie IP do konkretnego portu działa:

iptables -A INPUT -p UDP -s IPdoZbanowania --dport portdozbanowania -j DROP

Chciał bym do tego dodać polecenie czasu takiego zbanowania np od 11:00 do 18:00 albo jeśli istnieje taka opcja to np. na 20 minut.

 

Da się to jakoś zrobić?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Cron lub prosty skrypt w bashu.

 

Możesz też użyć o wiele prostszej metody, a mianowicie funkcji --timestart i --timestop

 

iptables -A INPUT -p UDP -s IPdoZbanowania --dport portdozbanowania --timestart 11:00 --timestop 18:00 -j DROP

 

Pamiętaj tylko, że nie jest to standardowy moduł i wymaga instalacji tego

 

Jeszcze inny sposób to wywołanie danej formułki o konkretnym czasie.

 

echo "iptables -I INPUT -s 192.168.1.100 -j DROP" | at @1pm
echo "iptables -D INPUT -s 192.168.1.100 -j DROP" | at @10pm 

Edytowano przez Archi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak właśnie funkcje TIME znalazłem, ale nie działała. NIe wiedziałem dlaczego. Dobrze, teraz spróbuje zainstalować ten moduł ... hmm coś czuję że będzie trudno.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Polecam Ci jednak sposób z at, ponieważ jest najprostszy.

 

Możesz po prostu powiedzieć mi do czego chcesz tej komendy użyć, bo jeśli np. do banowania na czas tymczasowy po xx niezalogowanych próbach chociażby do ssh to są na to prostsze sposoby, jak np. fail2ban czy denyhosts.

Edytowano przez Archi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

TO raczej nie bardzo, chcę użyć tych komend do banowania ludzi odwiedzających serwer w grze (Call of Juarez).

Chce by to było w miare proste, i wystarczało wpisanie jednej komendy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

... A co w tym trudnego?

 

Tworzysz sobie plik ban.sh, wklejasz do niego kodzik

IP=5.5.5.5
ban=@1pm
unban=@10pm

echo "iptables -I INPUT -s $IP -j DROP" | at $ban
echo "iptables -D INPUT -s $IP -j DROP" | at $unban

 

I za pomocą pierwszych 3 zmiennych kontrolujesz skrypt, ja je podałem statycznie ale to nic trudnego dodać parametry do wykonania ban.sh.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

możesz też zrobić coś takiego(przerobiony skrypt archiego):

echo "iptables -I INPUT -s $0 -j DROP" | at $1
echo "iptables -D INPUT -s $0 -j DROP" | at $2

wtedy nie bawisz się zmiennymi tylko wywołujesz powiedzmy:

skrypt.sh 5.5.5.5 @1pm @2pm

i banuje ip 5.5.5.5 od 1 do 2 po południu :)

ps. pewnie ktoś bardziej zaawansowany niż ja by przerobił to tak, żeby można było podawać bez "@":P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

ps. pewnie ktoś bardziej zaawansowany niż ja by przerobił to tak, żeby można było podawać bez "@" :P

 

echo "iptables -I INPUT -s $0 -j DROP" | at @$1
echo "iptables -D INPUT -s $0 -j DROP" | at @$2

Mówię, to nic trudnego ;). Ja pokazałem ogólną koncepcję.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

to jak się dopisze tak po prostu "@" to będzie działać?:P fajnie:P

 

a tak serio to znalazłem fajny, krótki poradnik dla osób ogarniających programowanie(dla osób nie znających składni tylko składni języka):)

http://www.linux.rk.edu.pl/w/p/bash-skrypty/

ja się biorę za studiowanie tego:P

pozdrawiam:)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×