RSS подписка

Собственный OpenVPN сервер – это просто!

VPN (Virtual Private Network – виртуальная частная сеть) – это логическая сеть, которая создается поверх какой-либо другой сети. VPN гарантирует анонимность и безопасность при работе через интернет, обеспечивая защиту от перехвата трафика, за счет его полного шифрования. В последнее время в сети все чаще стали появляться всевозможные сайты, продающие vpn доступ на их серверах расположенных в разных странах. Воспользовавшись услугами одного из таких VPN–провайдеров, через некоторое время обнаружил, что IP адрес сервера находится во всевозможных блэклистах, разве что заказного убийства за ним не числится.
Выбрав СЕБЯ в качестве vpn провайдера, вы получаете ряд преимуществ в сравнении с использованием публичных сервисов которые не могут гарантировать того что данные о вас не уйдут третьим лицам, да и вообще, черт его знает как у них все работает, и не становитесь ли вы сами жертвой используя чей то VPN?

Итак, речь пойдет о том, как легко и просто настроить свой собственный OpenVPN сервер.

  • Первое что нам потребуется, сервер с Fedora 12 на борту, можно VDS (Главное не дома иначе теряется весь смысл).
  • Второе это SSH или KVM доступ к серверу.
  • Третье, вам необходимо знать, как работать с любым консольным редактором, например vi.

Установим необходимые пакеты, если они не установлены:
su -c "yum install -y iptables openvpn"

Скопируем необходимые файлы:
cp -R /usr/share/openvpn/easy-rsa/2.0/* /tmp/
cd /tmp/
chmod +rwx *

Отредактируйте vars:

vi ./vars

Нас интересуют:
export KEY_SIZE=2048 #Размер ключа шифрования, рекомендую поставить 2048бит и больше.Отредактируйте с вашими параметрами
export KEY_COUNTRY="RU"
export KEY_PROVINCE="NA"
export KEY_CITY="Moscow"
export KEY_ORG="VPN Company"
export KEY_EMAIL="my@mail.com"

И приступим к созданию сертификатов:
source ./vars
./clean-all
На все вопросы визарда можно пропускать, нажимая Enter или отвечать на ваше усмотрение.
./build-ca
./build-key-server vpnserver
./build-dh этот шаг займет какое-то время, придется подождать

И еще один:
openvpn –genkey –secret ta.key
Скопируем ключи:
cp keys/{ca.crt,ca.key,vpnserver.crt,vpnserver.key,dh2048.pem,ta.key} /etc/openvpn/

Создадим файл конфигурации
vi /etc/openvpn/server.conf

следующего содержания
mode server
client-to-client #Позволяет клиентам "видеть" друг друга. Если в этом нет необходимости, просто удалите эту строчку.
port 1194
proto udp
dev tun
ca ca.crt
cert vpserver.crt
key vpnserver.key
dh dh2048.pem
server 10.5.5.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 3 20
comp-lzo
user nobody
tls-auth ta.key 0
tls-cipher DHE-RSA-AES256-SHA #О доступных вариантах шифра см. ниже
cipher AES-256-CBC #~
group nobody
persist-key
persist-tun
log "/var/log/openvpn.log" #укажите /dev/null если хотите отключить логирование.
status "/var/log/openvpn_status.log"
verb 0
mute 20
local 123.245.167.89 #Необходимо указать внешний IP адрес сервера
push "redirect-gateway"
# В качестве DNS используем OpenDNS
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

Запускаем:
service openvpn start

Пропишем правила iptables:
service iptables start
iptables -A INPUT -i eth0 -p udp –dport 1194 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp –dport 1194 -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -i eth0 -o tun+ -j ACCEPT
iptables -A FORWARD -i eth0 -o tun+ -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.5.5.0/24 -o eth0 -j MASQUERADE

Сохраняем и перезапускаем:
/etc/init.d/iptables save
/etc/init.d/iptables restart

Пропишем в автозагрузку. (Стоит учесть, что в Fedora 12 вам в качестве службы, отвечающей за сеть, необходимо выбрать network, а не NetworkManager):
chkconfig iptables on
chkconfig openvpn on

Клиенты:

Для того чтобы создать ключи для клиентов:

./build-key vpnclient
В качестве client нужно указывать имена пользователей или то, что вам взбредет в голову.

На этом все, можно перезапускать сервер.
shutdown -r 5

Файл конфигурации для клиента config.ovpn:
script-security 2
client
dev tun
proto udp
remote 123.245.167.89
port 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert vpnclient.crt
key vpnclient.key
tls-auth ta.key 1
tls-cipher DHE-RSA-AES256-SHA #О доступных вариантах шифра см. ниже
cipher AES-256-CBC
ns-cert-type server
redirect-gateway
comp-lzo
verb 2
ping 10
ping-restart 60

ca.crt,ta.key (Одинаковые для всех клиентов и сервера),vpnclient.crt,vpnclient.key (Уникальные для каждого клиента), config.ovpn

Файлы необходимые клиенту для подключения. Поместить в папку C:\Program Files\OpenVPN\config для Windows. Для Linux подключение можно осуществить через терминал

su -c 'openvpn client.ovpn'

Варианты TLS-ciphers:

dhe-rsa-aes256-sha psk-aes128-cbc-sha krb5-des-cbc3-sha exp-edh-rsa-des-cbc-sha
dhe-dss-aes256-sha rc4-sha krb5-des-cbc3-md5 exp-edh-dss-des-cbc-sha
dhe-rsa-camellia256-sha rc4-md5 dhe-rsa-aes128-sha exp-des-cbc-sha
dhe-dss-camellia256-sha psk-rc4-sha dhe-dss-aes128-sha exp-rc2-cbc-md5
aes256-sha krb5-rc4-sha dhe-rsa-seed-sha exp-krb5-rc2-cbc-sha
camellia256-sha krb5-rc4-md5 dhe-dss-seed-sha exp-krb5-des-cbc-sha
psk-aes256-cbc-sha edh-rsa-des-cbc-sha dhe-rsa-camellia128-sha exp-krb5-rc2-cbc-md5
edh-rsa-des-cbc3-sha edh-dss-des-cbc-sha dhe-dss-camellia128-sha exp-krb5-des-cbc-md5
edh-dss-des-cbc3-sha des-cbc-sha aes128-sha exp-rc4-md5
des-cbc3-sha krb5-des-cbc-sha seed-sha exp-krb5-rc4-sha
psk-3des-ede-cbc-sha krb5-des-cbc-md5 camellia128-sha exp-krb5-rc4-md5

Варианты Ciphers:

aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc
aes-256-ecb base64 bf bf-cbc bf-cfb
bf-ecb bf-ofb cast cast-cbc cast5-cbc
cast5-cfb cast5-ecb cast5-ofb des des-cbc
des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb
des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
des-ofb des3 desx rc2 rc2-40-cbc
rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb
rc4 rc4-40

One Response to “Собственный OpenVPN сервер – это просто!”

  • Благодарю за отличный мануал! Как сделать так чтобы при разрыве связи с vpn, все коннекты блокировались? Моя ОS – Fedora 11

Добавить комментарий







XHTML: Вы можете использовать следующие тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>