在rhel5.3上安装vpn服务过程记录

在rhel5.3下安装vpn服务过程记录

 

环境:redhat enterprise linux5.3 i386


--网络环境:
上网拨号路由:    192.168.0.3
server端:    ip 192.168.0.66

查看server端版本及内核版本:
[root@kyle /]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.3 (Tikanga)
[root@kyle /]# uname -a
Linux kyle.redhat.com 2.6.18-128.el5 #1 SMP Wed Dec 17 11:42:39 EST 2008 i686 i686 i386 GNU/Linux

[root@kyle /]# strings '/usr/sbin/pppd'|grep -i mppe|wc --lines

来检查PPP是否支持MPPE。
只要输出的值大于30就表明支持。

[root@kyle /]# modprobe ppp-compress-18 && echo success

通过这条命令来验证一下MPPE这个补丁是否安装成功,success表示成功安装。

 

第一章:基本安装
1、--下载rpm安装包:
for 32bit:   
http://ywko.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm
for 64bit:   
http://ywko.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm
我安装时找了好长时间才找到,现在挂出来节省大家的时间。

另外,网上很多转载的帖子是在redhat as4下安装的,需要升级一个文件、安装三个文件。

事实证明,在5下只需要安装pptpd就可以了。


2、--安装pptpd:
[root@kyle opt]# rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm
warning: pptpd-1.3.4-1.rhel5.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 862acc42
Preparing...                ########################################### [100%]
   1:pptpd                  ########################################### [100%]

3、--修改配置文件:
[root@kyle /]# vim /etc/pptpd.conf            -->修改pptpd配置文件
将注释去掉或直接加上:
localip 10.1.0.254
remoteip 10.1.0.1-200

4、
[root@kyle /]# vim /etc/ppp/chap-secrets            -->修改pptpd密码文件,对应着提示添加用户名,服务器主机名,密码,和可以登录vpn的ip地址段
# Secrets for authentication using CHAP
# client        server                  secret                  IP addresses
  "redhat"      kyle.redhat.com         "redhat"                *

四项分别为客户端用户名,vpn服务器名(一般不改动),登陆密码,IP分配址(*为自动),中间用空格或Tab键隔开
可加入多个用户,分行录入。

5、[root@kyle /]# vim /etc/ppp/options.pptpd            -->修改pptpd配置文件
修改主机名,添加dns服务器地址
[root@kyle /]# cat /etc/ppp/options.pptpd            -->修改后配置文件如下
......
name kyle.redhat.com            -->此处应该与/etc/ppp/chap-secrets中的第二段内容相同,服务器端主机名
......
ms-dns 8.8.8.8                        -->使用google的dns
ms-dns 192.168.1.1                -->使用路由的dns
......

6、--开启内核的ip转发功能(否则只能连到vpn服务器,不能通过vpn服务器访问外部网络):
[root@kyle /]# vi /etc/sysctl.conf            -->修改内核参数配置文件
将net.ipv4.ip_forward后面的键值修改为1
[root@kyle /]# sysctl -p            -->重读内核配置文件,使其在当前系统中生效

7、启用日志
默认查看日志
tail -f /var/log/message

修改日志:
vi /etc/syslog.conf
追加一行:
daemon.debug /var/log/pptpd.log

重起syslog:
kill -SIGHUP `cat /var/run/syslogd.pid`



8、--iptables路由决策:
[root@kyle /]# chkconfig iptables on        -->开机自动启动iptables
[root@kyle /]# service iptables start        -->在当前系统中启动iptables

设置路由转发功能:
[root@kyle /]# iptables -t nat -F            -->清除防火墙规则
[root@kyle /]# iptables -t mangle -F
[root@kyle /]# iptables -t filter -F
[root@kyle /]# iptables -Z
[root@kyle /]# iptables -t nat -A POSTROUTING -s 10.1.0.0/255.255.255.0 -o eth0 -j MASQUERADE        -->添加路由规则,做ip转发
或者,直接修改iptables文件:
vi /etc/sysconfig/iptables
a、在*filter前增加如下内容:
# Completed on Fri Nov 19 10:33:35 2010
# Generated by iptables-save v1.3.5 on Fri Nov 19 10:33:35 2010
#加在最前面
*nat
:PREROUTING ACCEPT [608:77220]
:POSTROUTING ACCEPT [24:1360]
:OUTPUT ACCEPT [24:1360]
-A POSTROUTING -s 10.1.0.0/255.255.255.0 -o eth0 -j MASQUERADE
#如果有多个转发,则继续添加-A POSTROUTING 命令即可
COMMIT
# Completed on Fri Nov 19 10:33:35 2010
# Generated by iptables-save v1.3.5 on Fri Nov 19 10:33:35 2010
*mangle
:PREROUTING ACCEPT [1678:140366]
:INPUT ACCEPT [1660:135332]
:FORWARD ACCEPT [18:5034]
:OUTPUT ACCEPT [1105:186183]
:POSTROUTING ACCEPT [1123:191217]
COMMIT

b、开放1723端口
在*filter中增加
#vpn服务器
#-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1723 -j ACCEPT

c、打开nat功能:
# Completed on Fri Nov 19 10:33:35 2010
# Generated by iptables-save v1.3.5 on Fri Nov 19 10:33:35 2010
#加在最前面
*nat
:PREROUTING ACCEPT [608:77220]
:POSTROUTING ACCEPT [24:1360]
:OUTPUT ACCEPT [24:1360]
-A POSTROUTING -s 10.1.0.0/255.255.255.0 -o eth0 -j MASQUERADE
#如果有多个转发,则继续添加-A POSTROUTING 命令即可
COMMIT
# Completed on Fri Nov 19 10:33:35 2010
# Generated by iptables-save v1.3.5 on Fri Nov 19 10:33:35 2010
*mangle
:PREROUTING ACCEPT [1678:140366]
:INPUT ACCEPT [1660:135332]
:FORWARD ACCEPT [18:5034]
:OUTPUT ACCEPT [1105:186183]
:POSTROUTING ACCEPT [1123:191217]
COMMIT


7、--开启关闭pptpd服务:
[root@kyle /]# chkconfig pptpd on            -->开机自动启动pptpd
[root@kyle /]# service pptpd start            -->在当前系统中启动pptpd
Starting pptpd:                                            [确定]
[root@kyle /]# service pptpd stop            -->关闭pptpd
[root@kyle /]# service pptpd stop -kill            -->关闭pptpd、强制断掉客户端会话

现在可以连接了,不过客户端访问外网时,不能用域名,ip是可以的,不知道哪里配置有问题 。那位知道原因请回复一下~~
##############
#
#
#
##############




======================
第二章:进阶安装 (多公网IP实现拨入那个出口为那个)

1. 要配置多公网ip,基本思路是启动多个pptpd进程,分别监听每一个公网IP,并设置不同的ip池段,最后通过snat实现不同网段映射到不同的公网ip

2.设置第一个公网IP
vi /etc/pptpd.conf

localip  192.168.251.1
remoteip 192.168.251.2-254
#在最后面添加一行 第一个公网ip
listen 210.0.0.251

添加NAT映射:
/sbin/iptables  -t nat -A POSTROUTING -s 192.168.251.0/24 -j SNAT --to-source 210.0.0.251

3.设置第二个公网IP

cp /etc/pptpd.conf /etc/pptpd1.conf

vi /etc/pptpd1.conf

localip  192.168.252.1
remoteip 192.168.252.2-254
#在最后面添加一行 第一个公网ip
listen 210.0.0.252

添加NAT映射:
/sbin/iptables  -t nat -A POSTROUTING -s 192.168.252.0/24 -j SNAT --to-source 210.0.0.252

4.重复3复制配置文件pptpd2.conf,pptpd3.conf.......pptpd[N].conf

5.启动方法:
#pptpd -c /etc/pptpd.conf 这个已经被作为系统服务了
pptpd -c /etc/pptpd1.conf
pptpd -c /etc/pptpd2.conf
pptpd -c /etc/pptpd3.conf
........

pptpd -c /etc/pptpd[N].conf

将以上命令放入初始启动文件中
linux 自动启动服务很简单,最简单的是把启动命令放到/etc/rc.d/rc.local文件里这样就可以每次启动的时候自动启动服务了

第三章:查看服务是否启动

查看网络,查看我们设置的每个公网ip上的pptp[tcp:1723]是否启动
netstat -a|more

查看进程
ps -A


启动vpn服务器
service pptpd start

停止vpn服务器,但已有连接不受影晌
service pptpd stop

重启vpn服务器,并切断已连接的客户端
service pptpd restart-kill

service pptpd start

查看本机dns服务器地址
cat /etc/resolv.conf

查看所有网卡的信息
ifconfig -a