Strona 1 z 1

Zablokowany użytkownik regułą IPTABLES, ale zezwolić na wybrane połączenia

: 23 czerwca 2012, 12:20
autor: Najkon
Witam,

Mam mały problem z jedną konfiguracją. Mam sobie użytkowników w sieci, którzy są rozpoznawani za pomocą MAC-ków (czyli standardowo).
Od paru dni usiłuje wywalczyć taką konfigurację regułek iptables.

Początek:

Kod: Zaznacz cały

# Jeżeli użytkownik NIE jest zablokowany. Dodawany jest za pomocą regułki
[B]nr 1.[/B] -A FORWARD -s IP -m mac --mac-source MAC -j ACCEPT
# reszte wycinamy
[B]nr 2.[/B] -A FORWARD -j DROP

Natomiast jeżeli użytkownik JEST zablokowany wówczas regułka nr 1. jest pomijana. A dodana jest za to:

Kod: Zaznacz cały

# wyświetlenie komunikatu on WWW
-t nat -A PREROUTING -s IP-p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.100.254:201
Teraz usiłuje wywalczyć, aby taki zablokowany użytkownik pomimo zablokowania czyli bez regułki nr 1. zezwolić na połączenia do wybranych usług. Konkretnie chodzi mi o:
1.) Strona Banków port: 80
2.) Gadu Gadu - (z tego co wiem, choć nie jestem w 100% pewny) nadaje na protach 80, 8074, 443

Co już próbowałem:

Kod: Zaznacz cały

[B]# PRÓBA nr 1. dla serwerów Gadu-Gadu
[/B]-t nat -A PREROUTING -s 192.168.100.10/32 -d 91.197.0.0/16 -p tcp -m tcp --dport 80 -j RETURN
-t nat -A PREROUTING -s 192.168.100.10/32 -d 91.197.0.0/16 -p tcp -m tcp --dport 443 -j RETURN
-t nat -A PREROUTING -s 192.168.100.10/32 -d 91.197.0.0/16 -p tcp -m tcp --dport 8074 -j RETURN
Nie udaje się.

Kod: Zaznacz cały

-A FORWARD -s IP -m mac --mac-source MAC -j ACCEPT
-A FORWARD -p tcp -s 192.168.5.10 -d 91.197.0.0/16 -m multiport --dports 80,443,8074 -j RETURN
-t nat -A PREROUTING -s IP-p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.200.254:201
Też nic nie daje.

Czy ktoś bieglejszy mógłby pomóc w rozwikłaniu tego że problemu? :)
Jeżeli niezbyt jasno napisałem o problemie proszę pisać. Postaram się jakoś jakoś inaczej opisać

: 23 czerwca 2012, 13:01
autor: Feasuro
Może coś w tym stylu:

Kod: Zaznacz cały

#Najpierw udostepniasz jakies kilka uslug (dla wszystkich nie zależy od MAC-ów)
 iptables -A FORWARD -s jakis_adres -d jakis_adres -p tcp --dport jakis_port -j  ACCEPT
#Potem dodajesz uzytkownikow z "whitelist"
iptables -A FORWARD -s IP -m mac --mac-source MAC -j ACCEPT
#Dla reszty polaczenia zablokowane
iptables -A FORWARD -j DROP

: 23 czerwca 2012, 19:43
autor: Najkon
Niestety to nie pomaga.

Trzeba wziąć pod uwagę, że w linijce firewall-a występuje jeszcze na końcu regułka:

Kod: Zaznacz cały

-A PREROUTING -s 192.168.100.10/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.200.254:201
która to przekierowuje zapytania na WWW do IP:201 na którym nasłuchuje apache z odpowiednim komunikatem dla użytkownika

: 23 czerwca 2012, 22:57
autor: Feasuro
Ale ta regułka dotyczy tylko połaczeń http (na port 80), zatem nie będzie kolidować z udostępnianymi usługami. Chyba że chcesz udostępniać wszystkim też połączenia http (np. z konkretnymi adresami IP). Możesz to załatwić w ten sposób:

Kod: Zaznacz cały

# domyślnie blokujemy
iptables -P FORWARD DROP
# usługa pod adresem 'serv_addr' na porcie XX dostępna dla wszystkich łączących się z 'user_addr'
iptables -A FORWARD -s user_addr -d serv_addr -p tcp --dport XX -j  ACCEPT
# uzytkownikom z whitelisty pozwalamy na połączenie
iptables -A FORWARD -s user_addr -m mac --mac-source MAC -j ACCEPT

# użytkownicy z listy nie będą przekierowani
iptables -t nat -A PREROUTING -s user_addr -m mac --mac-source MAC -j RETURN
# przekierowanie blokowanych uzytkownikow
iptables -t nat -A PREROUTING -s 192.168.100.10/32 -p tcp --dport 80 -j DNAT --to-destination 192.168.200.254:201

: 25 czerwca 2012, 08:23
autor: LordRuthwen
A jak podmienisz "RETURN" na "ACCEPT" w linijce z dopuszczonymi adresami?

: 25 czerwca 2012, 10:21
autor: Feasuro
RETURN w łańcuchach podstawowych odwołuje się do domyślnej polityki łańcucha czyli zadziała jak ACCEPT. A dobrym nawykiem jest używanie ACCEPT DROP i REJECT tylko w tabeli filter.

: 25 czerwca 2012, 10:25
autor: LordRuthwen
Dobrym nawykiem jest, mój drogi, stosowanie domyślnej polityki na DROP i dodawanie wyjątków, w odwrotnym kierunku najłatwiej coś przeoczyć.

: 25 czerwca 2012, 10:30
autor: Feasuro
Oczywiście masz rację, ale to dotyczy tabeli filter. W tabeli nat nic nie stoi na przeszkodzie aby stosować politykę ACCEPT.

: 30 czerwca 2012, 18:03
autor: Najkon
Niestety nie udało się żadne z tych rozwiązań.
Zastosowałem połączenie iptables oraz Squid3 . Reszte portów drop, a 80 został przekierowany -j REDIRECT na port proxy. :)