[+] firewall do wgl

Masz problemy z siecią bądź internetem? Zapytaj tu
timmy666
Posty: 18
Rejestracja: 18 marca 2008, 09:44

[+] firewall do wglądu i ewentualnie poprawy

Post autor: timmy666 »

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:

Kod: Zaznacz cały

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.

Kod: Zaznacz cały

#!/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
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Re: firewall do wglądu i ew. poprawy

Post autor: mariaczi »

timmy666 pisze:Witam

Kod: Zaznacz cały

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
Posty: 18
Rejestracja: 18 marca 2008, 09:44

Post autor: timmy666 »

To tak dla pewności żeby na pewno wyczyścił wszystkie regułki, ale to chyba nic nie szkodzi tak mi się wydaje.
Awatar użytkownika
xmaster
Junior Member
Posty: 558
Rejestracja: 13 stycznia 2009, 08:19
Lokalizacja: /dev/piotrków tryb.

Post autor: xmaster »

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

Kod: Zaznacz cały

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

Kod: Zaznacz cały

# 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

Kod: Zaznacz cały

#!/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
Posty: 18
Rejestracja: 18 marca 2008, 09:44

Post autor: timmy666 »

Do xmaster
Wrzuciłem tego Twojego, wydaje mi się że dobrze skonfigurowałem bo internet działa. Wrzuciłem porty tutaj:

Kod: Zaznacz cały

#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:

Kod: Zaznacz cały

#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.
Awatar użytkownika
xmaster
Junior Member
Posty: 558
Rejestracja: 13 stycznia 2009, 08:19
Lokalizacja: /dev/piotrków tryb.

Post autor: xmaster »

taki (podobny lekko zmienione porty) firewall mam na serwerku gdzie stoją serwery gier właśnie CS (3 szt) http://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
Posty: 18
Rejestracja: 18 marca 2008, 09:44

Post autor: timmy666 »

Teraz tak wygląda Twoj firewall i tylko jego odpalam net chodzi cacy tylko czemu nic się łączyć niechce ani outlook etc :]

Kod: Zaznacz cały


#!/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
Awatar użytkownika
xmaster
Junior Member
Posty: 558
Rejestracja: 13 stycznia 2009, 08:19
Lokalizacja: /dev/piotrków tryb.

Post autor: xmaster »

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
Posty: 18
Rejestracja: 18 marca 2008, 09:44

Post autor: timmy666 »

www działa tylko hlsw się nie może połączyć etc


bo na moim firewallu to jak odpalam cs'a to mam tak

Kod: Zaznacz cały

./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
WARNING: UDP_OpenSocket: port: 27015 bind: Cannot assign requested address
FATAL ERROR (shutting down): Couldn't allocate dedicated server IP port 27015.
więc musze odpalic z

Kod: Zaznacz cały

./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
Awatar użytkownika
xmaster
Junior Member
Posty: 558
Rejestracja: 13 stycznia 2009, 08:19
Lokalizacja: /dev/piotrków tryb.

Post autor: xmaster »

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.
ODPOWIEDZ