OpenVPN 2.0: Howto

1
2
3
4
5
6
7
8
9
10
apt-get -y install openvpn
mkdir /etc/openvpn/easy-rsa;
cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/;
cd /etc/openvpn/easy-rsa;
cp openssl-1.0.0.cnf openssl.cnf
cp openssl-1.0.0.cnf openssl.cnf
./clean-all
./pkitool --initca
./pkitool --server server
./build-dh



cat >> /etc/openvpn/ovpn_server.conf << EOF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
daemon

port 1194
proto udp
dev tap

server 10.23.12.0 255.255.255.0
ifconfig 10.23.12.1 255.255.255.0
;route-gateway 10.23.12.1

;ifconfig-pool 10.23.12.50 10.23.12.254 255.255.255.0
;ifconfig-pool-persist ipp.txt

topology subnet
push "topology subnet"

client-to-client
ccd-exclusive
client-config-dir ccd
persist-tun
persist-key
comp-lzo
user nobody
group nogroup

# duplicate-cn - option for enabling one cert for all users

ca easy-rsa/keys/ca.crt # Cертификат СА (центра сертификации)
cert easy-rsa/keys/server.crt # Cертификат сервера, подписанный СА
key easy-rsa/keys/server.key # Ключ шифрования сервера
dh easy-rsa/keys/dh1024.pem # Файл с Diffie-Hellman-параметрами

script-security 2
keepalive 10 60
ping-timer-rem

# Дописывать сообщения в лог-файл, а не перезаписывать лог файл
syslog OpenVPN-UDP[server]
log /var/log/openvpn.log
log-append /var/log/openvpn.log
status openvpn-status.log
management 127.0.0.1 1195

# Уровень подробности логов (от 0 до 11). По умолчанию 1
verb 3

push «route 10.23.0.0 255.255.0.0»
push «route 10.22.0.0 255.255.0.0»
push «route 10.24.0.0 255.255.0.0»

<< EOF

create folder ccd
create file with user's key name, which will contains static ip:
cat >> ccd/user1
ifconfig-push 10.23.12.4 255.255.255.0

Now you can start openvpn server and openvpn client.

Howto create users's keys

1
2
3
cd /etc/openvpn/easy-rsa
. ./vars
./pkitool --interact --pkcs12 user1

Known issues:

1
2
failed to update database
TXT_DB error number 2

find /etc/ -name 'index.txt.attr'
unique_subject = yes
unique_subject = no