Hi there. I followed the guide here:
http://www.server-world.info/en/note?os=CentOS_6&p=openvpn&f=1 with slight changes to accommodate my wants.
OS: CentOS 6.4 x64
OpenVPN 2.3.1 -> Bridged
Full disclosure here, what I am trying to achieve is a replacement of my current PPTP configuration (not secure anymore sadly) using M$ Windows Server. With that said I am basically looking for similar functionality as I have right now, but strengthened with modern encryption, this is why I chose OpenVPN.
I need clients to have an IP on my internal LAN so they can access services across existing IPSEC Tunnels. I need my clients to use my internal DNS servers as well. I also need to route all client traffic through the VPN when they connect. I would like to use multi-factor authentication (AD + Cert I am thinking) eventually, but for now I just want to get the basics working and then harden as much as possible. At the moment I have 2 test clients, one on Win8 and one on Win7. The behavior is the same from each. I can ping the OpenVPN server's eth0 and br0 interfaces, but I can't ping anything else on the remote LAN and can't access the internet. I also can't ping clients from even the OpenVPN server. I suspect something with my IPTables is missing or incorrect, but I don't know what. Here is what my sanitized config looks like right now.
server.conf
port 443
proto tcp
dev tap0
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
server-bridge 10.0.0.5 255.255.255.0 10.0.0.101 10.0.0.121
push "route 10.0.0.0 255.255.255.0" #Do I really need these if I am using redirect-gateway?
push "route 192.168.0.0 255.255.255.0" #Do I really need these if I am using redirect-gateway?
push "route 172.16.0.0 255.255.255.0" #Do I really need these if I am using redirect-gateway?
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 10.0.0.7"
push "dhcp-option DNS 192.168.0.7"
duplicate-cn
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
log-append /var/log/openvpn.log
verb 3
client.ovpn
client
dev tap
proto tcp
remote vpn.domain.com 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
cipher AES-256-CBC
comp-lzo
verb 3
ifconfig
br0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:10.0.0.5 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80:::::::::/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28089 errors:0 dropped:0 overruns:0 frame:0
TX packets:17060 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2106296 (2.0 MiB) TX bytes:1610416 (1.5 MiB)
eth0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:10.0.0.4 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80:::::::::/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:24499 errors:0 dropped:0 overruns:0 frame:0
TX packets:18561 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2264695 (2.1 MiB) TX bytes:1675050 (1.5 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
tap0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet6 addr: fe80:::::::::/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:3888 errors:0 dropped:0 overruns:0 frame:0
TX packets:3774 errors:0 dropped:4 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:270401 (264.0 KiB) TX bytes:224458 (219.1 KiB)
iptables
# Generated by iptables-save v1.4.7 on Wed May 29 15:50:26 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [18:1664]
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -i tap0 -j ACCEPT
-A INPUT -i br0 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i br0 -j ACCEPT
COMMIT
# Completed on Wed May 29 15:50:26 2013
I have disabled SELINUX out of desperation, but that didn't change anything. I tried to hop in IRC, but I couldn't join the channel, it said I was banned. I have searched and tested things out like crazy, but can't seem to resolve this one on my own for some reason. Once I do have this all figured out though, I will be happy post a how-to.
Thanks for your time. I hope I included all the necessary info, but if I didn't I am happy to provide anything necessary.