Как установить PPTP VPN на CentOS 6
С приходом блокировок сайтов Роскомнадзором все начали искать пути обхода и один из способов обхода сделать себе VPN-сервер и открывать сайты через него, также VPN-сервер может понадобится вам в случаях когда нужно скрыть свой реальный IP от кого-то.
Как подключиться к VPN PPTP серверу под Windows я уже писал ранее.
Скачиваем и устанавливаем репозиторий EPEL для CentOS 6
1 |
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm && sudo rpm -Uvh epel-release-6*.rpm |
Устанавливаем PPTPD
1 |
yum install pptpd.x86_64 -y |
Добавляем в файл /etc/pptpd.conf необходимые строки
Запускаем команду, чтобы добавить строки в файл:
1 |
echo -e localip 10.0.0.1 \\nremoteip 10.0.0.100-200 > /etc/pptpd.conf |
В данном случае мы выделили диапазон IP-адресов с 10.0.0.100 по 10.0.0.200 для назначение клиентам которые подключаться к PPTPD серверу.
Создаем нового пользователя с паролем в файле /etc/ppp/chap-secrets
Делается это просто командой:
1 |
echo -e novall pptpd novall-password >> /etc/ppp/chap-secrets |
Имя пользователя (логин): novall
Пароль: novall-password
Можете заменить на свои логин и пароль, которые вам удобнее.
Добавляем DNS-сервера в файл /etc/ppp/pptpd-options
Для этого выполняем команду:
1 |
echo -e ms-dns 8.8.8.8 \\nms-dns 8.8.4.4 >> /etc/ppp/pptpd-options |
В данной команде используются DNS компании Google как одни из самых авторитетных, но вы можете указать, какие захотите.
К примеру можно указать DNS-сервера от OpenDNS: 208.67.222.222 208.67.220.220
Запускаем PPTPD
1 |
service pptpd restart |
Проверяем, что сервер запущен и слушает 1723 порт:
1 |
netstat -nlp|grep 1723 |
Настраиваем форвардинг пакетов на сервере
Для настройки форвардинга на сервере необходимо отредактировать файл /etc/sysctl.conf
Изменяем строку
1 |
net.ipv4.ip_forward = 0 |
на
1 |
net.ipv4.ip_forward = 1 |
И выполняем команду для того, чтобы применить изменения:
1 |
sysctl -p |
Добавляем PPTPD в автозагрузку
Выполняем команду:
1 |
chkconfig --levels 345 pptpd on |
Эта команда добавит на демон в автозагрузку, что избавит нас от запуска демона вручную каждый раз после перезагрузки сервера.
Создаем правила для Iptables
1 |
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save |
где eth0 – имя вашего интерфейса, измените на ваше имя, узнать имя интерфейса можно выполнив команду ifconfig
Проверка проблем с PPTP VPN
Если в логе /var/log/messages вы видите следующие строки:
1 2 3 4 |
Couldn't open the /dev/ppp device: Operation not permitted Sorry - this system lacks PPP kernel support GRE: read(fd=6,buffer=6124a0,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs PTY read or GRE write failed (pty,gre)=(6,7) |
значит у вас не подключен модуль ppp к вашему ядру, если у вас используется виртуализация OpenVZ то это можно сделать довольно просто.
Подключение ppp модуля в OpenVZ
Копируем следующие команды в блокнот и меняем CTID на ваш:
1 2 3 4 5 6 7 |
CTID=111 vzctl stop $CTID vzctl set $CTID --features ppp:on --save vzctl start $CTID vzctl set $CTID --devices c:108:0:rw --save vzctl exec $CTID mknod /dev/ppp c 108 0 vzctl exec $CTID chmod 600 /dev/ppp |
где CTID это id вашего контейнера (VPS/VDS) или другими словами сервера.
И выполняем на физической машине.