Skocz do zawartości

Własny Iptables - Nie Można Otworzyć żadnej Strony


milosz_bozenski

Rekomendowane odpowiedzi

witam,

napisałem sobie (i z pomocą kolegi) takiego firewalla. wklejam cały skrypt jakby co.

generalnie to nie działa www. byłbym wdzięczny za jakieś komentarze i w ogóle.

 

IPTABLES=/sbin/iptables

# KONFIGURACJA
modprobe ip_tables
modprobe ip_conntrack_ftp

#Usunięcie aktywnych reguł i niestandardowych tabel

$IPTABLES --flush
$IPTABLES --delete-chain

# ZABRANIAMY WSZYSTKIEGO

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

# DOPUSZCZAMY SWOBODNY RUCH PRZEZ INTERFEJS LOOPBACK
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# A TO NIE WIEM CO TO JEST
$IPTABLES -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p icmp -j REJECT
$IPTABLES -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset
$IPTABLES -A INPUT -p udp -i eth0 -j REJECT --reject-with icmp-port-unreachable

$IPTABLES -A INPUT -j REJECT --reject-with icmp-host-prohibited

# RUCH PRZYCHODZACY

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# osiolek

$IPTABLES -A INPUT -m state --state NEW -m tcp -p tcp --dport 4662 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -m udp -p udp --dport 4662 -j ACCEPT

# RUCH WYCHODZACY

#$IPTABLES -I OUTPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT

# gg
$IPTABLES -A OUTPUT -p tcp --dport 8074 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -p tcp --dport 1550 -m state --state NEW -j ACCEPT

# www
$IPTABLES -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

# smtp
$IPTABLES -A OUTPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT

# dns
$IPTABLES -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

# ssh i ftp
$IPTABLES -A OUTPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

$IPTABLES -A OUTPUT -p tcp --dport 23 -m limit --limit 1/min -j LOG

Odnośnik do komentarza
Udostępnij na innych stronach

# www

$IPTABLES -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

 

może tak sie uda

na INPUT powinno raczej być --sport

 

spróbuj tego:

 

#http in

$IPTABLES -A INPUT -p tcp -m tcp --sport 80 -m state --state NEW -j ACCEPT

#dns

$IPTABLES -A INPUT -i eth0 -p tcp -m tcp --sport 53 --dport 1024:65535 -j ACCEPT

$IPTABLES -A INPUT -i eth0 -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT

 

#http out

$IPTABLES -A OUTPUT -p tcp -m tcp --dport 80 --sport 1024:65535 -m state --state NEW -j ACCEPT

#dns

$IPTABLES -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 53 -j ACCEPT

$IPTABLES -A OUTPUT -o eth0 -p udp -m udp --sport 1024:65535 --dport 53 -j ACCEPT

Odnośnik do komentarza
Udostępnij na innych stronach

Nie chce mi się wypisywać wszystkich błędów w tym skrypcie. Najprostszy firewall wygląda tak:

#!/bin/bash
#czyści wszystkie regułki
iptables -F

#blokuje cały przychodzący ruch, przekazywanie pakietów dalej, ale wypuszcza wszystko
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

#dopuszcza wszelki ruch na loopbacku
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#z internetu wpuszcza tylko pakiety z nawiązanych przez ciebie połączeń, zamień ppp0 na interfejs łączący cię ze światem
iptables -A INPUT -p all -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT

 

Jak chcesz pootwierać porty dla osła lub innych usług to dopisz na końcu poniższe:

iptables -A INPUT -p tcp -i ppp0 --dport 23 -m --state NEW -j ACCEPT

i analogiczie zamień ppp0 na właściwy interfejs, oraz numer portu i protokół.

 

Z tym możesz spokojnie buszować po sieci i poszerzać swoja wiedze, aby nie popełniać błędów które zrobiłeś w pierszym skrypcie. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Z tym możesz spokojnie buszować po sieci i poszerzać swoja wiedze, aby nie popełniać błędów które zrobiłeś w pierszym skrypcie.

 

Zdecydowanie. Lepiej zacząć od podstawowej konfiguracji, a potem dopiero ją rozbudowywać (samemu). Gotowce starają się być "do-wszystkiego" i IMO wprowadzają zbędne zamieszanie.

Odnośnik do komentarza
Udostępnij na innych stronach

Odnośnie jeszcze tego kawałka:

RELATED,ESTABLISHED -j ACCEPT

Ten wpis akceptuje Ci wszystkie połączenia, które nawiązujesz, więc jak się nie zorientujesz, że będzie jakieś połączenie niepożądane to można się lekko wtopić. Można to ominąć w trochę inny sposób. Bo w w/w wpisie chodzi właściwie tylko o to żeby zostało połączenie np. z serverem dns/dhcp/gateway itp. Więc zamiast tego, po ustawieniu domyślnej polityki łańcucha INPUT na drop możesz zobaczyć co masz w /etc/resolv.conf i zapodać:

iptables -A INPUT -s nr_ip_dns1 -j ACCEPT
iptables -A INPUT -s dns2/brama/itp -j ACCEPT

Wszędzie oczywiście podstawaiasz prawidłowy nr.ip.

I po tym myku będziesz miał otwartego firewalla tylko i wyłącznie na te hosty tu podane (na każdym porcie), potem możesz dodawać już własne regułki, co chcesz wpuścić i tyle.

Na dobrą sprawę między tymi dwoma rozwiązaniami nie ma wielkich różnic, ale znam takich maniaków, którzy nie przepuszczą ani jednej nieznanej ramki przez swoją maszyne :P

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...