Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Статьи (https://forum.antichat.xyz/forumdisplay.php?f=30)
-   -   Open Vpn своими руками (https://forum.antichat.xyz/showthread.php?t=166403)

Troop 27.12.2009 13:49

Open Vpn своими руками
 
Ну вот думаю что все мы типа хацкеры и пора обзавестить своим собственым Open Vpn сервером !!!
Для чего он вам будет нужен решайте сами
как минимум безопасность , как максимум
просто свободное средство для извлечения прибыль ))
ЗА СТАТЬЮ ПРОШУ НЕ ПИНАТЬ ПИШУ НА КОЛЕНКЕ
но всетаки думаю что доступным языком ))
Ну всетаки начнем
1. Что нам понадобиться так это простой выделенный сервер либо виртуальный сервер по технологии Virtuozo....
Для экспериментов я взял за 150 рублей виртуалку
на firstvds.ru (linux debian)
и так начнем
заходим под root на наш драгоценный сервер
и начинаем производить хитрые манипуляции
если у вас по моим рекомендациям стоит всетаки линкус дебиан то в консоли просто пишем (незабываем зайти под рутом)

PHP код:

# apt-get install openvpn 

теперь ваш сервак считывает предустановленные пакеты и инсталит openvpn к вам на сервер

Теперь нужно создать папку
/etc/openvpn
(если она еще не создана) и скопировать туда папку с сертификатами и конфигами. Примеры того и другого лежат в корне архива .tar.gz, если была установка из source, иначе они будут разбросаны по всей системы на усмотрение того, кто делал rpm. Вот некоторые варианты, где можно найти эти папки:

PHP код:

/etc/share/openvpn /usr/share/doc/openvpn 
/usr/share/doc/packages/openvpn 

Итак, надо скопировать папки easy-rsa и sample-config-files. На самом деле, примеры конфигов можно не копировать, а скопировать оттуда только файл server.conf.


Идем в /etc/openvpn/easy-rsa и выполняем следующим команды:

PHP код:

. ./vars
  
./clean-all 
 
./build-ca 

потом наш сервак начнет в инстале спрашивать всяческие даные,лучше отвечать по существу
так как есть риск забыть данные в конфигах
а это на самом деле чревато!
выполняем в консоли следующее

PHP код:

./build-key-server server 

Аналогично, отвечать нужно на все вопросы.

PHP код:

./build-dh 

Теперь делаем сертификат для клиента. Если у нас несколько клиентов, то повторяем этот шаг несколько раз, меняя номер клиента.

PHP код:

./build-key client1 

PHP код:

./build-key client2 

PHP код:

./build-key client3 

PHP код:

./build-key client etc 

Важно с поле Common Name писать соответствующее имя, например client1

Настраиваем конфиг для сервера. Он должен находится в /etc/openvpn и называтся server.conf. Все что нам нужно изменить в примера конфига:


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
push "redirect-gateway def1"
push "dhcp-option DNS ваш dns"
push "dhcp-option WINS ваш dns"
user nobody
group nobody



Сохраняем файл.

Выполняем

PHP код:

iptables -t nat -A POSTROUTING -s МАСКА_ПОДСЕТИ/-o venet0 -j SNAT --to-source IP_АДРЕС_ВАШЕГО_ВДС'а 

запускаем VPN

/etc/init.d/openvpn start

Теперь ставим OpenVPN клиент для Windows. Его можно скачать здесь: http://openvpn.se. После установки заходим в папку установки программы, например: C:\Program and Files\OpenVPN\sample-config. Открываем текстовым редактором (блокнотом) файл client.ovpn и пишем в строке

PHP код:

remote my-server-1 1194 (тут выбираеться порт я у себя ставил 5000

IP своего сервера вместо my-server-1. Больше ничего не трогаем, сохраняем и закрываем файл.

Последнее что надо сделать, это скачать с сервера 3 файла сертификатов в эту же папку, где только что редактировали файл. Итак, скачать нужно следующие файлы:

PHP код:

/etc/openvpn/easy-rsa/keys/ca.crt  
/etc/openvpn/easy-rsa/keys/client1.crt 
 
/etc/openvpn/easy-rsa/keys/client1.key 

client1 соответственно нужно заменить на нужный номер клиента. После этого переименовываем файлы, убирая цифры номера клиент, т.е. из client1.crt делаем client.crt и т.д.

Все готово для подключения и проверки.

Нажимаем правой кнопкой на файл client.ovpn и выбираем Start OpenVPN on this config file. Убеждаемся, что соединение установлено правильно


Все написанго на коленке и все работает, если есть вопросы
пожалуйста пишите в ЛС постараюсь по мере возможности ответить !
и по существу дополнить статью!

shellz[21h] 27.12.2009 13:56

Таких статей массу, напишу лучше как поднять дабл впн)

Troop 27.12.2009 14:00

Цитата:

Сообщение от shellz[21h]
Таких статей массу, напишу лучше как поднять дабл впн)


запросто )
там несложно маску бросить ,но не сегодня )))

CyberHunter 24.01.2010 20:47

Это типа тот же ВПН? Канал?
Я хотел бы еще спросить: чем отличается OpenVPN и ДаблВПН? и какие еще есть виды?
И вот еще: Если я сделаю OpenVPN сервер на дедике с каналом 1мбит и этим сервером будут пользоваться 2-3 людей, то насколько понижается скорость?

Tigger 24.01.2010 21:16

Да, таких статей много слишком. Ничего нового)
А вот про дабл ВПН)

e[X]theta[M]ine 24.01.2010 21:18

CyberHunter, поделится на 3 человек.

CyberHunter 24.01.2010 21:47

Цитата:

CyberHunter, поделится на 3 человек.
Ну а остальные вопросы?

PSalm69 25.01.2010 01:13

http://www.lissyara.su/archive/ipsec_old/ - Double-VPN

PSalm69 25.01.2010 01:26

Писал давненько для знакомого, скил "обычный юзер" *nix -ов.
Такого пошагово инструктажа не видел :).



##################################################
# #
# МАНУАЛ ПО УСТАНОВКЕ OPENVPN #
# from PSalm69 & Nova #
# chkconfig --del openvpn :) #
##################################################


1) cat /etc/redhat-release // смотрим какая ось стоит на серваке. Желательно CentOS - но настройка в основном везде идентична.

2) yum install openvpn // запускаем инсталл впн -а , должна создаться папка по адресу /etc/openvpn , если пишет что не удается найти пакет openvpn то нужно добавить в /etc/yum.conf
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/i386/dag/
gpgcheck=0
enabled=1

после повторить yum install openvpn

3) cd /etc/openvpn;ls -la // переходим в эту директория для установки нашего впн -а

4) touch server.conf // командой touch созаём файл server.conf

5) vi server.conf // командой vi редактируем файл server.conf Примечание: i - войти в режим изменения содержимого; Esc - выйти из режима редактирования; :wq ENTER- выйти с сохранением содержимого; :q! ENTER - выйти без сохранения
// ЭТО ВНОСИМ В ФАЙЛ server.conf

port 443
proto tcp
dev tap
cipher DES-EDE3-CBC
reneg-sec 60
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/dh2048.pem
server 10.10.200.0 255.255.255.0
client-config-dir ccd
push "dhcp-option DNS 222.222.222.222"
push "dhcp-option DNS 22.22.222.222"
ifconfig-pool-persist ipp.txt
push "redirect-gateway"
keepalive 10 120
persist-key
persist-tun
comp-lzo
verb 0

6) find / -name easy-rsa // выполняем поиск easy-rsa, должно примерно вывести такое /usr/share/doc/openvpn-2.0.5/easy-rsa

7) cd /usr/share/doc/openvpn-2.0.5/easy-rsa;ls -la // переходим в директорию easy-rsa и выводим листинг файлов в ней ls -la. Видим там папку 2.0

8) mv /usr/share/doc/openvpn-2.0.5/easy-rsa/2.0 /etc/openvpn/easy-rsa // копируем папку 2.0 в директорию /etc/openvpn/ и переименовываем её в easy-rsa. После этой команды всё будет именно так :)

9) cd /etc/openvpn/easy-rsa;chmod 777 *;ls -la // переходим в папку easy-rsa и наделяем на все файлы в этой папке правами 777 и делаем листинг. Видем там файл vars !!!

10) vi vars // редактируем этот файл

export KEY_SIZE=2048
и
export KEY_COUNTRY="UA"
export KEY_PROVINCE="UA"
export KEY_CITY="Kiev"
export KEY_ORG="OpenVPN"
export KEY_EMAIL="abuse@domain.com"

можно просто
export KEY_SIZE=2048
export KEY_ORG="OpenVPN"
export KEY_EMAIL="abuse@domain.com"

11) . ./vars // выполняем в директории /etc/openvpn/easy-rsa

12) ./clean-all // выполняем в директории /etc/openvpn/easy-rsa

13) ./build-ca // выполняем в директории /etc/openvpn/easy-rsa
Видим ПРИМЕРНО такой вывод

Country Name (2 letter code) [US]: - !!!! жмём ENTER !!!!
State or Province Name (full name) [CA]: - !!!! жмём ENTER !!!!
Locality Name (eg, city) [SanFrancisco]: - !!!! жмём ENTER !!!!
Organization Name (eg, company) [OpenVPN]: - !!!! жмём ENTER !!!!
Organizational Unit Name (eg, section) []:OpenVPN - !!!! вписываем OpenVPN !!!!
Common Name (eg, your name or your server's hostname) [OpenVPN CA]: server - !!!! вписываем server !!!!
Email Address [abusw@domain.com]: - !!!! жмём ENTER !!!!

14) ./build-key-server server // выполняем в директории /etc/openvpn/easy-rsa
ВИДИМ СЛЕДУЮЩЕЕ:

Country Name (2 letter code) [US]: - !!!! жмём ENTER !!!!
State or Province Name (full name) [CA]: - !!!! жмём ENTER !!!!
Locality Name (eg, city) [SanFrancisco]: - !!!! жмём ENTER !!!!
Organization Name (eg, company) [OpenVPN]: - !!!! жмём ENTER !!!!
Organizational Unit Name (eg, section) []:OpenVPN - !!!! вписываем OpenVPN !!!!
Common Name (eg, your name or your server's hostname) [server]:server - !!!! вписываем server !!!!
Email Address [abusw@domain.com]: - !!!! жмём ENTER !!!!
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: - !!!! жмём ENTER !!!!
An optional company name []: - !!!! жмём ENTER !!!!
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'US'
stateOrProvinceName :PRINTABLE:'CA'
localityName :PRINTABLE:'SanFrancisco'
organizationName :PRINTABLE:'OpenVPN'
organizationalUnitName:PRINTABLE:'OpenVPN'
commonName :PRINTABLE:'server'
emailAddress :IA5STRING:'abusw@domain.com'
Certificate is to be certified until Oct 1 05:22:28 2019 GMT (3650 days)
Sign the certificate? [y/n]: - !!!! пишим 'y' жмём ENTER !!!!
1 out of 1 certificate requests certified, commit? [y/n] - !!!! пишим 'y' жмём ENTER !!!!

15) ./build-dh // выполняем в директории /etc/openvpn/easy-rsa и ждём когда закончиться генерация сертификата. Может генерить и 40 минут, а если произойдёт дисконект с сервером во время генерации серта, то повторно заходим на сервер и выполням заного именно этот ключ.

16) ./build-key-pkcs12 client1 // выполняем в директории /etc/openvpn/easy-rsa
ВИДИМ СЛЕДУЮЩЕЕ:

Generating a 2048 bit RSA private key
.....................+++
..........................................+++
writing new private key to 'client1.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [US]: - !!!! жмём ENTER !!!!
State or Province Name (full name) [CA]: - !!!! жмём ENTER !!!!
Locality Name (eg, city) [SanFrancisco]: - !!!! жмём ENTER !!!!
Organization Name (eg, company) [OpenVPN]:OpenVPN - !!!! вписываем OpenVPN !!!!
Organizational Unit Name (eg, section) []: - !!!! жмём ENTER !!!!
Common Name (eg, your name or your server's hostname) [client1]:client1 - !!!! вписываем client1 !!!!
Email Address [abusw@domain.com]: - !!!! жмём ENTER !!!!

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: - !!!! жмём ENTER !!!!
An optional company name []: !!!! жмём ENTER !!!!
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'US'
stateOrProvinceName :PRINTABLE:'CA'
localityName :PRINTABLE:'SanFrancisco'
organizationName :PRINTABLE:'OpenVPN'
commonName :PRINTABLE:'client1'
emailAddress :IA5STRING:'abusw@domain.com'
Certificate is to be certified until Oct 1 05:46:57 2019 GMT (3650 days)
Sign the certificate? [y/n]: y - !!!! пишим 'y' жмём ENTER !!!!

1 out of 1 certificate requests certified, commit? [y/n]y - !!!! пишим 'y' жмём ENTER !!!!
Write out database with 1 new entries
Data Base Updated
Enter Export Password: - !!!! жмём ENTER !!!!
Verifying - Enter Export Password: - !!!! жмём ENTER !!!!

17) cd /etc/init.d/;ls -la // идём в назначеную директорию и видим там файл openvpn

18) chkconfig --add openvpn // добавляем чтобы при загрузке системы он загружался

19) vi openvpn // там же /etc/init.d/ редактируем файл openvpn
Ищем строку
echo 1 > /proc/sys/net/ipv4/ip_forward
и раскоментируем её !!!
а ниже следующей стройкой добавляем
iptables -t nat -A POSTROUTING -s 10.10.200.0/24 -j SNAT --to 127.0.0.1 // 127.0.0.1 , меняем на IP своего сервера где устанавливается VPN !!!

20) vi /etc/syslog.conf // отключаем логирование !!! ЗАКОМЕНТИРУЙ ВСЁ !!!!
Должно быть так:

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
# *.info;mail.none;authpriv.none;cron.none /var/log/messages

# The authpriv file has restricted access.
# authpriv.* /var/log/secure

# Log all the mail messages in one place.
# mail.* -/var/log/maillog


# Log cron stuff
# cron.* /var/log/cron

# Everybody gets emergency messages
# *.emerg *

# Save news errors of level crit and higher in a special file.
# uucp,news.crit /var/log/spooler

# Save boot messages also to boot.log
# local7.* /var/log/boot.log
# local6.* /var/log/vzagent.log

21) /etc/init.d/syslogd restart // перезапускаем syslogd

22) /etc/init.d/openvpn restart // запускаем openvpn, если везде напишет ОК , то все нормально и верно.

23) cd /etc/openvpn/easy-rsa/keys/;ls -la // тут лежит клиентский ключь. Называется client1.p12
24) cat /etc/openvpn/easy-rsa/keys/client1.p12 | mail -s "client1.p12" vpn@mail.ru // сливаем серты на мыло или по фтп
ftp tvoi.server.ru
дальше вбиваешь логин
дальше вбиваешь пароль
cd httpdocs/
ls
put /etc/file.txt

P.S.
Весь этот процесс можно сократить путём совмещения команд!!! Написан начинающим для начинающих!!!
Благодарю 0депта Nova за проявленое терпение в передачи знаний в области настройки VPN из своей головы в мою :)

.Love 25.01.2010 11:00

Пальм спасибо..
Сейчас протестирую...


Время: 09:49