- Подключение через VPN (pptp клиент) в GNU/Linux
- How to configure a Linux PPTP VPN client
- Fedora/Red Hat/CentOS PPTP Client Installation
- Debian/Ubuntu PPTP Client Installation
- Configuring VPN credentials and server settings
- Adding a route to the routing table
- Testing the connection
- Disconnecting the connection
- Linux configure point to point tunneling PPTP VPN client for Microsoft PPTP vpn server
- Compatibility note
- How do I install PPTP client under Linux?
- How do I configure client using command line (cli)?
- Sample configuration data
- Route traffic via ppp0
- Task: connect to PPTP server
- Task: Disconnect PPTP server vpn connection
- How do I configure PPTP client using GUI tools?
- Troubleshooting hints
- Q. I’m authenticated successfully but cannot route traffic..
- Q. I’m authenticated successfully, I can ping to remote gateway but cannot access host by name…
- Q. How do I open my local network (laptop, desktop and other system) to talk with any computer behind VPN server via this local Linux ppp0 interface (i.e. act this computer as router)…?
- Q. Point-to-Point Encryption is not working and I’m not able to connect to remote PPTP server…
- A note to readers
Подключение через VPN (pptp клиент) в GNU/Linux
При подключении к новому провайдеру столкнулся с проблемой настройки подключения к интернету через VPN. Все рекомендации, найденные в интернете (в т.ч. и на сайте провайдера), желаемого результата не дали. Везде направление описывается правильное, но за кадром остаются некоторые «моментики», которые приводили к отсутствию интернета у меня. По этому опишу свою последовательность действий с необходимыми комментариями.
Все описанное проверено на дистрибутива Debain Squeeze. Впрочем наверняка будет работать и в прочих дистрибутивах GNU/Linux. Мне не очень нравятся графические утилиты для настройки сети и по этому описываю, как все настроить в консоли. Все команды, приведенные ниже, необходимо выполнять с привилегиями пользователя root, т.е. вы должны либо зайти в терминал под root’ом или воспользоваться в терминале командой «su» или перед каждой командой вводить «sudo». Конфигурационные файлы редактировать надо так же от root.
Открываем в редакторе файл /etc/network/interfaces. И редактируем секцию интерфейса, к которому подключен провайдер (в качестве примера eth1).
Теперь необходимо задать адрес серверов DNS. Для этого открываем файл /etc/resolv.conf и добавляем следующие строки:
Теперь при перезагрузке сети (при перезагрузке системы или по команде /etc/init.d/networking restart вам будет доступна локальная сеть провайдера. И вы можете узнать IP-адрес VPN-сервера при помощи команды ping
Теперь необходимо настроить VPN соединение.
В систем должен быть установлен пакет pptp-linux. Для установки воспользуйтесь вашим пакетным менеджером или введите команду:
Приступаем к настройке. Создаем файл в каталоге /etc/ppp/peers/ с именем . Настройки в данном файле прописаны по рекомендации моего провайдера. Однако с небольшим исправлением: на сайте провайдера указано, что имя пользователя необходимо вводить в кавычках. У меня работает и так и так. Кроме того, добавил строку noauth.
Далее редактируем файл /etc/ppp/chap-secrets. В отличии от примера на сайте провайдера добавлена звездочка в конце строки.
Теперь можно пробовать установить соединение командой. Если вы отключили автоматическое подключение, то именно данной командой вы можете его устанавливать в дальнейшем.
Если все пройдет без ошибок, то ни каких сообщений не будет выведено. Наличие подключения можно проверить командой
В выводе этой команды должен появиться интерфейс «ppp0». Впрочем на конце может быть другая цифра, если у вас уже существует иное ppp-подключение.
Если у вас есть необходимость отключить используйте команду
Источник
How to configure a Linux PPTP VPN client
Configuring a VPN client connection is a simple matter of point and click in Windows OSes, but in Linux it is involves installing a package, configuring passwords, VPN server settings and finally routing the traffic destined for the VPN network via the VPN connection. The package named pptp is used on the client side for configuring a connection. To setup a VPN server read How to setup a VPN Server in Windows Server 2008. This tutorial is for both Debian Linux variants and Red Hat Linux variants.
Fedora/Red Hat/CentOS PPTP Client Installation
Install the pptp client
yum install pptp
Debian/Ubuntu PPTP Client Installation
Use the apt-get command
apt-get install pptp-linux
Configuring VPN credentials and server settings
Edit the following file and enter your VPN username and password
The syntax of the file is as follows
DOMAIN\\username PPTP vpnpassword *
For example to configure a user named jesin on example.com with pass1 as the password enter
EXAMPLE\\jesin PPTP pass1 *
If your VPN network doesn’t come under a domain replace DOMAIN with your VPNSERVER name.
Next is to configure the VPN server settings. Create and edit a new file under the peers directory
Add content according to the syntax below
pty «pptp vpn-server-hostname-or-ip-address —nolaunchpppd»
name DOMAIN\\username
remotename PPTP
require-mppe-128
file /etc/ppp/options.pptp
ipparam vpnconnection1
Here “DOMAIN\\username” is the same as the one entered in the chap-secrets file. The ipparam should contain the name of the newly created file, in this case it is “vpnconnection1”
Adding a route to the routing table
All traffic for the VPN network should pass through the VPN interface so an entry has to be added to the routing table. To automatically add an entry whenever a VPN connection is established create and edit the following file
Add the following content
#!/bin/bash
route add -net 10.0.0.0/8 dev ppp0
Make the file executable
chmod +x /etc/ppp/ip-up.d/vpn1-route
Testing the connection
To connect using the newly created VPN connection use the following command
pppd call vpnconnection1
Take a peek into the messages log file using the following command
tail -f /var/log/messages
you should see something similar to this
Nov 27 13:46:20 server1 kernel: [ 800.071028] PPP generic driver version 2.4.2
Nov 27 13:46:20 server1 pppd[1083]: pppd 2.4.5 started by root, uid 0
Nov 27 13:46:20 server1 pppd[1083]: Using interface ppp0
Nov 27 13:46:20 server1 pppd[1083]: Connect: ppp0 /dev/pts/0
Nov 27 13:46:25 server1 pppd[1083]: CHAP authentication succeeded
Nov 27 13:46:25 server1 kernel: [ 804.683790] padlock: VIA PadLock Hash Engine not detected.
Nov 27 13:46:25 server1 kernel: [ 804.687408] PPP MPPE Compression module registered
Nov 27 13:46:25 server1 pppd[1083]: MPPE 128-bit stateless compression enabled
Nov 27 13:46:26 server1 pppd[1083]: local IP address 10.0.0.11
Nov 27 13:46:26 server1 pppd[1083]: remote IP address 10.0.0.12
Try pinging a system in the VPN network and you should get proper replies.
Disconnecting the connection
To disconnect the PPTP VPN connection use the killall command
Источник
Linux configure point to point tunneling PPTP VPN client for Microsoft PPTP vpn server
With this tip you will be able to work from home using VPN and that too from Linux / FreeBSD system for the proprietary Microsoft Point-to-Point vpn server.
Different organization uses different VPN connection options such as SSL, PPTP or IPSEC. When you need to access corporate network and its services, you need to login using VPN.
The Point-to-Point Tunneling Protocol (PPTP) is a method for implementing virtual private networks. It works on Data link layer (#2 layer) on TCP/IP model. Personally I prefer IPSEC. PPTP Client is a Linux, FreeBSD, NetBSD and OpenBSD client for the proprietary Microsoft Point-to-Point Tunneling Protocol, PPTP. Allows connection to a PPTP based Virtual Private Network (VPN) as used by employers and some cable and ADSL internet service providers.
But many originations use PPTP because it is easy to use and works with Windows, Mac OS X, Linux/*BSD and other handled devices.
Compatibility note
I’ve tested instructions and pptp on:
[a] CentOS / RHEL / Fedora Core Linux running 2.6.15+ kernel
[b] Ubuntu and Debian Linux running 2.6.15+ kernel
[c] FreeBSD etc
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
I’ve found that pptp client is 100% compatible with the following servers/products:
[a] Microsoft Windows VPN Server
[b] Linux PPTP Server
[c] Cisco PIX etc
How do I install PPTP client under Linux?
By default most distro installs PPTP client called PPTP-linux which is the client for the proprietary Microsoft Point-to-Point Tunneling. Use apt-get or yum command to install pptp client:
$ sudo apt-get install pptp-linux network-manager-pptp
Fedora Core user can install client using rpm command:
# rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/fc6/pptp-release-current.noarch.rpm
# yum —enablerepo=pptp-stable install pptpconfig
[a] network-manager-pptp or pptpconfig – A gui network management framework (PPTP plugin) for network-admin tool (frontend)
[b] pptp-linux – Point-to-Point Tunneling Protocol (PPTP) command line client
How do I configure client using command line (cli)?
You need to edit / create following configuration files
- /etc/ppp/chap-secrets – Add your login name / password for authentication using CHAP. Pppd stores secrets for use in authentication in secrets files.
- /etc/ppp/peers/myvpn-name – A dialup connection authenticated with PAP / CHAP configuration file. You need to add your dialup server name and other information in this file.
Sample configuration data
- PPTP server name: pptp.vpn.nixcraft.com
- VPN User Name : vivek
- VPN Password: VpnPassword
- Connection name: delhi-idc-01
Open /etc/ppp/chap-secrets file:
# vi /etc/ppp/chap-secrets
OR
$ sudo vi /etc/ppp/chap-secrets
Append line as follows:
vivek PPTP VpnPassword *
Save and close the file.
Create a connection file called /etc/ppp/peers/delhi-idc-01 (replace delhi-idc-01 with your connection name such as office or vpn):
# vi /etc/ppp/peers/delhi-idc-01
Append configuration data as follows:
pty «pptp pptp.vpn.nixcraft.com —nolaunchpppd»
name vivek
remotename PPTP
require-mppe-128
file /etc/ppp/options.pptp
ipparam delhi-idc-01
Close and save the file. Where,
- pty “pptp pptp.vpn.nixcraft.com –nolaunchpppd”: Specifies that the command script is to be used to communicate rather than a specific terminal device. Pppd will allocate itself a pseudo-tty master/slave pair and use the slave as its terminal device. The script will be run in a child process with the pseudo-tty master as its standard input and output. An explicit device name may not be given if this option is used. (Note: if the record option is used in conjunction with the pty option, the child process will have pipes on its standard input and output.). In this case we are using pptp client to establishes the client side of a Virtual Private Network (VPN) using the Point-to-Point Tunneling Protocol (PPTP). pptp.vpn.nixcraft.com is my host name (or IP address) for the PPTP server. –nolaunchpppd option means do not launch pppd but use stdin as the network connection. Use this flag when including pptp as a pppd connection process using the pty option.
- name vivek: VPN username
- remotename PPTP: Set the assumed name of the remote system for authentication purposes to name. If you don’t know name ask to network administrator
- require-mppe-128: Require the use of MPPE, with 128-bit encryption. You must encrypt traffic using encryption.
- file /etc/ppp/options.pptp: Read and apply all pppd options from options.pptp file. Options used by PPP when a connection is made by a PPTP client.
- ipparam delhi-idc-01 : Provides an extra parameter to the ip-up, ip-pre-up and ip-down scripts (optional).
Route traffic via ppp0
To route traffic via PPP0 interface add following route command to /etc/ppp/ip-up.d/route-traffic
# vi /etc/ppp/ip-up.d/route-traffic
Append following sample code (modify NET an IFACE as per your requirments):
#!/bin/bash
NET=»10.0.0.0/8″ # set me
IFACE=»ppp0″ # set me
#IFACE=$1
route add -net $
Save and close the file:
# chmod +x /etc/ppp/ip-up.d/route-traffic
Task: connect to PPTP server
Now you need to dial out to your office VPN server. This is the most common use of pppd. This can be done with a command such as:
# pppd call delhi-idc-01
If everything is went correctly you should be online and ppp0 should be up. Remote server will assign IP address and other routing information. Here is the message from my /var/log/messages file:
# tail -f /var/log/messages
Output:
Task: Disconnect PPTP server vpn connection
Simply kill pppd service, enter:
# killall pppd
OR
# kill
How do I configure PPTP client using GUI tools?
If you are using Debian / Ubuntu, just click on Network configuration Icon on taskbar > VPN Connection > Configure VPN > Add:
Save and close the dialog box. To connect via VPN click on Network Icon > Select VPN Connection > Connection name (Mumbai VSNL IDC) > Enter your VPN username and password and click on Ok
If you are using Fedora core Linux, run pptpconfig as root and just follow on screen instructions:
# pptconfig &
Troubleshooting hints
If the connection fails, you might need to gather more information and try out following troubleshooting tips.
Q. I’m authenticated successfully but cannot route traffic..
A. Use route command to add route manually:
# ip route add
# ip route add 10.0.0.0/8 dev ppp0
Or use route command:
# route add -net 10.0.0.0 netmask 255.0.0.0 dev ppp0
Q. I’m authenticated successfully, I can ping to remote gateway but cannot access host by name…
A. Setup correct DNS server names in /etc/resolv.conf file:
# cat /etc/resolv.conf
Output:
search nixcraft.com
nameserver 10.0.6.1
nameserver 10.0.6.2
nameserver 208.67.222.222
Q. How do I open my local network (laptop, desktop and other system) to talk with any computer behind VPN server via this local Linux ppp0 interface (i.e. act this computer as router)…?
A. Append following two rules in your existing iptables rules to turn on routing (adjust IP address range as per your setup):
iptables —table nat —append POSTROUTING —out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables —append FORWARD —in-interface eth0 -j ACCEPT
Q. Point-to-Point Encryption is not working and I’m not able to connect to remote PPTP server…
A. Make sure you are using 2.6.15 or above kernel. If you are using old kernel version upgrade to latest version and compile support for ppp_mppe kernel module. If you are using latest version, load driver using modprobe:
# modprobe ppp_mppe
# pppd call myoffice
Note: You can always get more information by reading pptp diagnosis howto here.
A note to readers
As I said earlier I prefer to use open source solution such as OpenVPN or IPsec as they are more secure. The PPTP is not secure enough for some information security policies. Next time I will write about OpenVPN and IPsec.
Источник