Введение
Здравствуйте, товарищи!
Сразу оговорюсь, что статья не рассчитана на профессионалов, а скорее предназначена для людей нуждающихся в полноценном доступе к интернету.
Началось все с того, что у меня на работе ввели ограничения по ресурсам, на которые можно заходить. А посещать всякого рода сайты естественно хочется, ну и не хочется палиться в логах.
Вариантов решения проблемы несколько:
- Тор сети
- Покупка VPN сервиса
- Настройка домашнего OpenVPN сервера для обхода ограничений рабочей сети.
О последнем варианте и пойдет речь, кого заинтересовал прошу под кат.
Установка, настройка и проверка
Что нам нужно
Так как нагрузка на наш мини-сервер будет не большая, вся моя серверная часть находится на виртуальной машине в VirtualBox.
Операционная система Debian, вся настройка будет проводиться под нее (Описание установки я приводить не буду, мануалов и так полно).
В случае, если вы используете роутер, то необходимо настроить проброс портов на IP ОС в VirtualBox.
Замечание: Для того, чтобы IP сервера пинговался из локальной сети в настройках машины VirtualBox, во вкладке Сеть нужно указать Тип подключения: Сетевой мост
Внешний статический IP желателен, но не обязателен, можно использовать DynDNS или один из способов представленных в этой статье.
Установка и настройка
Сервер
Будем считать, что Вы установили чистый, голый Debian в терминальном или графическом режиме, на Ваш вкус.
Тогда первое, что нужно сделать, это установить необходимые пакеты: OpenVPN, OpenSSL, LibLzo для сжатия траффика и MC удобный файловый менеджер.
sudo apt-get install openvpn openssl liblzo2-2 mc
Копируем примеры создания ключей в корневую папку и переходим в нее:
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa
Создаем ключи и сертификаты, попутно отвечая на задаваемые вопросы:
. ./vars ./clean-all ./build-ca
Затем необходимо создать ключ сервера:
./build-key-server servername
Опять же вопросы и в результате получаем два файла: server.key и server.crt
Теперь нужно создать ключи для клиентов:
./build-key clientname
И снова куча вопросов, повторять данную операцию по количеству людей, которых вы собираетесь допускать к своему серверу.
Clientname и Servername могут быть любыми.
Теперь необходимо создать ключ Diffie Hellman:
./build-dh
Процесс может занять продолжительное время.
В итоге после всех этих манипуляций в папке keys у нас должны быть следующие ключи: ca.crt, servername.crt, servername.key, clientname.crt, clientname.key, dh1024.pem. Все кроме клиентских мы благополучно копируем в папку /etc/openvpn/:
cp ./keys/ca.crt /etc/openvpn cp ./keys/server.crt /etc/openvpn cp ./keys/server.key /etc/openvpn cp ./keys/dh1024.pem /etc/openvpn
С созданием ключей покончено, осталось настроить сервер. Для этого в папке /etc/openvpn/ создаем файл server.conf
port 1194 proto tcp dev tun # используем тип тунеля для интернет, tap для eternet ca ca.crt # наши сертификаты cert server.crt key server.key dh dh1024.pem server 10.8.0.0 255.255.255.0 # собственно наша виртуальная сеть ifconfig-pool-persist ipp.txt keepalive 10 120 # пинг каждые 10 секунд для поддержания канала связи comp-lzo # сжатие трафика persist-key persist-tun status openvpn-status.log #лог push "redirect-gateway" # Перенаправлять default gateway на vpn-сервер. Если не нужно - закомментировать. client-to-client route 10.8.0.0 255.255.255.0 verb 3 # уровень болтливости записей в логи push "dhcp-option 8.8.8.8"
Осталось дело за малым, пустить интернет через наш сервер:
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE /etc/init.d/openvpn restart
Все! Наш сервер готов к использованию.
Клиент
Приступим к настройке клиенской части.
У меня все настроено так же на Debianе, но под Windows тоже можно переделать инструкцию.
Повторяем первые шаги по установке OpenVPN, ключи создавать больше не требуется, нужно скопировать уже созданные ключи ca.crt, clientname.crt, clientname.key в папку /etc/openvpn/
Теперь осталось создать конфигурационный файл client.conf и можно будет работать:
port 1194 # ip и порт нашего сервера client dev tun ping 10 comp-lzo proto tcp ca /etc/openvpn/ca.crt cert /etc/openvpn/client1.crt key /etc/openvpn/client1.key ns-cert-type server push "dhcp-option DNS 8.8.8.8" route 10.8.0.0 255.255.255.0 verb 3 pull
Если у Вас выделенный IP то его можно также прописать в конфигурационном файле, у меня динамический, поэтому ввожу его при подключении.
Сохраняем файл и пробуем подключиться:
sudo openvpn --remote Ваш домашний IP --config /etc/openvpn/client.conf
Все! Можно работать! Помимо доступа в интернет, Вы так же имеете доступ в Вашу домашнюю локальную сеть.
Надеюсь кому-то это оказалось полезным.
ссылка на оригинал статьи http://habrahabr.ru/post/169399/
Добавить комментарий