ďťż
 
 
   [+] firewall do wglądu i ewentualnie poprawy
 
 

Tematy

 
    
 

 

 

 

[+] firewall do wglądu i ewentualnie poprawy





timmy666 - 26-06-2009 11:04
Witam.

Chciałbym abyście sprawdzili mój firewall nie jestem jeszcze super rozeznany w iptables, jednak firewall całkiem dobrze działa tylko mimo wszystko nie potrafię sobie poradzić z odblokowaniem portu dla SSH na zewnątrz i CS-a. Wydaje mi się że o czymś zapomniałem bo udało mi się tak zrobić że np. w putty wpisuję swoje zewnętrzne IP i port i mogę się logować ale z zewnątrz już to nie wychodzi. Tak samo jest z csem wcześniej nie mogłem się połączyć przez zewnętrzne IP ze swojego komputera, teraz mogę ale dla ludzi spoza mojej sieci i tak jest nie widoczny i już naprawdę nie wiem co robię źle. Moja sieć wygląda tak: DSL--->Ruter---->Serwer Linux z firewallem na ruterze wydaje mi się że dobrze odblokowałem porty bo korzystałem z instrukcji podanej na www.portforward.com. Prosiłbym jeszcze żeby ktoś napisał co ewentualnie wyrzucić i co dodać aby było całkiem bezpiecznie. Z góry dziękuję za zainteresowanie.
#!/bin/sh

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

modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

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

iptables -A INPUT -i ! eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 59184 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

iptables -t filter -A FORWARD -s 192.168.1.0/24 -d 0/0 -j ACCEPT
iptables -t filter -A FORWARD -s 0/0 -d 192.168.1.0/24 -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t nat -A PRETOUTING -i eth0 -p tcp --dport 22 -j REDIRECT --to-port 59184

iptables -t nat -A PREROUTING -p udp -d xx.xx.xx.xx --dport 27010:27020 -j DNAT --to-destination 10.0.2.2:27015

iptables -t nat -A PREROUTING -p tcp -d xx.xx.xx.xx --dport 27010:27039 -j DNAT --to-destination 10.0.2.2:27015
iptables -t nat -A PREROUTING -p udp -d xx.xx.xx.xx --dport 1200 -j DNAT --to-destination 10.0.2.2:27015
iptables -A OUTPUT -p tcp --dport 27010:27039 -j ACCEPT
iptables -A INPUT -p udp --dport 27015 -j ACCEPT
iptables -A OUTPUT -p udp --dport 27010:27015 -j ACCEPT
iptables -A OUTPUT -p udp --sport 26900 -j ACCEPT

iptables -t nat -I PREROUTING -p tcp -d xx.xx.xx.xx --destination-port 27015 -j DNAT --to-destination 10.0.2.2:27015
iptables -t nat -I PREROUTING -p tcp --destination-port 27015 -j DNAT --to-destination 10.0.2.2:27015
iptables -t nat -I PREROUTING -p tcp --destination-port 59184 -j DNAT --to-destination 10.0.2.2:59184
iptables -t nat -I PREROUTING -p udp --destination-port 1200 -j DNAT --to-destination 10.0.2.2:27015
iptables -A INPUT -i eth0 -p tcp --dport 27015 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d xx.xx.xx.xx --dport 59184 -j DNAT --to-destination 10.0.2.2:59184

iptables -t nat -A PREROUTING -i eth0 -p udp --dport 27015:27016 -j DNAT --to-destination 10.0.2.2
iptables -A INPUT -p udp --dport 27015:27016 -j ACCEPT
iptables -A FORWARD -p udp --dport 27015:27016 -j ACCEPT

echo "Firewall jest teraz uruchomiony"



mariaczi - 26-06-2009 11:26

Witam
iptables -F
iptables -X
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter
iptables -F -t filter
iptables -X -t filter
iptables -F -t filter
iptables -X -t filter
iptables -F -t filter
iptables -X -t nat
iptables -F -t filter
iptables -X
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
To pierwsze co rzuciło mi się w oczy. Aż tyle razy musisz robić to samo?
Pewnie, nie jest to jakiś poważny błąd, no ale... nieładnie wygląda ;)



timmy666 - 26-06-2009 11:47
To tak dla pewności żeby na pewno wyczyścił wszystkie regułki, ale to chyba nic nie szkodzi tak mi się wydaje.



xmaster - 26-06-2009 11:49
Może prościej zamiast wpisów, które robisz napisać tak ja ja mam u siebie

najpierw podajesz porty udostępnione - łatwiej jest potem dodawać kolejne, wystarczy dopisać port i wsio
#serwisy udostepnione - zobacz /etc/services
SERWISY_TCP="6881 6882 22 80 domain rsync"
SERWISY_UDP="domain 5060 5061" a potem
# akceptuje wszystkie pakiety z sieci wewnetrznej
iptables -A INPUT -i ! ${INTERNET} -j ACCEPT

# akceptuje wszystkie pakiety nalezace do istniejacych polaczen
# wraz z polaczeniami powiazanymi
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# akceptuje wszystkie pakiety skierowane do portów (uslug)
# zdefiniowanych w naglowku jako udostepnione

for x in ${SERWISY_TCP}
do
iptables -A INPUT -p tcp --dport ${x} -m state --state NEW -j ACCEPT
echo " Akceptuje ${x} (TCP) "
done

for x in ${SERWISY_UDP}
do
iptables -A INPUT -p udp --dport ${x} -m state --state NEW -j ACCEPT
echo " Akceptuje ${x} (UDP) "
done Zobacz może moja wersja zadziała.

Tu masz całego firewalla
#!/bin/bash

#zmienne srodowiskowe
INTERNET="eth1"
ROUTING="yes"
INTERFEJSY="lo eth0 eth1"
NAT="dynamic"
IP0="eth1"

#serwisy udostepnione - zobacz /etc/services
SERWISY_TCP="6881 6882 22 80 domain rsync"
SERWISY_UDP="domain 5060 5061"

if [ "$1" = "start" ];
then
echo "Start Firewalla..."
iptables -P INPUT ACCEPT

# akceptuje wszystkie pakiety z sieci wewnetrznej
iptables -A INPUT -i ! ${INTERNET} -j ACCEPT

# akceptuje wszystkie pakiety nalezace do istniejacych polaczen
# wraz z polaczeniami powiazanymi
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# akceptuje wszystkie pakiety skierowane do portów (uslug)
# zdefiniowanych w naglowku jako udostepnione

for x in ${SERWISY_TCP}
do
iptables -A INPUT -p tcp --dport ${x} -m state --state NEW -j ACCEPT
echo " Akceptuje ${x} (TCP) "
done

for x in ${SERWISY_UDP}
do
iptables -A INPUT -p udp --dport ${x} -m state --state NEW -j ACCEPT
echo " Akceptuje ${x} (UDP) "
done

# ukrycie firewalla
iptables -A INPUT -p tcp -i ${INTERNET} -j REJECT --reject-with tcp-reset
iptables -A INPUT -p udp -i ${INTERNET} -j REJECT --reject-with icmp-port-unreachable

# Wylaczenie ECN (explicit congestion notification)
if [ -e /proc/sys/net/ipv4/tcp_ecn ]; then
echo 0 > /proc/sys/net/ipv4/tcp_ecn
fi

# Blokada podszywania
for x in ${INTERFEJSY}
do echo 1 > /proc/sys/net/ipv4/conf/${x}/rp_filter
done

#Transparent proxy
#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080

# MASKARADA, SNAT, NAT
if [ "$ROUTING" = "yes" ]; then
echo 1 > /proc/sys/net/ipv4/ip_forward
if [ "$NAT" = "dynamic" ]; then
echo "Udostepnianie maskarady - dynamiczne IP..."
iptables -t nat -A POSTROUTING -o ${INTERNET} -j MASQUERADE
elif [ "$NAT" != "" ]; then
echo "Odblokowywanie SNAT - statyczny IP..."
# Tu wlasciwa maskarada dla adresow lokalnych
iptables -t nat -A POSTROUTING -o ${INTERNET} -s 192.168.200.0/255.255.255.0 -j SNAT --to ${IP0}

fi
fi

# Zatrzymanie Firewalla
elif [ "$1" = "stop" ];
then
echo "Zatrzymanie Firewalla..."
iptables -F INPUT
iptables -P INPUT ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
fi



timmy666 - 26-06-2009 12:17
Do xmaster
Wrzuciłem tego Twojego, wydaje mi się że dobrze skonfigurowałem bo internet działa. Wrzuciłem porty tutaj: #serwisy udostepnione - zobacz /etc/services
SERWISY_TCP="22 80 59184 27010:27030"
SERWISY_UDP="7130 59184 1200 27010:27030" I jeszcze zmieniłem tak, to że mam stałe IP to zrobiłem aby ustawił SNAT: #zmienne srodowiskowe
INTERNET="eth0"
ROUTING="yes"
INTERFEJSY="lo eth0 eth1"
NAT=""
IP0="eth0" Dalej chyba nic nie trzeba zmieniać o ile czegoś nie przeoczyłem no i jeszcze włączyłem proxy i zmieniłem port 8080 na mój 3128 i działa to ok

O ile dobrze zrozumiałem, to u Ciebie było eth1 czyli sieciówka która łączy się z netem więc zmieniłem bo u mnie to eth0 a eth1 to lan

Tylko teraz tak odpalam csa i żaden serwer mi nie działa, czyli chyba coś teraz blokuje, tylko co? Tak samo z putty, już przez swoje zew ip nie mogę się zalogować i np. program do podglądu serwerów csa HLSW nie może się w ogóle połączyć: dostaje ,,timeout'' Port tego programu to ,,udp 7130'' i niby jest odblokowany, no ale nie działa, no chyba nic się nie łączy nawet spojrzałem czy Outlook się łączy i tez nie chce.



xmaster - 26-06-2009 12:34
taki (podobny lekko zmienione porty) firewall mam na serwerku gdzie stoją serwery gier właśnie CS (3 szt) www.misioo.eu i wszystko ładnie biega.
Wczoraj kumpel dodał tylko jakiś inny port bo instalował inną grę i też bangla.
Teraz pytanie czy wrzuciłeś TYLKO mojego firewalla czy może dopisałeś jakieś części do siebie.
Jeśli coś podopisywałeś to może wklej tylko mojego - zrestartuj IPtables z odpowiednimi portami i sprawdź potem.
Czemu nie działa to nie wiem, u mnie chodzi ładnie.



timmy666 - 26-06-2009 12:38
Teraz tak wygląda Twoj firewall i tylko jego odpalam net chodzi cacy tylko czemu nic się łączyć niechce ani outlook etc :]

#!/bin/bash

#zmienne srodowiskowe
INTERNET="eth0"
ROUTING="yes"
INTERFEJSY="lo eth0 eth1"
NAT=""
IP0="eth0"

#serwisy udostepnione - zobacz /etc/services
SERWISY_TCP="22 80 7130 59184 27010 27015 27030"
SERWISY_UDP="7130 59184 1200 27010 27030 27015 "

if [ "$1" = "start" ];
then
echo "Start Firewalla..."
iptables -P INPUT ACCEPT

# akceptuje wszystkie pakiety z sieci wewnetrznej
iptables -A INPUT -i ! ${INTERNET} -j ACCEPT

# akceptuje wszystkie pakiety nalezace do istniejacych polaczen
# wraz z polaczeniami powiazanymi
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# akceptuje wszystkie pakiety skierowane do portw (uslug)
# zdefiniowanych w naglowku jako udostepnione

for x in ${SERWISY_TCP}
do
iptables -A INPUT -p tcp --dport ${x} -m state --state NEW -j ACCEPT
echo " Akceptuje ${x} (TCP) "
done

for x in ${SERWISY_UDP}
do
iptables -A INPUT -p udp --dport ${x} -m state --state NEW -j ACCEPT
echo " Akceptuje ${x} (UDP) "
done

# ukrycie firewalla
iptables -A INPUT -p tcp -i ${INTERNET} -j REJECT --reject-with tcp-reset
iptables -A INPUT -p udp -i ${INTERNET} -j REJECT --reject-with icmp-port-unreachable

# Wylaczenie ECN (explicit congestion notification)
if [ -e /proc/sys/net/ipv4/tcp_ecn ]; then
echo 0 > /proc/sys/net/ipv4/tcp_ecn
fi

# Blokada podszywania
for x in ${INTERFEJSY}
do echo 1 > /proc/sys/net/ipv4/conf/${x}/rp_filter
done

#Transparent proxy
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

# MASKARADA, SNAT, NAT
if [ "$ROUTING" = "yes" ]; then
echo 1 > /proc/sys/net/ipv4/ip_forward
if [ "$NAT" = "dynamic" ]; then
echo "Udostepnianie maskarady - dynamiczne IP..."
iptables -t nat -A POSTROUTING -o ${INTERNET} -j MASQUERADE
elif [ "$NAT" != "" ]; then
echo "Odblokowywanie SNAT - statyczny IP..."
# Tu wlasciwa maskarada dla adresow lokalnych
iptables -t nat -A POSTROUTING -o ${INTERNET} -s 192.168.1.0/255.255.255.0 -j SNAT --to ${IP0}

fi
fi

# Zatrzymanie Firewalla
elif [ "$1" = "stop" ];
then
echo "Zatrzymanie Firewalla..."
iptables -F INPUT
iptables -P INPUT ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
fi



xmaster - 26-06-2009 12:51
www też nie działa?
Co do poczty to porty musisz odblokować.
Zaraz go wkleją do swojego komputera i zobaczymy czy to coś w firewallu (na jednej maszynie śmiga elegancko), czy też może u Ciebie coś jest skaszanione?



timmy666 - 26-06-2009 12:55
www działa tylko hlsw się nie może połączyć etc

bo na moim firewallu to jak odpalam cs'a to mam tak
./hlds_run -game cstrike +ip (zew ip) +port 27015 +maxplayers 22 +map de_dust2 -insecure -pingboost 1 -nomaster +sv_lan 1 +exec server.cfg to mi wywala
więc musze odpalic z
./hlds_run -game cstrike +ip 10.0.2.2 +port 27015 +maxplayers 22 +map de_dust2 -insecure -pingboost 1 -nomaster +sv_lan 1 +exec server.cfg wtedy ładnie leci i na moim firewallu mogę się połączyć z zew.ip:27015 ale tylko ze swojego kompa i mój hlsw tez go widzi ale jak ktoś jest spoza sieci to już go nie widzi i nie wiem ocb



xmaster - 26-06-2009 13:45
Teraz dopiero doczytałem początek Twojego topiku.
Jeśli masz router przed swoim komputerem z CS`em to tam musisz przekierować odpowiednie porty na swój komputer.
Jeśli to router pudełkowy i masz więcej niż jedno IP od providera to przekieruj cały ruch z danego IP zew na swój wew.
Jeśli masz jedno IP to przekieruj cały ruch na portach do CSa i SSH ale na routerze tym co stoi zaraz za DSLem.
Jeśli możesz to załącz screeny z konfiguracji routera, najprawdopodobniej tam siedzi babol.



timmy666 - 26-06-2009 14:11
Wina leżała w ruterze, tak się domyślałem, poszło na moim firewallu bo ten ruter jest nie najlepszy, SMC stary. Za jakiś czas zamierzam go zmienić tylko kupię nowy serwer to będę całą sieć od nowa składał bez rutera. Za ruter będzie służył Debian.

Bardzo dziękuję za pomoc. Miło że ktoś jeszcze ma chęci do pomocy.

Można zamknąć.



xmaster - 26-06-2009 15:27
Dodaj + do nazwy topiku - tak aby potomni wiedzieli że problem został rozwiązany.
[+] firewall do wglądu i ew. poprawy



gielo - 26-06-2009 15:38
Przydałaby się jeszcze filtracja ,,bogon''.

Zapraszam do linka w stopce może coś Ci się dodatkowo przyda.



mariaczi - 26-06-2009 19:52
@xmaster: Po co Ci te wszystkie regułki ACCEPT w łańcuchu INPUT skoro na samej górze firewalla i tak masz ustawioną politykę tego łańcucha na ACCEPT
@timmy666: W listingu Twojego firewalla (przerobionego pod siebie) masz baboła. Parametr IP0 to ma być adres IP, a Ty wpisałeś tam interfejs.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis