Главная » Статьи » Безопасность в сети

Пошаговая инструкция по поднятию VPN на VDS
Решил накатать статью по поднятию OpenVPN на VDS/VPS и вот что получилось:

Почему именно на VDS/VPS? 
Это самый доступный на сегодняшний день
хостинг с неограничеными возможностями и недорогой (купить VPN дороже
раза в 2, хоть в покупке и есть свои плюси и довольно таки немалые, но
не об этом тема). Поехали:

1. Выбираем хостера с VDS/VPS.
 - Я рекомендую FirstVDS , поскольку у них поставил не один OpenVPN, да и привык к ним как-то.

2. Регистрируемся. ОС
 - Выбираем CentOS ибо на нем лучше всего делать VPN

3. Для фёрста просим сразу же активировать TUN и NAT
 - (пишем в билинге что-то типа Активизируйте, пожалуйста, TUN/TAP-устройства для сервера
   {IP вашего сервера}, а так же включите NAT). Для других хостеров может
   быть не актуально, поскольку это все может быть включено, но скорей всего - нет

4. Лезем через ssh на сервак.
 - Редактируем /etc/yum.conf. Ищем строчку
   plugins=1. Если стоит 0 то все нормально, если нет то правим.

5. Коммандуем


# yum install openvpn

Соглашаемся на установку.
Если же послали куда подальше, то либо не выполнили пункт 4, если не помогло то меняем репозиторий юма
6. Ну вот поставили.

Теперь создаем конфигурационные файлы

# touch /etc/openvpn/openvpn.conf
# mkdir /etc/openvpn/ccd
# mkdir /etc/openvpn/keys
# cp -r /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn/
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/openssl.cnf /etc/openvpn
# cd /etc/openvpn/easy-rsa
# chmod +x clean-all
# chmod +x build*

7. Редактируем /etc/openvpn/easy-rsa/vars

export KEY_COUNTRY=RU
export KEY_PROVINCE=MSK
export KEY_CITY=MOSCOW
export KEY_ORG="OpenVPN-TEST-INSTALLATION"
export KEY_EMAIL="admin@example.com"

8. Создаем ключи

# cd /etc/openvpn/easy-rsa
# . ./vars
# ./clean-all

Будут спрашивать данные для сертификата, лучше отвечать ближе к правде, хотя и не обязательно:

# ./build-ca

Аналогично, отвечать нужно на все вопросы. Common name должно быть server. На 2 вопроса отвечать y:

# ./build-key-server server

Создаем ключ шифрования:

# ./build-dh

Создаем клиентский сертификат. Если у нас несколько клиентов, то
повторяем этот шаг несколько раз, меняя номер клиента. В Common name
указываем то же самое что и в параметре запроса (client1 - прим.):

# ./build-key client1

9. Топаем в /etc/openvpn.
И радактируем конфиг openvpn.conf. Итак!!!
То чего все так долго ждали!!!
Рабочий конфиг сервера

port указываем нужным нам порт
proto tcp
dev tun
local указываем внешний айпишник сервера
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.8.0.1"
push "redirect-gateway def1"

push "dhcp-option DNS 10.8.0.1"
push "dhcp-option WINS 10.8.0.1"
keepalive 10 320
tun-mtu 1500
comp-lzo
user nobody
max-clients 10

client-to-client
group nobody
persist-key
persist-tun
mssfix 1450
status /etc/openvpn/openvpn-status.log
log /etc/openvpn/openvpn.log
verb 4

Если нужно в ручную указывать айпишник для клиента то редактируем файл
ipp.txt в директории /etc/openvpn на клиента строчку следующего вида:

client1,10.8.0.4

10. Прокидываем нат для выхода на внешку:

# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

На VPS на базе Virtuozzo вместо первой команды надо выполнить (если не
знаете че за хуета то устанавливаем опытным путем... не соединяется со
страницами - значит эта хрень стоит )

# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source IP_АДРЕС_ВАШЕГО_ВДС


Выполнять нужно либо ту, либо эту комманду... хотя ниче не будет если
обе выполнтие... После чего чтоб все вступило в силу выполняем:

# echo 1 > /proc/sys/net/ipv4/ip_forward

11. Запускаем openvpn

# service openvpn start

Либо

# /etc/init.d/openvpn start

Разницы нет.
Если все нормально сделали то выдаст OK

12. Сервак настроили.
Теперь настраиваем клиента. Описывать не буду как
че делать - выложу один конфиг и какие ключи слить надо. Итак сливаем
файлы ca.crt, client01.crt, client01.key (все находятся в
/etc/openvpn/easy-rsa/keys).
А вот и конфиг клиента для OpenVPN :

client
port указываем порт на котором работаем
dev tun
proto tcp
remote сервак порт
resolv-retry infinite
nobind
route-method exe
route-delay 2
persist-key
persist-tun
mute-replay-warnings
ca "ca.crt"
cert "client2.crt"
key "client2.key"

ping 15
ping-restart 45
ping-timer-rem

tun-mtu 1500

ifconfig 10.8.0.4 255.255.255.0
dhcp-option DNS 10.8.0.1
dhcp-option WINS 10.8.0.1

comp-lzo
ns-cert-type server
cipher BF-CBC
verb 4
mute 20

Все... цепляемся и радуемся. Если происходит ситуация, что при загрузке
страниц висит ожидание открытия страницы... короче сервак найден, но
страницы не грузит то меняем значение mtu (строка tun-mtu) в конфигах
как сервака (после изменений перезагрузить не забудьте коммандой service
openvpn restart) так и клиента на меньшее зчение, например на 1000. У
меня именно такая ситуация была, поскольку сетевое оборудование
передавало пакеты меньше 1500, поставив 1000 - я избавился от геммороя )
Кому интересно что такое MTU читайте документацию и учите матанализ

Категория: Безопасность в сети | Добавил: Maksimuuus (20.07.2013) E
Просмотров: 1855 | Комментарии: 1 | Теги: безопасность, vds, vpn, Защита | Рейтинг: 0.0/0
Всего комментариев: 1
  • Добавлено: 20.07.2013
1
хех)
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Лучшая рип студия!

Коротко о сайте...
На форуме uSite вы можете получить
бесплатную помощь по системе
uCoz и языкам сайто-строения.
Счетчики
Maksimuuus
Maksimuuus 20.07.2013, 10:27 к материалу
хех)
Sitemap
Sitemap-Forum
URL List
RSS
RSS-Forum
Подняться вверх
Все права защищены.Хостинг от uCozНаша страница vkНаш Twitter