Hello,
I just found that when I'am useing TUN dev mode my VPN clients can access each
other directly, even if client-to-client option missing in my server.conf
and it's OK - when I'am useing TAP dev mode, the same configs just the changed
tun to tap mode. so when TAP mode used and client-to-client is missing - users
can't access each other directly
vpn server is based on Ubuntu Linux: tried versions 2.1RC11 and 2.1RC19
clients running windows XP machines
here are my configs
server.conf
mode server
dev tap
proto udp
local xxx.xxx.xxx.xxx
port 40404
server 10.200.0.0 255.255.255.0
push "redirect-gateway"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.222.220"
tls-server
dh /etc/openvpn/dh2048.pem
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
tls-auth /etc/openvpn/ta.key 0
management localhost 7505
script-security 1
user nobody
group nogroup
cipher AES-256-CBC
comp-lzo adaptive
keepalive 10 120
persist-tun
persist-key
crl-verify /etc/openvpn/crl.pem
verb 0
client.ovpn
========================================
client
dev tun
proto udp
remote xxx.xxx.xxx.xxx
port 40404
tls-client
ca ca.crt
cert user.crt
key user.key
tls-auth ta.key 1
ns-cert-type server
cipher AES-256-CBC
keepalive 10 120
comp-lzo adaptive
persist-key
persist-tun
resolv-retry infinite
nobind
explicit-exit-notify 2
verb 3
firewall settings
================
#!/bin/bash
PRIVATE=10.200.0.0/24
LOOP=127.0.0.1
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -F
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i eth0 -s $LOOP -j DROP
iptables -A FORWARD -i eth0 -s $LOOP -j DROP
iptables -A INPUT -i eth0 -d $LOOP -j DROP
iptables -A FORWARD -i eth0 -d $LOOP -j DROP
iptables -A FORWARD -i eth0 -s 192.168.0.0/16 -j DROP
iptables -A FORWARD -i eth0 -s 172.16.0.0/12 -j DROP
iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP
iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
# block netbios from lan pc's
iptables -A FORWARD -p tcp --sport 137:139 -o eth0 -j DROP
iptables -A FORWARD -p udp --sport 137:139 -o eth0 -j DROP
iptables -A OUTPUT -p tcp --sport 137:139 -o eth0 -j DROP
iptables -A OUTPUT -p udp --sport 137:139 -o eth0 -j DROP
# Check source address validity on packets going out to internet
iptables -A FORWARD -s ! $PRIVATE -i eth1 -j DROP
# Allow local loopback
iptables -A INPUT -s $LOOP -j ACCEPT
iptables -A INPUT -d $LOOP -j ACCEPT
iptables -A INPUT -p udp -d xxx.xxx.xxx.xxx --dport 40404 -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT
iptables -A INPUT -p icmp -m state --state NEW --icmp-type ! 8 -j ACCEPT
iptables -A FORWARD -p icmp -m state --state NEW --icmp-type ! 8 -j ACCEPT
# Keep state of connections from local machine and private subnets
iptables -A OUTPUT -m state --state NEW -o eth0 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state NEW -o eth0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Masquerade local subnet
iptables -t nat -A POSTROUTING -s $PRIVATE -o eth0 -j MASQUERADE