• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Problem mit mails versenden wegen iptables

hi
mir werden die mails nicht zugestellt wenn ich bei den iptables INPUT auf DROP habe.
Die Ports habe ich eigentlich freigeschalten (siehe unten).

Als Fehler erhalte ich im mailLog.
Code:
Host or domain name not found. Name service error for name=gmail.de type=MX: Host not found, try again

Beim pingen auch solange halt DROP bei INPUT steht.

Ich verwende Debain (miniwoody) und als Mailer Postfix.
Kann mir vielleicht jemand sagen an was ich nicht gedacht habe?
Würde ganz gernde INPUT wieder generell auf DROP stellen und nicht auf ACCEPT.

Code:
r3:/home/# iptables -nvL
Chain INPUT (policy ACCEPT 156 packets, 24621 bytes)
 pkts bytes target     prot opt in     out     source               destination
84090 9088K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:80
  750 41019 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:21
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:25
  289 93548 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25
 1746  322K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:10000
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:10000
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:53
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:53

danke für die mühen :)
 
Hallo

Dir fehlt die Regel für POP Port 110 bzw für IMAP Port 143.

Je nachdem was du einsetzt den Port freigeben.
Dann sollte es auch mit der Policy Drop gehen.


mfg
 
OP
G

goldfinger

Newbie
super danke!

ist der auch wirklich nötig weil ich eigentlich nur per einen phpmailer mails versende & Konsolero und alle mails die reinkommen eigentlich nur Weiterleitungen an andere mailserver sind.

weil das komische ist ich kann nicht rauspingen oder brauche ich dafür auch einen port?

[EDIT]
funktioniert leider nicht.
hab die ports freigeschalten und auf DROP den Chain gesetzt aber leider wieder die gleiche meldung.
[/EDIT]

ist da vielleicht das Problem das ich keinen Nameserver ansprechen kann?
 
Um den ping ans laufen zu bekommen muss das Protokoll icmp durchgelassen werden.

Die Namensauflösung läuft über Port 53 und der scheint ja freigegeben zu sein.

Bau in deine Firewall mal ein Chain um gedroppte Pakete mitzuloggen.

Da sieht man dann recht gut woran es hapert.
 
OP
G

goldfinger

Newbie
Ich habs so versucht:

Code:
iptables -A INPUT -j LOG

Code:
iptables -P INPUT DROP

in tail -f /var/log/messages ergab mir das

Code:
Oct 18 16:14:45 r3 kernel: IN=eth0 OUT= MAC=00:01:6c:2c:ca:74:00:01:02:6b:b3:4b:08:00 SRC=212.227.123.29 DST=195.232.61.85 LEN=55 TOS=0x00 PREC=0x00 TTL=57 ID=39511 DF PROTO=UDP SPT=53 DPT=34388 LEN=35

was ich leider überhaupt nicht verstehe oder hab ich das Komando falsch gemacht?[/code]
 
Der Log Eintrag bedeutet:

Der Rechner 212.227.123.29 (DNS Server) schickt das Ergebnis der Namensauflösung.
Die wird aber gedroppt und deshalb bekommst Du den Fehler Host Not Found.

iptables -A INPUT -m state --state ESTABLISHED,RELATED -p UDP --sport 53 --dport 1024:65535 -j ACCEPT

Das sollte die Namensauflösung ermöglichen.

schau dir noch mal die Firewall scripte an:

http://www.linux-club.de/viewtopic.php?t=25743

mfg
 
OP
G

goldfinger

Newbie
Code:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -p UDP --sport 53 --dport 1024:65535 -j ACCEPT

funkt leider auch nicht sobald die Chains auf DROP stehen kann ich auch nicht mehr auflösen.

hab das auch aus dem script genommen

Code:
iptables -A OUTPUT -s eigenerServer -d dnsServer -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 1024:65535 --dport 53 -j ACCEPT

iptables -A INPUT -d  eigenerServer -s dnsServer -m state --state ESTABLISHED,RELATED  -p UDP --sport 53 --dport 1024:65535 -j ACCEPT

leider auch nicht.

noch eine andere Frage gibt es eigentlich Namserver die ich frei eintragen kann? Weil den von 1&1 zu verwenden finde ich auch nicht gerade fein.
 
mmh

also mit den iptables einträgen sollte es auf jeden fall durch die firewall gehen.

lass mal die -s und -d optionen raus so das der eintrag für alle nameserver gilt.

Nameserver bieten alle Provider an.
einfach mal googlen.
 
OP
G

goldfinger

Newbie
so der ordnung halber mein script unten habe ich versucht das -d und -s wegzulassen.
erfolg wenn ich pinge wird mir zb google.at ungewandelt aber zurück kommt nichts mehr..

sry und danke für die viele mühe weiss das wirklich zu schätzen.

Code:
#alles löschen
iptables -F

#alles verbieten
iptables -P INPUT DROP

#web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p udp --dport 80 -j ACCEPT

#ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 22 -j ACCEPT

#webmin
iptables -A INPUT -p tcp --dport 1000 -j ACCEPT
iptables -A INPUT -p udp --dport 1000 -j ACCEPT

#ftp
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p udp --dport 20 -j ACCEPT

#postfix
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p udp --dport 25 -j ACCEPT

#ftp
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p udp --dport 21 -j ACCEPT

#DNS bitch
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 1024:65535 --dport 53 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED  -p UDP --sport 53 --dport 1024:65535 -j ACCEPT
 
so wenn bei einem ping der name aufgelöst wird funktioniert die namensauflösung.

jetzt fehlt noch

#icmp

iptables -A OUTPUT -p ICMP -j ACCEPT
iptables -A INPUT -p ICMP -j ACCEPT

Dann sollten auch antworten kommen.
 
OP
G

goldfinger

Newbie
bin schon echt gespannt leider hab ich mich gerade selbst ausgesperrt shit happens :)

vielen dank darklighter
 
OP
G

goldfinger

Newbie
pingen haut jetzt super hin
dafür mailen natürlich noch immer nicht ;)
und mir ist auch aufgefallen das ich webmin auf port 1000 nichtmehr erreiche.
Langsam blick ich nimmer durch oder noch weniger als am Anfang je nachdem


Code:
#filter löschen
iptables -F

#alles verbieten
iptables -P INPUT DROP

#web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p udp --dport 80 -j ACCEPT

#ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 22 -j ACCEPT

#webmin
iptables -A INPUT -p tcp --dport 1000 -j ACCEPT
iptables -A INPUT -p udp --dport 1000 -j ACCEPT

#ftp
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p udp --dport 20 -j ACCEPT

#postfix
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p udp --dport 25 -j ACCEPT

#ftp
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p udp --dport 21 -j ACCEPT

#DNS bitch
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 1024:65535 --dport 53 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED  -p UDP --sport 53 --dport 1024:65535 -j ACCEPT

#icmp
iptables -A OUTPUT -p ICMP -j ACCEPT
iptables -A INPUT -p ICMP -j ACCEPT

Fehler:
Code:
Oct 18 19:26:31 r3 postfix/smtp[1690]: 2382C814040: to=<admin@xxx.at>, orig_to=<xx@xxx.at>, relay=none, delay=30, status=deferred (connect tomail.xxxx.at[195.90.10.141]: Connection timed out)
 

Frankie777

Advanced Hacker
Hallo,

Steht OUTPUT auch auf DROP, wenn nein warum machst Du dann ACCEPT Regeln dafür?

Wenn ja, ist das der Grund warum es nicht geht.

Die Ports sind alle falsch, SMTP ist TCP/25, UDP wird da nicht gebraucht, usw

ICMP ist so auch nicht richtig, es gibt verschiedenen Typen von denen man nicht alle will.

Und DNS ist TCP/53 und UDP/53.

Da fehlt einiges an Grundlagen, so ist es Zufall wenn es funktioniert...

Das ist ganz verständlich geschrieben und vermittelt die basics:
http://www.pl-forum.de/t_netzwerk/iptables.html

NameServer, entweder selbst einen aufsetzten oder den vom Provider nehmen.

Gruss Frank
 
OP
G

goldfinger

Newbie
port +0 ja danke hast du recht.

ok ich hoffe ich habe nun endlich die richtigen ports getroffen.
Arbeite mit state um das so durchzuschleifen langsam blick ich durch.
Es funktioniert auch vollkommen ohne icmp, welch wunder.

das einzige was ich nicht schaffe ist das ftp (server) da einzubinden.
kann mir da noch jemand einen letzen ruck geben bitte?

Code:
#filter lösshen
iptables -F

#alles verbieten
iptables -P INPUT DROP

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

#smtp
iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT

#web
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

#ssh
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp --dport 22 -m state --state NEW -j ACCEPT

#webmin
iptables -A INPUT -p tcp --dport 10000  -m state --state NEW -j ACCEPT
 
OP
G

goldfinger

Newbie
so hab nun auch noch ftp geschaft soweit funktionierts bei mir danke an alle.
freue mich natürlich immer über anregungen.

Code:
#iptables config

modprobe ip_conntrack_ftp

echo "starte firewall"

#filter loe¶schen
iptables -F

#alles verbieten
iptables -P INPUT DROP

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

#ftp
iptables -A INPUT -p tcp --sport 1024: --dport 21 -m state --state NEW  -j ACCEPT
iptables -A INPUT -p tcp --sport 1024: --dport 20 -m state --state NEW  -j ACCEPT

#smtp
iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT

#web
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

#ssh
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp --dport 22 -m state --state NEW -j ACCEPT

#webmin
iptables -A INPUT -p tcp --dport 10000  -m state --state NEW -j ACCEPT
 

Frankie777

Advanced Hacker
ssh ist nur 22/TCP nicht UDP

Die Output Chain kannst Du Dir so sparen, laß sie auf default ACCEPT stehen.

Das sollte dann so funktionieren, Du kannst es noch optimieren in dem Du Filterungen für Flood, kaputte Pakete usw. (das was man gerne als Firewall Funktion bezeichnet) hinzufügst.
 
OP
G

goldfinger

Newbie
ok danke.

wo ich mir noch etwas unklar bin was soll ich den am besten logen?
was hat sich in der praxis bewährt?
 

Frankie777

Advanced Hacker
Lösungen sind immer individuell..


http://www.netfilter.org/documentation/index.html#documentation-howto

http://www.pl-forum.de/work/firewall/fire3.html#5.7.11

siehe 10.2. Protokollieren
http://www.pl-forum.de/t_netzwerk/iptables.html
 
Oben