Page 1 of 1

iptables lässt email empfangen aber nicht mehr versenden

Posted: 2003-03-07 14:40
by spirit
Hallo allerseits,

ich habe dieses Script hier aus dem Forum und nur ein klein wenig angepassst:

Code: Select all

#! /bin/sh
#
### Grundkonfiguration 
# Externes Interface 
INET_IP="217.xxx.xxx.xxx"
INET_IFACE="eth0" 
# Internes Interface 
LO_IFACE="lo" 
LO_IP="127.0.0.1" 
# Pfad zu iptables-Binary 
IPTABLES="/usr/sbin/iptables" 

# Laden der benötigten Kernel-Module 
/sbin/depmod -a 
/sbin/modprobe ip_tables 
/sbin/modprobe ip_conntrack 
/sbin/modprobe iptable_filter 
/sbin/modprobe iptable_mangle 
/sbin/modprobe iptable_nat 
/sbin/modprobe ipt_LOG 
/sbin/modprobe ipt_limit 
/sbin/modprobe ipt_state 

# Aktivierung IP-Forwarding 
echo "1" > /proc/sys/net/ipv4/ip_forward 

### Regelwerk 
# Default-Policy -> alles droppen 
$IPTABLES -P INPUT DROP 
$IPTABLES -P OUTPUT DROP 
$IPTABLES -P FORWARD DROP 

# Neue Tables anlegen, um Paketgruppen zu definieren 
$IPTABLES -N bad_tcp_packets 
$IPTABLES -N allowed 
$IPTABLES -N icmp_packets 
$IPTABLES -N tcp_packets 

# "Böse" Pakete werden direkt "aussortiert" 
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG  
--log-prefix "New not syn:" 
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP 

# "Normale" Pakete durchlassen 
$IPTABLES -A allowed -p TCP --syn -j ACCEPT 
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT 
$IPTABLES -A allowed -p TCP -j DROP 

# Benötigte Ports öffnen 
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 20 -j allowed
$IPTABLES -A tcp_packets -p udp -s 0/0 --dport 20 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed 
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
$IPTABLES -A tcp_packets -p udp -s 0/0 --dport 22 -j allowed 
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 25 -j allowed
$IPTABLES -A tcp_packets -p udp -s 0/0 --dport 25 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
$IPTABLES -A tcp_packets -p udp -s 0/0 --dport 80 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 110 -j allowed
$IPTABLES -A tcp_packets -p udp -s 0/0 --dport 110 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed
$IPTABLES -A tcp_packets -p udp -s 0/0 --dport 113 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 465 -j allowed
$IPTABLES -A tcp_packets -p udp -s 0/0 --dport 2390 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 2390 -j allowed

# ICMP auf's nötigste Begrenzen (echo request und time exceeded) 
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT 
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT 

# Input-Table 
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets 
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT 
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED  
-j ACCEPT 
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets 
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets 
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets 
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG  
--log-level DEBUG --log-prefix "IPT INPUT packet died: " 

# Forward-Table (theoretisch unnötig für Rootserver) 
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets 
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG  
--log-level DEBUG --log-prefix "IPT FORWARD packet died: " 

# Output-Table 
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets 
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT 
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT 
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
Jetzt habe ich damit das Problem das ich zwar Emails empfangen kann aber keine versenden kann.
Sobald ich den Server reboote damit alle Regeln gelöscht sind kommen die vorher versendeten Emails an.
In /var/log/mail steht dazu z.B. folgendes:

Code: Select all

Mar  6 19:16:34 pxxxxxxxx postfix/qmgr[470]: 2A5EC2EC08D: from=<blabla@domain.tld>, size=646, nrcpt=1 (queue active)

Re: iptables lässt email empfangen aber nicht mehr versenden

Posted: 2003-03-07 15:01
by captaincrunch
Zwei Sachen :
1. Bei den "Benötigten Ports" gibts du fast alles per TCP und UDP frei. Brauchst du nicht machen, da die Services, die du offen haben willst alle über TCP laufen ...

2. Wenn du Mails empfangen, aber nicht versenden kannst, hängt das mit an Sicherheit grenzender Wahrscheinlichkeit nach nicht mit den IPTables zusammen, da Port 25 schließlich offen ist.
Das Problem wir eher irgendwo beim Postfix zu suchen sein.

Re: iptables lässt email empfangen aber nicht mehr versenden

Posted: 2003-03-07 15:22
by spirit
CaptainCrunch wrote:Zwei Sachen :
1. Bei den "Benötigten Ports" gibts du fast alles per TCP und UDP frei. Brauchst du nicht machen, da die Services, die du offen haben willst alle über TCP laufen ...

2. Wenn du Mails empfangen, aber nicht versenden kannst, hängt das mit an Sicherheit grenzender Wahrscheinlichkeit nach nicht mit den IPTables zusammen, da Port 25 schließlich offen ist.
Das Problem wir eher irgendwo beim Postfix zu suchen sein.
Zu 1. ok, werde ich ausprobieren
Zu 2. das Problem tritt aber nur auf sobald ich mit dem Script die Regeln aktiviere, ohne iptables geht empfangen und versenden einwandfrei.
Obendrein sind die Zugänge im allgemeinen (ssh/ftp/mail etc.) alle beim Login sehr sehr langsam, teilweise wartet man fast eine Minute bis man eingeloggt ist, und auch das nur solange die Regeln aktiv sind.

Re: iptables lässt email empfangen aber nicht mehr versenden

Posted: 2003-03-09 21:57
by spirit
Postfix versucht den Mailserver des Empfänger "rauszufinden", ich weiß nicht wie, vielleicht eine Art Ping.

Code: Select all

Mar  9 21:31:59 pxxxxxxxx postfix/smtp[719]: 8E5652EC08D: to=<blabla@domain.tld>, relay=none, delay=57, status=deferred (Name service error for domain.tld: Host not found, try again)
Wenn Iptables nicht aktiv ist kommt diese Meldung:

Code: Select all

Mar  9 21:27:06 pxxxxxxxx postfix/smtp[443]: 5D7862EC08D: to=<blabla@domain.tld>, relay=mail.domain.tld[61.140.xxx.xxx], delay=924, status=sent (250 2.0.0 h29KR5H18551 Message accepted for delivery)
Wegen der Meldung "Name service error" habe ich mal die Ports für den DNS (53) geöffnet (ist bei mir noch keiner installiert).
Doch das war es auch nicht.
Ich habe noch verschiedene andere Dinge probiert, wie z.B. die Ports über 1024 zu öffnen für INPUT und OUTPUT aber nichts funktioniert.
Hat nicht jemand zufällig eine ähnliche Zusammenstellung - Postfix - Iptables - Suse8.1 und kann mir sein Script für Iptables zusenden oder hier posten?

Re: iptables lässt email empfangen aber nicht mehr versenden

Posted: 2003-03-09 22:02
by thunderrole
Hallo,

geb mal den Port 53 frei, wegen DNS Querries.

Re: iptables lässt email empfangen aber nicht mehr versenden

Posted: 2003-03-09 22:06
by spirit
Wegen der Meldung "Name service error" habe ich mal die Ports für den DNS (53) geöffnet (ist bei mir noch keiner installiert).
Doch das war es auch nicht.
Hab ich doch :'-(

Re: iptables lässt email empfangen aber nicht mehr versenden

Posted: 2003-03-09 22:13
by thunderrole
Ich sehe da keinen Port 53 offen......

Re: iptables lässt email empfangen aber nicht mehr versenden

Posted: 2003-03-09 22:34
by spirit
Thunderrole wrote:Ich sehe da keinen Port 53 offen......
Na mittlerweile habe ich etwas rumprobiert und der Port ist geöffnet.

Code: Select all

$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 53 -j allowed

Re: iptables lässt email empfangen aber nicht mehr versenden

Posted: 2003-03-09 22:39
by thunderrole
hm. Das DIng bekommt aber offensichtlich keine Verbindung raus, gehen Webseiten Aufrufe?

Re: iptables lässt email empfangen aber nicht mehr versenden

Posted: 2003-03-09 22:47
by spirit
Korrektur:
Mit w3m nach draussen geht nicht, von aussen erreiche ich meine Domain, allerdings bekomme ich von Confixx eine Fehlermeldung wenn ich die Domain ohne www erreichen will, selbst wenn ich in Confixx eine andere Zieladresse für die Domain ohne www einstelle geht das nicht.
Aber ich glaube nicht das dies etwas damit zu tun hat.

Port 80 ist auf jeden Fall offen auf tcp.

Re: iptables lässt email empfangen aber nicht mehr versenden

Posted: 2003-03-09 23:06
by thunderrole
Hallo,

da nach draussen nicht geht denke ich haben wir das Problem, deine OUTPUT Regeln werden nicht sitmmen.

Re: iptables lässt email empfangen aber nicht mehr versenden

Posted: 2003-03-10 07:56
by spirit
Die Output-Regeln sind die selben geblieben wie oben.

Code: Select all

# Output-Table 
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets 
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT 
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT 
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT