OpenVPN в качестве шлюза для VPN клиентов
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
source ./vars
./clean-all
./build-ca
./build-key-server server
./build-dh
openvpn --genkey --secret ./keys/ta.key
./clean-all
./build-ca
./build-key-server server
./build-dh
openvpn --genkey --secret ./keys/ta.key
/etc/openvpn/server.conf
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
local 172.16.0.10 # здесь указываем IP адрес сервера
port 1194
proto tcp
dev tun
ca /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ca.crt
cert /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/server.crt
key /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/server.key
dh /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/dh1024.pem
client-cert-not-required
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push «route 10.8.0.0 255.255.255.0″
keepalive 10 120
tls-server
tls-auth /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ta.key 0
tls-timeout 120
auth MD5
cipher BF-CBC
comp-lzo
max-clients 100
user nobody # для debian'а (для centos - openvpn)
group nogroup # для debian'а (для centos - openvpn)
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 5
VPN-клиент под Windows: http://openvpn.se/download.html
Копируем с сервера два файла: ca.crt, ta.key на рабочую станцию VPN-клиент в папку c:/program files/openvpn/config
Cоздаем там же файл-конфиг openvpn.ovpn
auth-user-pass dev tun0 proto tcp remote 172.16.0.10 # здесь указываем IP адрес VPN сервера port 1194 redirect-gateway def1 client resolv-retry infinite ca ca.crt tls-client tls-auth ta.key 1 auth MD5 cipher BF-CBC ns-cert-type server comp-lzo nobind persist-key persist-tun verb 3
Включаем на сервере форвардинг
/etc/sysctl.conf: net.ipv4.ip_forward = 1 /sbin/sysctl -w net.ipv4.ip_forward=1
Настройка фаерволла
iptables -A INPUT -i tun+ -j ACCEPT iptables -A FORWARD -i tun+ -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source <внешний IP сервера> iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT iptables -A FORWARD -d 10.8.0.0/24 -j ACCEPT iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Теперь можно создавать VPN аккаунты, OpenVPN при подключении VPN клиента будет запрашивать пароль и логин системного пользователя
useradd -s /usr/sbin/nologin vpnuser1 passwd vpnuser1
На рабочих станциях с Windows XP учетная запись с которой пользователь работает с OpenVPN должна обязательно состоять в группе "Администраторы"
а на компьютерах с Windows Vista или Windows 7 требуется в клиентский конфиг openvpn.ovpn добавить эти два параметра
route-method exe route-delay 2