Skocz do zawartości
wojcieh

Iptables nie działa serwer poczty

Polecane posty

Witam,

 

Posiadam VPS z CentOS.

 

Mam problem z iptables. Po zaaplikowaniu moich reguł działa mi wszystko oprócz serwera poczty. Z mojej perspektywy jest dziwny objaw - mogę podłączyć się klientem poczty, sprawdzam czy są jakieś maile itd.

Natychmiast po wyłączeniu reguł iptables odbieram wszystkie zaległe maile. Wygląda to tak jakby serwery pocztowe, które przetrzymują maile nagle zobaczyły, że mój serwer pocztowy znów jest dostępny i dostarczają maile do mnie.

 

Na serwerze podczas działania reuł sprawdzam kolejkę maili:

exim -bpc

I oczywiście mam w kolejce 0 maili.

Gdy reguły są zaaplikowane próbując wysłać maila gdziekolwiek na zewnątrz stoją one w kolejce.

 

Jeżeli coś źle wyjaśniłem to przepraszam.

Z góry dziękuję za każdą pomoc.

 

Oto moje reguły iptables:

 

#!/bin/sh

IPT="/sbin/iptables"

# Flush old rules, old custom tables
$IPT --flush
$IPT --delete-chain

# Set default policies for all three default chains
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
# Enable free use of loopback interfaces
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# All TCP sessions should begin with SYN
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -s 0.0.0.0/0 -j DROP

# Accept inbound TCP packets
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp --dport 21 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p tcp --dport 80 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p tcp --dport 110 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p tcp --dport 25 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p tcp --dport 587 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p tcp --dport 465 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p tcp --dport 443 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p tcp --dport 995 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p tcp --dport 2222 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
# Accept inbound UDP packets
$IPT -A INPUT -p udp -m udp --dport 123 -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p udp -m udp --dport 53 -s 0.0.0.0/0 -j ACCEPT
# Accept ICMP messages
$IPT -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$IPT -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
# Accept outbound packets
$IPT -I OUTPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 587 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 995 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 465 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT

#Prevent DOS
$IPT -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

1. Popraw reguły dla tablicy OUTPUT, zwłaszcza związane z dport

2. Jeśli nie kumasz do końca iptables to na wstępie nie blokuj połączeń wychodzących

3. wyczyść licznik pakietów dla iptables i potem sprawdź iptables -L -v -n na która reguła jest dopasowywana przy wysyłaniu majla np

4. Pozatym zalecałbym dla OUTPUT ustawić, że porty >1024 mogą nawiązywać połączenie

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

1. Popraw reguły dla tablicy OUTPUT, zwłaszcza związane z dport

2. Jeśli nie kumasz do końca iptables to na wstępie nie blokuj połączeń wychodzących

3. wyczyść licznik pakietów dla iptables i potem sprawdź iptables -L -v -n na która reguła jest dopasowywana przy wysyłaniu majla np

4. Pozatym zalecałbym dla OUTPUT ustawić, że porty >1024 mogą nawiązywać połączenie

Hej Syndrom, dzięki za odpowiedź.

 

@1. Możesz napisać coś więcej? Co konkretnie jest źle?

@2. Coś tam kumam, mam jakby co awaryjnie konsolę z panelu VPS do zarządzania i mogę wyczyścić reguły.

@3. To będzie iptables -F - to znalazłem w Internecie.

@4. Czyli najpierw zamykam wszystko wychodzące i pozwalam na portach od 1024 wzwyż wszystko na zewnątrz? Rozumiem, że chodzi o dynamiczne nawiązywanie połączeń? Możesz rozjaśnić to zdanie?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ad1) dport - destination port, czyli pozwalasz na ruch wychodzący na porty wymienione jako destination, a co w przypadku jak Twoj smtp (port 25, 465, 587) próbuje nawiązać połączenie ? Pomyśl

Ad2) poprostu przeklejenie z google nie załatwi sprawę, musisz wiedzieć co każda reguła robi aby być świadomym co konfigurujesz

Ad3) Raczej -Z

 -Z, --zero [chain [rulenum]]
		  Zero  the packet and byte counters in all chains, or only the given chain, or only the given rule in a chain. It is legal to specify the -L, --list (list) option as well, to see the counters immediately before they are cleared. (See above.)

Ad4) up to you, przecież Ty konfigurujesz FW

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

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

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×