5

I want to setup an OpenVPN Server and after a week of trying day and night (no Linux Knowledge) I was able to successfully connect to the Server using OpenVPN GUI but now that I can Connect there is no ping 8.8.8.8 and the webpages won't open.

Server is Running: CentOS 7 X64

Client is Running: Windows 10 Pro Build 10586.17 X64 w/ Kaspersky Internet Security

This is my server Config

#change with your port
port 1337
#You can use udp or tcp
proto udp
# "dev tun" will create a routed IP tunnel.
dev tun
#Certificate Configuration
#ca certificate
ca ca.crt
#Server Certificate
cert server.crt
#Server Key and keep this is secret
key server.key
#See the size a dh key in /etc/openvpn/keys/
dh dh2048.pem
#Internal IP will get when already connect
server 192.168.200.0 255.255.255.0
#this line will redirect all traffic through our OpenVPN
push "redirect-gateway def1"
#Provide DNS servers to the client, you can use goolge DNS
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
#Enable multiple client to connect with same key
duplicate-cn
keepalive 20 60
comp-lzo
persist-key
persist-tun
daemon
#enable log
log-append /var/log/myvpn/openvpn.log
#Log Level
verb 3

This is my Client Config

client
dev tun
proto udp
remote MY_SERVER_IP_ADDRESS 1337

resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
comp-lzo
verb 3

<ca>
-----BEGIN CERTIFICATE-----
XXXXXXXXXXXXXXXXXXXXXXXXX
-----END CERTIFICATE-----
</ca>


<cert>

-----BEGIN CERTIFICATE-----
XXXXXXXXXXXXXXXXXXXXXXXXX
-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN PRIVATE KEY-----
XXXXXXXXXXXXXXXXXXXXXXXXX
-----END PRIVATE KEY-----
</key>

EDIT: so I added the below commands too.

yum install iptables-services -y
systemctl mask firewalld
systemctl enable iptables
systemctl stop firewalld
systemctl start iptables
iptables --flush
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
nano /etc/sysctl.conf
ADDEDD THIS TO sysctl.conf -> net.ipv4.ip_forward = 1
systemctl restart network.service
systemctl -f enable [email protected]
systemctl start [email protected]

But still I can connect but I have no ping and can't open any website.

Below is my route print after establishing the connection to my Server.

Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1     192.168.1.11     10
          0.0.0.0        128.0.0.0    192.168.200.5    192.168.200.6     20
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
        128.0.0.0        128.0.0.0    192.168.200.5    192.168.200.6     20
     MY_SERVER_IP  255.255.255.255      192.168.1.1     192.168.1.11     10
      169.254.0.0      255.255.0.0         On-link     169.254.61.91    276
    169.254.61.91  255.255.255.255         On-link     169.254.61.91    276
  169.254.255.255  255.255.255.255         On-link     169.254.61.91    276
      192.168.1.0    255.255.255.0         On-link      192.168.1.11    266
     192.168.1.11  255.255.255.255         On-link      192.168.1.11    266
    192.168.1.255  255.255.255.255         On-link      192.168.1.11    266
    192.168.183.0    255.255.255.0         On-link     192.168.183.1    276
    192.168.183.1  255.255.255.255         On-link     192.168.183.1    276
  192.168.183.255  255.255.255.255         On-link     192.168.183.1    276
    192.168.200.1  255.255.255.255    192.168.200.5    192.168.200.6     20
    192.168.200.4  255.255.255.252         On-link     192.168.200.6    276
    192.168.200.6  255.255.255.255         On-link     192.168.200.6    276
    192.168.200.7  255.255.255.255         On-link     192.168.200.6    276
    192.168.230.0    255.255.255.0         On-link     192.168.230.1    276
    192.168.230.1  255.255.255.255         On-link     192.168.230.1    276
  192.168.230.255  255.255.255.255         On-link     192.168.230.1    276
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link      192.168.1.11    266
        224.0.0.0        240.0.0.0         On-link     169.254.61.91    276
        224.0.0.0        240.0.0.0         On-link     192.168.200.6    276
        224.0.0.0        240.0.0.0         On-link     192.168.230.1    276
        224.0.0.0        240.0.0.0         On-link     192.168.183.1    276
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link      192.168.1.11    266
  255.255.255.255  255.255.255.255         On-link     169.254.61.91    276
  255.255.255.255  255.255.255.255         On-link     192.168.200.6    276
  255.255.255.255  255.255.255.255         On-link     192.168.230.1    276
  255.255.255.255  255.255.255.255         On-link     192.168.183.1    276
4
  • Is your server configured to NAT traffic from your OpenVPN subnet?
    – EEAA
    Commented Dec 9, 2015 at 21:10
  • Sorry man, but how can I be sure? I pretty new to Linux, only a week :(
    – williclarkam
    Commented Dec 9, 2015 at 21:25
  • If you didn't issue any iptables commands, then it's not yet set up correctly.
    – EEAA
    Commented Dec 9, 2015 at 21:25
  • Thanks man, I have improved the question, I have added the followings.yum install iptables-services -y systemctl mask firewalld systemctl enable iptables systemctl stop firewalld systemctl start iptables iptables --flush iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE iptables-save > /etc/sysconfig/iptables nano /etc/sysctl.conf ADDEDD THIS TO sysctl.conf -> net.ipv4.ip_forward = 1 systemctl restart network.service systemctl -f enable [email protected] systemctl start [email protected]
    – bossModus
    Commented Dec 9, 2015 at 21:47

2 Answers 2

0

You didn't mention what OS the client computer is using. It can be a fiewall issue or a problem with proper nat or ip forwarding.

First of all, after connecting check the ip configuration and routing at the client computer. Make sure that the routing table is correct and default route is set to the vpn server. You should also be able to ping it. If this much is ok then you have to check your vpn server's nat and firewall rules.

For Windows 7 or higher Windows OS, you also need to run the openvpn client as Administrator, otherwise the client is not able to set proper routing.

6
  • I have setup pritunl server and I have connected successfully using this method, with my Laptop and with my phone, so I don't think there has to be a firewall issue. I'm using Windows 10 with Kaspersky Internet Security 2016. How can i check in windows, that my routing table is correct? I run OpenVPN GUI always as administrator. Thanks for the reply, I greatly appreciated it.
    – bossModus
    Commented Dec 9, 2015 at 22:18
  • You can use route print to check the routing table.
    – Diamond
    Commented Dec 9, 2015 at 22:20
  • Thanks man for the replies. I have updated my question with route print . @bangal
    – bossModus
    Commented Dec 9, 2015 at 22:31
  • Well, as you can see there is no route for the network, 10.8.0.0/24, and there should also be a default route to your vpn server. You should also check with ipconfig if you are getting an ip at all. Windows 10 also has issue with openvpn. So see if you have the latest version installed.
    – Diamond
    Commented Dec 9, 2015 at 22:38
  • Interesting, But as you see I have added iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE to my firewall rules, right? maybe there is a problem with my interface card (eth0)? Is there any way to determine which interface is being used on my server to connect to internet) e.g. venet0 or ... ?
    – bossModus
    Commented Dec 9, 2015 at 22:49
0

my client config openvpn.ovpn includes

up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

update-resolv-conf is basically

#!/bin/sh
IFACE=`route -n show | grep -m 1 default | awk '{ print $NF }'`
dhclient -r $IFACE

case "$script_type" in
  up)
        echo "prepend domain-name-servers $route_vpn_gateway;" > /etc/dhclient.conf
  ;;
  down)
        echo " " > /etc/dhclient.conf
  ;;
esac

dhclient $IFACE

Parses environment variables from openvpn, to set dhcp from your vpn server, to reconfigure your device configuration, using dhclient. This works for openbsd, or various linux's. Debian's resolvconf can also be used similarly for the same effect.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .