Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-06-22 14:45:54

  yomal79 - Użytkownik

yomal79
Użytkownik
Skąd: Jordanów
Zarejestrowany: 2011-12-15

iptables Czasowe przekierowanie na inny adres IP

Ludzie jak poprawnie zapisać regułkę w iptables żeby przekierowała zablokowanego klienta za każdym razem jak kliknie w jakąś stronkę na inny adres z własną stroną www ?

Samo przekierowanie działa ale klient jest całkowicie zablokowany
Tak wygląda regułka

Kod:

iptables -t nat -A PREROUTING -i wlan0 -p tcp -s 125.1.1.100 --dport 80 -j DNAT --to-destination 125.1.1.1:100

Offline

 

#2  2012-06-22 14:52:27

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: iptables Czasowe przekierowanie na inny adres IP

Przekierowujesz pacjenta na jego wlasny adres? nic dziwnego, że blokuje.

Co rozumiesz przez czasowe?
Bo jesli chodzi o blokady np od wtorku 16.37 do czwartku 13.53 - to iptables, moduł time da radę.
Lista opcji w wyniku

Kod:

iptables -m time --help

To by było na tyle
;-)

Ostatnio edytowany przez Jacekalex (2012-06-22 14:54:01)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2012-06-22 14:56:33

  yomal79 - Użytkownik

yomal79
Użytkownik
Skąd: Jordanów
Zarejestrowany: 2011-12-15

Re: iptables Czasowe przekierowanie na inny adres IP

Server jest jednocześnie routerem 125.1.1.1 to brama a 125.1.1.100 to adres klienta Mam zainstalowane apache2 a na nim stronkę z informacją "Pora Zapłacić" Chciałbym żeby ta stronka w trakcie przeglądania internetu mu się pojawiała na 5 sekund i znikała na 10 minut i tak do uiszczenia opłat Szukałem i MAN mi nie pomaga :(


Próbowałem takiej regułki ale stronka cały czas wisi i klient jest zablokowany ...

Kod:

iptables -t nat -A PREROUTING -p tcp --dport 80 -s 125.1.1.100 -m limit  --limit 5/s --limit-burst 1 -j DNAT --to-destination 125.1.1.1:100

Ostatnio edytowany przez yomal79 (2012-06-22 15:00:46)

Offline

 

#4  2012-06-22 14:59:29

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: iptables Czasowe przekierowanie na inny adres IP

Trzeba było wyjaśnić w pierwszym poście, zaintereduj się modułami hashlimit i recent, te potrafią conieco  w takim zastosowaniu.

Choć zazwyczaj stosuje się je do blokowania ataków bruteforce i limitowania polączeń.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2012-06-22 15:48:44

  yomal79 - Użytkownik

yomal79
Użytkownik
Skąd: Jordanów
Zarejestrowany: 2011-12-15

Re: iptables Czasowe przekierowanie na inny adres IP

Szukam szukam i nic Jakieś pomysły Czy ktoś się spotkał z czymś takim ?

Offline

 

#6  2012-06-22 16:15:01

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: iptables Czasowe przekierowanie na inny adres IP

Spotkał:
Stare: http://stary.dug.net.pl/texty/masq.php

Inna sprawa, ze zastanawiam się, czy tu chodzi o poradę, czy o coś w rodzaju zadania domowego, czy pieluszek dla administratora.

Reguly iptables nie działają w próżni, są częscią całego firewalla.

I można np przepuszaczać pacjentów legalnych przy pomocy ipset:

Kod:

  
iptables -t nat -A PREROUTING -p tcp --dport 80 -m set --match-set zablokowani src -m hashlimit  --hashlimit 1  --limit-burst 1 -j DNAT --to-destination 125.1.1.1:100
iptables -t nat -A PREROUTING -i eth0   -m set --match-set pacjenci src -j ACCEPT

Do tego domyślna polityka na DROP, i mamy sprawdzanie mac:ip  i obcinanie niepłacących, żeby np co godzinę, czy jak tam w hashlimit ustawisz, widzieli ostrzeżenie..
Pisane na kolanie, nie sprawdzone (hashlimit pewnie trzeba poprawić), ale mniej więcej tak to powinno wyglądać.

Do listy pacjentów i zablokowanych radzę ipset, znacznie wygodniej się go używa, i ma tablice mac:ip, co się przydaje w takich sytuacjach.

A tu masz przykład użycia ipseta:

Kod:

#!/bin/bash
cd /var/hasiok
wget -N http://www.spamhaus.org/drop/drop.lasso
if [ -n "$1" ]; then
    DropList="$1"
else
    DropList="/var/hasiok/drop.lasso"
fi
if [ ! -x /usr/sbin/ipset ]; then
    echo "Missing ipset command line tool, exiting." >&2
    exit 1
fi
if [ -s "$DropList" ]; then
    /usr/sbin/ipset create spamhaus hash:net  2>/dev/null
    /usr/sbin/ipset flush spamhaus   2>/dev/null
else     
    echo "Unable to find drop list file $DropList .  Perhaps do:" >&2
    echo "wget http://www.spamhaus.org/drop/drop.lasso -O $DropList"
    echo "exiting." >&2
    exit 1
fi;
cat "$DropList" \
 | sed -e 's/;.*//' \
 | grep -v '^ *$' \
 | while read OneNetBlock ; do
sleep 0.01;    /usr/sbin/ipset add spamhaus "$OneNetBlock";
done;
exit 0;

to akurat przyklad pakowania listy XBL Spamhausa do firewalla
Ipseta można użyć np ze skryptem, który wyciągnie z bazy sql listę pacjentów, i przerobi ją na tablicę ipseta.
To samo z listą zablokowanych.

To by było na tyle   
;-)

Ostatnio edytowany przez Jacekalex (2012-06-22 16:15:32)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#7  2012-06-22 16:51:27

  yomal79 - Użytkownik

yomal79
Użytkownik
Skąd: Jordanów
Zarejestrowany: 2011-12-15

Re: iptables Czasowe przekierowanie na inny adres IP

Ale z tymi pieluszkami to nie musiałeś :)
...teraz się wyda że robie w ubranka :P
Tak na serio to domowe zastosowanie Mam L4 bo mnie krtań chwyciła i z braku laku sobie na serwerku dłubie

Offline

 

#8  2012-06-22 18:16:27

  yomal79 - Użytkownik

yomal79
Użytkownik
Skąd: Jordanów
Zarejestrowany: 2011-12-15

Re: iptables Czasowe przekierowanie na inny adres IP

Chyba coś nie działa.
Zgodnie z tym co jest napisane w MAN dla iptables -m hashlimits --help

Kod:

hashlimit match options:
  --hashlimit-upto <avg>           max average match rate
                                   [Packets per second unless followed by
                                   /sec /minute /hour /day postfixes]
  --hashlimit-above <avg>          min average match rate
  --hashlimit-mode <mode>          mode is a comma-separated list of
                                   dstip,srcip,dstport,srcport (or none)
  --hashlimit-srcmask <length>     source address grouping prefix length
  --hashlimit-dstmask <length>     destination address grouping prefix length
  --hashlimit-name <name>          name for /proc/net/ipt_hashlimit
  --hashlimit-burst <num>           number to match in a burst, default 5
  --hashlimit-htable-size <num>    number of hashtable buckets
  --hashlimit-htable-max <num>     number of hashtable entries
  --hashlimit-htable-gcinterval    interval between garbage collection runs
  --hashlimit-htable-expire        after which time are idle entries expired?

To taki łańcuch powinien pozwolić mi na wykonanie 10 pingów do serwera a jedynasty powinien doprowadzić do przekierowania adresu 125.1.1.100 na adres 125.1.1.1:100
Kurcza paka mi to nie działa

Tak mam w firewall

Kod:

#! /bin/sh

### BEGIN INIT INFO
# Provides:          firewall
# Required-Start:    $syslog $network
# Required-Stop:     $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: firewall
# Description:       firewall
### END INIT INFO

start_f(){
echo "Uruchomienie firewall..."

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
iptables -t mangle -F
iptables -t mangle -X

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

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

iptables -t nat -A POSTROUTING -s 100.1.1.0/24 -j MASQUERADE
iptables -A FORWARD -s 100.1.1.0/24 -j ACCEPT

iptables -t nat -A POSTROUTING -s 125.1.1.0/24 -j MASQUERADE
iptables -A FORWARD -s 125.1.1.0/24 -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 8525 -j ACCEPT

iptables -t nat -A PREROUTING -i wlan0 -p tcp -s 125.1.1.100 --dport 80 -m hashlimit --hashlimit-upto 5/sec  --hashlimit-burst 10 --hashlimit-name block --hashlimit-mode srcip   -j DNAT --to-destination 125.1.1.1:100





}

stop_f() {
echo "Zatrzymywanie firewall..."

iptables -F
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter
iptables -Z

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

}

case "$1" in

start)
start_f
;;

stop)
stop_f
;;

restart)
stop_f
start_f
;;

*)
echo "Użycie firewalla: etc/init.d/firewall start|stop|restart"
;;

esac

exit 0

Offline

 

#9  2012-06-22 18:29:08

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: iptables Czasowe przekierowanie na inny adres IP

iptables -A  SMTP ! -i lo -m connlimit --connlimit-upto 10 --connlimit-mask 0 --connlimit-saddr -m hashlimit --hashlimit-upto 1/min --hashlimit-burst 1 --hashlimit-mode srcip --hashlimit-name smtp -j ACCEPT

To regułka do małego serwera poczty, pozwalająca na 10 połączeń  równocześnie - moduł connlimit, ale 1 połączenia na minutę z jednego IP (to realizuje hashlimit).

Wartość hashlimit sprawdzona empirycznie, przy mniejszej wartości nie wpuszczał maili.

Możesz ją potestować i dopasować do swojej sytuacji.

Natomiast zamiast wrzucania skryptu, na przyszłość naucz się poleceń

Kod:

iptables -S 
iptables -t nat -S 
iptables -t mangle -S
iptables -t raw -S

w ten sposób wyświetla sie reguły w kolejności, w jakiej wykonuje je firewall, i są przez to czytelniejsze od jakiegoś skryptu.

Poza tym doś clamerski ten skrypt, znacznie lepiej moim zdaniem używać poleceń iptables-save / iptables-restore

Ostatnio edytowany przez Jacekalex (2012-06-22 18:33:16)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#10  2012-06-22 18:36:30

  yomal79 - Użytkownik

yomal79
Użytkownik
Skąd: Jordanów
Zarejestrowany: 2011-12-15

Re: iptables Czasowe przekierowanie na inny adres IP

To znaczy że coś nie tak w skrypcie ?
Skorzystałem z tego co znalazłem w poście o  MASQUARADE

Offline

 

#11  2012-06-22 18:47:44

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: iptables Czasowe przekierowanie na inny adres IP

Nie sprawdzałem całego skryptu, zwróciłem tylko uwagę na bezsensowność walenia reguł w skrypcie w /etc/init.d

Spróbuj tak:

Kod:

iptables-save >/na/dysku/plik
iptables-restore </na/dysku/plik

i zo baczysz, ze to znacznie prostrzy i skuteczniejszy sposób sterowania firewallem - w wariancie "dynamicznym" - po uruchomieniu trybu restore wczytuje wszystko, co ma zapisane w pliku reguł.
Jak ubierzesz to w skrypt, który przy wyłączaniu kompa będzie  robil save, a przy uruchomieniu restore, masz calkiem sprawny firewall.

Jak natomiast chcesz skryptem, to skrypt robisz w /usr/local/sbin/skrypt - i potem możesz go odpalić bezproblemowo z powłoki roota, a do startu systemu wystarczy go podlinkować do folderu /etc/network/if-up.d albo /etc/network/if-pre-up.d, lub wywołać z pliku konfiguracyjnego /etc/network/interfaces.
W /etc/network masz stadndardowe zaczepy funkcji odpalanych przy włączeniu i wyłączeniu sieci, które znacznie lepiej nadają sie do sterowania firewallem, aniżeli skrypt startowy w /etc/init.d.

Krótko pisząc, w Debianie czytaj najpierw

Kod:

man interfaces

W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#12  2012-06-22 19:02:47

  yomal79 - Użytkownik

yomal79
Użytkownik
Skąd: Jordanów
Zarejestrowany: 2011-12-15

Re: iptables Czasowe przekierowanie na inny adres IP

@Jacekalex pewnie masz mnie dość
Znalazłem coś takiego http://www.archivum.info/pl.comp.os.linux/2008-07/0 … iptables.html

Dostaje taki komunikat

Kod:

root@debian:~# /etc/init.d/firewall restart
Zatrzymywanie firewall...
Uruchomienie firewall...
iptables v1.4.8: option `limit' requires an argument
Try `iptables -h' or 'iptables --help' for more information.

Jak dodać moduł "limit" do kernela ?

Offline

 

#13  2012-06-22 19:31:35

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: iptables Czasowe przekierowanie na inny adres IP

Masz ten modul limit w jaju, tylko w skrypcie masz jakąś literówkę, dlatego nie lapie argumentów dla limit.
Reguły iptables się pisze w jednej linijce.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#14  2012-06-22 19:42:13

  yomal79 - Użytkownik

yomal79
Użytkownik
Skąd: Jordanów
Zarejestrowany: 2011-12-15

Re: iptables Czasowe przekierowanie na inny adres IP

Proszę o zweryfikowanie

Kod:

iptables -t nat -A PREROUTING -i wlan0 -p tcp -s 125.1.1.100 --dport 80 -m limit --limit 30/sec --limit-burst 3 -j DNAT --to-destination 125.1.1.1:100

Przez chwile to działało i nawet miałem już wkleić ale po restarcie przeglądarki zdechło ...

Offline

 

#15  2012-06-22 19:52:48

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: iptables Czasowe przekierowanie na inny adres IP

to wrzuć do terminala (albo konsoli) na którym jesteś zalogowany na roota, i gotowe.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#16  2012-06-22 20:25:56

  yomal79 - Użytkownik

yomal79
Użytkownik
Skąd: Jordanów
Zarejestrowany: 2011-12-15

Re: iptables Czasowe przekierowanie na inny adres IP

Coś z tym modułem jest nie teges Jak ustawie --limits-burst 1 --limits 1/minute to prawie działa...
Prawie znaczy się raz na jakiś czas pokazuje się moja stronka Co jakiś czas też jest komunikat że nie można znaleźć jakiegoś pliku ze strony którą aktualnie przeglądałem Dziwi mnie to że przeglądarka wyświetla że szuka tego pliku na moim serwerze Mimo wszystko jakakolwiek próba zmiany tych parametrów kończy się :
albo nie działaniem mojej stronki wcale
albo cały czas ona jest i nic się niestety nie da zrobić

Offline

 

#17  2012-06-23 08:14:57

  yomal79 - Użytkownik

yomal79
Użytkownik
Skąd: Jordanów
Zarejestrowany: 2011-12-15

Re: iptables Czasowe przekierowanie na inny adres IP

Poddałem się i postawiłem na "cron"
Napisałem dwa skrypty Jeden "firewall" gdzie na początku jest czyszczenie tablicy routingu a w drugim jest łańcuch który wywala usera na stronkę www

W cronie ustawiłem żeby co 5 minut odpalał się skrypt z przekierowaniem a po 5/sec startował firewall czyszczący tablice i pozwalający na dalsze korzystanie z internetu

Mimo wszystko dziękuje za pomoc i wytrwałość bo pewnie bym na to sam nie wpadł gdyby nie to forum :) i

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)