VPN по-хакерски Докучаев Дмитрий aka Forb Хакер, номер #074, стр. 074-052-4 openssl dhparam -out dh1024.pem 1024 При желании можно увеличить число бит до 2048, если ты параноик :). После этих экзерсисов убедись, что в каталоге ssl находятся два файла: dh1024.pem и vpn.crt. Они нужны для правильной работы VPN. Теперь оттачивай файл openvpn.conf. Как я уже сказал, я использую авторизацию по паролю, и мой конфиг выглядит так: openvpn.conf с поддержкой авторизации по паролю local 67.159.3.138 cd /usr/local/etc/openvpn port 31337 proto udp dev tun ca ssl/vpn.crt dh ssl/dh1024.pem tls-server server 192.168.0.0 255.255.255.0 client-config-dir ccd route 192.168.0.0 255.255.255.252 keepalive 10 60 comp-lzo verb 3 username-as-common-name auth-user-pass-verify scripts/auth.pl via-env client-cert-not-required Если ты внимательно всмотрелся в конфиг, то узрел путь к scripts/auth.pl. Дело в том, что при парольной авторизации демон экспортирует переменные USERNAME и PASSWORD, в которые помещает логин и пароль клиента. Перловый скрипт все это дело проверяет и сравнивает с эталонными значениями. По значению возврата (0 или 1) демон определяет валидность аккаунта. Чтобы сэкономить место, я не стал приводить исходник сценария – ищи его на диске или в каталоге http://kamensk.net.ru/forb/1/x/vpn. В целях безопасности я решил криптовать пароли алгоритмом MD5 (проверяющий скрипт также привязан к MD5-базе). Поэтому убедись, что в твоей системе есть утилита md5. Создать пароль лучше всего с помощью запроса echo –n 'password' | md5. Также можно воспользоваться сценарием add.pl, который добавляет нового юзера в базу /usr/local/etc/openvpn/password. Этот скрипт автоматизирует операцию по прописке IP-адреса пользователя в каталог ccd. Посмотри его исходник – он лежит в том же каталоге, - и тебе станет ясен механизм добавления новых клиентов. Не забудь добавить в файл /etc/ipnat.rules IP-адреса клиентов OpenVPN. Как это сделать, я уже говорил. Теперь, когда все готово, запускай OpenVPN с параметром –-config "/usr/local/etc/openvpn.conf" –-daemon, и демон начнет следить за новыми подключениями. Any problems? Вот и весь захватывающий процесс установки VPN-серверов. Несложно, правда? :) Но если ты впервые сидишь в UNIX-шелле, некоторые затруднения у тебя, конечно, возникнут. В этом случае не стесняйся посещать www.google.com и писать мне письма – я обязательно помогу разрешить твою проблему. За определенную плату, конечно ;). Настройка клиентской части Чтобы поднять клиент OpenVPN, также придется немножко попотеть. В первую очередь, сливай вторую версию виндового OpenVPN (http://kamensk.net.ru/forb/vpn/openvpn-2.0_beta15-install.exe). Не брезгай беткой, так как в дальнейших релизах почему-то убрали возможность авторизации через файл :(. После того как в системе появится новый интерфейс, переноси сертификат сервера на клиентскую сторону, а затем составляй конфиг-файл. Пример конфа ты можешь найти на диске или по ссылке http://kamensk.net.ru/forb/1/x/vpn/winvpn.conf. В этом конфе нужно лишь задать IP-адрес сервера и изменить путь в директиве cd. Последний шаг – запуск openvpn.exe. Этот бинарник находится в c:\program files\openvpn\bin. Его следует запускать с двумя параметрами: --config "путь к конфигу" и -–redirect-gateway. Последняя опция изменит маршрутизацию таким образом, чтобы весь трафик пошел через VPN. |