clero92
Goto Top

Pptp VPN als Gateway - kein Internet Traffic - CentOS 6

Hallo,

ich weiß nicht mehr weiter und hoffe, hier die Lösung finden zu können ^^

"Gegoogelt" hab ich schon zu genüge.

Hier mein Problem: Ich habe einen Root-Server mit statischer IP-Adresse mit OS CentOS 6 von Strato. Ich möchte einen pptp VPN Gateway einrichten (ich weiß, es ist unsicher, aber das ist erstmal nebensächlich). Die Verbindung zw. Client und Server steht, aber es kommt kein Internet Traffic durch.

Server öffentlich: 85.214.106.121
Server virtuell: 10.0.0.1
Client virtuell: 10.0.0.2

Server <---> Client

Connect via pptp ---> ok
Ping Client vom Server über virtuelle Adresse ---> ok
Ping Server vom Client über virtuelle Adresse ---> ok
Ping Server vom Client über öffentliche IP Adresse ---> ok
Ping google.de (oder auch die google.de IP) vom Client ---> fehlerhaft

Die Verbindung steht und ich kann Pakete zw. Client und Server austauschen, aber der Server leitet keinen Traffic zum "Internet" weiter bzw. funktioniert nicht als Gateway.

In der sysctl.conf: net.ipv4.ip_forward = 1

Hier die Routen vom Server:

[root@h2226054 ~]# route -n
Kernel IP Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
10.0.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
85.214.64.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 ppp0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth0
0.0.0.0 85.214.64.1 0.0.0.0 UG 0 0 0 eth0

Hier die Firewall vom Server:
  1. Generated by iptables-save v1.4.7 on Sun Dec 8 13:17:33 2013
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:fail2ban-SSH - [0:0]
-A INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSH
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j REJECT --reject-with tcp-reset
-A INPUT -m state --state INVALID -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8880 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 106 -j DROP
-A INPUT -p tcp -m tcp --dport 3306 -j DROP
-A INPUT -p tcp -m tcp --dport 5432 -j DROP
-A INPUT -p tcp -m tcp --dport 9008 -j DROP
-A INPUT -p tcp -m tcp --dport 9080 -j DROP
-A INPUT -p udp -m udp --dport 137 -j DROP
-A INPUT -p udp -m udp --dport 138 -j DROP
-A INPUT -p tcp -m tcp --dport 139 -j DROP
-A INPUT -p tcp -m tcp --dport 445 -j DROP
-A INPUT -p udp -m udp --dport 1194 -j DROP
-A INPUT -p udp -m udp --dport 53 -j DROP
-A INPUT -p tcp -m tcp --dport 53 -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8/0 -j ACCEPT
-A INPUT -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -i eth0 -p gre -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j REJECT --reject-with tcp-reset
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -i lo -o lo -j ACCEPT
-A FORWARD -j DROP
-A FORWARD -i ppp+ -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o ppp+ -j ACCEPT
-A FORWARD -s 10.0.0.0/24 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j REJECT --reject-with tcp-reset
-A OUTPUT -m state --state INVALID -j DROP
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -j ACCEPT
-A fail2ban-SSH -s 61.142.106.34/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 177.19.191.2/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 64.251.15.167/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 211.236.246.12/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 61.147.113.165/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 125.140.114.215/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 117.79.91.16/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 58.215.133.51/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 91.232.208.38/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 114.80.226.69/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 222.189.239.72/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -j RETURN
COMMIT
  1. Completed on Sun Dec 8 13:17:33 2013
  2. Generated by iptables-save v1.4.7 on Sun Dec 8 13:17:33 2013
*mangle
:PREROUTING ACCEPT [44678:7059917]
:INPUT ACCEPT [43543:7000922]
:FORWARD ACCEPT [837:43553]
:OUTPUT ACCEPT [11629857:5734272764]
:POSTROUTING ACCEPT [11629833:5734268141]
COMMIT
  1. Completed on Sun Dec 8 13:17:33 2013
  2. Generated by iptables-save v1.4.7 on Sun Dec 8 13:17:33 2013
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [2:120]
:OUTPUT ACCEPT [2:120]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
  1. Completed on Sun Dec 8 13:17:33 2013

Weiß einer weiter?

MfG

Content-Key: 224079

Url: https://administrator.de/contentid/224079

Printed on: April 19, 2024 at 03:04 o'clock

Member: aqui
aqui Dec 09, 2013 updated at 17:00:03 (UTC)
Goto Top
Das generelle PPTP Tutorial (Client Sektion) dazu hast du gelesen ? VPNs einrichten mit PPTP
Auffällig ist auch in deinen FW Einstellungen das die Ports für das PPTP Protokoll fehlen:
  • TCP 1723
  • GRE Protokoll mit der IP Nummer 47 (Achtung kein TCP oder UDP 47, GRE ist ein eigenständiges IP Protokoll)
Desweiteren wäre ein Log Auszug des Syslogs oder pptpd Logs sehr sinnvoll und hilfreich um hier weiterzukommen und ohne im freien Fall raten zu müssen.
Member: Clero92
Clero92 Dec 09, 2013 at 17:12:32 (UTC)
Goto Top
Moin,

den TCP 1723 Port habe ich eig. mit: -A INPUT -i eth0 -p tcp -m tcp --dport 1723 -j ACCEPT geöffnet?!

Habe gerade noch: -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT hinzugefügt, gespeichert und restartet aber noch kein Erfolg.

GRE Protokoll mit der IP Nummer 47: Wie definier ich das genau mit IP-Tables? Dachte das -A INPUT -i eth0 -p gre -j ACCEPT ausreichen?

Hier der Log:

Dec 9 18:07:00 h2226054 pptpd[14765]: MGR: Maximum of 100 connections reduced to 1, not enough IP addresses given
Dec 9 18:07:00 h2226054 pptpd[14766]: MGR: Manager process started
Dec 9 18:07:00 h2226054 pptpd[14766]: MGR: Maximum of 1 connections available
Dec 9 18:07:02 h2226054 pptpd[14786]: MGR: Maximum of 100 connections reduced to 1, not enough IP addresses given
Dec 9 18:07:02 h2226054 pptpd[14787]: MGR: Manager process started
Dec 9 18:07:02 h2226054 pptpd[14787]: MGR: Maximum of 1 connections available
Dec 9 18:07:08 h2226054 pptpd[14789]: CTRL: Client 77.47.120.36 control connection started
Dec 9 18:07:08 h2226054 pptpd[14789]: CTRL: Starting call (launching pppd, opening GRE)
Dec 9 18:07:08 h2226054 pppd[14790]: Plugin /usr/lib64/pptpd/pptpd-logwtmp.so loaded.
Dec 9 18:07:08 h2226054 pppd[14790]: pptpd-logwtmp: $Version$
Dec 9 18:07:08 h2226054 pppd[14790]: pppd 2.4.5 started by root, uid 0
Dec 9 18:07:08 h2226054 pppd[14790]: Using interface ppp0
Dec 9 18:07:08 h2226054 pppd[14790]: Connect: ppp0 <--> /dev/pts/4
Dec 9 18:07:08 h2226054 pptpd[14789]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
Dec 9 18:07:10 h2226054 pppd[14790]: Unsupported protocol 'IPv6 Control Protocol' (0x8057) received
Dec 9 18:07:10 h2226054 pppd[14790]: MPPE 128-bit stateless compression enabled
Dec 9 18:07:12 h2226054 pppd[14790]: Cannot determine ethernet address for proxy ARP
Dec 9 18:07:12 h2226054 pppd[14790]: local IP address 10.0.0.1
Dec 9 18:07:12 h2226054 pppd[14790]: remote IP address 10.0.0.2
Dec 9 18:07:12 h2226054 pppd[14790]: pptpd-logwtmp.so ip-up ppp0 clero 77.47.120.36
Dec 9 18:07:14 h2226054 ntpd[3685]: Listen normally on 20 ppp0 10.0.0.1 UDP 123
Dec 9 18:07:14 h2226054 ntpd[3685]: peers refreshed
Dec 9 18:07:45 h2226054 pppd[14790]: LCP terminated by peer (9al<^@<M-Mt^@^@^@^@)
Dec 9 18:07:45 h2226054 pppd[14790]: pptpd-logwtmp.so ip-down ppp0
Dec 9 18:07:45 h2226054 pppd[14790]: Connect time 0.6 minutes.
Dec 9 18:07:45 h2226054 pppd[14790]: Sent 240 bytes, received 14131 bytes.
Dec 9 18:07:45 h2226054 pppd[14790]: Modem hangup
Dec 9 18:07:45 h2226054 pppd[14790]: Connection terminated.
Dec 9 18:07:45 h2226054 pppd[14790]: Exit.
Dec 9 18:07:45 h2226054 pptpd[14789]: CTRL: Client 77.47.120.36 control connection finished
Member: aqui
aqui Dec 09, 2013 updated at 18:08:59 (UTC)
Goto Top
GRE (Generic Route Encapsulation) ist ein eigenständiges IP Protokoll mit der Nummer 47. Das ist der Tunnel in dem die PPTP Produktivdaten übertragen werden. Bei iptables sieht das dann so aus:
iptables -A INPUT -p gre -j ACCEPT

So mal als globales Kommando. Musst du auf deine Anforderungen anpassen.
Wenn du Dr. Google nach GRE und iptables befragst findest du Tausende von Einträgen dazu ala:
http://nixcraft.com/showthread.php/16840-Linux-IPTables-rules-to-allow- ...
usw. usw.
Member: Clero92
Clero92 Dec 09, 2013 at 19:56:42 (UTC)
Goto Top
Hab ich ja schon mit: -A INPUT -i eth0 -p gre -j ACCEPT :/
Member: Clero92
Clero92 Dec 16, 2013 at 09:17:09 (UTC)
Goto Top
Habs raus bekommen face-smile

Der Fehler lag an der Reihenfolge der Befehle in IPTABLES:

Falscher Code:

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j REJECT --reject-with tcp-reset
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -i lo -o lo -j ACCEPT
-A FORWARD -j DROP
-A FORWARD -i ppp+ -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o ppp+ -j ACCEPT
-A FORWARD -s 10.0.0.0/24 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-port-unreachable

Richitger Code

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j REJECT --reject-with tcp-reset
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -i lo -o lo -j ACCEPT
-A FORWARD -i ppp+ -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o ppp+ -j ACCEPT
-A FORWARD -s 10.0.0.0/24 -j ACCEPT
-A FORWARD -j DROP
-A FORWARD -j REJECT --reject-with icmp-port-unreachable

Der Drop Befehl kam zu früh, deswegen hat er kein Traffic weitergeleitet.
Member: AndiEoh
AndiEoh Dec 20, 2013 at 21:26:28 (UTC)
Goto Top
Hallo,

der DROP ist immer noch zu früh oder du kannst dir das folgende REJECT sparen. Beides sind finale targets d.h. nach dem Drop oder Reject wird in dieser chain bzw. mit diesem Packet nichts mehr ausgeführt.

Gruß

Andi