Linux CentOS 7 下安装pptp服务端
主要配置步骤
1. 安装前检查系统支持
a. 在安装之前查看系统是否支持PPTP
modprobe ppp-compress-18 && echo success
应该输出:success
b. 是否开启TUN/TAP
cat /dev/net/tun
应该输出:cat: /dev/net/tun: File descriptor in bad state
c. 是否开启ppp
cat /dev/ppp
应该输出:cat: /dev/ppp: No such device or address
如果环境不满足上面3个条件,表示很可能不支持pptp。 例外:linode的xen、kvm服务器,也是支持的pptp的。可能是linode内核是定制的,并不是外部ko模块,与原版CentOS表现有所不一致。
2. 安装必要包
a. 安装内核编译
yum install kernel-devel
b. 首先安装epel源
yum install epel-release
c. 安装pptp相关包
yum install ppp pptpd net-tools iptables-services
d:修改vim /etc/pptpd.conf文件
#102行、103行,去掉注释
localip 222.186.51.188
remoteip 192.168.9.101-199
e:pptpd配置文件vim /etc/ppp/options.pptpd,结尾增加两行,给虚拟网段用的dns服务,可以使用主机商提供的dns服务器地址。
ms-dns 100.100.2.136
ms-dns 100.100.2.138
如果是linode等海外服务器,可以使用谷歌的公共dns服务器地址
ms-dns 8.8.8.8
ms-dns 8.8.4.4
f. 设置pptpd vpn服务器用户名密码,编辑文件vim /etc/ppp/chap-secrets, 每行一套帐号,该文件默认有简短说明。一行帐号行示例如下,以空格分隔的4个字段:第1、3是用户名密码,其他两字段是星号
user1 * 111222333 *
服务器允许ip转发内核,编辑配置文件vim /etc/sysctl.conf,增加如下一行
net.ipv4.ip_forward=1
加载内核命令生效:sysctl -p
sysctl -p
3. 配置使用iptables防火墙
#一定要设置这条,所有从eth0口送出的包会被伪装
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
systemctl stop firewalld # 停止firewallid防火墙
centOS6及以前版本使用命令: systemctl stop iptables.service
centOS7关闭防火墙命令: systemctl stop firewalld.service
systemctl disable firewalld # 如果使用firewallid防火墙
service iptables save # 保存iptables防火墙规则
service iptables stop
chkconfig iptables off
iptables -F
#注意其中的eth0是本机网卡设备名,按实际情况修改;或按虚拟网段设置NAT,如下
iptables -t nat -I POSTROUTING -s 192.168.9.0/24 -o eth0 -j MASQUERADE
#开放pptp端口1723,允许转发,操作上面后应该是已开放了
iptables -I INPUT 7 -m state --state NEW -p tcp --dport 1723 -j ACCEPT
iptables -P FORWARD ACCEPT
启动并加入开机启动
#启动服务
systemctl start pptpd
#重启服务
systemctl restart pptpd
#配置开启自启
systemctl enable pptpd.service
systemctl enable firewalld
#添加开机启动
echo "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
#启动并加入开机启动
service pptpd restart
chkconfig pptpd on
service iptables restart
如果你的机器是某些云服务器,可能还要重建ppp文件
rm /dev/ppp
mknod /dev/ppp c 108 0
阿里云机器还要修改mtu:修改文件vim /etc/ppp/ip-up,在exit 0 前加入一行:
ifconfig $1 mtu 1500
4. 配置使用firewalld防火墙
#重启firewalld防火墙
#systemctl start firewalld.service或firewall-cmd --reload
#添加规则
#复制代码
firewall-cmd --permanent --zone=public --add-service=pptpd
firewall-cmd --add-masquerade
firewall-cmd --permanent --zone=public --add-port=47/tcp
firewall-cmd --permanent --zone=public --add-port=1723/tcp
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ppp+ -o eth0 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o ppp+ -j ACCEPT
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j MASQUERADE -s 192.168.1.0/24
#重启服务
firewall-cmd --reload
5. iftop安装
yum install -y iftop
yum install flex byacc libpcap ncurses ncurses-devel libpcap-devel 安装依赖 可不装
iftop 查看链接
TX:发送流量
RX:接收流量
TOTAL:总流量
cum:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
#常用的参数
-i 设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n 使host信息默认直接都显示IP,如:# iftop -n
-N 使端口信息默认直接都显示端口号,如: # iftop -N
-F 显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),帮助,显示参数信息
-p 使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b 使流量图形条默认就显示;
-f 这个暂时还不太会用,过滤计算包用的;
-P 使host信息及端口信息默认就都显示;
-m 设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
5. ifconfig安装查看
yum provides ifconfig
ifconfig -a
#查看本机dns
cat /etc/resolv.conf
一般情况到第3节时就可以使用了,至此有不明白的可以找我,谢谢!