OpenVPN + Mikrotik
Статья в разработке!
Устанавливаем Easy-RSA
apt-get install easy-rsa
Подготавливаем CA
Все команды запускаем по очереди.
make-cadir /etc/easy-rsa
cd /etc/easy-rsa
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
./easyrsa gen-crl
Генерим сертификаты для сервера
./easyrsa gen-req openvpn-server nopass
./easyrsa sign-req server openvpn-server
Увеличиваем время жизни сертификата на 2 года
openssl x509 -in /etc/easy-rsa/pki/issued/openvpn-server.crt -text -noout | grep "Not After"
Генерим сертификаты для клиента с имененм mikrotik
./easyrsa gen-req mikrotik nopass
./easyrsa sign-req client mikrotik
Сертификаты для микротика
/etc/easy-rsa/pki/issued/mikrotik.crt
/etc/easy-rsa/pki/private/mikrotik.key
Установка openvpn
apt-get install openvpn
Конфиг сервера
/etc/openvpn/server/server.conf
ca /etc/easy-rsa/pki/ca.crt
cert /etc/easy-rsa/pki/issued/openvpn-server.crt
key /etc/easy-rsa/pki/private/openvpn-server.key
dh /etc/easy-rsa/pki/dh.pem
crl-verify /etc/easy-rsa/pki/crl.pem
proto tcp
# Имя интерфейса
dev tun200
tun-mtu 1400
topology subnet
server 10.20.200.0 255.255.255.0
client-config-dir /etc/openvpn/client
data-ciphers AES-256-GCM:AES-128-GCM:BF-CBC
# Говорим клиенту пингать сервер что бы не терялась связь
push "ping 10"
# Маршруты которые отдаем клиентам
push "route 10.10.0.0 255.255.0.0"
push "route 192.168.0.0 255.255.0.0"
# Маршруты за опенвпн в системном роутинге
route 192.168.0.0 255.255.255.0
Конфиг клиента
Конфиг лежит в каталоге /etc/openvpn/client
. Название ключа есть название конфига для клиента. В данном случае mikrotik
# Адресация для микротика
#ifconfig-push 10.20.200.9 255.255.255.0
# роутинг за микротиком
iroute 192.168.0.0 255.255.255.0
Запуск
systemctl enable openvpn-server@server
systemctl start openvpn-server@server
iptables
iptables -I INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
Утранение неисправностей.
Лог
TLS: Initial packet from [AF_INET]19.10.5.11:51849, sid=ba13f8a4 4c4aec28
VERIFY ERROR: depth=0, error=CRL has expired: CN=client1
OpenSSL: error:140890B2:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned
TLS_ERROR: BIO read tls_read_plaintext error
TLS Error: TLS object -> incoming plaintext read error
TLS Error: TLS handshake failed
SIGUSR1[soft,tls-error] received, client-instance restarting
Решение
cd /etc/easy-rsa
./easyrsa gen-crl
systemctl restart openvpn-server@server
Для того что бы постоянно не отвлекаться можно добавить данный код в крон.
Заходим в каталог /etc/cron.weekly
, создаем файл fix-vpn
, даем права chmod 755
и вставляем внутрь содержимое:
cd /etc/easy-rsa
./easyrsa gen-crl >/dev/null 2>&1
systemctl restart openvpn-server@server > /dev/null
[ Править ]