Nowe posty

Autor Wątek: [Iptables][Gentoo] Problem z połączeniami wychodzącymi  (Przeczytany 4018 razy)

kitsibas

  • Gość
Witam,

Mam prosty serwer dla usług www - apache php mysql. W miarę swoich możliwości go sobie skonfigurowałem. Niestety z iptables nie mogę sobie zupełnie poradzić.

W tej chwili mam problem z połączeniem wychodzącym. Mam skrypt który pobiera mi pewną konkretną stronę www z sieci. Długo to działało ale od niedawna iptables blokuje mi połączenie

wget http://adres_url

zwraca mi -  failed: Connection timed out. Nieważne jaki adres wpiszę zawsze jest timeout.

Gdy wyłączę iptables - działa bez problemu.

Nic nie dodawałem do iptables więc nie wiem skąd ta blokada się wzięła.

Poniżej podaje wynik dla iptables -L
http://pastebin.com/ByDQHyYL

Offline roobal

  • Users
  • Guru
  • *****
  • Wiadomości: 2056
    • Zobacz profil
[Iptables][Gentoo] Problem z połączeniami wychodzącymi
« Odpowiedź #1 dnia: 2014-09-19, 21:03:30 »
Cytuj
tcp spt:http ctstate ESTABLISHED
cp spt:https ctstate ESTABLISHED
Inicjowanie połączeń dla protokołów http i https gdzie masz? Jeśli nie masz połączen nawiązanych dla tego protokołu, to musisz go zainicjować, jeśli ma wychodzić.

Cytuj
Nic nie dodawałem do iptables więc nie wiem skąd ta blokada się wzięła.
Wzieła się prawdopodobnie stąd, że nikt nie zainicjował połączenia do serwera i nie było połączenia nawiązanego.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3059
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
[Iptables][Gentoo] Problem z połączeniami wychodzącymi
« Odpowiedź #2 dnia: 2014-09-21, 09:39:25 »
Masz generalnie całkowicie spieprzone reguły iptables. Zarówno po stronie INPUT jak i OUTPUT. Skąd je wziąłeś?

Twórca reguł absolutnie nie ma pojęcia o tym jak działają mechanizmy NEW,RELATED,ESTABLISHED i jak powinno się je stosować.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

kitsibas

  • Gość
[Iptables][Gentoo] Problem z połączeniami wychodzącymi
« Odpowiedź #3 dnia: 2014-09-22, 08:42:48 »
Są to defaultowe reguły po instalacji gentoo.

Cytuj
Wzieła się prawdopodobnie stąd, że nikt nie zainicjował połączenia do serwera i nie było połączenia nawiązanego.
Tyle że jakiś czas temu mi to działało, a nic nie było ruszane.

Są gdzieś jakieś defaultowe configi z otwartymi najpopularniejszymi uslugami dla www?

Offline roobal

  • Users
  • Guru
  • *****
  • Wiadomości: 2056
    • Zobacz profil
[Iptables][Gentoo] Problem z połączeniami wychodzącymi
« Odpowiedź #4 dnia: 2014-09-22, 14:59:46 »
Nie pamiętam czy Gentoo przechowuje reguły w jakimś pliku konfiguracyjnym, ale możesz sobie skorzystać z mojego skryptu, przetestować i jak Ci odpowiada wrzucić na stałe do systemu.

#!/bin/sh

## Czyszczenie reguł ##

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

## Polityka bezpieczeństwa ##

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

## Reguły pętli zwrotnej ##

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

## Reguły zapory ##

# Ruch przychodzący #

iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH

iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP

iptables -A INPUT -p tcp --dport 443 -j ACCEPT #HTTPS

iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT # Zezwolenie na pingowanie

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Ruch z połączeń nawiązanych

# Przekazywanie pakietów #

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # Ruch z połączeń nawiązanych

# Ruch wychodzący #

iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # Inicjowanie ruchu wychodzącego
Skrypt sobie możesz jeszcze dowolnie uzupełnić.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3059
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
[Iptables][Gentoo] Problem z połączeniami wychodzącymi
« Odpowiedź #5 dnia: 2014-09-22, 21:31:10 »
Piszę to z Gentoo, stawiałem je wielokrotnie na różnych maszynach.

1. Gentoo samo w sobie nie ma żadnych reguł firewalla. Tylko skrypt init.d zapisujący i ładujący reguły iptables (i ewentualnie drugi do IPv6) będący częścią pakietu net-firewall/iptables. Ale reguły samemu trzeba naklepać.

2. Przeczytaj jakikolwiek tutorial do iptables.

3. Twoje reguły są skopane, bo właściwie łańcuch przestaje być przetwarzany po ACCEPT all anywhere anywhere... Tu mi zalatuje przyzwyczajeniami z CISCO/BSD - tam firewall działa zupełnie inaczej.

W skrócie:

#######################
## INPUT

# Domyślnie INPUT dropuje pakiety
iptables -P INPUT DROP

# Dopuszczamy loopback (127.0.0.1), jest niezbędny do pracy niektórych usług
iptables -A INPUT -i lo -j ACCEPT

# Dopuszczamy ruch istniejący i związany z istniejącym
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Dopuszczamy potrzebne usługi

# http/https
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 80,443 -j ACCEPT

# poczta
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 110,995,143,993,25,465 -j ACCEPT

# ssh
iptables -A INPUT -p tcp -m conntrack --ctstate NEW --dport 22 -j ACCEPT

# DNS (tylko, leżeli jesteśmy serwerem!)
iptables -A INPUT -p tcp -m conntrack --ctstate NEW --dport 53 -j ACCEPT
iptables -A INPUT -p udp -m conntrack --ctstate NEW --dport 53 -j ACCEPT

# ping z zewnątrz moze dojść
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

#######################
## FORWARD

# Domyślnie FORWARD dropuje pakiety (nie jesteśmy routerem)
iptables -P FORWARD DROP


#######################
## OUTPUT

# Generalnie nie robi się takich rzeczy na OUTPUT, ale niech ci będzie
iptables -P OUTPUT DROP

# Dopuszczamy loopback (127.0.0.1), jest niezbędny do pracy niektórych usług
iptables -A OUTPUT -o lo -j ACCEPT

# Dopuszczamy ruch istniejący i związany z istniejącym
iptables -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# DNS - jesteśmy klientem zewnętrznego DNSa - dlatego match jest na DPORT !!!
iptables -A OUTPUT -p tcp -m conntrack --ctstate NEW --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp -m conntrack --ctstate NEW --dport 53 -j ACCEPT

# Chcemy korzystać z zewnętrznego http/https, np WGET - dlatego dports
iptables -A OUTPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 80,443 -j ACCEPT

# Chcemy móc pingować
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
Pi razy oko.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy