суббота, 26 июня 2010 г.

OpenVpn (tun)

Итак для настройки Openvpn с использованием tun интерфейса (L3 туннеля), нам понадобится во первых его установить (yum install openvpn{CentOS/Red Hat}, apt-get install openvpn{Debian/Ubuntu}, pacman -S openvpn{Arch linux}).
После установки:

1) cd /usr/share/openvpn/easy-rsa/2.0/
2)правим ./vars , задаем следующие параметры:

export KEY_SIZE= (обычно 1024 , но можете и больше например 2048{нагрузка на сервер вырастет почти в два раза})
export KEY_COUNTRY="ваша страна"
export KEY_PROVINCE="ваша область"
export KEY_CITY="город"
export KEY_ORG="организация"
export KEY_EMAIL="ваш e-mail"
2.5) Если у нас centos/sl/rhel шестой версии то необходимо след.:
cp openssl-1.0.0.cnf openssl.cnf
3)source ./vars
4)./clean-all
5)./build-ca (при генерации жмем везде Enter)
6)./build-key-server server (Также жмем Enter на все вопросы)
7)./build-key client1 (генерим ключи клиентов)(все также жмем Enter)
8)./build-dh

Дальше копируем папку /usr/share/openvpn/easy-rsa/2.0/keys в /etc/openvpn
И принимаемся за написание конфигов сервера и клиента.

КОНФИГ СЕРВЕРА (/etc/openvpn/server.conf)
port 1194
# (порт который слушает openvpn)
proto tcp
# (протокол)
dev tun
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
# (зачение меняется в зависимости от длинны ключа которую вы выбрали)
server 10.10.0.0 255.255.255.0
#(виртуальная сеть которую будет использовать сервер для назначения клиенту ip адреса )
ifconfig-pool-persist ipp.txt
push "route 192.168.0.0 255.255.255.0"
#ваша реальная сеть маршрут до которой сервер пропишет клиенту
keepalive 10 120
comp-lzo
user openvpn
group openvpn
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3

КОНФИГ ЛИНУКСОВОГО КЛИЕНТА (/etc/openvpn/my_company/vasya.conf)
client
dev tun
proto tcp
remote XXX.XXX.XXX.XXX 1194
#(IP и порт сервера openvpn)
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/my_company/ca.crt
cert /etc/openvpn/my_company/vasya.crt
key /etc/openvpn/my_company/vasya.key
#пути к ключам
ns-cert-type server
comp-lzo
verb 3

КОНФИГ ВИНДОВОГО КЛИЕНТА (C:\\program files\openVpn\config\vasya.ovpn)
client
dev tun
proto tcp
remote XXX.XXX.XXX.XXX 1194
#(IP и порт сервера openvpn)
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert vasya.crt
key vasya.key
#пути к ключам
ns-cert-type server
comp-lzo
verb 3

включаем форвардинг пакетов:
редактируем /etc/sysctl.conf
находим строку net.ipv4.ip_forward = 0
и меняем ее на net.ipv4.ip_forward = 1
в консоли даем команду:
sysctl -p
далее настраиваем iptables (нам необходимо включить NAT из виртуальной сети на интерфейс нашей внутренней сети)
iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth1 -j MASQUERADE
Не забываем сохранить настройки iptables
iptables-save > /etc/sysconfig/iptables
Запускаем openvpn:
service openvpn start
Ну и не забываем стартовать его по умолчанию
chkconfig openvpn on
ВСЁ !!!!

Абонентское обслуживание компьютеров.