pptpd Server Problem

sebo1992

New Member
Hallo,

Wollte mir einen kleinen VPN Server einrichten. Ich kann mit meinem Windows Client eine VPN Verbindung zum Server aufbauen, aber leider kann ich keine Internetseite aufrufen. Woran könnte das Problem liegen ?

Config pptpd.conf
Code:
###############################################################################
# $Id: pptpd.conf 4255 2004-10-03 18:44:00Z rene $
#
# Sample Poptop configuration file /etc/pptpd.conf
#
# Changes are effective when pptpd is restarted.
###############################################################################

# TAG: ppp
#	Path to the pppd program, default '/usr/sbin/pppd' on Linux
#
#ppp /usr/sbin/pppd

# TAG: option
#	Specifies the location of the PPP options file.
#	By default PPP looks in '/etc/ppp/options'
#
option /etc/ppp/pptpd-options

# TAG: debug
#	Turns on (more) debugging to syslog
#
#debug

# TAG: stimeout
#	Specifies timeout (in seconds) on starting ctrl connection
#
# stimeout 10

# TAG: noipparam
#       Suppress the passing of the client's IP address to PPP, which is
#       done by default otherwise.
#
#noipparam

# TAG: logwtmp
#	Use wtmp(5) to record client connections and disconnections.
#
logwtmp

# TAG: bcrelay <if>
#	Turns on broadcast relay to clients from interface <if>
#
#bcrelay eth1

# TAG: localip
# TAG: remoteip
#	Specifies the local and remote IP address ranges.
#
#       Any addresses work as long as the local machine takes care of the
#       routing.  But if you want to use MS-Windows networking, you should
#       use IP addresses out of the LAN address space and use the proxyarp
#       option in the pppd options file, or run bcrelay.
#
#	You can specify single IP addresses seperated by commas or you can
#	specify ranges, or both. For example:
#
#		192.168.0.234,192.168.0.245-249,192.168.0.254
#
#	IMPORTANT RESTRICTIONS:
#
#	1. No spaces are permitted between commas or within addresses.
#
#	2. If you give more IP addresses than MAX_CONNECTIONS, it will
#	   start at the beginning of the list and go until it gets 
#	   MAX_CONNECTIONS IPs. Others will be ignored.
#
#	3. No shortcuts in ranges! ie. 234-8 does not mean 234 to 238,
#	   you must type 234-238 if you mean this.
#
#	4. If you give a single localIP, that's ok - all local IPs will
#	   be set to the given one. You MUST still give at least one remote
#	   IP for each simultaneous client.
#
# (Recommended)
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

# or
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245

pptpd-options:
Code:
###############################################################################
# $Id: pptpd-options 4643 2006-11-06 18:42:43Z rene $
#
# Sample Poptop PPP options file /etc/ppp/pptpd-options
# Options used by PPP when a connection arrives from a client.
# This file is pointed to by /etc/pptpd.conf option keyword.
# Changes are effective on the next connection.  See "man pppd".
#
# You are expected to change this file to suit your system.  As
# packaged, it requires PPP 2.4.2 and the kernel MPPE module.
###############################################################################


# Authentication

# Name of the local system for authentication purposes 
# (must match the second field in /etc/ppp/chap-secrets entries)
name pptpd

# Optional: domain name to use for authentication
# domain mydomain.net

# Strip the domain prefix from the username before authentication.
# (applies if you use pppd with chapms-strip-domain patch)
#chapms-strip-domain


# Encryption
# Debian: on systems with a kernel built with the package
# kernel-patch-mppe >= 2.4.2 and using ppp >= 2.4.2, ...
# {{{
refuse-pap
refuse-chap
refuse-mschap
# Require the peer to authenticate itself using MS-CHAPv2 [Microsoft
# Challenge Handshake Authentication Protocol, Version 2] authentication.
require-mschap-v2
# Require MPPE 128-bit encryption
# (note that MPPE requires the use of MSCHAP-V2 during authentication)
require-mppe-128
# }}}




# Network and Routing

# If pppd is acting as a server for Microsoft Windows clients, this
# option allows pppd to supply one or two DNS (Domain Name Server)
# addresses to the clients.  The first instance of this option
# specifies the primary DNS address; the second instance (if given)
# specifies the secondary DNS address.
# Attention! This information may not be taken into account by a Windows
# client. See KB311218 in Microsoft's knowledge base for more information.
ms-dns 10.0.0.1
ms-dns 10.0.0.2

# If pppd is acting as a server for Microsoft Windows or "Samba"
# clients, this option allows pppd to supply one or two WINS (Windows
# Internet Name Services) server addresses to the clients.  The first
# instance of this option specifies the primary WINS address; the
# second instance (if given) specifies the secondary WINS address.
#ms-wins 10.0.0.3
#ms-wins 10.0.0.4

# Add an entry to this system's ARP [Address Resolution Protocol]
# table with the IP address of the peer and the Ethernet address of this
# system.  This will have the effect of making the peer appear to other
# systems to be on the local ethernet.
# (you do not need this if your PPTP server is responsible for routing
# packets to the clients -- James Cameron)
proxyarp

# Debian: do not replace the default route
nodefaultroute


# Logging

# Enable connection debugging facilities.
# (see your syslog configuration for where pppd sends to)
#debug

# Print out all the option values which have been set.
# (often requested by mailing list to verify options)
#dump


# Miscellaneous

# Create a UUCP-style lock file for the pseudo-tty to ensure exclusive
# access.
lock

# Disable BSD-Compress compression
nobsdcomp
 
Last edited by a moderator:
Du musst iptables noch beibringen, dass da ein IP-Masquerading (also NAT) stattfinden soll und auch, dass geroutet werden darf.
eth0 ist normalerweise die Netzwerkkarte mit der öffentlichen IP-Adresse, wenn dem bei dir nicht so ist, musst du es natürlich hier im Script ändern ;)

Code:
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P OUTPUT ACCEPT
In der /etc/sysctl.conf muss noch
Code:
net.ipv4.ip_forward = 1
gesetzt werden.


Um es temporär zu aktivieren reicht auch ein
Code:
echo 1 > /proc/sys/net/ipv4/ip_forward
 
Vielen Dank, nun gehts :D

Das hat gefehlt:

Code:
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P OUTPUT ACCEPT

Aber wenn nun ein Root Neustart ist, werden doch die iptables entleert.
Wie kann ich die Einstellungen für immer übernehmen ?
 
Aber wenn nun ein Root Neustart ist, werden doch die iptables entleert.
Wie kann ich die Einstellungen für immer übernehmen ?

Welche Distro?

Bei Debian kannst du dir einfach ein kleines Shellscript schreiben und es in
"/etc/network/if-up.d" ablegen. Sobald das Interface startet werden die darin liegenden Skripte ausgeführt.

Also einfach ein Skript "firewall" erstellen und das da rein:

Code:
#!/bin/bash

/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -P OUTPUT ACCEPT

Ich verwende immer den kompletten Pfad zu iptables, sicherlich kann man es auch weglassen.

Dann noch "chmod u+x firewall" und gut ist es.
 
Ich hab gerade das Problem, dass wenn ich eine Verbindung zu pptpd hergestellt habe, nach ein paar Stunden mich plötzlich nichtmehr einloggen kann. Bleibt bei "Benutzername und Kennwort werden überprüft..." hängen.

Weiß jemand vielleicht eine Lösung ?

Dann geht es nur nach einem Server Reboot und Eintrag in iptables und ipforward wieder :(
 
Ich weiß es ist spät, aber für alle anderen: Kannst du mal deinne Lösung posten?

Falls du keine Hast: /etc/pptpd.conf stimmen alle Einstellungen? :-)
Evtl nen Cronjob der irgendwas zurücksetzt?
Syslog geprüft?
 
Back
Top