Admin/tricks/vpn

Материал из Etersoft wiki
Перейти к: навигация, поиск
Wackowiki-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была автоматически перемещена с old.wiki.etersoft.ru.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Организация VPN



VPN over SSH

Настройка клиента

1) Создаем пару ключей для авторизации по ssh.

ssh-keygen -N "" -t rsa -f <path to key>


2) Создаем соединение

/etc/ppp/peers/<ppp name>

# куда будем записывать логи

logfile /var/log/ppp/server.log



# после отладки можно закомментировать

debug



# адреса сторон, берем из private pool (<ip client>:<ip server>)

10.10.0.2:10.10.0.1



name client

remotename server

noauth

nodefaultroute



# собственно SSH транспорт, который так старательно конфигурили

# BlowFish работает чуть быстрее

pty "ssh -P -p 22 -e none -c blowfish -t -i <path to key> -l <user> <server> /usr/sbin/pppd passive"



# задержка перед PPP

connect-delay 30000



# 10 по умолчанию, на загруженных линиях недостаточно

lcp-max-configure 30



# LCP restart interval (retransmission timeout) to n sec-onds (3 по умолчанию)

lcp-restart 10



# подстраиваем MTU, после распаковки пакеты должны влезать в один ethernet frame

mtu 1200

mru 1200



# после коннекта отрубаемся от shell и в background

updetach



# постоянно держать соединение, реконнект по закрытию

persist

holdoff 60



# реконнектиться до посинения

maxfail 15



nodetach


Настройка сервера

1) Создаем пользователя

groupadd vpn

useradd -G vpn vpn_1


2) setuid on /usr/sbin/pppd

или настоить sudo


3) Копируем созданный на клиенте публичный ключ в /.ssh/authorized_keys2


4) Разрешаем пользователю входить по ssh (/etc/openssh/sshd_config)



Проверка

Для начала достаточно сделать с
клиента

ssh -P -p 22 -i <path to key> -l <user> <server>

и убедится что доступ по ssh работает


Потом можно запустить руками ppp c
клиента

pppd call etersoft


Если что-то не так можно запустить

ssh -P -p 22 -e none -c blowfish -t -i <path to key> -l <user> <server> /usr/sbin/pppd passive

и посмотреть ответ. Возможно нет прав на запуск /usr/sbin/pppd на
сервере


После запуска

После запуска, на обоих машинах поднимается интерфейс ppp0 (точка-точка).

На клиент бывает надо прописать статический маршрут:

ip r add 192.168.0.0/24 via 192.168.1.1

где

192.168.0.0/24 -- удаленная сеть

192.168.1.1 -- адрес PPP сервера


На сервере надо написать соответствующие правила к фаерволу.


Ссылки по теме

http://www.semicomplete.com/articles/ppp-over-ssh/

http://swaj.net/zametki/z-linux-ppp-over-ssh.html