Ustawienie iptables tylko dla www

Masz problemy z siecią bądź internetem? Zapytaj tu
kilofmar
Posty: 28
Rejestracja: 28 grudnia 2007, 18:19

Ustawienie iptables tylko dla www

Post autor: kilofmar »

Witam.
Chciałbym dla jednego numeru IP odblokować tylko port 80, czyli aby mógł korzystać tylko z www.
Zrobiłem coś takiego ale nie działa.

Kod: Zaznacz cały

iptables -A INPUT  -p tcp --dport 80  ! -i  ppp0 -s 10.0.1.60 -j  ACCEPT 
iptables -A FORWARD -p tcp --dport 80  ! -i  ppp0 -s 10.0.1.60 -j ACCEPT 
iptables -t nat -A POSTROUTING -p tcp --dport 80  -o ppp0 -s 10.0.1.60 -j MASQUERADE 
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Bo pewnie nie umie rozwiązać nazwy domenowej na IP. Musisz jeszcze zezwolić na zapytania DNS.
kilofmar
Posty: 28
Rejestracja: 28 grudnia 2007, 18:19

Post autor: kilofmar »

Wpisałem tak.

Kod: Zaznacz cały

        iptables -A INPUT  -p tcp --dport 80  ! -i  ppp0 -s 10.0.1.60 -j  ACCEPT 
        iptables -A FORWARD -p tcp --dport 80  ! -i  ppp0 -s 10.0.1.60 -j ACCEPT 
        iptables -t nat -A POSTROUTING -p tcp --dport 80  -o ppp0 -s 10.0.1.60 -j MASQUERADE 
        iptables -A INPUT  -p tcp --dport 53  ! -i  ppp0 -s 10.0.1.60 -j  ACCEPT 
        iptables -A FORWARD -p tcp --dport 53  ! -i  ppp0 -s 10.0.1.60 -j ACCEPT 
        iptables -t nat -A POSTROUTING -p tcp --dport 53  -o ppp0 -s 10.0.1.60 -j MASQUERADE
Ale i tak nie przepuszcza.

A to moje całe reguły.

Kod: Zaznacz cały

# wlaczenie w kernelu forwardowania 
echo "1" > /proc/sys/net/ipv4/tcp_syncookies 
echo "1" > /proc/sys/net/ipv4/ip_forward
# czyszczenie starych regul
iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
# ustawienie polityki dzialania
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# zezwolenie nna laczenie sie z naszym zewnetrznym ip po ssh

iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT

 grep "^" /etc/hosts | grep -v "^#" |grep -v "^10.0.1.60" |grep -v "^127.0.0.1" |grep [0123456789] | while read IP nazwa ; do 
          
        iptables -A INPUT ! -i  ppp0 -s $IP -j  ACCEPT 
        iptables -A FORWARD ! -i  ppp0 -s $IP -j ACCEPT 
        iptables -t nat -A POSTROUTING  -o ppp0 -s $IP -j MASQUERADE 
         
    done

        iptables -A INPUT  -p tcp --dport 80  ! -i  ppp0 -s 10.0.1.60 -j  ACCEPT 
        iptables -A FORWARD -p tcp --dport 80  ! -i  ppp0 -s 10.0.1.60 -j ACCEPT 
        iptables -t nat -A POSTROUTING -p tcp --dport 80  -o ppp0 -s 10.0.1.60 -j MASQUERADE 
        iptables -A INPUT  -p tcp --dport 53  ! -i  ppp0 -s 10.0.1.60 -j  ACCEPT 
        iptables -A FORWARD -p tcp --dport 53  ! -i  ppp0 -s 10.0.1.60 -j ACCEPT 
        iptables -t nat -A POSTROUTING -p tcp --dport 53  -o ppp0 -s 10.0.1.60 -j MASQUERADE

# polaczenia nawiazane
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




Cyphermen
Beginner
Posty: 426
Rejestracja: 24 maja 2009, 10:56
Lokalizacja: cze-wa

Post autor: Cyphermen »

Na początek powiedz mi, czy sprawdzasz działanie z Debiana firewalla, czy stacji klienckiej?
Później polecam nie kombinować za bardzo tylko przepuścić ruch dla wszystkich ale tylko na port 80, to samo dns.
Jeśli to zadziała dopiero baw się w opcje "-s" i "! -i ppp0" bo ciężko stwierdzić, czy Ty w ogóle dobre adresy podajesz.
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post autor: Unit »

DNS udp 53
ODPOWIEDZ