четверг, 28 февраля 2019 г.

суббота, 16 февраля 2019 г.

1) Устанавливаем easy-rsa и openvpn из репозиториев Alpine Linux.
easy-rsa находиться в репозитории

Переходим в директорию  cd /usr/share/easy-rsa/

*Инициализируем хранилище сертификатов (CA). В процессе создания будет запрос пароля от хранилища. Генерируйте случайный и

сохраните его в свое защищенное хранилище паролей (keepass). Этот пароль нам понадобиться для добавления+подписи

сертификатов и он защищает хранилище.

./easyrsa init-pki
./easyrsa build-ca


*Создаем запросы сертификатов для сервера и клиента

./easyrsa gen-req UNIQUE_SERVER_SHORT_NAME nopass
./easyrsa gen-req UNIQUE_CLIENT_SHORT_NAME nopass

*После выполнения 4 команд получаем файлы запросов (это не команды, это пути к файлам).

req: /usr/share/easy-rsa/pki/reqs/UNIQUE_SERVER_SHORT_NAME.req
key: /usr/share/easy-rsa/pki/private/UNIQUE_SERVER_SHORT_NAME.key
req: /usr/share/easy-rsa/pki/reqs/UNIQUE_CLIENT_SHORT_NAME.req
key: /usr/share/easy-rsa/pki/private/UNIQUE_CLIENT_SHORT_NAME.key

*импортируем в CA

./easyrsa import-req /usr/share/easy-rsa/pki/reqs/UNIQUE_SERVER_SHORT_NAME.req UNIQUE_SHORT_FILE_NAME_1
./easyrsa import-req /usr/share/easy-rsa/pki/reqs/UNIQUE_CLIENT_SHORT_NAME.req UNIQUE_SHORT_FILE_NAME_2

*подписываем

./easyrsa sign-req server UNIQUE_SHORT_FILE_NAME_1
./easyrsa sign-req client UNIQUE_SHORT_FILE_NAME_2

*Получаем сертификаты (это не команды, это пути к файлам).

Сервер: /usr/share/easy-rsa/pki/issued/UNIQUE_SHORT_FILE_NAME_1.crt
Клиент: /usr/share/easy-rsa/pki/issued/UNIQUE_SHORT_FILE_NAME_2.crt

*Сгенерируйте ключ для протокола обмена ключами диффи-хеллмана.

./easyrsa gen-dh


*После выполнения получите файл
/usr/share/easy-rsa/pki/dh.pem

*Генерируем секрет для tls-авторизации опенвпн

openvpn --genkey --secret /etc/openvpn/ta.key

Все. На сервер ложим файлы.

dh /usr/share/easy-rsa/pki/dh.pem
ca /usr/share/easy-rsa/pki/ca.crt
cert /usr/share/easy-rsa/pki/issued/UNIQUE_SHORT_FILE_NAME_1.crt
key /usr/share/easy-rsa/pki/private/UNIQUE_SERVER_SHORT_NAME.key
tls-auth /etc/openvpn/ta.key 0


*Создаем файл конфигурации openvpn - сервера

port 1194
proto udp
dev tun0
persist-key
persist-tun
tls-server
tls-timeout 120
server 10.10.0.0 255.255.255.0
topology subnet
comp-lzo
duplicate-cn
keepalive 10 120
cipher DES-EDE3-CBC
dh /usr/share/easy-rsa/pki/dh.pem
ca /usr/share/easy-rsa/pki/ca.crt
cert /usr/share/easy-rsa/pki/issued/UNIQUE_SHORT_FILE_NAME_1.crt
key /usr/share/easy-rsa/pki/private/UNIQUE_SERVER_SHORT_NAME.key
tls-auth /etc/openvpn/ta.key 0

*Настройка клиента

Копируем с сервера на клиента файлы:

ca /usr/share/easy-rsa/pki/ca.crt
cert /usr/share/easy-rsa/pki/issued/UNIQUE_SHORT_FILE_NAME_2.crt
key /usr/share/easy-rsa/pki/private/UNIQUE_CLIENT_SHORT_NAME.key
tls-auth /etc/openvpn/ta.key

Я копировал при помощи scp

scp /usr/share/easy-rsa/pki/ca.crt root@192.168.0.201:/etc/openvpn/ca.crt
scp /usr/share/easy-rsa/pki/issued/UNIQUE_SHORT_FILE_NAME_2.crt root@192.168.0.201:/etc/openvpn/client.crt
scp /usr/share/easy-rsa/pki/private/UNIQUE_CLIENT_SHORT_NAME.key root@192.168.0.201:/etc/openvpn/client.key
scp /etc/openvpn/ta.key root@192.168.0.201:/etc/openvpn/ta.key

И создаем конфиг клиента:

dev tun
proto udp
remote 192.168.0.200 1194
client
resolv-retry infinite
ca "/etc/openvpn/ca.crt"
cert "/etc/openvpn/client.crt"
key "/etc/openvpn/client.key"
tls-auth "/etc/openvpn/ta.key" 1
remote-cert-tls server
persist-key
persist-tun
comp-lzo


Добавляем в автозагрузку

rc-update add openvpn

Запускаем

service openvpn start