Установка и настройка OpenVpn сервера

Shakesdog

RIPPER
Messages
106
Reputation
20
Reaction score
29
Points
28
Поднимем впн на своем впс, который нам будет обходиться всего в 10$ в месяц (можно и меньше если брать другую страну), и поможет нам сервис от Inferno Solutions. Можно приступать!
Идём по данному URL Inferno Solutions
и повторяем последовательность цифр на следующей картинке
84956659.jpg


Выбираем этот VPS -> далее

25762323.jpg


Обновляем корзину, и оплачиваем заказ
(ВНИМАНИЕ: если хотите здесь же хостить сайты то ставьте сразу панель администрариования,
т.к. при её установке диск форматируется)


Через 5-10 минут на почту придут данные для входа в виде IP адреса и пароля для SSH
Заходим по SSH с этими данными по средством Putty

scaled.php


Включаем форвардинг пакетов, для этого пишем в консоли "mc" миднайт коммандер типа фара в винде.
Идём в /etc и через F4 открываем файл sysctl.conf, правим файл как на скрине

Меням - net.ipv4.ip_forward = 0 на net.ipv4.ip_forward = 1

scaled.php


Через F10 выходим, подтверждая изменения.
Далее выходим из mc и в консоли пишем следующее: sysctl –p
Это загрузит переменные ядра из обновленного файла sysctl.conf

scaled.php


По стандарту в роли файервола выступает iptables, пропишем для него правило
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source ВАШ ВНЕШНИЙ_IP

scaled.php


Запускаем правило при запуске системы

mkdir /etc/iptables
/sbin/iptables-save > /etc/iptables/rules
echo "/sbin/iptables-restore < /etc/iptables/rules" >> /etc/rc.d/rc.local

Устанавливаем VPN сервер
Вводим в консоли

rpm -Uvh http://mirror.yandex.ru/epel/5/i386/epel-release-5-4.noarch.rpm

Далее

yum install openvpn
Вводим "y" получаем сообщение о том, что всё установилось. Сразу делаем даунгрейд версии VPN сервера (из личного опыта)
yum downgrade openvpn
Вводим "y" получаем сообщение о том, что всё версия понизилась.
Для дальнейшего удобства устанавливаем WinSCP с оф сайта http://winscp.net/download/winscp432setup.exe
вводим свои данные и коннектимся к серверу и идём в папку /usr/share/openvpn/easy-rsa/2.0/

scaled.php


Через F7 создаём папку keys


Идём в консоль и создаём пару файлов командами
touch /usr/share/openvpn/easy-rsa/2.0/keys/index.txt
echo "00" > /usr/share/openvpn/easy-rsa/2.0/keys/serial
Вводим команду перехода в папку
cd /usr/share/openvpn/easy-rsa/2.0/
И сгенерируем корневой сертификат, по очереди вводим
source ./vars
./clean-all
./build-ca
На все вопросы, нажимаем "enter"

scaled.php


Создаём сертификат и секретный ключ сервера
./build-key-server server
Точно также как и с корневым сертификатом сервера жмём "enter" там где спросят
ввести пароль, вводим его и записываем где ни будь у себя

scaled.php


Генерируем ключ Диффи-Хелмана. Алгоритм Диффи-Хелмана позволяет получить двум сторонам
общий секретный ключ, использующийся для дальнейшего симметричного шифрования данных.

./build-dh

scaled.php



Напоследок генерируем ключ для TLS аутентификации
openvpn --genkey --secret keys/tls.key
Теперь создадим каталог /etc/openvpn/keys и скопируем туда необходимые серверу ключи и сертификаты
mkdir /etc/openvpn/keys
cp /usr/share/openvpn/easy-rsa/2.0/keys/ca.crt /etc/openvpn/keys/ca.crt
cp /usr/share/openvpn/easy-rsa/2.0/keys/server.crt /etc/openvpn/keys/server.crt
cp /usr/share/openvpn/easy-rsa/2.0/keys/server.key /etc/openvpn/keys/server.key
cp /usr/share/openvpn/easy-rsa/2.0/keys/tls.key /etc/openvpn/keys/tls.key
cp /usr/share/openvpn/easy-rsa/2.0/keys/dh1024.pem /etc/openvpn/keys/dh1024.pem
Создаём в папке файл /etc/openvpn файл openvpn.conf со следующим содержимым

PHP:
port 1194 # Порт на котором сервер будет принимать соединения 
local ВАШ ВНЕШНИЙ_IP # Адрес, на котором будет висеть openvpn сервер 
proto tcp # Протокол. Можно поставить tcp или udp. Вопрос что выбрать, 
не однозначный и зависит от конкретных условий. Протокол udp работает побыстрей, но не всегда применим. 
dev tun # Устройство туннеля 
server 10.8.0.0 255.255.255.0 # Виртуальная сеть, которая будет установлена между клиентом и сервером 

# Ключи и сертификаты 
ca keys/ca.crt 
cert keys/server.crt 
key keys/server.key 
dh keys/dh1024.pem 

cipher AES-256-CBC # Алгоритм шифрования, в данном случае 256-битный AES 
user nobody # Пользователь от которого будет работать OpenVPN сервер  
group nobody # Группа 
mute 20 # Не выводить повторять сообщение после 20 повторов 
max-clients 30 # Максимальное количество клиентов 
keepalive 10 120 # Каждые 10 секунд слать пинг, по истечении таймаута 120 секунд, перезапустить туннель 
client-config-dir /etc/openvpn/ccd # Директория для индивидуальных настроек каждого клиента 
tls-server # Явное указание, что данный хост является TLS сервером 
comp-lzo # Сжатие трафика 
persist-key # Не трогать tun устройство при перезапуске openvpn сервера 
persist-tun # Не перечитывать файлы ключей при перезапуске туннеля 
push "redirect-gateway def1" # Протолкнуть клиенту новый шлюз по умолчанию 
push "dhcp-option DNS 8.8.8.8" # Назначить для клиента DNS сервер, в данном случае публичный DNS от гугла

Запускаем серверную часть

service openvpn start

scaled.php


Как видим сервер запустился без ошибок
Проверяем устройство для туннеля

ifconfig tun0

scaled.php


Всё отлично

Переходим к генерированию сертификатов для клиентов

cd /usr/share/openvpn/easy-rsa/2.0
./build-key client01

scaled.php


Создаём папку
mkdir /root/ovpn

И копируем туда клиентские сертификаты
cp /usr/share/openvpn/easy-rsa/2.0/keys/ca.crt /root/ovpn/ca.crt
cp /usr/share/openvpn/easy-rsa/2.0/keys/client01.crt /root/ovpn/client01.crt
cp /usr/share/openvpn/easy-rsa/2.0/keys/client01.key /root/ovpn/client01.key
cp /usr/share/openvpn/easy-rsa/2.0/keys/tls.key /root/ovpn/tls.key
Далее создаём файл конфига под названием client01.ovpn со следующим содержанием

PHP:
client 
remote IP_АДРЕС СЕРВЕРА 1194 # Адрес и порт OpenVPN сервера 
proto tcp # Протокол, должен совпадать с сервером 
dev tun # Устройство 
# Сертификаты и ключи 
ca ca.crt 
dh dh1024.pem 
cert client01.crt 
key client01.key 
#tls-auth tls.key 1 
cipher AES-256-CBC #Алгоритм шифрования, должен совпадать с серверным 
verb 3 
mute 20 
keepalive 10 120 
comp-lzo 
persist-key 
persist-tun 
resolv-retry infinite 
nobind

Сохраняем его в папке /root/ovpn
Добавляем серсис VPN в автозагрузку
chkconfig --level 2345 openvpn on
И проверяем, добавился ли он
chkconfig –list
На этом настройка закончена
Инсталлируем VPN клиент с оф сайта _http://www.openvpn.net/index.php?option=com_content&id=357
Далее копируем сертификаты к себе

scaled.php



Запускаем VPN клиент, и проверяемся на 2ip.ru

На этом все, пользуемся и радуемся

P.S. Собственно потратив 10-15 минут на настройку своего впн сервера, вы будете гарантировано,
уверены в отсутствии ведения логов, минимальной цене и 100% аптаймом.
 

astr0

Carder
Messages
54
Reputation
7
Reaction score
13
Points
8
проще будет поднять форвард траффика посредством SSH.
а для новичков пойдёт любой VPS на win32 (4-8$) на который можно поставить SSH или Vpn сервер
 

UntilFree

Member
Messages
15
Reputation
0
Reaction score
0
Points
1
Если будут искать , то найдут ли реальный ip ?
Точнее насколько это сложно будет?

И почему именно инферно солюшенс?
 

Shakesdog

RIPPER
Messages
106
Reputation
20
Reaction score
29
Points
28
Если будут искать , то найдут ли реальный ip ?
Точнее насколько это сложно будет?
Если будут искать то найдут в любом случае, как бы ты не пытался скрыть свой ip, а так, достаточно трудно.

И почему именно инферно солюшенс?
Не плохой сервис, я лично им пользуюсь) выложил его как пример, можно воспользоваться другим сервисом. Тут я пытался смысл изложить.
 

UntilFree

Member
Messages
15
Reputation
0
Reaction score
0
Points
1
Где в Иране заказать VDS можно не подскажешь?
 

UntilFree

Member
Messages
15
Reputation
0
Reaction score
0
Points
1
В смысле я хочу поднять VPN на Иранском сервере.
В гугле не нашел сервисов которые предоставляют VPS/VDS
 

Carding

Professional
Messages
2,831
Reputation
17
Reaction score
2,016
Points
113
Ставим свой VPN

Ставим свой VPN

В этой статье я расскажу один из способов поднятия своего VPN на примере OpenVPN, как самого популярного (и удобного) сервера.Ставить будем на FreeBSD.
Для установки понадобится выделенный сервер, т.к. у VPS возникают проблемы с kldload.

1) Качаем дистрибутив и библиотеку:
cd /usr/local/src
fetch openvpn-2.0.tar.gz
fetch lzo-1.08.tar.gz

2) Ставим сначала lzo, т.к. без нее не соберется OpenVPN:
tar zxf lzo-1.08.tar.gz
cd lzo-1.08/
./configure && make && make install

3) Собираем собственно сорцы демона:
tar zxf openvpn-2.0.tar.gz
cd ../openvpn-2.0/
./configure --with-lzo-headers=/usr/local/include/ --with-lzo-lib=/usr/local/lib/ && make && make install

4) Конфиги...
Создаем директорию в которой буду лежать конфиги, стартовые скрипты, .pid
файлы и ключ:
mkdir /usr/local/etc/openvpn/1/

Генерируем статический ключ:
/usr/local/sbin/openvpn --genkey --secret /usr/local/etc/openvpn/1/key

Далее создаем главный конфиг:
cat >/usr/local/etc/openvpn/1/openvpn-tcp.conf
dev tap
proto tcp-server
ifconfig 10.1.1.1 255.255.255.252
secret /usr/local/etc/openvpn/1/key
port 5001 - порт демона
user nobody
group nobody
comp-lzo - включаем сжатие траффа.
ping 15
ping-restart 45
ping-timer-rem
persist-key
verb 3
<CTRL> + <C>

Далее настраиваем ipfw и natd:
cat >/etc/fire.sh
#!/bin/sh
/sbin/kldload if_tap
/sbin/natd -p 8761 -a IP_сервера_из_под_которого_б� �дет_работать_клиент
/sbin/ipfw add divert 8761 all from any to
IP_сервера_из_под_которого_б� �дет_работать_клиент
/sbin/ipfw add divert 8761 all from 10.1.1.2 to any
<CTRL> + <C>

Ставим скрипту права на запуск:
chmod 755 /etc/fire.sh

Пишем скрипт запуска OpenVPN
cat >/usr/local/etc/openvpn/1/openvpn-tcp-start.sh
#!/usr/local/bin/bash
while true ; do
echo $$ > /usr/local/etc/openvpn/1/openvpn-tcp-start.pid
pid=`cat /usr/local/etc/openvpn/1/openvpn-tcp.pid`
var=`ps ax | awk '{print $1}' | grep $pid`
if [ ! $var ]
then
echo "Not Running !"
/usr/local/sbin/openvpn --config /usr/local/etc/openvpn/1/openvpn-tcp.conf --writepid /usr/local/etc/openvpn/1/openvpn-tcp.pid &
fi
sleep 10
done
<CTRL> + <C>

chmod 755 /usr/local/etc/openvpn/1/openvpn-tcp-start.sh

Добавляем в rc.conf следующие строчки:
gateway_enable="YES"

sysctl net.inet.ip.forwarding=1
(для того чтоб разрешить быть шлюзом без ребута)

Добавляем в /etc/rc.local пути наших конфигов для запуска при старте:
/etc/fire.sh
/usr/local/etc/openvpn/1/openvpn-tcp-start.sh &
kill -9 `cat /usr/local/etc/openvpn/1/openvpn-tcp-start.pid`

5) Теперь настраиваем клиентсткую Windows-часть:
Качаем клиент - http://_openvpn.net/release/openvpn-2.0-install.exe
Здесь будут храниться стартовые скрипты и ключ:
С:\Program Files\OpenVPN\configdir\

Правим конфиг клиентской части(win-openvpn-tcp.conf):
remote 1й_IP_сервера
port 5001
proto tcp-client
dev tap
ifconfig 10.1.1.2 255.255.255.252
ifconfig-nowarn
tun-mtu 1500
secret key
ping-restart 60
ping-timer-rem
persist-key
resolv-retry 86400
ping 10
comp-lzo
verb 4
mute 20
route-gateway 10.1.1.1
redirect-gateway

Далее ключ, который мы сгенерировали (/usr/local/etc/openvpn/1/key - 4 пункт) помещаем в
С:\Program Files\OpenVPN\configdir\key

Ну и запуск:
C:\Program Files\OpenVPN\bin\openvpn --redirect-gateway(чтоб весь траф проходил через наш VPN) --config "c:\\Program Files\OpenVPN\configdir\win-openvpn-tcp.conf"
Для выхода - F4

Если все прошло без ошибок - значит твоя защита стала абсолютной! Теперь у тебя есть маскирующий IP.

P.S Статья написана по такому принципу, что всю установку можно провести банальным Copy-Paste, т.е. установить VPN смогут даже новички =)

Вопрос сразу возникает, каким образом настроить все это дело без перезборки ядра
nat не будет работать без пересборки ядра ...
попробуй собрать сам, в этом ничего сложного нету кажется )
https://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/kernelconfig.html
 

Carder

Professional
Messages
2,619
Reputation
7
Reaction score
1,640
Points
113
Сложно и подробно написано тут ⬇️

Просто тут ⬇️
 
Top