Nowe posty

xx Dystrybucja pod HP Omen (6)
Wczoraj o 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
Wczoraj o 21:08:23
lamp Problem z Linux Lite po instalacji (0)
Wczoraj o 19:50:30
xx Ile pingwinów? (1)
Wczoraj o 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: iptables problem z www i ssh  (Przeczytany 3765 razy)

pablow

  • Gość
iptables problem z www i ssh
« dnia: 2014-03-16, 15:24:16 »
Witam,
Poniżej przedstawiłem moją konfigurację iptables i mam dwa następujące problemy:
1) Niestety na serwerze na którym mam iptables nie mogę otwierać co niektórych stron www (np. twojlimit.pl, poczta o2, chomikuj.pl ) a inne strony się otwierają, choć niepełnie. Komputery, które łączą się z tym serwerem otwierają te strony poprawnie.
2) Często przerywa my szybko sesję SSH i stąd moje pytanie czy iptables może być powodem?

Łączę się z netem za pomocą interfejsu ppp0 i komputery łączą się do serwera z sieci 10.0.0.0/24
Druga sieć po kablu to 192.168.1.0/24

Dodam, że Pinguję bez problemu wszystkie adresy internetu z serwera

---------------------------------------------------------------------------------------------------
#!/bin/bash

# Module to track the state of connections
modprobe ip_conntrack

# Load the iptables active FTP module, requires ip_conntrack i definiujemy dwa $
#modprobe ip_conntrack_ftp ports=21 2121

# Load iptables NAT module when required
modprobe iptable_nat

# Module required for active an FTP server using NAT
modprobe ip_nat_ftp

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

case "$1" in
    start)
mojeIP=`ifconfig ppp0 | grep "inet addr\\:" | awk '{ print (substr($2,6)) }'`
wan="ppp0"
lan="eth0"
wifi="wlan0"


########################################################## GŁÓWNA CZĘŚĆ #####################################################################################

# Jeżeli nasz komputer ma udostępniać Internet w sieci wewnętrznej to dodajemyregółkę uruchamiającą przekazywanie pakietów i tzw. maskaradę, czyli maskowanie$

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# Pozwalamy pakietom swobodnie biegać po naszym komputerze (odblokowujemu pętlęzwrotną LOOPBACK)

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


#################################################### Reguły początkowe ####################################################################################

# Usuwamy poprzednie regóły

iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT

# Ustawiamy domyślną politykę dla poszczególnych łańcuchów na odrzucającą

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#################################################### Ochrona przed atakami #################################################################################
# Ochrona przed atakiem typu Smurf

/bin/echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Nie aktceptujemy pakietow "source route"

/bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route

# Nie przyjmujemy pakietow ICMP rediect, ktore moga zmienic tablice routingu

/bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

# Wlaczamy ochrone przed blednymi komunikatami ICMP error

/bin/echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

# Wlaczenie mechanizmu wykrywania oczywistych falszerstw
# (pakiety znajdujace sie tylko tablicy routingu)

/bin/echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
/bin/echo 1 > /proc/sys/net/ipv4/tcp_timestamps
/bin/echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
/bin/echo 10 > /proc/sys/net/ipv4/ipfrag_time
/bin/echo 65536 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
/bin/echo 36024 > /proc/sys/net/ipv4/tcp_max_syn_backlog

# zwiekszenie rozmaru tablicy ARP

/bin/echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
/bin/echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
/bin/echo 8192 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
/bin/echo 1 > /proc/sys/net/ipv4/tcp_rfc1337
/bin/echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
/bin/echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
/bin/echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait
/bin/echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
/bin/echo 2400 > /proc/sys/net/ipv4/tcp_keepalive_time
/bin/echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
/bin/echo 0 > /proc/sys/net/ipv4/tcp_sack
/bin/echo 20 > /proc/sys/net/ipv4/ipfrag_time
/bin/echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog

# Ochrona przed atakiem typu „Ping of death”

iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

# Ochrona przed atakiem IDENT i SOCK SCANNING

iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with icmp-port-unreachable

# Blokada przed atakami typu SYN FLOODING
/bin/echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Właczenie proxy arp - dzieki temu serwer nie zdycha po kilku

#/bin/echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter

# Zwiekszenie rozmiaru tablic routingu

/bin/echo "18192" > /proc/sys/net/ipv4/route/max_size

# Ochrona przed virusami Saser,Blaster,MyDoom "

iptables -A INPUT -i $wan -p tcp --destination-port 135 -j DROP
iptables -A INPUT -i $wan -p tcp --destination-port 139 -j DROP
iptables -A INPUT -i $wan -p tcp --destination-port 445 -j DROP
iptables -A OUTPUT -o $wan -p tcp --destination-port 135 -j DROP
iptables -A OUTPUT -o $wan -p tcp --destination-port 139 -j DROP
iptables -A OUTPUT -o $wan -p tcp --destination-port 445 -j DROP
iptables -A INPUT -p tcp --dport 1080 -j DROP
iptables -A OUTPUT -p tcp --dport 1080 -j DROP
iptables -A FORWARD -p tcp --dport 1080 -j DROP

############################################## Otwieramy jeszcze drogę docelową/powrotną pakietom ##########################################################
# Otworzenie dostępu  FTP
#iptables -A INPUT --protocol tcp --destination-port 21 -j ACCEPT
#iptables -A INPUT --protocol tcp --source-port 21 -j ACCEPT

iptables -A INPUT --protocol udp --destination-port 21 -j ACCEPT
iptables -A INPUT --protocol udp --source-port 21 -j ACCEPT

# Otworzenie dostępu SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT --protocol udp --destination-port 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

#otwieramy jeszcze drogę powrotną pakietom
# Dostęp dla pakietów przychodzących WWW
iptables -A INPUT --protocol tcp --source-port 8080 -j ACCEPT

#Akceptujemy pakiety poczty wychodzącej (smtp)
#iptables -A INPUT -p tcp --sport 25 -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 --sport 53 -d $mojeIP -j ACCEPT
iptables -A OUTPUT -p tcp -s $mojeIP -d 0/0 --dport 53 -j ACCEPT

iptables -A INPUT -p udp -s 0/0 --sport 53 -d $mojeIP -j ACCEPT
iptables -A OUTPUT -p udp -s $mojeIP -d 0/0 --dport 53 -j ACCEPT




############################################## Pingowanie i flagi ###########################################################################################$

# Pozwalamy pingować wszystko w sieci Internet

iptables -A FORWARD -p icmp -s 0/0 -d 0/0 -j ACCEPT
iptables -A FORWARD -p icmp -s 0/0 -d 0/0 -j ACCEPT

# Pozwalamy na pingowanie nas i innych w sieci lokalnej

iptables -A INPUT -p icmp -s 0/0 -d 0/0 -j ACCEPT
iptables -A OUTPUT -p icmp -s 0/0 -d 0/0 -j ACCEPT

# Flagi

#iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DROP # wyłącza dostęp do serwisów
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT


################################ Sieć lokalna  ################################################################################################

################################ Odblokowanie dostępu do serwerów DNS na portach 53 #######################################3

# Odblokowujemy dostęp do DNS dla komputerów w sieci (dla przykładu DNS TEPSY i Netii)
#dla karty eth0
iptables -A FORWARD -p  icmp -s 192.168.1.0/24 -d 194.204.159.1 -j ACCEPT
iptables -A FORWARD -p  icmp -s 194.204.159.1 -d 192.168.1.0/24 -j ACCEPT

iptables -A FORWARD -p  icmp -s 192.168.1.0/24 -d 213.241.79.37 -j ACCEPT
iptables -A FORWARD -p  icmp -s 213.241.79.37 -d 192.168.1.0/24 -j ACCEPT

iptables -A FORWARD -p  icmp -s 192.168.1.0/24 -d 83.238.255.76 -j ACCEPT
iptables -A FORWARD -p  icmp -s 83.238.255.76 -d 192.168.1.0/24 -j ACCEPT

#dla karty wlan0

iptables -A FORWARD -p  icmp -s 10.0.0.0/24 -d 194.204.159.1 -j ACCEPT
iptables -A FORWARD -p  icmp -s 194.204.159.1 -d 10.0.0.0/24 -j ACCEPT

iptables -A FORWARD -p  icmp -s 10.0.0.0/24 -d 213.241.79.37 -j ACCEPT
iptables -A FORWARD -p  icmp -s 213.241.79.37 -d 10.0.0.0/24 -j ACCEPT

iptables -A FORWARD -p  icmp -s 10.0.0.0/24 -d 192.168.1.4 -j ACCEPT
iptables -A FORWARD -p  icmp -s 192.168.1.4 -d 10.0.0.0/24 -j ACCEPT

iptables -A FORWARD -p  icmp -s 10.0.0.0/24 -d 83.238.255.76 -j ACCEPT
iptables -A FORWARD -p  icmp -s 83.238.255.76 -d 10.0.0.0/24 -j ACCEPT


###################################### SAMBA ##################################$

iptables -I INPUT -s 10.0.0.0/24 -p udp --destination-port 137 -j ACCEPT
iptables -I INPUT -s 10.0.0.0/24 -p udp --destination-port 138 -j ACCEPT
iptables -I INPUT -s 10.0.0.0/24 -p tcp --destination-port 139 -j ACCEPT
iptables -I INPUT -s 10.0.0.0/24 -p tcp --destination-port 445 -j ACCEPT

# Odblokowujemy przeglądanie WWW dla naszego serwera
iptables -A INPUT -p tcp -s 0/0 --sport 80 -d $mojeIP -j ACCEPT
iptables -A OUTPUT -p tcp -s $mojeIP -d 0/0 --dport 80 -j ACCEPT

iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

##################################### Filtrowanie dostępu komputerów lokalnych po adresach MAC ###############################################

# laptop

iptables -A FORWARD -s 10.0.0.9 -m mac --mac 00:12:F0:88:88:88 -j ACCEPT
iptables -A FORWARD -d 10.0.0.9 -j ACCEPT


################################################### Zablokowane IP-ki ########################################

iptables -I OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT

#iptables -A INPUT --protocol tcp --destination-port 700 -j ACCEPT
#iptables -A INPUT --protocol tcp --source-port 700 -j ACCEPT
#iptables -t nat -A PREROUTING -p tcp -s 10.0.0.8 -j REDIRECT --to-port 700

;;
stop)
echo "Czyszczenie tablic"
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage $0 start|stop|restart"
exit 1
esac
exit 0

Offline roobal

  • Users
  • Guru
  • *****
  • Wiadomości: 2056
    • Zobacz profil
iptables problem z www i ssh
« Odpowiedź #1 dnia: 2014-03-18, 23:20:53 »
Wywal ten skrypt, bo masz w nim błąd już na samym początku, ustwiasz regułę dla loopback i maskaradę, a potem czyścisz reguły i ustawiasz politykę. Najpierw czyścisz reguły, potem ustawiasz politykę i dopiero potem ustawiasz reguły.

Nie wspomnę już, że większość z tych rzeczy, które masz w skrypcie zalatwisz w sysctl.

pablow

  • Gość
iptables problem z www i ssh
« Odpowiedź #2 dnia: 2014-03-19, 20:51:42 »
Hej,
Niestety to nic nie dało :( Problem taki sam nadal istnieje.
Podkreślam jeszcze raz, że komputery łączące się z serwerem otwierają wszystkie strony.
Serwer wszystko pinguje, ale nie otwiera niektórych stron :/
Czy wiecie co może być przyczyną?

Offline roobal

  • Users
  • Guru
  • *****
  • Wiadomości: 2056
    • Zobacz profil
iptables problem z www i ssh
« Odpowiedź #3 dnia: 2014-03-20, 00:07:22 »
Przy tej polityce przede wszystkim brakuje Ci reguły inicjującej połączenie wychodzące i utrzymanie połączenia (jedna reguła).

iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT