Настроить openvpn на centos 7

Установка OpenVPN на CentOS7 / Настройка OpenVPN туннеля Site-to-WindowsClient

Установка и настройка VPN между корпоративной сетью компании и удалённым сотрудником 

Настройка OpenVPN сервера на CentOS7

Настройка клиента на удалённом компьюере

Установка # yum -y install openvpn # chkconfig openvpn on

Созданиие сертификатов

За исключением этих пунктов:
========================================
Сгенерируем сертификаты для криента # cd /etc/openvpn/easy-rsa # ./build-key client-NAME

Копируем ca.crt, client-NAME.crt client-NAME.key на удалённый ком

Я это делаю при помощи утилиты WinSCP.

======================================== 

Создаём файл конфигурации для Офис

# vi /etc/openvpn/vpn-remusers.conf dev tun1 port 1194 mode server remote 90.100.100.1 server 10.0.1.0 255.255.255.0 topology subnet # Маршрут передаваемый на клиент при подключении # Нужен для доступа клиента в корпоративную сеть push “route 192.168.1.0 255.255.255.0” # DNS передаваемый на клиент при подключенииpush “dhcp-option DNS 192.168.2.59” # Certificate Authority file ca /etc/openvpn/keysServer/ca.crt # Server certificate/public key cert /etc/openvpn/keysServer/server.crt # Server private key key /etc/openvpn/keysServer/server.key resolv-retry infinite keepalive 20 60 comp-lzo persist-key persist-tun daemon reneg-sec 300 verb 3 status /var/log/openvpn/vpn-remusers-status.log log /var/log/openvpn/vpn-remusers.log

Настройка автозапуска OpenVPN

systemctl enable openvpn@vpn-remusers.service

Старт, Остановка, Статус

systemctl start openvpn@vpn-remusers.service systemctl status -l openvpn@vpn-remusers.service

*Если в директории /etc/openvpn/ у вас будет несколько .conf файлов, различных VPN туннелей, то включать автозапуск нужно будет для каждого отдельно

systemctl enable openvpn@vpn1.service systemctl enable openvpn@vpn2.service… # vi /etc/sysconfig/iptables

*filter

:INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT # OpenVPN – HeadQuaters & VPN Clients

-A INPUT -m state –state NEW -m tcp -p tcp  –dport 1194 -j ACCEPT-A FORWARD -i eno192 -o tun1 -j ACCEPT

-A FORWARD -i tun1 -o eno192-j ACCEPT

COMMIT

*nat

:PREROUTING ACCEPT [11:869] :POSTROUTING ACCEPT [1:60] :OUTPUT ACCEPT [1:60]

-A POSTROUTING -s 10.0.1.0/24 -o eno192 -j MASQUERADE

COMMIT

Включить Forwarding

vi /etc/sysctl.conf      net.ipv4.ip_forward = 1 service network restart

Проброс порта на маршрутизаторе (на примере Cisco)

#ip nat inside source static tcp 192.168.1.10 1194 interface FastEthernet0/0 1194

*FastEthernet0/0 – интерфейс, что подключен к Интернету

Просмотр логов

tail -f /var/log/openvpn/remoteusers.log tail -f /var/log/openvpn/remoteusers-status.log

Авторизация по сертификату и паролю

http://skeletor.org.ua/?p=1571

Авторизация по сертификату и Учётке Active Directory

http://serverfault.com/questions/333426/openvpn-plugin-openvpn-auth-ldap-does-not-bind-to-active-directory
https://foxpass.readme.io/docs/openvpnhttp://ru.man.wikia.com/wiki/OpenVPN_%D1%81_%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B5%D0%B9_%D0%B2_AD https://www.allcloud.io/how-to/configure-openvpn-authentication-using-active-directory/ Установка
Скачиваем и устанавливаем клиента openvpn.net

Запускаем OpenVPN с правами Администратора

Открываем директории где хранятся файлы OpenVPN

В папаке OpenVPN configuration file directory создаём текстовый файл с расширением .ovpn

Шаблон файла конфигурации OpenVPN клиента dev tun proto tcp remote 90.100.100.1 port 1194 client resolv-retry infinite persist-key persist-tun comp-lzo

redirect-gateway – эту опцию указываем если хотим, чтобы клиент ходил в Инет через наш тунель…

—–BEGIN CERTIFICATE—– —–END CERTIFICATE—– —–BEGIN CERTIFICATE—– —–END CERTIFICATE—– —–BEGIN PRIVATE KEY—– —–END PRIVATE KEY—– В блоках CA, CERT и KEY нужно вставить сертификаты, что были сгенерированы для клиента на стороне сервера в офисе. Для их извлечения на сервере выполните: cat /etc/openvpn/ca.crt cat /etc/openvpn/client-NAME.crt cat /etc/openvpn/client-NAME.key

Сохраните файл .ovpn

Протестируйте подключение к корпоративной сети


Источник: http://it.kuchuk.net/2016/11/openvpn-centos7-site-to-windowsclient_20.html

Установка и настройка OpenVPN в CentOS 7

Ранее я уже писал, как установить и настроить OpenVPN на Debian: http://blog.amet13.name/2015/02/openvpn-vps.html Сейчас оставлю заметку по CentOS 7, так как тут есть несколько нюансов.

Установка:

# yum install openvpn easy-rsa Создаем конфиг для сервера OpenVPN:

# cp /usr/share/doc/openvpn-2.3.8/sample/sample-config-files/server.conf /etc/openvpn/

# vim /etc/openvpn/server.conf
; порты, протоколы и устройства
port 1194
proto udp
dev tun
; сертификаты и ключи
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
; настройки сети, сжатия, таймаутов
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
; логи
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3
; DNS-сервера и тунелирование
push “dhcp-option DNS 8.8.8.8”
push “dhcp-option DNS 8.8.4.4”
push “redirect-gateway def1 bypass-dhcp” Разрешаем port forwarding:

# echo “net.ipv4.ip_forward=1” > /etc/sysctl.d/forwarding.conf

# sysctl –system Разрешаем порты для SSH и OpenVPN:

# systemctl enable firewalld

# systemctl start firewalld
# firewall-cmd –add-service=ssh –permanent
# firewall-cmd –add-service=openvpn –permanent
# firewall-cmd –add-masquerade –permanent
# firewall-cmd –reload Настраиваем конфиг переменных:

# cp -R /usr/share/easy-rsa/ /etc/openvpn/

# cd /etc/openvpn/easy-rsa/2.0/
# vim vars
#этот файл менять не обязательно, можно оставить и стандартный
export KEY_SIZE=2048
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_COUNTRY=”RU”
export KEY_PROVINCE=”CR”
export KEY_CITY=”Sevastopol”
export KEY_ORG=”amet13.name”
export KEY_EMAIL=”[email protected]”
export KEY_OU=”vpn” Генерация ключей и сертификатов:

# source ./vars

# ./clean-all
# ./build-ca
# ./build-key-server server
# ./build-dh
# ./build-key client-pc
# ./build-key client-android Если в будущем придется генерировать ключи для других устройств, то достаточно будет выполнить:

# cd /etc/openvpn/easy-rsa/2.0/

# ./build-key client-newdevice

Копируем нужные ключи и сертификаты сервера в каталог /etc/openvpn и клиентские в /root:

# cp keys/server.{crt,key} /etc/openvpn/
# cp keys/ca.crt /etc/openvpn/
# cp keys/dh2048.pem /etc/openvpn/
# cp keys/client-{pc,android}.{crt,key} /root/ Создаем файлы логов для OpenVPN:

# touch /var/log/openvpn{-status,}.log

Запускаем OpenVPN, убеждаемся что он работает:

# systemctl start [email protected]

# systemctl enable [email protected] Ключи и сертификаты клиентов и CA нужно передать клиентам, например по scp:

client ~ $ scp [email protected]:/etc/openvpn/ca.crt Downloads

client ~ $ scp [email protected]:/root/client-{pc,android}.{crt,key} Downloads Если на сервере не нужно хранить клиентские ключ и сертификат, то их можно удалить:

# rm /root/client.{crt,key}

После того, как нужные файлы оказались у клиента, можно создавать VPN-подключение. Пример настройки в Linux Mint:Устанавливаем соединение. Если установилось, проверяем маршруты:
client ~ $ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.8.0.5        0.0.0.

0         UG    0      0        0 tun0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
10.8.0.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
185.117.154.9   192.168.0.1     255.255.255.255 UGH   0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.

0   U     1      0        0 eth0 В случае неполадок, смотрим в логи. Для андроид-устройства я использовал программу “OpenVPN для Android” и через нее не удавалось подключиться, в таком случае во вкладке “Авторизация/шифрование” нужно снять галочку с пункта “Проверка имени хоста сертификата”. Ссылки:

https://www.howtoforge.

com/tutorial/how-to-install-openvpn-on-centos-7/

http://www.stableit.ru/2014/12/openvpn-centos-7-mac-os.html

Источник: https://blog.amet13.name/2015/11/openvpn-centos-7.html

Установка, настройка и использование OpenVPN сервера Centos 6.6

Существует множество причин для использования VPN сервера для работы в интернете. Это и скрытие вашего расположения, и доступ к ресурсам, недоступным из вашей страны, и анонимность, и доступ к заблокированным сайтам, но главная причина – это безопасность.

При использовании VPN создается шифрованный туннель от вашего компьютера до нашего VPN-сервера и обратно. Это позволяет защитить любые передаваемые данные от перехвата на любых ключевых узлах, будь то публичный Wi-Fi роутер или провайдер вашего интернета.

Проще всего организовать собственный VPN сервер, используя OpenVPN. Его установку, настройку и использование мы рассмотрим ниже.

Установка производится на виртуальный сервер с Centos 6.6, виртуализация OpenVZ.

OpenVPN есть в репозитории EPEL. Если он у вас не подключён, первоначально нужно его установить:

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh epel-release-6*.rpm

Устанавливаем OpenVPN:

yum -y install openvpn easy-rsa

Переходим в папку /etc/openvpn и создаём там файл конфигурации server.conf, со следующим содержанием, можно ничего не менять:

port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh2048.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push “redirect-gateway def1 bypass-dhcp” push “dhcp-option DNS 8.8.8.8” push “dhcp-option DNS 8.8.4.4” keepalive 10 120 comp-lzo max-clients 100 user nobody group nobody persist-key persist-tun status /var/log/openvpn-status.log log-append /var/log/openvpn.log verb 3

Теперь необходимо создать сертификаты сервера. 

mkdir -p /etc/openvpn/easy-rsa/keys cp -r /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa/ cd /etc/openvpn/easy-rsa source ./vars ./clean-all ./build-ca ./build-key-server server ./build-dh

Всё можно оставлять по умолчанию, на вопросы [y/n] отвечаем y.

Далее создаём сертификаты клиентов:

./build-key client1

Всё аналогично. Если необходимо несколько клиентов, то операцию повторяем несколько раз, меняя client1 на client2, client3 и так далее.

Копируем ключи:

cd keys/ cp dh2048.pem ca.crt server.crt server.key /etc/openvpn

Настраиваем IP Forwarding. В файле etc/sysctl.conf

net.ipv4.ip_forward = 0

меняем на 

net.ipv4.ip_forward = 1

Загружаем настройки:

sysctl -p

Настраиваем Iptables, SERVER-IP меняем на реальный IP адрес нашего сервера.

iptables -t nat -A POSTROUTING -o venet0 -j SNAT –to SERVER-IP iptables -A FORWARD -i venet0 -o tun0 -m state –state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT

Выше были настройки для VPS на OpenVZ, для выделенного сервера немного иначе:

Источник: https://webpatron.net/ru/blog/zametki-sisadmina/item/34-ustanovka-nastrojka-i-ispolzovanie-openvpn-servera-centos-6-6

Выделенный сервер своими руками

Не знаю по какой причине, но в версии CentOS 6.x отсутствует такой чудесный пакет как OpenVPN. А он частенько бывает нам необходим. К счастью существует достаточно дополнительных репозитариев, где все это есть.

Итак, приступим.
Первым делом подключим репозитарий, в котором есть наш пакет. В моем примере это будет repoforge. Заходим в консоль сервера, например, в папку /root, скачиваем необходимый нам rpm пакет, содержащий установку rpmforge и устанавливаем его:

# cd /root# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

# rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm

Далее, необходимо проверить установлен и активен ли у нас tun/tap интерфейс:

# sudo cat /dev/net/tun

В результате выполнения этой команды, должно появиться сообщение вида

# cat: /dev/net/tun: File descriptor in bad state

Это значит что с интерфейсом все нормально. Далее устанавливаем, собственно, сам OpenVPN:

# yum install openvpn

А вот дальше начинается самое интересное. Нам нужно сгенерировать ключи для OpenVPN. Для этого копируем соответствующий инструментарий в /etc/openvpn:

# cp -r /usr/share/doc/openvpn-2.2.2/easy-rsa/ /etc/openvpn/

Затем необходимо немного изменить файл vars, чтоб он правильно работал в CentOS 6.3. Открываем файл /etc/openvpn/easy-rsa/2.0/vars в любимом редакторе и правим:

# vi /etc/openvpn/easy-rsa/2.0/varsменяем строку 29 с: export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`на:

export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf

Сохраняемся и выходим. Далее генерируем ключи:

# chmod 755 /etc/openvpn/easy-rsa/2.0/*#cd /etc/openvpn/easy-rsa/2.0# source /etc/openvpn/easy-rsa/2.0/vars# /etc/openvpn/easy-rsa/2.0/clean-all# chmod 755 /usr/share/doc/openvpn-2.2.

2/easy-rsa/2.0/pkitool# /etc/openvpn/easy-rsa/2.0/build-ca# /etc/openvpn/easy-rsa/2.0/build-key-server server# /etc/openvpn/easy-rsa/2.0/build-dh# /etc/openvpn/easy-rsa/2.0/build-key client1

Читайте также:  Web интерфейс для openvpn

# /etc/openvpn/easy-rsa/2.

0/build-key client2

Копируем полученные ключи в папку /etc/openvpn

cp -r /etc/openvpn/easy-rsa/2.0/keys/* /etc/openvpn/

и конфигурационный файл server.conf туда же:

cp /usr/share/doc/openvpn-*/sample-config-files/server.conf /etc/openvpn/

Правим его. Ниже приведу мой конфиг:

port 1194proto udpdev tunca ca.crtcert server.crtkey server.key dh dh1024.pemserver 10.8.0.0 255.255.255.0ifconfig-pool-persist ipp.

txtpush “redirect-gateway def1 bypass-dhcp”push “dhcp-option DNS 8.8.8.8″push “dhcp-option DNS 8.8.4.4″keepalive 10 120comp-lzomax-clients 5user nobodygroup nobodypersist-keypersist-tunstatus openvpn-status.

loglog         /var/log/openvpn.log

verb 0

Теперь включаем форвард в ядре. Для этого изменяем в файле /etc/sysctl.conf

# vi /etc/sysctl.confстрокуnet.ipv4.ip_forward = 0на строку:

net.ipv4.ip_forward = 1

Источник: http://dedicatesupport.com/content/nastroika-openvpn-na-centos-6x

Как установить OpenVPN на CentOS 7

В этой статье мы покажем вам, как установить и настроить сервер OpenVPN на CentOS 7.

OpenVPN является одним из наиболее популярных программных решений VPN, который реализует виртуальные методы частной сети для создания безопасного соединения точка-точка или сайт-сайт.

Это руководство должно работать на других системах Linux VPS, так же хорошо, но было испытано и написано для CentOS 7. Установка OpenVPN на CentOS7 является легкой задачей, только тщательно выполняйте указанные ниже шаги, и вы должны сделать это менее чем за 10 минут.

Войдите на свой VPS через SSH

ssh user@vps_IP

Обновите систему

yum update

1. Установите OpenVPN

OpenVPN не доступен в официальном хранилище CentOS 7, поэтому сначала нам нужно добавить репозиторий Epel, а затем установить пакет:

Чтобы включить репозиторий Epel выполните следующую команду:

yum install epel-release

После того, как хранилище будет включено, установите пакеты OpenVPN и OpenSSL:

yum install openvpn openssl

2. Сгенерируйте локальный сертификат

Во-первых, сформируйте параметры (файл DH) Диффи-Хеллмана, который используется для защиты обмена ключами между сервером и клиентом. Эта команда может занять некоторое время, для работы, в зависимости от сервера.

openssl dhparam -out /etc/openvpn/dh.pem 2048

Сформировать файл ca.crt  (Certificate Authority):

openssl genrsa -out /etc/openvpn/ca.key 2048
chmod 600 /etc/openvpn/ca.key
openssl req -new -key /etc/openvpn/ca.key -out /etc/openvpn/ca.csr -subj /CN=OpenVPN-CA/
openssl x509 -req -in /etc/openvpn/ca.csr -out /etc/openvpn/ca.crt -signkey /etc/openvpn/ca.key -days 365
echo 01 > /etc/openvpn/ca.srl

3. Настройка OpenVPN сервера

Создайте сертификат сервера и ключ с помощью следующих команд, которые сгенерируют сертификат сервера и ключ:

openssl genrsa -out /etc/openvpn/server.key 2048
chmod 600 /etc/openvpn/server.key
openssl req -new -key /etc/openvpn/server.key -out /etc/openvpn/server.csr -subj /CN=OpenVPN/
openssl x509 -req -in /etc/openvpn/server.csr -out /etc/openvpn/server.crt -CA /etc/openvpn/ca.crt -CAkey /etc/openvpn/ca.key -days 365

4. Создание файла конфигурации сервера OpenVPN

Вы можете скопировать и отредактировать конфигурацию OpenVPN по умолчанию или создать новый с нуля.

nano /etc/openvpn/server.confserver 10.8.0.0 255.255.255.0
verb 3
key /etc/openvpn/server.key
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
dh /etc/openvpn/dh.pem
keepalive 10 120
persist-key
persist-tun
comp-lzo
push “redirect-gateway def1 bypass-dhcp”
push “dhcp-option DNS 8.8.8.8”
push “dhcp-option DNS 8.8.4.4” user nobody
group nogroup proto udp
port 1194
dev tun1194
status openvpn-status.log

Сохраните файл и включите службу OpenVPN в запуск при загрузке сервера:

systemctl enable openvpn@server
systemctl start openvpn@server

Добавьте следующее правило iptables так, чтобы трафик мог покинуть VPN. Изменение eth0 с сетевым интерфейсом публичного сервера.

Источник: https://andreyex.ru/centos-7/kak-ustanovit-openvpn-na-centos-7/

OpenVPN: установка и настройка клиента на CentOS

Устанавливаем OpenVPN так же, как описано в статье CentOS: установка OpenVPN сервера.

Необходимые ключи мы создали во время установки OpenVPN сервера, из той же статьи, это:

# file /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys/ca.crt: ASCII text # file /etc/openvpn/easy-rsa/keys/client.crt /etc/openvpn/easy-rsa/keys/client.crt: ASCII text # file /etc/openvpn/easy-rsa/keys/client.key /etc/openvpn/easy-rsa/keys/client.key: ASCII text

Настройка выполняется на:

# cat /etc/redhat-release CentOS release 6.5 (Final)

На сервере создадим отдельный каталог для все клиентских файлов:

# mkdir /etc/openvpn/clients/client1

Копируем сертификаты:

# cd /etc/openvpn/easy-rsa/keys/# cp ca.crt client.crt client.key /etc/openvpn/clients/client1/

Копируем файл конфигурации клиента:

# cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/client.conf /etc/openvpn/clients/client1/

Если клиент – Windows-машина, то новый файл называем /etc/openvpn/clients/client1/client.ovpn.

Редактируем его, и меняем строку:

remote my-server-1 1194

на адрес нашего сервера, в данном случае конфиг будет выглядеть так:

# cat /etc/openvpn/clients/client1/client.conf | grep -v “#” client ;dev tap dev tun ;dev-node MyTap ;proto tcp proto udp remote 192.168.1.105 1194 ;remote my-server-2 1194 ;remote-random resolv-retry infinite nobind ;user nobody ;group nobody persist-key persist-tun ;mute-replay-warnings ca ca.crt cert client.crt key client.key ns-cert-type server ;tls-auth ta.key 1 ;cipher x comp-lzo verb 3 ;mute 20

На клиентской машине создадим каталог:

# pwd /root# mkdir openvpnclient

Копируем всё на клиентскую машину:

# cd openvpnclient/# scp -r root@192.168.1.105:/etc/openvpn/clients/client1/* . root@192.168.1.105's password: ca.crt 100% 1728 1.7KB/s 00:00 client.conf 100% 3428 3.4KB/s 00:00 client.crt 100% 5404 5.3KB/s 00:00 client.key 100% 1708 1.7KB/s 00:00

Всё готово, запускаем:

# openvpn –config client.conf Tue Jul 1 14:26:47 2014 OpenVPN 2.3.2 i686-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Sep 12 2013 Tue Jul 1 14:26:47 2014 Socket Buffers: R=[112640->131072] S=[112640->131072] Tue Jul 1 14:26:47 2014 UDPv4 link local: [undef] Tue Jul 1 14:26:47 2014 UDPv4 link remote: [AF_INET]192.168.1.105:1194 Tue Jul 1 14:26:47 2014 TLS: Initial packet from [AF_INET]192.168.1.105:1194, sid=689685c5 9ad1c3e0 Tue Jul 1 14:26:47 2014 VERIFY OK: depth=1, C=UA, ST=CA, L=Kiev, O=Home, OU=MyOrganizationalUnit, CN=main-home, name=EasyRSA, emailAddress=me@myhost.mydomain Tue Jul 1 14:26:47 2014 VERIFY OK: nsCertType=SERVER Tue Jul 1 14:26:47 2014 VERIFY OK: depth=0, C=UA, ST=CA, L=Kiev, O=Home, OU=MyOrganizationalUnit, CN=main-home, name=EasyRSA, emailAddress=me@myhost.mydomain Tue Jul 1 14:26:48 2014 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key Tue Jul 1 14:26:48 2014 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Tue Jul 1 14:26:48 2014 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key Tue Jul 1 14:26:48 2014 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Tue Jul 1 14:26:48 2014 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA Tue Jul 1 14:26:48 2014 [main-home] Peer Connection Initiated with [AF_INET]192.168.1.105:1194 Tue Jul 1 14:26:50 2014 SENT CONTROL [main-home]: 'PUSH_REQUEST' (status=1) Tue Jul 1 14:26:50 2014 PUSH: Received control message: 'PUSH_REPLY,dhcp-option DNS 192.168.1.1,dhcp-option DNS 8.8.8.8,route 10.0.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.0.0.6 10.0.0.5' Tue Jul 1 14:26:50 2014 OPTIONS IMPORT: timers and/or timeouts modified Tue Jul 1 14:26:50 2014 OPTIONS IMPORT: –ifconfig/up options modified Tue Jul 1 14:26:50 2014 OPTIONS IMPORT: route options modified Tue Jul 1 14:26:50 2014 OPTIONS IMPORT: –ip-win32 and/or –dhcp-option options modified Tue Jul 1 14:26:50 2014 ROUTE_GATEWAY 192.168.1.1/255.255.255.0 IFACE=eth1 HWADDR=08:00:27:8f:2d:a6 Tue Jul 1 14:26:50 2014 TUN/TAP device tun0 opened Tue Jul 1 14:26:50 2014 TUN/TAP TX queue length set to 100 Tue Jul 1 14:26:50 2014 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0 Tue Jul 1 14:26:50 2014 /sbin/ip link set dev tun0 up mtu 1500 Tue Jul 1 14:26:50 2014 /sbin/ip addr add dev tun0 local 10.0.0.6 peer 10.0.0.5 Tue Jul 1 14:26:50 2014 /sbin/ip route add 10.0.0.1/32 via 10.0.0.5 Tue Jul 1 14:26:50 2014 Initialization Sequence Completed

Самая частая ошибка:

# openvpn –config client.conf Tue Jul 1 14:38:02 2014 OpenVPN 2.3.2 i686-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Sep 12 2013 Tue Jul 1 14:38:02 2014 Socket Buffers: R=[112640->131072] S=[112640->131072] Tue Jul 1 14:38:02 2014 UDPv4 link local: [undef] Tue Jul 1 14:38:02 2014 UDPv4 link remote: [AF_INET]192.168.1.105:1194 Tue Jul 1 14:39:02 2014 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity) Tue Jul 1 14:39:02 2014 TLS Error: TLS handshake failed Tue Jul 1 14:39:02 2014 SIGUSR1[soft,tls-error] received, process restarting

Как правило связана с ошибкой в IPTABLES – например, закрыт порт 1194.

Проверим – на сервере в файле /var/logs/openvpn.log:

# tail /var/log/openvpn.log Tue Jul 1 14:39:56 2014 192.168.1.107:57263 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Tue Jul 1 14:39:56 2014 192.168.1.107:57263 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA Tue Jul 1 14:39:56 2014 192.168.1.107:57263 [client] Peer Connection Initiated with [AF_INET]192.168.1.107:57263 Tue Jul 1 14:39:56 2014 MULTI: new connection by client 'client' will cause previous active sessions by this client to be dropped. Remember to use the –duplicate-cn option if you want multiple clients using the same certificate or username to concurrently connect. Tue Jul 1 14:39:56 2014 MULTI_sva: pool returned IPv4=10.0.0.6, IPv6=(Not enabled) Tue Jul 1 14:39:56 2014 MULTI: Learn: 10.0.0.6 -> client/192.168.1.107:57263 Tue Jul 1 14:39:56 2014 MULTI: primary virtual IP for client/192.168.1.107:57263: 10.0.0.6 Tue Jul 1 14:39:58 2014 client/192.168.1.107:57263 PUSH: Received control message: 'PUSH_REQUEST' Tue Jul 1 14:39:58 2014 client/192.168.1.107:57263 send_push_reply(): safe_cap=940 Tue Jul 1 14:39:58 2014 client/192.168.1.107:57263 SENT CONTROL [client]: 'PUSH_REPLY,dhcp-option DNS 192.168.1.1,dhcp-option DNS 8.8.8.8,route 10.0.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.0.0.6 10.0.0.5' (status=1)

В файле /var/log/openvpn-status.log:

# tail /var/log/openvpn-status.log OpenVPN CLIENT LIST Updated,Tue Jul 1 14:43:19 2014 Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since client,192.168.1.107:57263,6638,8354,Tue Jul 1 14:39:56 2014 ROUTING TABLE Virtual Address,Common Name,Real Address,Last Ref 10.0.0.6,client,192.168.1.107:57263,Tue Jul 1 14:39:56 2014 GLOBAL STATS Max bcast/mcast queue length,0 END

С клиента попробуем пропинговать сервер:

Источник: https://rtfm.co.ua/centos-ustanovka-i-nastrojka-openvpn-klienta/

База знаний

Установка OpenVPN сервера:
 1) Подключаем репозиторий epel:

      yum install epel-release

 2) Устанавливаем необходимые пакеты следующей командой:

     yum install openvpn easy-rsa

 1) Создаем папку в которой будут находится сгенирированные сертификаты:

      mkdir /etc/openvpn/keys/ 2) Заходим в каталог с Easy-RSA 3 (версия может отличаться от вашей):

      cd /usr/share/easy-rsa/3.0.3 3) 

Создаем файл с настройками:

      vi vars

 
           export KEY_COUNTRY=”RU
     export KEY_PROVINCE=”Moscow
     export KEY_CITY=”Moscow
     export KEY_ORG=”Org Name
     export KEY_EMAIL=”info@test.

ru
     export KEY_CN=”Test
     export KEY_OU=”Test
     export KEY_NAME=”name-openvpn-server
export KEY_ALTNAMES=”alt-name-openvpn-server” 4) Запускаем скрипт:

  
      . ./vars

Сертификаты

сервера: 1) Инициализируем PKI:

      ./easyrsa init-pki

      

 2) 

Создаем корневой сертификат(необходимо 2 раза ввести пароль):

      ./easyrsa build-ca

 3) Генерируем ключи:

      ./easyrsa gen-dh 4) Создаем запрос на сертификат для сервера и после генерируем сам сертификат:

     ./easyrsa gen-req vpn-server nopass

     ./easyrsa sign-req server vpn-server         После ввода команды подтверждаем правильность данных, введя yes и вводим пароль, который указывали при создании корневого сертификата.

Читайте также:  Настройка шлюза на centos 7

 5) Сертификаты копируем в папку, которую мы создавали ранее:

      cp -r pki/* /etc/openvpn/keys/

 6) Для создания ta ключа используем команду:

      openvpn –genkey –secret /etc/openvpn/keys/ta.key

Сертификаты Клиента:

 1) Создаем запрос на сертификат и сам сертификат:

      ./easyrsa gen-req client1 nopass

      ./easyrsa sign-req client client1

        подтверждаем правильность данных и вводим пароль корневого сертификата.

     Из каталога pki на компьютер клиента копируем файлы:

  • ca.crt
  • issued/client1.crt
  • private/client1.key
  • dh.pem
  • При использовании tls, также копируем ta.key.

Настройка OpenVPN сервера:

 1) 

Создаем конфигурационный файл:      vi /etc/openvpn/server.conf     И добавляем в него следующии строки:

       local 192.168.0.15

       port 443
       proto udp
       dev tun
       ca keys/ca.crt
       cert keys/issued/vpn-server.crt
       key keys/private/vpn-server.key
       dh keys/dh.pem
     
       ls-auth keys/ta.key 0
       server 172.16.10.0 255.255.255.0
       ifconfig-pool-persist ipp.txt 
       keepalive 10 120
       max-clients 32
       client-to-client
       persist-key
       persist-tun
       status /var/log/openvpn/openvpn-status.log
       log-append /var/log/openvpn/openvpn.log
       verb 4
       mute 20
       daemon
       mode server
       tls-server
       comp-lzo

        где из всех параметров внести изменения нужно в следующие — local: IP-адрес, на котором будет обрабатывать запросы OpenVPN; port: сетевой порт (443 позволит избежать проблем при использовании Интернета в общественных местах, но может быть любым из свободных, например 1723).

 2) Чтобы включить доступ к интернету через VPN сервер необходимо добавить в конец файла:

          Следующие строки:

         push “redirect-gateway def1”         push “dhcp-option DNS 77.88.8.8”

 3) Отключаем Selinux:

     setenforce 0
 4) Чтобы полность отключить selinux то необходимо перейти в:

      vi /etc/selinux/config и изменить значение на SELINUX=disabled 5) Добавляем в firewalld сервис openVPN следующими командами:sudo firewall-cmd –zone=trusted –add-service openvpn

      sudo firewall-cmd –zone=trusted –add-service openvpn –permanent

      sudo firewall-cmd –add-masquerade

      sudo firewall-cmd –permanent –add-masquerade     

      sudo firewall-cmd –reload

 6) Далее необходимо включить форвардинг:

      sudo nano /etc/sysctl.conf

      И добавляем строчку:

      net.ipv4.ip_forward = 1

     И перезагружаем сервис network на сервере:

      sudo systemctl restart network.service 7) Запускаем OpenVPN сервер и добавляем его в автозагрузку:

       systemctl enable openvpn@server>openvpn@server
       systemctl start openvpn@server openvpn@server

         Для подключения на стороне клиента например можно использовать такой конфиг:

                client
                resolv-retry infinite
               nobind
                remote 192.168.0.15 443
                proto udp
                dev tun
                comp-lzo
                ca ca.crt
                cert client1.

crt
                key client1.key
                dh dh.pem
                tls-client
                tls-auth ta.

key 1
                float
                keepalive 10 120
                persist-key
                persist-tun
                verb 0

               где remote это ip адрес openvpn сервера и его порт.

Использование Windows как клиента:

 Для подключения клиента на Windows необходимо скачать клиент OpenVPN c официального сайта: https://openvpn.net/index.php/open-source/downloads.html

 Переходим в папку C:Program FilesOpenVPNconfig. И копируем в нее файлы ca.crt, issued/client1.crt, private/client1.key, dh.pem, ta.key из каталога /usr/share/easy-rsa/3.0.3/pki на сервере, например, при помощи программы filezilla.

 Далее создаем файл под названием config.ovpn и добавляем в него клиентский конфиг описанный ранее.

 По итогу в папке C:Program FilesOpenVPNconfig должны лежать такие файлы: ca.crt, client1.crt, client1.key, dh.pem, ta.key и config.ovpn.

 Запускаем с рабочего стола программу «OpenVPN GUI» от имени администратора (это важно).
 Нажимаем правой кнопкой по появившемуся в трее значку и выбираем «Подключиться»

Источник: https://bill.maxiplace.ru/bill/index.php?rp=%2Fknowledgebase%2F189%2F—OpenVPN—Centos-7.html

VPN сервер на CentOS 7

С каждым годом вопрос защиты данных становится все более актуальным. На сегодняшний день одной из удачных реализаций средств защиты – является создание частной виртуальной сети или кратко VPN.

Virtual Private Network (VPN) – обобщенное название технологий, позволяющих обеспечивать сетевые соединения по верх основной сети (например, Интернет).

При этом независимо от уровня надежности основной сети, Вы получаете надежное соединение (виртуальную сеть построенную поверх основной) благодаря использованию средств криптографии.

В данной статье мы рассмотрим создание VPN сервера на CentOS 7 с использованием OpenVPN – свободная реализация технологии VPN с открытым исходным кодом, OpenVPN может использоваться для создания зашифрованных каналов типа точка-точка или сервер-клиенты.

Все команды в этой статье выполняются от имени пользователя root!Вы должны отключить selinux, он может вызвать проблемы во время установки.Настройка хоста

Установка CentOS7.

Настройка сети в CentOS 7.

Безопасность SSH сервера.

Подготовка окружения

Отключите Selinux:

sed -i 's/(^SELINUX=).*/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i 's/(^SELINUX=).*/SELINUX=disabled/' /etc/selinux/config

Epel репозиторий :

yum -y install epel-release

Выполните обновление системы:

yum -y update

Перезагрузите сервер:

reboot

После перезагрузки проверьте статус SELinux командой «sestatus», Вы должны увидеть следующий вывод:

SELinux status: disabledУстановка и настройка OpenVPN сервера

Установите пакет openvpn:

yum -y install openvpn

Скопируйте пример файла настройки сервера:

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/server.conf

Внесите необходимые изменения:

mcedit /etc/openvpn/server.conf

Рабочий пример конфигурации VPN сервера:

port 2086
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh2048.pem
tls-auth ta.key 0
cipher AES-256-CBC
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
push “route 10.10.0.0 255.255.0.0”
push “route 10.8.0.0 255.255.0.0”
keepalive 5 15
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
log-append /var/log/openvpn/openvpn.log
verb 3
mute 20Установка и настройка Easy-rsa

Установите пакет easy-rsa:

yum -y install easy-rsa

Создайте директорию для хранения ключей:

mkdir -p /etc/openvpn/easy-rsa/keys

Скопируйте скрипты для генерации сертификатов и ключей:

cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa

Отредактируйте файл для создания сертификатов, укажите значение переменных, это позволит Вам экономить время и не вносить данные при каждом создании сертификатов:

mcedit /etc/openvpn/easy-rsa/vars

Список необходимых переменных:

Источник: https://a-rm.ru/materials/unix-servera/vpn-server-na-centos-7

Установка OpenVPN сервера на CentOS 6

Настройка приватного VPN сервера на базе OpenVPN в CentOS 6

Проверяем наличие устройства tun

/dev/net/tun: character special

Установка EPEL-репозитория

Устанавливаем OpenVPN

Устанавливаем пакет openvpn из репозитория EPEL.

yum -y install openvpn easy-rsa

Добавляем в автозапуск

Создаем файл конфигурации

cp /usr/share/doc/openvpn-2.3.6/sample/sample-config-files/server.conf /etc/openvpn/

Конфигурация OpenVPN

nano /etc/openvpn/server.conf

Указываем на каком IP будет работать OpenVPN сервер (тут 192.168.1.100 – внешний IP сервера):

# Which local IP address should OpenVPN

Задаём OpenVPN сеть

# Configure server mode and supply a VPN subnet# for OpenVPN to draw client addresses from.# The server will take 10.8.0.1 for itself,# the rest will be made available to clients.# Each client will be able to reach the server# on 10.8.0.1. Comment this line out if you are# ethernet bridging. See the man page for more info.server 10.0.0.0 255.255.255.0

Передаём параметр клиентам, благодаря которому весь их трафик будет направляться через OpenVPN

# If enabled, this directive will configure# all clients to redirect their default# network gateway through the VPN, causing# all IP traffic such as web browsing and# and DNS lookups to go through the VPN# (The OpenVPN server machine may need to NAT# or bridge the TUN/TAP interface to the internet# in order for this to work properly).push “redirect-gateway def1 bypass-dhcp”

Теперь зададим DNS-сервера для клиентов:

# Certain Windows-specific network settings# can be pushed to clients, such as DNS# or WINS server addresses. CAVEAT:# http://openvpn.net/faq.html#dhcpcaveats# The addresses below refer to the public# DNS servers provided by opendns.com.push “dhcp-option DNS 10.0.0.1″push “dhcp-option DNS 8.8.8.8”

Изменим пользователя, под которым будет работать OpenVPN демон:

# It's a good idea to reduce the OpenVPN# daemon's privileges after initialization.# You can uncomment this out on

Меняем настройки логирования:

# Output a short status file showing# current connections, truncated# and rewritten every minute.status /var/log/openvpn-status.log# By default, log messages will go to the syslog (or# on Windows, if running as a service, they will go to# the “Program FilesOpenVPNlog” directory).# Use log or log-append to override this default.# “log” will truncate the log file on OpenVPN startup,# while “log-append” will append to it. Use one# or the other (but not both).log-append /var/log/openvpn.log

Все готово.
Сохраняем и выходим.

Создание сертификатов для OpenVPN сервера

Для начала создадим директорию для сертификатов:

mkdir -p /etc/openvpn/easy-rsa/keys

Скопируем необходимые файлы:

cp -r /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

Для удобства отредактируем параметры, чтобы не вводить их при генерации сертификатов /etc/openvpn/easy-rsa/vars:

export KEY_EMAIL=”me@myhost.mydomain”export KEY_OU=”MyOrganizationalUnit”export KEY_NAME=”EasyRSA”

Генерируем сертификаты

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

Перечитаем файл vars

NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

Удаляем старые ключи:

Создаём корневой сертификат:

После этого шага в каталоге /etc/openvpn/easy-rsa/keys появляются новые CA (Central Authority) сертификаты:

Generating a 2048 bit RSA private key………………………………………………….+++writing new private key to 'ca.key'You are about to be asked to enter information that will be incorporatedinto 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 blankFor some fields there will be a default value,If you enter '.', the field will be left blank.Country Name (2 letter code) [RU]:State or Province Name (full name) [NW]:Locality Name (eg, city) [Moscow]:Organization Name (eg, company) [OrgName]:Organizational Unit Name (eg, section) [MyOrganizationalUnit]:Common Name (eg, your name or your server's hostname) [server]:vpn.example.com
Читайте также:  Вирус код да винчи - как лечить компьютер и сделать расшифровку файлов с расширением da_vinci_code
-rw-r–r–. 1 root root 1,8K Апр 21 15:43 ca.crt-rw——-. 1 root root 1,7K Апр 21 15:43 ca.key

Далее создаём корневой сертификат для самого сервера:

Источник: https://bogachev.biz/2015/04/21/ustanovka-openvpn-servera-na-centos-6/

Установка и настройка OpenVPN на Centos для раздачи интернета

Вот и настало время, когда терпения уже не хватает… Сижу в офисе, получаю инет через прокси. Админы режут всё что можно и неможно. Всё ближе и ближе я был к тому, что бы поднять свою VPN до сервера, который арендую в Питере и получать инет именно с него.

До этого я поднимал http туннель с помощью putty. Но этого было мало, т.к. не все программы могут работать через прокси. А ставить различные Proxifier и FreeCap мне не интересно. Слишком много хлама.

Цель поставлена. Начинаем анализ. Какую же технологию выбрать для поднятия VPN от моего офисного компа, который находится «за проксёй» до виртуального сервера с CentOS…? Выбор не велик. Это OpenVPN. Он умеет работать через http proxy.

Робота начинается с установки OpenVPN на сервер под управлением CentOS (в моем случае это 5-й цент). Т.к. в стандартном репозитарии пакет openvpn отсутствует, то необходимо сначала подключить нужные репозитарии. Теперь можно приступить к установке:

[admin@anart.ru /]# yum install openvpn

После установки необходимо создать главный конфигурационный файл openvpn сервера server.conf и положить файл в /etc/openvpn:

[admin@anart.ru /]# touch /etc/openvpn/server.conf

Так же создадим файл, в который openvpn будет записывать выдаваемые клиентам ip адреса

[admin@anart.ru /]# touch /etc/openvpn/ipp.txt

А для логов нужно создать каталог:

[admin@anart.ru /]# mkdir /var/log/openvpn

Теперь приступим к правке файла /etc/openvpn/server.conf. Его можно править любым встроенным редактором, например vi, nano, mcedit или же через SFTP на своей машине любимым редактором. Ниже представляю мой конфигурационный файл с реально работающего сервера, который мне дает интернет через VPN:

# Какой интерфейс слушать? local X.X.X.X #(ip адрес интерфейса, который смотрит в интернет. Это скорее всего eth0) # Какой порт слушать? port 443 #(Наша «прокся» пускает по 80-му и 443-му портам.) # На каком протоколе будем работать? proto tcp-server # В каком режиме работать? Мостом (tap) или маршрутизация (tun) #dev tun0 dev tap0 # (на tun я так и не смог поднять сеть) # Разрешить аутентификацию по паролю #auth-user-pass # Пути к корневому сертефикату, сертификату и закрытому ключу. ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key # Параметры Диффи-Хелмана dh /etc/openvpn/keys/dh1024.pem # Отключить проверку пользовательских сертификатов # client-cert-not-required # username-as-common-name # Настройка режима сервера и ИП адресов для выдачи клиентам. Сервер возьмет себе 10.8.0.1 #server 10.8.0.0 255.255.255.0 mode server ifconfig 10.8.0.1 255.255.255.0 ifconfig-pool 10.8.0.2 10.8.0.10 daemon # Разрешаем использовать TLS tls-server # Разрешить клиентам доступ VPN клиентам между друг другом? #client-to-client # Сопоставления клиент виртуальный IP-адрес # хранятся в этом файле. Если OpenVPN упадет или # будет перезапущен, повторно подключающимся клиентам могут быть назначены # из пула такие же виртуальные IP-адреса, которые были назначены им в прошлый раз. ifconfig-pool-persist /etc/openvpn/ipp.txt # Передача клиенту параметров маршрутизации, где X.X.X.X – IP адрес вашего eth0, что смотрит в интернет push “route X.X.X.X 255.255.255.0” # Передаем клиенту настройку шлюза push “route-gateway 10.8.0.1” # Некоторые Windows-специфичные сетевые настройки # могут быть переданы клиентам, такие как адреса DNS- # или WINS-серверов. ПРЕДОСТЕРЕЖЕНИЕ: # http://openvpn.net/faq.html#dhcpcaveats push “dhcp-option DNS 8.8.8.8” # Я взял публичные Гугловские ДНСы push “dhcp-option DNS 8.8.4.4” # Говорим клиентам поменять шлюз по умолчанию на VPN интерфейс. push “redirect-gateway” # Проверка соединения keepalive 10 120 # Для большей безопасности и защиты от ДОС и флуда выдаем клиентам ta.key. На сервере 0, на клиентах 1. tls-auth /usr/share/openvpn/keys/ta.key 0 # Допустимые алгоритмы шифра. Надо прописывать так же и на клиенте. cipher DES-CBC3-SHA cipher BF-CBC cipher AES-256-CBC #cipher ECDHE-RSA-AES256 #cipher ECDHE-ECDSA-AES256 #cipher DHE-RSA-AES256 #cipher DHE-DSS-AES256-SHSHA # Включить сжатие. Если да, то надо прописывать и на клиенте. comp-lzo # Максимальное количество одновременно подключенных клиентов max-clients 5 # От какого пользователя и группы работать серверу? user openvpn group openvpn # persist-опции скажут OpenVPN при перезагрузке воздержаться от доступа к определенным ресурсам, # т.к. они могут быть недоступны из-за понижения привелегий. persist-key persist-tun # Файл состояния текущих соединений. Перезаписывается раз в минуту. status /var/log/openvpn-status.log # Куда писать логи? log-append /var/log/openvpn.log # Уровень детализации лога verb 3 # Не записывать больше повторяющихся сообщений сразу mute 20

На этом конфигурирование закончено. Теперь приступаем к генерации ключей и сертефикатов безопасности. Генерируем ключи и сертификаты для сервера и для каждого пользователя. Скрипты для генерации находятся в /usr/share/openvpn/easy-rsa/2.0. Перейдем туда:

[admin@anart.ru /]# cd /usr/share/openvpn/easy-rsa/2.0

Если каталог не существует, устанавливаем easy-rsa

[admin@anart.ru /]# yum install easy-rsa

Пробуем перейти в easy-rsa:

[admin@anart.ru /] cd /usr/share/easy-rsa/2.0

Теперь выполняем всё по порядку

[admin@anart.ru 2.0]# . ./vars

Удаляем всё и готовим к генерации каталог keys:

[admin@anart.ru 2.0]# ./clean-all

Создаём ca.key – он нужен и серверу и клиенту

[admin@anart.ru 2.0]# ./build-ca

Далее генерируем приватный ключ и сертификат для сервера:

[admin@anart.ru 2.0]# ./build-key-server server

Теперь генерируем файл параметров по алгоритму Diffie-Hellman

[admin@anart.ru 2.0]# ./build-dh

После этого генерируем ключи и сертификаты для клиентов:

[admin@anart.ru 2.0]# ./build-key anton

Необходимые файлы создались в /usr/share/openvpn/easy-rsa/2.0/keys, либо /usr/share/easy-rsa/2.0/keys, в зависимости от того, где вы генерировали ключи. И последним создаем общий ключ для клиентов и сервера. Это TLS-ключ:

[admin@anart.ru 2.0]# openvpn –genkey –secret ta.key

На этом генерация завершена. Теперь в каталоге /usr/share/openvpn/easy-rsa/2.0/keys (/usr/share/easy-rsa/2.0/keys) находятся все ключи и сертификаты, а в /usr/share/openvpn/easy-rsa/2.0 (/usr/share/easy-rsa/2.0) TLS-ключ ta.key.

Файлы, которые необходимы серверу:

ca.crt ta.key server.crt server.key dh1024.pem

Их необходимо скопировать в /etc/openvpn/keys (Предварительно создав папку keys /etc/openvpn/keys)

Файлы которые мы отдадим клиенту:

anton.crt anton.key ca.crt ta.key

Теперь можно запустить openvpn сервер:

[admin@anart.ru 2.0]# service openvpn start

или

[admin@anart.ru 2.0]# /etc/init.d/openvpn start

Если вы хотите, что бы openvpn сервер автоматически стартовал при загрузке системы, выполните:

[admin@anart.ru 2.0]# chkconfig openvpn on

Проверим, появился ли в системе интерфейс tap0 и тот ли у него IP, который мы задали в конфигурации:

[admin@anart.ru 2.0]# ifconfig

Теперь представлю вам свой файл iptables:

# Generated by iptables-save v1.3.5 on Wed Jan 23 15:43:00 2013 *nat :PREROUTING ACCEPT [39:5343] :POSTROUTING ACCEPT [2:120] :OUTPUT ACCEPT [3:196] -A POSTROUTING -o eth0 -j MASQUERADE COMMIT # Completed on Wed Jan 23 15:43:00 2013 # Generated by iptables-save v1.3.5 on Wed Jan 23 15:43:00 2013 *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [735:1182216] -A INPUT -p tcp -m tcp –dport 443 -j ACCEPT -A FORWARD -i tap0 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p icmp -m icmp –icmp-type any -j ACCEPT -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT -A INPUT -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT -A INPUT -p tcp -m state –state NEW -m tcp –dport 8080 -j ACCEPT -A INPUT -j REJECT –reject-with icmp-host-prohibited COMMIT

Перезапускаем iptables

[admin@anart.ru /]# service iptables restart

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

Для этого в файле /etc/sysctl.conf меняем значение net.ipv4.ip_forward на 1 (net.ipv4.ip_forward = 1) и заносим 1 в файл /proc/sys/net/ipv4/ip_forward

[admin@anart.ru /]# echo 1 > /proc/sys/net/ipv4/ip_forward

Надеюсь вы всё сделали правильно и не потеряли доступ к серверу ))))

Т.к. я сижу с винды, то я конечно же скачиваю OpenVPN клиента для своей архитектуры. После установки у нас имеется каталог C:Program FilesOpenVPNconfig. Вот сюда мы скидываем файлы: anton.crt anton.key ca.crt ta.key

а так же создадим файл конфигурации клиента, например anton.ovpn со следующим содержимым:

# Укажем, что мы являемся клиентом client tls-client dev tap # На каком протоколе работать proto tcp-client # Адрес и порт сервера (Хоть IP хоть доменное имя) remote X.X.X.X 443 # Бесконечно пробовать разрешить имяо хоста OpenVPN-сервера. resolv-retry infinite # Не биндиться к интерфейсу nobind # Стараться сохранять некоторое объекты между перезапусками persist-key persist-tun nobind http-proxy-retry # повторять при ошибках соединения http-proxy 192.168.65.31 3128 # это мой пример прокси # Параметры SSL/TLS. # Смотрите файл конфигурации сервера для более # подробного описания. Лучше всего использовать # отдельные пары .crt/.key-файлов # для каждого клиента. Один ca-файл # может быть использован для всех клиентов. ca ca.crt cert ncgti.crt key ncgti.key # Если на сервере используется ключ tls-auth, # то каждый клиент также должен иметь этот ключ. tls-auth ta.key 1 # Выбор криптографического шифра (cipher). # Если опция cipher используется на сервере, # то вы также должны указать её здесь. cipher DES-CBC3-SHA cipher BF-CBC cipher AES-256-CBC # Включить сжатие comp-lzo # Уровень лога verb 3 # Не записывать поторяющиеся сообщения более чем mute 20

Запускаем OpenVPN GUI. Он появляется в трее. Жмем на его значек в трее правой кнопкой – подключиться. Наблюдаем процесс подключения в виде лога. При успешном подключении компьютеры на пиктограмме будут зелеными, так же вам будет назначен IP адрес вида 10.8.0.2 и т.д.

При данном подключении все ваши запросы будут проходить через шлюз 10.8.0.1. Т.е. вы потеряете доступ к локальной сети, если таковая у вас имеется. Для того, что бы локальная сеть работала, необходимо все ваши запросы вида 192.160.0.0 отправлять на шлюз вашей локальной сети. Например у нас это шлюз 192.168.0.1. Делается это путем ввода в коммандной строке следующей строки:

C:UsersAdmin> route ADD -p 192.168.0.0 mask 255.255.0.0 192.168.0.1

Источник: https://anart.ru/mysql/2013/01/25/ustanovka-i-nastrojka-openvpn-na-centos-dlya-razdachi-interneta.html

Ссылка на основную публикацию