Настраиваем простейший VPN сервер для дома
Сейчас, многие провайдеры предоставляют доступ в интернет по технологии PPTP, или проще говоря VPN. Т.е. пользователи объеденены в одну локальную сеть доступ к которой обычно бесплатен, а выход в интернет осуществляется путём подключения к VPN серверу. Всё бы замечательно, но у многих провайдеров до сих пор просто грабительски цены на безлимитные тарифы, что и заставляет людей объединятся и делить интернет на всех. Провайдер которым я пользуюсь не такой, но и его цены на безлимиты раньше были отнюдь не маленькими. Тогда я на свой небольшой домашний сервер решил поставить VPN сервер и с друзьями скидывались на безлимитный тариф. Сейчас уже конечно всё более радужно и у каждого из нас свой отдельный безлимит на 8Мбит\с, однако есть и другие провайдеры в других городах. Думаю людям которые подключены к подобным провайдерам, данная статья будет полезна.
На домашнем сервере, так же как собственно и на всех остальных серверах которые под моим руководством, традиционно установлен Debian stable.
Первое что нам нужно, это включить IP forwarding в ядре. Включим прямо сейчас. Так сказать "на лету":
sudo -i
sysctl -w net.ipv4.ip_forward=1
И добавим в /etc/sysctl.conf чтобы он был включен всегда:
net.ipv4.ip_forward=1
Теперь установим собственно нужный пакет:
sudo aptitude install pptpd
Приводим конфиг к такому виду:
name pptpd #имя сервера
auth # Требуем авторизацию у клиентов
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
nodefaultroute
lock
nobsdcomp
Далее изменим ip адрес сервера и выдаваемые им внутренние ip адреса. Они совпадали с ip адресами серверов моего провайдера, поэтому требовалось изменить. Открываем /etc/pptpd.conf и в самом конце изменяем строки:
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
Например на такие:
localip 192.168.5.1
remoteip 192.168.5.2-24
localip - адрес сервера, remoteip - диапазон адресов которые он будет выдавать.
Добавим пользователей в /etc/ppp/chap-secrets
user1 pptpd user1pass *
user2 pptpd user2pass 192.168.5.3
Первое имя пользователя, второе имя сервера, далее пароль и выдаваемый pptpd сервером ip адрес. В данном примере у user1 пароль user1pass и выдаваться любой ip адрес из свободных, а у user2 пароль user2pass и ему всегда будет выдаваться адрес 192.168.5.3
Последний шаг - настройка firewall'а.
iptables -t nat -I POSTROUTING -s 192.168.5.0/255.255.255.0 -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Не забудьте сменить 192.168.5.0/255.255.255.0 на свой диапазон адресов который указан в /etc/pptpd.conf