Настройка pptpd в Debian и CentOS: часть первая
В этой статье мы будем настраивать на нашем сервере VPN-демон pptpd.
VPN (англ. Virtual Private Network — виртуальная частная сеть) — обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (например, Интернет). Несмотря на то, что коммуникации осуществляются по сетям с меньшим неизвестным уровнем доверия (например, по публичным сетям), уровень доверия к построенной логической сети не зависит от уровня доверия к базовым сетям благодаря использованию средств криптографии (шифрования, аутентификации, инфраструктуры открытых ключей, средств для защиты от повторов и изменений передаваемых по логической сети сообщений). (c) Wikipedia
Устанавливаем необходимые пакеты:
# aptitude update # aptitude install pptpd ppp
Аналогично для rhel (centos, fedora, etc):
# yum update # yum install pptpd ppp
Настраиваем конфиг pptpd:
# nano /etc/pptpd.conf
Указываем в параметр localip IP-адрес нашего сервера, в remoteip указываем IP-адреса, которые могут быть выданы клиентам. Туда же можно вписать диапазон, если количество клиентов предполагает быть больше 10. В моем случае оно выглядит так:
localip 192.168.1.100 remoteip 192.168.1.105-140
Соответственно, удаленным клиентам будут присваиваться адреса в диапазоне 192.168.1.105-140. После этого, в этом файле в принципе трогать ничего не нужно. Далее настраиваем конфиг pptpd-options:
# nano /etc/pptp/pptpd-options
Вписываем DNS-сервера, оставляем параметры nodefaultroute и proxyarp незакоментированными:
# 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 79.165.94.199 ms-dns 87.240.1.1 ms-dns 192.168.1.1 ms-dns 8.8.8.8 ms-dns 87.240.1.1 ms-dns 87.240.1.2 # Debian: do not replace the default route nodefaultroute # 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
В ms-dns вписываем DNS, выданные Вам провайдером. В моем случае, первый DNS – это роутер, второй – google, третьи и четвертые – выданные провайдером. Теперь настраиваем учетные записи протокола chap для пользователей user и bux:
# nano /etc/ppp/chap-secrets
Стараемся соблюдать таблицу. В конфиге уже должен быть пример, потому я думаю добавить пользователя не составит труда.
# Secrets for authentication using CHAP # client server secret IP addresses user pptpd password "*" bux pptpd qwerty123 "*"
Первый столбец – имя пользователя, второй обозначение протокола, третий – сам пароль, четвертый – IP, с которого сервер будет пускать данного клиента. Если кавычки пусты (т.е. в них стоит звездочка) – значит пускать будет с любого IP.
Теперь настроим маршрутизацию:
# nano /etc/rc.local
И в конец файла, перед exit 0 впишем:
echo 1 >/proc/sys/net/ipv4/ip_forward
Перезапустим демон pptpd:
# service pptpd restart
или
# /etc/init.d/pptpd restart
Дело за малым – осталось рассказать, как настроить pptp-клиент. Напишу позже новым постом. Собственно всё, теперь у Вас есть собственный vpn-сервер 🙂
Где взяли pptpd для Centos?
epel вроде
вообще, везде куча репозитариев и .rpm с ppp* лежит, так что по-моему нет смысла интересоваться