Писал давненько для знакомого, скил "обычный юзер" *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 из своей головы в мою
