Iptables - dla serwera pocztowego

Konfiguracja serwerów, usług, itp.
Awatar użytkownika
swiru
Posty: 22
Rejestracja: 14 marca 2010, 14:00
Lokalizacja: Warszawa - Otwock

Iptables - dla serwera pocztowego

Post autor: swiru »

Witam,

Potrzebuję uruchomić iptables na serwerze pocztowym opartym o postfixa z dovecot-em, POP3, ssl i tls. Jednak nie wychodzi mi to za bardzo. Znalazłem bardzo ładny skrypt:

Kod: Zaznacz cały



### BEGIN INIT INFO 
# Provides: firewall 
# Required-Start: $remote_fs $syslog 
# Required-Stop: $remote_fs $syslog 
# Default-Start: 2 3 4 5 
# Default-Stop: 0 1 6 
# Short-Description: Start firewall daemon at boot time 
# Description: Enable service provided by daemon. ### END INIT INFO   

IPTABLES="/sbin/iptables" 
MODPROBE="/sbin/modprobe"  

# Ladujemy mozliwosc sledzenia polaczen (potrzebne dla ftp etc.) 
$MODPROBE ip_conntrack  # sledzienie polaczen -> cat  /proc/net/ip_conntrack #$MODPROBE ip_conntrack_ftp# odhashowac aby miec  aktywne ftp  

# interface 
LAN="eth0" 
INT_NET="x.x.x.x/x"  

# adresy IP z dostępem do SSH, podajemy oddzielone spacjami 
ADM="x.x.x.x"  

# odblokowane porty INPUT 
# podawac po przecinku np. "21,22,123" 
# 80 - WWW 
# 21 - FTP 
I_TCP="21,80" 
I_UDP=""  

# Porty wychodzace z serwera OUTPUT 
# 123 - NTP 
O_TCP="21,22,80" 
O_UDP="53,123"  

case "$1" in 
start|restart)  

echo "Czyszczenie firewall'a..." 
#czyszczenie regul 
$IPTABLES -F 
$IPTABLES -X  

echo "Start firewall'a..." 
#Odrzucamy domyslnie wszystie pakiety przychodzace 
$IPTABLES -P INPUT DROP 
$IPTABLES -P FORWARD DROP 
$IPTABLES -P OUTPUT DROP  

# pozwalamy na ruch na interfejsie lokalnym 
iptables -A INPUT -i lo -j ACCEPT 
iptables -A OUTPUT -o lo -j ACCEPT  

# akceptujemy polaczenia zainicjowane przez serwer 
$IPTABLES -A INPUT -m state --state INVALID -j LOG --log-prefix "DROP_INVALID: " --log-ip-options --log-tcp-options 
$IPTABLES -A INPUT -m state --state INVALID -j DROP 
$IPTABLES -A INPUT -i $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT  
$IPTABLES -A OUTPUT -m state --state INVALID -j LOG --log-prefix "DROP_INVALID: " --log-ip-options --log-tcp-options 
$IPTABLES -A OUTPUT -m state --state INVALID -j DROP 
$IPTABLES -A OUTPUT -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT  

### anti-spoofing rules 
$IPTABLES -A INPUT -i eth0 ! -s $INT_NET -j LOG --log-prefix "SPOOFED_PKT: " 
$IPTABLES -A INPUT -i eth0 ! -s $INT_NET -j DROP  

# Ping 
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j LOG --log-prefix 
"Ping: " --log-ip-options --log-tcp-options 
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT 
$IPTABLES -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT  

# SSH 
if [ -n "$ADM" ] ; then 
for IP in $ADM ; do 
$IPTABLES -A INPUT -i $LAN -s $IP -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT 
done 
fi  

# Porty wychodzące 
if [ -n "$O_TCP" ] ; then 
$IPTABLES -A OUTPUT -o $LAN -m multiport -p tcp --dports $O_TCP --syn -m  state --state NEW -j ACCEPT fi  if [ -n "$O_UDP" ] ; then 
$IPTABLES -A OUTPUT -o $LAN -m multiport -p udp --dports $O_UDP -m state --state NEW -j ACCEPT 
fi  

# odblokwanie portow TCP i UDP 
if [ -n "$I_TCP" ] ; then 
$IPTABLES -A INPUT -i $LAN -m multiport -p tcp --dports $I_TCP --syn -m state --state NEW -j ACCEPT 
fi  

if [ -n "$I_UDP" ] ; 
then $IPTABLES -A INPUT -i $LAN -m multiport -p udp --dports $I_UDP -m state --state NEW -j ACCEPT 
fi  

# logowanie pakietow odrzuconych /var/log/messages 
$IPTABLES -A INPUT ! -i lo -j LOG --log-prefix "DROP_INPUT: " --log-ip-options --log-tcp-options 
$IPTABLES -A OUTPUT ! -o lo -j LOG --log-prefix "DROP_OUTPUT: " --log-ip-options --log-tcp-options ;;  

stop) 
echo "Zatrzymanie firewall'a..." 
$IPTABLES -F 
$IPTABLES -X 
;;  

clear) 
echo "Czyszczenie firewall'a..., UWAGA! wszystko na ACCEPT!" 
$IPTABLES -F 
$IPTABLES -X 
$IPTABLES -P INPUT ACCEPT 
$IPTABLES -P FORWARD ACCEPT 
$IPTABLES -P OUTPUT ACCEPT 
;;  

*) 
N=/etc/init.d/$NAME 
echo "Usage: $N {start|stop}" >&2 
exit 1 
;;  

esac  

exit 0
ze strony:

http://blog.piotrbaran.com.pl/2011/0...ables-dla.html

Po dodaniu portów "25,110,443,995" i uruchomieniu firewalla, outlook nie może połączyć się z serwerem pocztowym w celu pobrania wiadomości. Proszę o pomoc, przerobienie tego skryptu.
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

Jakiego skryptu? Nawet nie chce Ci się wkleić na forum wersji skryptu jaką przerabiasz pod siebie. Forum nie jest szklaną kulą spełniającą życzenia.

Proszę zapoznać się z działem dla początkujących.
http://debian.linux.pl/threads/5676-Prz ... -napiszesz
http://debian.linux.pl/threads/12771-Za ... #post81406

A jak serwer, na którym znajduje się skrypt przestanie działać to co?
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

A jakiego demona do odbierania poczty zainstalowałeś wraz z postfixem? I na jakim protokole działa POP3 IMAP4?
Awatar użytkownika
swiru
Posty: 22
Rejestracja: 14 marca 2010, 14:00
Lokalizacja: Warszawa - Otwock

Post autor: swiru »

założyłem nowy temat bo ten ktoś zamknął.
Awatar użytkownika
swiru
Posty: 22
Rejestracja: 14 marca 2010, 14:00
Lokalizacja: Warszawa - Otwock

Post autor: swiru »

Przekazywanie poczty zapewnia dovecot z autoryzacją SASL, POP3, SSL i TLS.
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Kod: Zaznacz cały

$IPTABLES -P OUTPUT ACCEPT
I wszystkie reguły z wyjścia możesz usunąć.
Awatar użytkownika
swiru
Posty: 22
Rejestracja: 14 marca 2010, 14:00
Lokalizacja: Warszawa - Otwock

Post autor: swiru »

Niestety nie rozumiem Twojego pomysłu, możesz troszkę bardziej go opisać albo wskazać co usunąć z danego skryptu.
stepien86
Posty: 35
Rejestracja: 02 kwietnia 2007, 11:48

Post autor: stepien86 »

Yampresowi chodzi chyba byś zmienił:

Kod: Zaznacz cały

$IPTABLES -P INPUT DROP 
$IPTABLES -P FORWARD DROP 
$IPTABLES -P OUTPUT DROP
na:

Kod: Zaznacz cały

echo "Start firewall'a..." 
$IPTABLES -P INPUT DROP 
$IPTABLES -P FORWARD DROP 
$IPTABLES -P OUTPUT ACCEPT
Lub dodaj porty do firewalla i sprawa powinna być załatwiona.
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

Post autor: sethiel »

Jeśli używasz TLS albo jeśli nie korzystasz z portu 25/465 dla wysyłania wiadomości e-mail od klientów to jeszcze wtedy odblokuj port TCP 587.

Zobacz czy masz w pliku /etc/postfix/master.cf linijkę:

Kod: Zaznacz cały

submission...

Zakładając, że poprawnie obsługujesz submission - czy to tls, ssl, czy bez szyfrowania - to odblokuj port właśnie 587.

Nie zapominaj o revDNS - 1/3 serwerów odbiorców uwali Twoją pocztę, bo jeśli tego nie masz ustawionego to traktować będą wysyłaną przez Twój serwer pocztę jako spam.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Wracając do meritum problemu. Co konkretnie nie działa? Pobieranie wiadomości (POP3, IMAP) po jakim protokole? Wysłanie? Jeśli zrobiłeś dokładnie tak jak napisałeś w pierwszym poście, to nie będzie Ci działać IMAPS (IMAP po SSL na porcie 993) bo nie uwzględniłeś tego portu (za to dodałeś nie wiem po co 443). Napisz co konkretnie nie działa. Sprawdziłeś wszystkie opcje (wysyłanie po SMTP, SMTPS, odbieranie po IMAP, IMAPS, POP3, POP3S)? Nie działa żadna z nich, czy może coś jednak jest ok?
ODPOWIEDZ