Pull to refresh

Использование домашнего интернета на работе, обходим ограничения контента

Reading time3 min
Views41K

Введение


Здравствуйте, товарищи!
Сразу оговорюсь, что статья не рассчитана на профессионалов, но и на блондинок она не рассчитана, а скорее предназначена для людей нуждающихся в полноценном доступе к интернету с прямыми руками и энтузиазмом.
Началось все с того, что у меня на работе ввели ограничения по ресурсам, на которые можно заходить. А посещать всякого рода сайты естественно хочется, ну и не хочется палиться в логах.
Вариантов решения проблемы несколько:
  • Тор сети
  • Покупка 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 

Все! Можно работать! Помимо доступа в интернет, Вы так же имеете доступ в Вашу домашнюю локальную сеть.
Надеюсь кому-то это оказалось полезным.
Tags:
Hubs:
0
Comments37

Articles

Change theme settings