iptables und gmail

O

Okturion

Grünschnabel
Hallo!
Ich habe ein kleines, einfach zu beschreibendes Problem:
Seitdem ich auf meinem Webserver iptables nutze, kann ich keine Mails mehr verschicken (UnkownHostException).
Ich nutze den Host Googlemail "smtp.gmail.com" und Port 587, um Mails mittels JAVA Mail zu versenden.
Welche Regel(n) muss ich bei iptables einfügen, um weiterhin generierte Mails zu versenden?
Danke im Vorraus!
Okturion
 
UnknownHostException klingt eher danach als könnte er die Domain nicht auflösen. Funktioniert ein 'nslookup smtp.gmail.com' auf der Konsole?
 
UnknownHostException klingt eher danach als könnte er die Domain nicht auflösen. Funktioniert ein 'nslookup smtp.gmail.com' auf der Konsole?

Das gleiche Programm mit den gleichen Einstellungen verschickt bei meinem lokalen Rechner problemlos Emails. Es hat also irgendwas mit meinem Webserver zu tun.

Folgenden Output erhalte ich auf der Konsole:

root@h1742449:~# nslookup smtp.gmail.com
-bash: nslookup: command not found
root@h1742449:~# telnet smtp.gmail.com 587
telnet: could not resolve smtp.gmail.com/587: Name or service not known
 
Das gleiche Programm mit den gleichen Einstellungen verschickt bei meinem lokalen Rechner problemlos Emails. Es hat also irgendwas mit meinem Webserver zu tun.
Wenn dein lokaler Rechner korrekte DNS-Einstellungen hat bzw. seinen DNS problemlos erreichen kann, dann ist das ja auch kein Problem. Das heisst aber noch lange nicht, dass du von deinem lokalen Rechner Rückschlüsse auf einen anderen Rechner ziehen kannst.

root@h1742449:~# telnet smtp.gmail.com 587
telnet: could not resolve smtp.gmail.com/587: Name or service not known

Wie vermutet funktioniert deine Namensauflösung nicht. Welcher DNS-Server wird verwendet? Ist dieser erreichbar oder wird er durch deine IPTables-Regeln geblockt?
 
Wie vermutet funktioniert deine Namensauflösung nicht. Welcher DNS-Server wird verwendet? Ist dieser erreichbar oder wird er durch deine IPTables-Regeln geblockt?

Wie kann ich denn herausfinden, welchen DNS Server ich verwende? Ich blocke (drop) erstmal alles bei INPUT und FORWARD. Ich muss wohl noch eine Regel für den DNS Server erstellen?
 
Der verwendete DNS sollte normalerweise in der /etc/resolv.conf stehen. Ausserdem solltest du INPUT nicht komplett blocken, sondern ESTABLISHED und RELATED zulassen.

Code:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
Alles klar, ich habe die neue Regel eingefügt.
Den Nameserver (es sind zwei angegeben) habe ich nachgesehen.
Wie lasse ich es jetzt zu, dass die Namensauflösung ohne Probleme von Statten geht?
 
Ausgehende TCP- und UDP-Verbindungen auf Port 53 zulassen, wenn du irgendwelche OUTPUT-Sperren in deinen iptables-Regeln hast. Dann sollte es das schon gewesen sein. Wenn du keinen OUTPUT blockst, sollte die ESTABLISHED/RELATED-Regel ausreichen, da dadurch alle zu ausgehenden Verbindungen zugehörige eingehende Daten zugelassen werden. Du solltest aber auch mal überprüfen ob die DNS-Server überhaupt erreichbar sind, indem du z.B. mal schaust ob bei denen der Port 53 offen ist.
 
Ich danke dir! Emails werden nun wieder versendet! :)
 

Ähnliche Themen

ip6tables Problem

Rootserver SingleIP-KVM Setup?

Portknocking mit iptables

iptables mit vielen offenen Fragen

Kleiner Mailserver unter Debian Lenny

Zurück
Oben