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

Материал из База знаний
Перейти к: навигация, поиск

Установка 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
но, к сожалению, та статья не отражает нюансов конкретной сборки... поэтому что-то сам додумывал, домысливал.