open***是一个比较强大的×××服务器,可以让用户远程拨号接入。如果你的服务器只有一块网卡,也可以实现。实现方法是eth0和tun接口相互间做路由,使用TUN模式。当然同时你要配合其他的路由器,并且服务器上iptables也要配置好。

iptables最重要是INPUT链上允许udp1194端口进入,或者你可以选其他的udp端口,另外在FORWARD链里允许eth0和tun接口相互的路由。比如加上:-i eth0 -o tun+-jACCEPT和-i tun+-oeth0-jACCEPT

对外的防火墙上做好ip转换和udp端口映射,让外部可以通过公网ip连到你内部的open***服务器eth接口。

具体配置网络上有很多可以参考的文章。

配置的用户接入,可以只要求用户使用证书,也可以只要求使用用户名口令,也可以要求两者都有,这样当然最安全。

大致的步骤:

确认TUN功能激活:cat:/dev/net/tun:Filedescriptorinbadstate

安装lzo openssl openssl-devel等包,安装rpmforge这样才能用yum安装open***,我用的centos5目前安装的是2.2.2

安装好把配置工具拷贝到/ETC:cp-R/usr/share/doc/open***-2.2.2/easy-rsa//etc/open***/

使用命令创建证书等

source./vars

./build-ca

./build-key-server

./duilc-dh

为客户创建证书用./build-key空格加用户名

注意server.conf里面把你要授予访问的内部网段加进去

push“route192.168.1.0255.255.255.0”等等;为了用linux本机帐号验证用户名口令用这句

plugin/usr/share/open***/plugin/lib/open***-auth-pam.so/etc/pam.d/login

要把内核平时文件的ip转发打开sysctl.conf文件里:net.ipv4.ip_forward=1

然后sysctl-p

客户端的client.opvn里要加这句(其实你在config目录里可以加多个opvn文件,程序会让你选择用哪个配置连接)

auth-user-pass

这样就可以在连接的时候提示用户名口令,不过好像你用哪个用户名登录都行,不知道怎么配置用户名限制。



iptables配置示例:

-AINPUT-pudp--dport1194-jACCEPT

然后应该在FORWARD上面,不过我的机器是RH-Firewall-1-INPUT

-AFORWARD-s允许外部访问的子网/掩码-ieth0-otun+-jACCEPT

-AFORWARD-d允许外部访问的子网/掩码-itun+-oeth0-jaCCEPT

假设eth0是面向internet接受client连接的网卡