Установка OpenVPN server на CentOS 6.4 — различия между версиями

Материал из База знаний
Перейти к: навигация, поиск
(Новая страница: «'''Установка OpenVPN server на CentOS 6.4''' category:Linux rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rp…»)
 
 
(не показано 5 промежуточных версий этого же участника)
Строка 13: Строка 13:
 
  echo "00">/etc/openvpn/keys/serial
 
  echo "00">/etc/openvpn/keys/serial
 
  chmod +x /etc/openvpn/easy-rsa/vars
 
  chmod +x /etc/openvpn/easy-rsa/vars
 
+
touch /etc/openvpn/keys/crl.pem
 +
chown root:root /etc/openvpn/keys/crl.pem
 +
chmod 644 /etc/openvpn/keys/crl.pem
  
 
Правим /etc/openvpn/server.conf<br>
 
Правим /etc/openvpn/server.conf<br>
Строка 23: Строка 25:
 
  cert /etc/openvpn/keys/server.crt
 
  cert /etc/openvpn/keys/server.crt
 
  key /etc/openvpn/keys/server.key # This file should be kept secret
 
  key /etc/openvpn/keys/server.key # This file should be kept secret
  dh /etc/openvpn/keys/dh1024.pem
+
  dh /etc/openvpn/keys/dh2048.pem
 +
crl-verify /etc/openvpn/keys/crl.pem
 
  server 10.8.0.0 255.255.255.0
 
  server 10.8.0.0 255.255.255.0
 
  ifconfig-pool-persist ipp.txt
 
  ifconfig-pool-persist ipp.txt
Строка 38: Строка 41:
 
  verb 3
 
  verb 3
  
Для удобства дальнейшего сопровождения, во вторую строчку файлов '''build-key''', '''build-key-pass''' ставим такой фрагмент(вместе с точками и пробелами):
+
Для удобства дальнейшего сопровождения, во вторую строчку файлов '''build-key''', '''build-key-pass''' и др. ставим такой фрагмент(вместе с точками и пробелами):
 
  . ./vars
 
  . ./vars
  
Строка 61: Строка 64:
 
Затем выполняем последовательно команды:
 
Затем выполняем последовательно команды:
 
  . ./vars
 
  . ./vars
 
 
  ./build-ca  
 
  ./build-ca  
 
здесь, отвечаем на вопросы. Если ранее все правильно было заполнено, то надо только заполнить «Common Name» - имя сервера, а остальное по умолчанию... ну и пару раз нажать «Y»
 
здесь, отвечаем на вопросы. Если ранее все правильно было заполнено, то надо только заполнить «Common Name» - имя сервера, а остальное по умолчанию... ну и пару раз нажать «Y»
Строка 80: Строка 82:
 
   
 
   
 
без запроса пароля
 
без запроса пароля
./build-key UserLogin
+
./build-key UserLogin
 +
 
 +
Отозвать сертификат:
 +
./revoke-full UserLogin
 +
 
 +
Временно запретить подключение конкретного юзера:
 +
echo disable>>//etc/openvpn/ccd/<Имя_сертификата>
 +
Но, надо чтобы клиент переподключился. Чтобы разрешить ему подключаться - убрать эту строчку, либо закомментировать и опять же, чтобы он переподключился.
 +
Есть нюанс: при наличии этой строчки - клиентская часть вылетает и больше не пытается подключиться самостоятельно.
 +
 
  
 
Брал инфу здесь: https://billing.adivohost.com/knowledgebase.php?action=displayarticle&id=20 <br>
 
Брал инфу здесь: https://billing.adivohost.com/knowledgebase.php?action=displayarticle&id=20 <br>
 
но, к сожалению, та статья не отражает нюансов конкретной сборки... поэтому что-то сам додумывал, домысливал.
 
но, к сожалению, та статья не отражает нюансов конкретной сборки... поэтому что-то сам додумывал, домысливал.

Текущая версия на 10:13, 19 сентября 2018

Установка OpenVPN server на CentOS 6.4

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh http://download3.fedora.redhat.com/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum install openvpn easy-rsa -y
cp /usr/share/doc/openvpn-2.*/sample/sample-config-files/server.conf /etc/openvpn/
mkdir /etc/openvpn/easy-rsa
mkdir /etc/openvpn/keys
mkdir /etc/openvpn/ccd
cp /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
touch /etc/openvpn/keys/index.txt
echo "00">/etc/openvpn/keys/serial
chmod +x /etc/openvpn/easy-rsa/vars
touch /etc/openvpn/keys/crl.pem
chown root:root /etc/openvpn/keys/crl.pem
chmod 644 /etc/openvpn/keys/crl.pem

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

port 1194
proto udp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key # This file should be kept secret
dh /etc/openvpn/keys/dh2048.pem
crl-verify /etc/openvpn/keys/crl.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0"
client-config-dir /etc/openvpn/ccd
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 192.168.1.10"
keepalive 10 120
cipher AES-128-CBC   # AES 
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

Для удобства дальнейшего сопровождения, во вторую строчку файлов build-key, build-key-pass и др. ставим такой фрагмент(вместе с точками и пробелами):

. ./vars

в конце файла vars, есть такие строчки:

export KEY_COUNTRY="RU"
export KEY_PROVINCE="Rossia"
export KEY_CITY="Tomsk"
export KEY_ORG="организация"
export KEY_EMAIL="root@чегототам"
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=IT
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234

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

export KEY_DIR="$EASY_RSA/keys"

на эту:

export KEY_DIR="$EASY_RSA/../keys"

Затем выполняем последовательно команды:

. ./vars
./build-ca 

здесь, отвечаем на вопросы. Если ранее все правильно было заполнено, то надо только заполнить «Common Name» - имя сервера, а остальное по умолчанию... ну и пару раз нажать «Y»

./build-dh
./build-key-server server
service openvpn start
chkconfig openvpn on

Сервис работает. Для подключения надо еще в iptables прописать:

-A FW-INPUT -m udp -p udp --dport 1194 -j ACCEPT


Создание пользователей:

с запросом пароля:

./build-key-pass UserLogin


без запроса пароля

./build-key UserLogin

Отозвать сертификат:

./revoke-full UserLogin

Временно запретить подключение конкретного юзера:

echo disable>>//etc/openvpn/ccd/<Имя_сертификата>

Но, надо чтобы клиент переподключился. Чтобы разрешить ему подключаться - убрать эту строчку, либо закомментировать и опять же, чтобы он переподключился. Есть нюанс: при наличии этой строчки - клиентская часть вылетает и больше не пытается подключиться самостоятельно.


Брал инфу здесь: https://billing.adivohost.com/knowledgebase.php?action=displayarticle&id=20
но, к сожалению, та статья не отражает нюансов конкретной сборки... поэтому что-то сам додумывал, домысливал.