linux 搭建VPN服务器1.下载相应的安装包。 由于Linux本身并没有集成PPTP功能,所以需要安装相关组件以让我们的RedHat支持PPTP,根据内核的版本,下载相应的安装包,我这里内 核是Linux version 2.6.9-42,进入/temp目录,并下载安装包: #cd /temp #wget http://poptop./yum/stable/rhel4/i386/ppp-2.4.3-7.rhel4.i386.rpm #wget http://poptop./yum/stable/rhel4/i386/pptpd-1.3.4-1.rhel4.i386.rpm #wget http://poptop./yum/stable/rhel4/i386/dkms-2.0.17.5-1.noarch.rpm #wget http://poptop./yum/stable/rhel4/i386/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm 2.安装pptpd。 #cd /temp #rpm -Uvh ppp-2.4.3-7.rhel4.i386.rpm #rpm -ivh pptpd-1.3.4-1.rhel4.i386.rpm #rpm -ivh dkms-2.0.17.5-1.noarch.rpm #rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm 3.加载内核模块 检查kernel module是否正常 #modprobe ppp-compress-18 && echo ok ok 如果出现OK就说明是正常的 #modprobe ppp-compress-18 && echo ok FATAL: Module ppp_mppe not found. Install them with command "rpm -ivh". 出现此提示,表明模块没有加载成功,或者内核源代码没有安装,按照以上步骤应该是不会出现此错误 4.vpn服务器设置 定制网络设置,注意如果存在多个内网网卡,则需要在vpn中设定路由表,否则过别情况无法访问到内网 内网卡:192.168.0.200(并配置router:route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.0.1) 外网卡:202.177.14.X #cd /etc/sysconfig/network-scripts #vi ifcfg-eth0 --------------------------------------------------- DEVICE=eth0 BOOTPROTO=static HWADDR=00:0C:2F:58:F4:4E IPADDR=192.168.0.200 NETMASK=255.255.255.0 ONBOOT=yes TYPE=Ethernet --------------------------------------------------- 5.配置pptpd #vi /etc/pptpd.conf ___________________________________ ppp /usr/sbin/pppd -------------------------------------------------------------- #vi /etc/ppp/options.pptpd ----------------------------------- auth ----------------------------------- #vi /etc/ppp/chap-secrets --------------------------------------------------------------- # Secrets for authentication using CHAP # client server secret IP addresses "username" pptpd "yourpassword" "*" "admin" pptpd "password" "192.168.219.2" --------------------------------------------------------------- 每行一个用户信息,分别采用以上格式,用""引用,虽然是明文,但最好设置让此文件非属主不能够读 如果一个用户分配一个固定ip,则可以进一步进行行为控制,方便你的管理 6.创建一个脚本 创建一个脚本文件,用于启用iptables转发功能,实现中转上网,否则无法正常工作,并使此文件开机自启动! #vi vpn_forward #!/bin/bash #2008.11.19 #!/bin/bash myvar=`iptables -L -t nat | grep SNAT` myvar=`cat /proc/sys/net/ipv4/ip_forward` 复制代码 #chmod +x vpn_forward #cp vpn_forward /etc/rc.d/init.d/vpn_forward #ln -s /etc/rc.d/init.d/vpn_forward /etc/rc.d/rc3.d/S94vpn_forward 说明: 其实可以在/etc/init.d/iptables中的start()那段代码中加入 if [ -f /usr/local/sbin/iptables.sh ]; then 这样就可以让我们前面写的脚本随iptables而启动或重启。 7.确保已经加载以下模块,主要针对内核版本而言, 否则NAT将不能够很好工作,在有些版本中可能存在问题 # modprobe -l >/home/modprode # less modprode |grep ip_tables /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_tables.ko # less modprode |grep ip_conntrack_ftp /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko # less modprode |grep ip_conntrack /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack_tftp.ko /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack_proto_sctp.ko /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack_amanda.ko /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack.ko /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack_irc.ko /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko |
|