在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