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