Часто приходится ставить VPN на базе OpenVPN, в целом отличия между Centos, Debian не вижу, все +- одинаковое. Я всегда ставлю на Centos.
Начнем….
Подключаем репу EPEL.
После этого ставим сам openvpn
1 |
yum install openvpn |
Так как после какой то версии OpenVPN проект разделился, то в стандартной поставе openvpn нет скриптов EasyRSA которые нужны для самостоятельных ключей. По этому сразу ставлю и этот пакет.
1 |
yum install easy-rsa |
Дальше идет простой копипаст, с небольшим описанием…
1 2 3 4 |
touch /etc/openvpn/server.conf touch /etc/openvpn/ip.sv mkdir /var/log/openvpn chown openvpn.openvpn /etc/openvpn/* |
Далее идем генерить ключики для доступа к серверу ВПН:
1 2 3 4 5 6 7 8 |
cd /usr/share/easy-rsa/2.0/ . ./vars ./clean-all ./build-ca ./build-key-server server ./build-dh ./build-key client01 openvpn --genkey --secret ta.key |
Нагенерили, теперь раскидываем все по каталогам.
1 2 3 4 5 |
mkdir /etc/openvpn/key mkdir /etc/openvpn/tls cd /usr/share/easy-rsa/2.0/keys cp {server.crt,server.key,dh2048.pem,ca.crt} /etc/openvpn/key/ cp ../ta.key /etc/openvpn/tls |
Наполняем конфиг сервера:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
local 8.8.8.8 # тут IP нашего сервака на котором висит сервис ВПН port 443 # Я указываю 443 порт что бы пользоваться ВПН там где блокируют подключения на выше чем 1024 порт proto tcp dev tun0 client-to-client ca /etc/openvpn/key/ca.crt cert /etc/openvpn/key/server.crt key /etc/openvpn/key/server.key dh /etc/openvpn/key/dh2048.pem server 10.10.20.0 255.255.255.0 tls-server ifconfig-pool-persist /etc/openvpn/ip.sv push «dhcp-option DNS 8.8.8.8» push «redirect-gateway» keepalive 10 120 tls-auth /etc/openvpn/tls/ta.key 0 cipher AES-256-CBC auth SHA512 comp-lzo max-clients 2 user openvpn group openvpn persist-key persist-tun #status /var/log/openvpn/openvpn-status.log #логи я отключил #log-append /var/log/openvpn/openvpn.log verb 0 mute 0 |
Обязательно не забываем включтить перенаправление траффика между интерфейсами:
1 |
echo 1 > /proc/sys/net/ipv4/ip_forward |
Прописываем этот же параметр что бы работало и после перезагрузки:
1 |
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf |
После этого пускаем OpenVPN:
1 |
/etc/init.d/openvpn start |
Проверяем нормально ли запустился сервис:
1 2 3 |
[root@rem-sys openvpn]# lsof -i tcp:443 -n COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME openvpn 1337 openvpn 4u IPv4 9763 0t0 TCP 8.8.8.8:https (LISTEN) |
Добавляем правило в iptables для маскарадинга:
1 |
iptables -t nat -A POSTROUTING -s 10.10.20.0/24 -o eth0 -j MASQUERADE |
После этого перекачиваем ключи для клиента и настраиваем ВПН на клиентском ноуте или компе, я перекачиваю копированием через scp с клиента.
Тарим на сервере ключи:
1 2 |
cp /etc/openvpn/tls/ta.key /usr/share/easy-rsa/2.0/keys/ tar zcvf /root/keys.tgz /usr/share/easy-rsa/2.0/keys/ |
Перекачиваем к себе ключи:
1 |
scp root@8.8.8.8:/root/keys.tgz /etc/openvpn |
Настраиваем конфиг на клиенте:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
client tls-client dev tun proto tcp remote 8.8.8.8 443 persist-key persist-tun ca /etc/openvpn/ca.crt dh /etc/openvpn/dh2048.pem cert /etc/openvpn/client.crt key /etc/openvpn/client.key tls-auth /etc/openvpn/ta.key 1 cipher AES-256-CBC auth SHA512 comp-lzo verb 4 mute 20 log-append /var/log/openvpn/openvpn_client.log status /var/log/openvpn/status_client.log |
Из перекачиваемого архива вытягиваем и подкладываем в /etc/openvpn ключики для работы, а именно:
1 2 3 4 5 |
client.key client.crt dh2048.pem ca.crt ta.key |
После этого запускаем на клиенте ВПН сервис и проверяем свой IP. Если все сделно верно – то IP будет сервака ВПН, а трафф между клиентом и сервером будет шифроваться.
1 коментар до “Установка OpenVPN Centos 6”