Jan 20, 2011 15:44
----------------------
СЕРВЕР
----------------------
# pacman -S --noconfirm openvpn # устанавливаем пакет openvpn
# cd /usr/share/openvpn/easy-rsa
#./vars
#./clean-all # убиваем старые ключи. если они существовали
#./build-ca # готовим ключи и сертификаты
#./build-key-server anon_server
#./biuld-dh
#./build-key anon_client
# touch /etc/openvpn/openvpn.conf # создаем конфиг сервиса
# nano /etc/openvpn/openvpn.conf
port 1194
proto tcp
dev tun
ca /usr/share/openvpn/easy-rsa/keys/ca.crt
cert /usr/share/openvpn/easy-rsa/keys/anon_server.crt
key /usr/share/openvpn/easy-rsa/keys/anon_server.key
dh /usr/share/openvpn/easy-rsa/keys/dh1024.pem
server 192.168.111.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
log-append /var/log/openvpn
status /tmp/vpn.status 10
# service openvpn start # запустим сервис openvpn
# netstat -ntl | grep openvpn # проверим
-->tcp 0 0 *:openvpn *:* LISTEN 7426/openvpn
----------------------
КЛИЕНТ
----------------------
$ mkdir .openvpn
$ touch .openvpn/openvpn_conf # создаем конфиг клиента
$ nano .openvpn/openvpn_conf
client
remote 192.168.111.0 1194
dev tun
proto tcp
resolv-retry infinite
nobind
persist-key
persist-tun
verb 2
ca ca.crt
cert client.crt
key client.key
comp-lzo
script-security 2
Инициализируем подключение на клиентской машине:
# cd ~/.openvpn && sudo openvpn openvpn_conf
В файрвол сервера добавляем подобные правила(в данном случае сервис использует tcp протокол):
for COUNT_TUN_DEV in {0..10}; do
for CHAIN in INPUT FORWARD; do
$IPTABLES -A ${CHAIN} -i tun${COUNT_TUN_DEV} -p ALL -j ACCEPT
done
done
for PROTOCOL in icmp tcp udp; do
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -i ${LAN_iface} -p ${PROTOCOL} -j ACCEPT
done
for INPUT_TCP_LAN_DPORT in 1194; do
$IPTABLES -A INPUT -i ${LAN_iface} -p tcp --dport ${INPUT_TCP_LAN_DPORT} -j ACCEPT
done
openvpn,
vpn