Stora as OpenVPN server

From OpenStora
Jump to: navigation, search

Good afternoon...

I share you my experience configuring openvpn on the stora.

Go to etc/openvpn and remove client configuration

cd /etc/openvpn

rm client.conf


Download easy rsa wget http://www.linuxguide.it/downloads/config_file/networking/openvpn/easy-rsa.tar.gz

tar xvfz easy-rsa.tar.gz


Edit vars and execute

vi /etc/openvpn/easy-rsa/vars

change KEY_PROVINCE, KEY_CITY, KEY_ORG,KEY_EMAIL

. ./vars


Generate keys ./clean-all (clean /etc/openvpn/easy-rsa/keys)

./build-ca (create root certificate, specify the Common Name ex. vpnserver)

./build-key server (create server certificate; same common name of root certificate)

./build-key client (create clients certificate; same common name of root certificate)

./build-dh (create DIFFIE-HELLMAN used by the server)

openvpn --genkey --secret ta.key (ta.key to avid DoS/Flooding)

mkdir /etc/openvpn/keys_server/

cd /etc/openvpn/easy-rsa/keys

cp * /etc/openvpn/keys_server/


Keys for clients mkdir client_keys

cp ca.crt client.crt client.key ta.key dh1024.pem client_keys

tar czf client_keys.tar.gz client_keys/


Server configuration vi /etc/openvpn/server.conf

   daemon
   port 1194
   proto tcp
   dev tun
   ca /etc/openvpn/keys_server/ca.crt
   cert /etc/openvpn/keys_server/server.crt
   key /etc/openvpn/keys_server/server.key
   dh /etc/openvpn/keys_server/dh1024.pem
   server 10.8.0.0 255.255.255.0
   push "route 192.168.0.0 255.255.255.0"
   push "dhcp-option DNS 192.168.0.1"
   client-to-client
   keepalive 10 120
   tls-auth /etc/openvpn/keys_server/ta.key 0
   cipher BF-CBC
   comp-lzo
   max-clients 100
   persist-key
   persist-tun
   status /home/log/openvpn-status.log
   log-append /home/log/openvpn.log
   verb 5


change push "route 192.168.0.0 255.255.255.0" and push "dhcp-option DNS 192.168.0.1" to suit your needs.

chmod +x /etc/init.d/openvpn

/etc/init.d/openvpn start to start the daemon

vi /etc/iptables/config and add the line TCP_OPEN_PORTS_EXT="1194"

chkconfig openvpn on 345

reboot

Check if the daemon is running correctly after the reboot.

Nat the port with your router, and check if you can connect with telnet public_ip 1194

Add a static route on your router, something like:

Destination 10.8.0.0 Mask 255.255.255.0 Gateway internal_ip Interface LAN

Note: pay attention to the file executed each time the stora boots /etc/init.d/oe-bootinit oe-bootinit: rm -rf /etc/openvpn/keys/* - this is why I saved the keys in /etc/openvpn/keys_server

Client configuration - Linux

   client
   proto tcp
   dev tun
   # Server IP address/hostname port
   remote 123.123.123.123 1194
   resolv-retry infinite
   nobind
   user nobody
   group nobody
   ca /etc/openvpn/keys/ca.crt
   cert /etc/openvpn/keys/client.crt
   key /etc/openvpn/keys/client.key
   tls-auth /etc/openvpn/keys/ta.key 1
   cipher BF-CBC
   comp-lzo
   persist-key
   persist-tun
   verb 3


to start:

cd /etc/openvpn

openvpn --config client.conf


Client configuration - Windows

   client
   proto tcp
   dev tun
   # Server IP address/hostname port
   remote 123.123.123.123 1194
   resolv-retry infinite
   nobind
   ca /etc/openvpn/keys/ca.crt
   cert /etc/openvpn/keys/client.crt
   key /etc/openvpn/keys/client.key
   tls-auth /etc/openvpn/keys/ta.key 1
   cipher BF-CBC
   comp-lzo
   persist-key
   persist-tun
   verb 3


to start:

rename the file to something.ovpn

right click on the .ovpn file


2 clarifications:

1) UDP has better performance than TCP with a normal home-adsl (remember to apply the relative changes to iptables/router), TCP works better with fiber and low latency lines.

2) For every client generate a different certificate (./build-key client1, ./build-key client2, ...) with a different common name, so the vpn server can recognize the different clients and assign a different IP address to each workstation.

I hope you appreciate this little contribution to the community. :)

Best regards, Trixter


Original forum thread: http://www.openstora.com/phpBB3/viewtopic.php?f=1&t=1620&p=9121