Шпаргалка по быстрому разворачиванию OpenVPN на Debian (испытано на версии Debian 9).
Просто копируем это дело в файл, исключая подсвеченное желтым, и выполняем через source ./file .
Для начала, серверная часть. У меня возникли проблемы со стандартным EasyRSA, поэтому использую версию из апстрима.
Просто копируем это дело в файл, исключая подсвеченное желтым, и выполняем через source ./file .
Для начала, серверная часть. У меня возникли проблемы со стандартным EasyRSA, поэтому использую версию из апстрима.
Серверная часть:
# apt-get install openvpn
# cd /etc/openvpn
# wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.3/EasyRSA-3.0.3.tgz
# tar zxvf EasyRSA-3.0.3.tgz
# rm EasyRSA-3.0.3.tgz
# cd EasyRSA-3.0.3/
# vim vars
if [ -z "$EASYRSA_CALLER" ]; then
echo "You appear to be sourcing an Easy-RSA 'vars' file." >&2
echo "This is no longer necessary and is disallowed. See the section called" >&2
echo "'How to use this file' near the top comments for more details." >&2
return 1
fi
set_var EASYRSA "$PWD"
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_KEY_SIZE 2048
set_var EASYRSA_CA_EXPIRE 36500 # истекает через 100 лет
set_var EASYRSA_CERT_EXPIRE 36500 # истекает через 100 лет
set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-1.0.cnf"
set_var EASYRSA_REQ_CN "srv" # ДОЛЖНО БЫТЬ УНИКАЛЬНЫМ
set_var EASYRSA_DIGEST "sha256"
set_var EASYRSA_BATCH "1" # не безопастно. Убдеитесь, что оно вам надо
# ./easyrsa init-pki
# ./easyrsa build-ca nopass
# ./easyrsa gen-dh
# ./easyrsa build-server-full server nopass # Возможны ошибки. Нужно обратить внимание
# cp ./pki/ca.crt ../server/
# cp ./pki/dh.pem ../server/
# cp ./pki/issued/server.crt ../server/
# cp ./pki/private/ ../server/
# cp ./pki/private/server.key ../server/
# cd /etc/openvpn/server/
# openvpn --genkey --secret tls.ta
# vim /etc/openvpn/server.conf local 192.168.1.55 # установим локальный адрес для прослушивания входящих соединений на этом интерфейсе. См. 'ip a' port 1194 proto udp dev tun # используем tun вместо tap cipher AES-256-CBC # на ваше усмотрение tls-server tls-crypt /etc/openvpn/server/tls.ta ca /etc/openvpn/server/ca.crt cert /etc/openvpn/server/server.crt key /etc/openvpn/server/server.key dh /etc/openvpn/server/dh.pem server 10.0.0.0 255.255.255.0 push 'route 0.0.0.0 255.255.255.0' push 'dhcp-option DNS 8.8.8.8' # учитываем специфику Andoid push 'redirect-gateway' # установите 'def1' или 'local def1' если нужно client-to-client keepalive 10 120 user nobody group nogroup persist-key persist-tun status /var/log/openvpn-status.log verb 3 mute 10 # vim /etc/sysctl.conf net.ipv4.ip_forward=1 # sysctl -p # iptables -A INPUT -p UDP --dport 1194 -j ACCEPT # разрешаем входящие соединения на порт 1194 с любого интерфейса # iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT # разрешаем обмен трафиком между подсетями # iptables -A FORWARD -d 10.0.0.0/24 -j ACCEPT # разрешаем обмен трафиком между подсетями # iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE # используем маскарадинг # iptables-save > /etc/iptables.up.rules # vim /etc/network/if-pre-up.d/iptables #!/bin/sh /sbin/iptables-restore < /etc/iptables.up.rules # chmod +x /etc/network/if-pre-up.d/iptables # systemctl start openvpn@server # systemctl enable openvpn@serverСервер настроен. Но нет ни одного ключа для клиентов. Тут два варианта — делать всё ручками или воспользоваться готовым скриптом.
Вариант "всё ручками":
# cd /etc/openvpn/EasyRSA-3.0.3/ # ./easyrsa build-client-full client1 nopass # где client1 имя клиентских файлов # cp pki/private/client1.key /home/user/ # cp pki/issued/client1.crt /home/user/ # cp pki/ca.crt /home/user/
# cp /etc/openvpn/server/tls.ta /home/user/
# vim /home/user/client1.ovpn # дальше на ваше усмотрение
client
tls-client
tls-crypt tls.ta
dev tun
proto udp
remote hostname.org.ru 1194
cipher AES-256-CBC
resolv-retry infinite
nobind
ca ca.crt
cert android.crt
key android.key
persist-tun
persist-key
verb 3
remote-cert-tls server
Вариант "всё готовым скриптом"
# cd /etc/openvpn/EasyRSA-3.0.3/Идём качать последнюю версию ovpnWrapper: https://github.com/developersu/ovpnWrapper/releases
Качаем его и распаковываем в эту директорию.
Далее идём читать инструкцию сюда: https://developersu.blogspot.ru/2017/12/ovpnwrapper.html
Готово!
Если сервер OpenVPN находится за NAT, то будет приятным дополнением влепить правила на гейтвее (роутере, как правило):
# route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.55Тут надо заменить последнее на адрес OpenVPN сервера. Ну и порт к нему прокинуть тоже не помешает - 1194 ;)
Чтобы после перезагрузки это дело не слетело, идём в Luci→Сеть→Статические маршруты
И добавляем новое правило:
* тут указан ip 192.168.1.5 но для данного примера стоит указать 192.168.1.55 как описано ранее
Сохраняем, применяем. Перезагружать не требуется.
На этом всё =)
Пользуйтесь!
Отличная статья , Спасибо.
ОтветитьУдалитьБез проблем =)
УдалитьДля клиента Debian OpenVPN
ОтветитьУдалитьУстанавливаете OpenVPN
# apt-get install openvpn
1. Если создавали файлы ручками
Копируете файлы с сервера на клиента в папку /etc/openvpn/
client1.key
client1.crt
ca.crt
tls.ta
client1.ovpn
Переименовываете client1.ovpn в client.conf
2. Если создавали файлы скриптом
Копируете файл client1.ovpn с сервера на клиента в папку /etc/openvpn/
Переименовываете client1.ovpn в client.conf
Перезапускаем OpenVPN
#systemctl restart openvpn
Забыл добавить что если файлы созданы ручками после копирования надо поменять права на файлы
ОтветитьУдалить# cd /etc/openvpn/
#chmod 600 tls.ta
#chmod 600 client1.key