Это список действий для Debian
1. Проверяешь репозитарии /etc/apt/sources.list
Они должны быть примерно такого вида
deb https://ftp.ru.debian.org/debian stable main contrib non-free
deb-src https://ftp.ru.debian.org/debian stable main contrib non-free
deb https://ftp.debian.org/debian/ wheezy-updates main contrib non-free
deb-src https://ftp.debian.org/debian/ wheezy-updates main contrib non-free
deb https://security.debian.org/ wheezy/updates main contrib non-free
deb-src https://security.debian.org/ wheezy/updates main contrib non-free
То что было в списке изначально, не позволяло поставить даже самые распространенные программы.
Очень удобный сайт для генерации списков https://debgen.simplylinux.ch/
после записи в файл новых списков нужно выполнить команду
apt-get update для обновления списков дистрибутивов
3. устанавливаем софт
apt-get install openvpn dnsmasq udev vim zip
4. Копируем скрипты генерации RSA из папки с примерами
cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn
5. Переходим в папку куда скопировали скрипты для ключей
cd /etc/openvpn/easy-rsa/2.0/
В файле vars содержатся переменные для ключей, менять их не обязательно, если не хочешь заморачиватся с красотой сертификата
ACHTUNG!!! ниже все команды с учетом того что ты сменил директорию командой cd !
объявим переменные
source ./vars
далее по порядку запускаешь скрипты
./clean-all
./build-ca
после последнего скрипта начнется генерация сертификата, где по ходу генерации можно будет указать переменные которые инициализировались ранее
но это совсем не обязательно
можно везде жать Enter
6. Потом запускаешь скрипт генерации ключа для сервера
./build-key-server server
имя ключа можно указать любое, в процессе генерации будет запрашивается пароль, его можно не ставить если будешь только для себя делать доступ или если меньше 100 пользователей, т.е. если не будешь раздавать его через интернет чтоб он попал в открытый доступ и фсб не захватило твой сервер)))
+будет вопрос про подпись ключа
7. Генерируем ключ для клиента
./build-key cli
имя тоже можно указать любое
все тоже самое что и с ключом сервера — пароль, вопрос
8. Генерируем ключ для симметричного шифрования
./build-dh
9. эта команда генерирует ключ для tls
openvpn —genkey —secret keys/ta.key
его есть смысл использовать для защиты от DDOS если соединение идет через UDP, через TCP добавит тормозов. Сгенерировать в любом случае можно, в настройках убирается комментированием строки. Но использовать большого смысла нету.
10. Теперь надо скопировать полученные ключи
они все записались в папку keys
для удобства можно перейти в эту папку
cd keys
копируешь ключи сервера в папку /etc/openvpn/
cp server.crt server.key ca.crt dh1024.pem ta.key /etc/openvpn/
ключи для клиента копируй куда удобно
zip -9 client_keys.zip user.crt user.key ca.crt ta.key
11. На всякий смени рабочую папку на корень
cd /
12. Копируем файл базовой настройки сервера в папку /etc/openvpn/
zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
13. открываем файл базовой конфигурации
vim /etc/openvpn/server.conf
Ищешь параметры
port NEW_PORT
proto udp
;proto tcp — so slow
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
push «redirect-gateway def1 bypass-dhcp»
push «dhcp-option DNS 8.8.8.8»
push «dhcp-option DNS 8.8.4.4»
;status openvpn-status.log
;log /var/log/openvpn.log
verb 3
#sndbuf 0 — vpn die
#rcvbuf 0 — vpn die
Можно задать адресацию, порт, путь к залу логов
если надо вырубить логи то ;log /var/log/openvpn.log — закоментированная строка не обрабатывается
14. Останавливаешь сервис vpn
/etc/init.d/openvpn stop
15. Включаешь ip-forwarding
в файле /etc/sysctl.conf раскомментируем строку
net.ipv4.ip_forward=1
потом применим настройки
echo 1 > /proc/sys/net/ipv4/ip_forward
16. открываем
vim /etc/rc.local
вносим изменения
это настройки если у тебя виртуализация openvz (venet0 = eth0, tun0 — vpn [dev tun])
iptables -t nat -A POSTROUTING -o venet0 -j SNAT —to XXX.XXX.XXX.XXX
iptables -A FORWARD -i venet0 -o tun0 -m state —state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT
/etc/init.d/dnsmasq restart
exit 0
XXXXXXX — ip сервера
этот файл отвечает за применение правил iptables при загрузке системы
чтоб не перезагружать систему нужно эти же правила вбить в консоль
17. настраиваем dnsmasquerade
открываем
vim /etc/dnsmasq.conf
ищем строки и раскомментируем, в первой строке второй адрес vpn интерфейса tun0
listen-address=127.0.0.1,10.8.0.1
bind-interfaces
18.
service openvpn restart
service dnsmasq restart
18.2 Отключаем логи в конфиге сервера vim /etc/openvpn/server.conf (если еще нет)
;status openvpn-status.log
;log /var/log/openvpn.log
Сервер готов!!!
19. Клиент
client
dev tun
#proto tcp
proto udp
remote SERVER_IP NEW_PORT
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert cli.crt
key cli.key
comp-lzo
verb 3
tls-auth ta.key 1 # possible make lags, to disable also comment «tls-auth» line in server.conf
#sndbuf 0 — vpn die
#rcvbuf 0 — vpn die