Установка 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 [email protected]
Старт, Остановка, Статус
systemctl start [email protected] systemctl status -l [email protected]
*Если в директории /etc/openvpn/ у вас будет несколько .conf файлов, различных VPN туннелей, то включать автозапуск нужно будет для каждого отдельно
systemctl enable [email protected] systemctl enable [email protected]… # 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
# /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 [email protected]:/etc/openvpn/clients/client1/* . [email protected]'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, [email protected] 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, [email protected] 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 и вводим пароль, который указывали при создании корневого сертификата.
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=”[email protected]”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 |
-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 отсутствует, то необходимо сначала подключить нужные репозитарии. Теперь можно приступить к установке:
[[email protected] /]# yum install openvpn
После установки необходимо создать главный конфигурационный файл openvpn сервера server.conf и положить файл в /etc/openvpn:
[[email protected] /]# touch /etc/openvpn/server.conf
Так же создадим файл, в который openvpn будет записывать выдаваемые клиентам ip адреса
[[email protected] /]# touch /etc/openvpn/ipp.txt
А для логов нужно создать каталог:
[[email protected] /]# 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. Перейдем туда:
[[email protected] /]# cd /usr/share/openvpn/easy-rsa/2.0
Если каталог не существует, устанавливаем easy-rsa
[[email protected] /]# yum install easy-rsa
Пробуем перейти в easy-rsa:
[[email protected] /] cd /usr/share/easy-rsa/2.0
Теперь выполняем всё по порядку
[[email protected] 2.0]# . ./vars
Удаляем всё и готовим к генерации каталог keys:
[[email protected] 2.0]# ./clean-all
Создаём ca.key – он нужен и серверу и клиенту
[[email protected] 2.0]# ./build-ca
Далее генерируем приватный ключ и сертификат для сервера:
[[email protected] 2.0]# ./build-key-server server
Теперь генерируем файл параметров по алгоритму Diffie-Hellman
[[email protected] 2.0]# ./build-dh
После этого генерируем ключи и сертификаты для клиентов:
[[email protected] 2.0]# ./build-key anton
Необходимые файлы создались в /usr/share/openvpn/easy-rsa/2.0/keys, либо /usr/share/easy-rsa/2.0/keys, в зависимости от того, где вы генерировали ключи. И последним создаем общий ключ для клиентов и сервера. Это TLS-ключ:
[[email protected] 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 сервер:
[[email protected] 2.0]# service openvpn start
или
[[email protected] 2.0]# /etc/init.d/openvpn start
Если вы хотите, что бы openvpn сервер автоматически стартовал при загрузке системы, выполните:
[[email protected] 2.0]# chkconfig openvpn on
Проверим, появился ли в системе интерфейс tap0 и тот ли у него IP, который мы задали в конфигурации:
[[email protected] 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
[[email protected] /]# service iptables restart
Раздача интернета не будет осуществляться до тех пор, пока вы не включите форвардинг в ядре системы:
Для этого в файле /etc/sysctl.conf меняем значение net.ipv4.ip_forward на 1 (net.ipv4.ip_forward = 1) и заносим 1 в файл /proc/sys/net/ipv4/ip_forward
[[email protected] /]# 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