PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pop3 und firewall



16.10.00, 22:59
Ich habe einen Server als Router mit Firewall und Masquerade und PPP eingerichtet und will kein Sendmail benutzen, sondern vom Client einen POP3 Server z.B. gmx.de direkt abfragen. Das Mails drauf sind sehe ich, aber ich habe keine chance diese Mails über die Firewall auf den Client zu holen. WARUM??????????

blackbird
16.10.00, 23:42
hi!

könnt dran liegen dass du die entsprechenden ports zugemacht hast.. pop3 braucht tcp port 110, ausserdem wirst du noch smtp mit tcp port 25 brauchen...

grüsse blackbird

17.10.00, 08:34
Die Ports sind freigeschaltet, sonst würde ich die Mails nicht sehen können.....
Muß zum runterladen noch ein weiterer Port freigeschaltet werden, wie z.B. beim FTP außer 21 noch der Port 20?????
Was ist wenn der Mailserver und die Firewall getrennte Rechner sind, dann muß das doch auch funzeln......

17.10.00, 11:02
Hallole,
also wenn Du die Mails in Deinem GMX Postfach sehen kannst, dann funktioniert das meines Wissens mit Hilfe eines Webbrowsers, oder!?
Das heißt, das Ganze läuft über TCP-Port 80 (http) bzw. TCP-Port 443 (https). Diese Ports sind dann logischerweise in der Firewall freigeschaltet, wenn das funktioniert.
Um die Mails dann über das POP3 Protokoll abzurufen und sie so auf Deinen Client zu bekommen, muß zusätzlich der TCP-Port 110 (pop3) freigeschaltet werden, zum Mailversenden mittels SMTP Protokoll (ist Standard) der TCP-Port 25 (smtp).
Grüße
Björn

17.10.00, 11:36
Hallo Björn danke für den Tip, aber das ist es nicht. Noch mal zur Konfiguration: Meine Firewall ist auf dem Linuxserver (und andere Dienste) und ich versuche mit einem Microsoft Client über die Firewall auf einen POP3 Server zuzugreifen. Ein kleines Zusatzprogramm schaut über den Port 110 auf den POP3 Server und "sieht" die Mails. Wenn ich diese Mails aber runterladen möchte, ist keine Kommunikation mehr möglich und ich bekomme immer eine Zeitüberschreitung. grrrrr!!!!

Grüße Matthias

17.10.00, 11:45
Noch ein Anhang.....
Ein Ping funktioniert über die Firewall, also funzelt auch das Masquerading....
Wenn ich aber den Squid abschalte und über den Linux Server versuche direkt die Internetseiten aufzurufen schlägt das auch fehl, obwohl der Port 80 auch freigeschaltet ist. Als Nachricht steht drin, daß die Seite gefunden wurde und das wars, es werden die Internetseiten nicht dargestellt.

17.10.00, 15:47
Hi Mattis,

liegt es im Bereich des Möglichen, daß Du gewisse Ports nur in einer Richtung freigeschaltet hast, also z.B. das pop3 Protokoll nur raus ins Internet geht, aber nicht hinein darf?
Ich habe hier mal die ipchains Befehle (Mail empfangen und versenden betreffend) meiner Firewall hingestellt:

#----- SMTP ins Internet erlauben -----
ipchains -A output -i ippp0 -p tcp -d 0.0.0.0/0.0.0.0 25 -j ACCEPT
ipchains -A input -i ippp0 -p tcp -s 0.0.0.0/0.0.0.0 25 -j ACCEPT ! -y

#----- POP3 aus Internet erlauben -----
ipchains -A output -i ippp0 -p tcp -d 0.0.0.0/0.0.0.0 110 -j ACCEPT
ipchains -A input -i ippp0 -p tcp -s 0.0.0.0/0.0.0.0 110 -j ACCEPT ! -y

(Das "! -y" blockiert eine Verbindungsaufnahme von draußen)
Ich hoffe, es hilft weiter.
Gruß

Björn

17.10.00, 22:16
da wir grad bei den "ipchains" sind.

da hab ich auch ein problem:

wenn ich mir ipchains festlege, sind diese beim neustart nicht mehr vorhanden.

bye.

18.10.00, 09:38
Ich habe mir jetzt von www.pro-linux.de (http://www.pro-linux.de) eine gepostete Firewall Konfiguration gezogen und angepasst. Diese funzelt zwischen meinem Netzwerk und meinem Modem (ppp0) ganz prima.
Nur mit TDSL (also 2. Netzwerkkarte aber ja auch ppp0) habe ich immer noch keinen Kontakt. Muß da noch was eingestellt werden????
Und noch vielen Dank für die Tips.

Grüße
Matthias

18.10.00, 10:06
Hallole,
An Marlow: Das die ipchains nach dem Neustart weg sind, ist ganz normal. ipchains ist ein Befehl wie jeder andere auch und hat nur temporäre (d.h. bis zum nächsten Reboot) Auswirkungen. Um dem entgegenzuwirken, sollte man ein entsprechendes Skript schreiben, in das alle ipchains Befehle, die man benötigt eingetragen werden. Dieses Skript startet man dann an entsprechender Stelle, d.h. entweder beim Booten des System (rc-Skript) oder evtl. auch erst bei erfolgender Einwahl beim Provider über /etc/ppp/ip-up.
An Mattis: Wenn Du in Deinem Rechner zwei Netzwerkkarten hast und zusätzlich noch ein Modem angeschlosssen hast, dann hast du insgesamt drei Netzdevices. DSL läuft meiner Information nach mit Hilfe einer normalen Netzwerkkarte und dann weiter an einen Splitter und das DSL Modem. Dabei wird glaube ichg so etwas wie PPP over Ethernet verwendet. Für ipchains stellt diese Netzwerkkarte aber lediglich ein weiteres Netzdevice dar, d.h. wenn man sowie so schon eine Netzkarte im System hat, das Device eth1. Somit wären also drei Netzdevices im ipchains Skript zu beachten und mit entsprechenden Befehlen abzudecken:
eth0 --> die "normale" Netzkarte
eth1 --> die "DSL" Netzkarte
ppp0 --> das Modem
Du must also Befehle kreieren, die Input- und Output-Regeln JEDES dieser Netzdevices definieren.
Grüße
Björn

18.10.00, 13:32
Hallo Biggel,

auf dem Rechner, wo TDSL installiert ist, ist kein Modem bei. Wenn ich meine Firewall auf die 2. Netzwerkkarte (eth1) einrichte, funktioniert kein Ping, kein Erstzugriff auf eine Webseite (Port 80 ) usw.. Das funktioniert nur, wenn ich das mit ppp0 mache. Es geht aber nach wie vor kein Zugriff (Antwort) über die Ports > 1023. Muß ich zwischen der 2. Netzwerkkarte (eth1) und dem ppp0, der ja für eth1 zuständig ist, noch irgendetwas eintragen ??????


Anbei mein Script:
_____________________________________________
#!/bin/sh
# Starting up the firewall
echo
echo Stand by while starting up the firewall...
echo
# Starting IP forwarding
echo Starting IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# IP Forward muß vorher aktiviert werden.
# Unter SuSE sollte der Befehl in der rc.config aktiviert werden.
# Bei Masquerading muß zusätzlich noch IP_DYNIP in der
# rc.config aktiviert sein.
echo Start RP filter for anti spoofing shield
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# Anti Spoofing Schutz wird aktiviert.

# Deleting all chains
echo Deleting all existing chains...
ipchains -F
# Alle existierenden Regeln werden gelöscht

# Default policy
echo Setting up default policy...
ipchains -P input DENY
ipchains -P forward DENY
ipchains -P output DENY
# Die Default Policy wird auf DENY gesetzt
# Somit haben Sie jetzt eine ultimative Firewall

# Variables
echo Setting up all defined variables...
DEV_LNET=eth0
IP_LNET=199.99.1.100
DEV_INET=ppp0
LNET=199.99.1.0/24
GLOBAL=0.0.0.0/0
# Alle nötigen Variabeln werden jetzt definiert

# Loopback
echo Setting up loopback interface...
ipchains -A input -i lo -j ACCEPT
ipchains -A output -i lo -j ACCEPT
# Zugriff auf den Loopback Device

# Intranet connections
echo Setting up intranet connections...
ipchains -A input -i eth0 -s $LNET -j ACCEPT
ipchains -A output -i eth0 -d $LNET -j ACCEPT
# Das maskierte Netz hat Zugriff auf das Netzwerk Device ETH0

# Internet connections
echo Setting up internet syn connections...
ipchains -A input -s $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT

# Alles was aus dem LAN über dem Port 1023 auf ETH0 ankommt
# und TCP verwendet wird akzeptiert und an die forward chain übergeben

ipchains -A forward -s $LNET 1024: -p tcp -i $DEV_INET -j MASQ

# Alles was aus dem LAN über dem Port 1023 und TCP verwendet
# wird maskiert, an das IPPP0 weitergeleitet (geroutet)
# und somit an die output chain übergeben

ipchains -A output -s $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT

# Alles was von überall ($GLOBAL) über das IPPP0 Device nach
# draußen möchte und TCP verwendet wird akzeptiert.
# Jetzt folgt nochmal genau das selbe nur mit dem UDP Protokoll.
# Dieses ist zum Beispiel notwendig für Nameserveranfragen.

ipchains -A input -s $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT
ipchains -A forward -s $LNET 1024: -p udp -i $DEV_INET -j MASQ
ipchains -A output -s $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT

# Internet answers

echo Setting up internet ack connections...
ipchains -A input --sport 20 -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
ipchains -A output --sport 20 -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT

# Diese beiden Regeln sind dafür zuständig, daß aktives FTP funktioniert.
# Ich erlaube also einen Zugriff auf einen privilegierten Port (Gerät PPP0).
# Allerdings kann niemand auf den Port eine Verbindung aufbauen da
# er dafür den Kontrollport 21 braucht, der allerdings von außen gesperrt ist.

ipchains -A input -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT ! -y

# Alles was über dem Port 1023 mit dem Protokoll TCP auf dem IPPP0 Device
# ankommt wird akzeptiert, wenn keine Verbindung zu ihm aufgebaut wurde.

ipchains -A output -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT ! -y

# Alles über dem Port 1023 mit dem Protokoll TCP und dem LAN als
# Ziel wird akzeptiert, wenn keine Verbindung zu ihm aufgebaut wurde.

ipchains -A input -d $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT
ipchains -A output -d $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT

# icmp-acc

echo Setting up icmp defined restrictions...
ipchains -N icmp-acc

# Benutzerdefinierte Chain wird erstellt.
ipchains -A icmp-acc -p icmp --icmp-type echo-reply -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type echo-request -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type parameter-problem -j ACCEPT

# ICMP Pakete (echo-reply, echo-request , destination-unreachable, source-quench
# time-exceeded, parameter-problem) werden akzeptiert.

# icmp

echo Setting up icmp major restrictions...
ipchains -A input -p icmp -j icmp-acc

# Alle eingehenden Pakete werden an die benutzerdefinierte Regel icmp-acc weitergeleitet.
ipchains -A forward -p icmp -j MASQ

# Alle Pakete die zwischen den Netzwerk Devices geroutet und maskiert.
ipchains -A output -p icmp -j icmp-acc

# Alle ausgehende Pakete werden an die benutzerdefinierte Regel icmp-acc weitergeleitet.
_____________________________________________

Grüße
Matthias

18.10.00, 14:56
Hi,
erst mal: funktioniert denn der Internet Zugriff komplett ohne Firewall? D.h. mit Default Policy ACCEPT und aktiviertem Masquerading.
Ist denn das DSL korrekt auf dem System eingerichtet? Dann sollte die pppoe (PPP over Ethernet) Software eigentlich die Verbindung von eth1 und ppp0 herstellen.
Ist Masquerading und ein Proxy installiert?
Wie wird im Internet gesurft, über Proxy (welcher Port) oder ohne?
Ich werde mal sehen, was mir noch so einfällt, im Moment finde ich alles ziemlich merkwürdig ;-)
Des weiteren sollte man für die interne IP Adresse seines Server daheim auch keine "offizielle" IP-Adresse verwenden, sondern eine aus dem Bereich für private Zwecke. Sinnvoll hier wäre eine Adresse aus dem Bereich 192.168.x.y. Es sei denn, Du hast von Deinem Provider eine offizielle IP zugewiesen bekommen?!(In deinem Skript wird nämlich DEV_LNET mit 199.99.1.100 definiert)
Es kann sein, daß diese Tatsache Schwierigkeiten macht, denn offizielle IP Adressen werden im Internet geroutet, die für den privaten Bereich reservierten IPs definitionsgemäß NICHT!
Grüße
Björn

19.10.00, 09:05
Moin Moin biggel,
geschafft, es funzelt, strike.

Es war nicht das Script!!!!!!!!
Ich habe dann nur noch das Masquerading aktiviert, und es funktionierte immer noch nicht.
Dann habe ich die Linuxforen nach dem Thema Masquerade durchstöbert.
Da war ein Beitrag, das SuSE mit TDSL als Internet Gateway die Pakete > 1490 Bytes nicht korrekt fragmentiert.
Von SuSE gibt es einen entsprechendes Modul als Patch (mssclampfw.o). Diesen Patch noch schnell eingebaut.....Bingo!!!!
Das erklärt auch, daß ein Ping oder das bloße Abfragen auf Mails immer funktionierte.

Auf jeden Fall vielen Dank für Deine Hilfe

Ciao
Matthias