Ubuntu开启ufw防火墙后VPN连接不上或不能联网的解决办法
前面说到给服务器配置防火墙:安装Ubuntu14.04服务器后的安全加固,后来发现当ufw
启动后VPN就连接不上了,开启端口后VPN虽然能连接上但无法访问互联网。
查看了ufw
日志后总算找到了解决办法,主要就是PPTP协议端口和DNS端口,以及ufw
转发策略的问题。
ufw
默认日志路径是/var/log/ufw.log
,开启ufw后连接不上VPN是因为:
`
May 8 22:23:14 mysite kernel: [137400.496578] [UFW BLOCK] IN=eth0 OUT= MAC=04:01:4d:aa:cf:01:3c:8a:b0:0d:6f:f0:08:00 SRC=112.65.191.26 DST=192.241.215.26 LEN=44 TOS=0x00 PREC=0x00 TTL=51 ID=31806 PROTO=TCP SPT=2760 DPT=1723 WINDOW=32120 RES=0x00 SYN URGP=0`
可以看到ufw
阻止了从客户端到主机的1723
端口的访问,百度后发现PPTP VPN建立需要
TCP协议 1723
端口
GRE协议 协议号47
注意:很多文章说到需要打开47号端口,这里完全是把协议号和端口号弄混了,完全没必要也没用!!
所以在ufw里allow 1723
端口:ufw allow 1723
然后重新启动ufw
:ufw disable
ufw enable
接下来再连接VPN应该会卡在验证账号密码或直接报错,再查看ufw日志:May 8 23:41:35 mysite kernel: [142101.477024] [UFW BLOCK] IN=eth0 OUT= MAC=04:01:4d:aa:cf:01:3c:8a:b0:0d:6f:f0:08:00 SRC=112.64.189.87 DST=192.241.215.26 LEN=128 TOS=0x00 PREC=0x00 TTL=242 ID=48426 PROTO=47
意思是ufw
阻止了从客户端到主机的47
号协议,这里很清楚是PROTO=47
,即GRE协议
找了好大一圈才发现问题还是出在ufw
上,需要修改ufw
的默认转发策略,文件在/etc/default/ufw
如果不需要用到ipv6
的话可以顺便把IPV6=yes
改为:IPV6=no
接下来修改DEFAULT_INPUT_POLICY="DROP"
DEFAULT_OUTPUT_POLICY="DROP"
DEFAULT_FORWARD_POLICY="DROP"
修改为:DEFAULT_INPUT_POLICY="ACCEPT"
DEFAULT_OUTPUT_POLICY="ACCEPT"
DEFAULT_FORWARD_POLICY="ACCEPT"
还需要注意sysctl
的问题,修改:IPT_SYSCTL=/etc/ufw/sysctl.conf
修改为:IPT_SYSCTL=/etc/sysctl.conf
(可能不需要,我是这样修改过的)
然后保存修改,重启ufw
服务:ufw disable
ufw enable
注意:这里修改默认转发策略DROP
为ACCEPT
可以解决很大一部分开启ufw
后VPN连接出错或连接上VPN后不能访问互联网(还可能是DNS的问题,下面要说到)的问题!
出现连接上VPN后连Google都打不开的问题的话,可以再查看ufw
日志:May 8 22:27:47 mysite kernel: [137673.617470] [UFW BLOCK] IN=ppp0 OUT=eth0 MAC= SRC=10.100.0.2 DST=8.8.8.8 LEN=70 TOS=0x00 PREC=0x00 TTL=63 ID=48198 PROTO=UDP SPT=50459 DPT=53 LEN=50
显然ufw
把DNS访问也阻止了,这里打开53号端口:ufw allow 53
继续重启ufw
:ufw disable
ufw enable
再连上VPN就解决所有问题了。
再重复一遍,打开ufw后VPN不能连接或连接上不能联网的主要问题就是出在ufw的默认转发策略上。
如果VPN仍然连接不上,可以在连接失败后及时查看ufw
日志,如果日志中没有相关记录,就基本可以断定是客户端路由器和ISP的问题(主要出在ISP不支持GRE协议,我这里就有这个问题)。
DEFAULT_INPUT_POLICY="ACCEPT" 这样是不是就等于把防火墙的默认入站规则改成“允许”了,这和直接关了防火墙有什么区别?
唉....还是当初太轻狂。
仔细看了看似乎可以只修改DEFAULT_FORWARD_POLICY为ACCEPT,要不你试试?非常抱歉~
楼主,是GFW吧!嘎嘎
哈哈ufw是ubuntu自带的防火墙,怎么能跟伟大的GFW比[手动斜眼]
不错的文章,内容字字珠玉.禁止此消息:nolinkok@163.com
我的也是Ubuntu14.04,但是用了楼主的方法尚未解决。
我用的是这种方法:
1)
ufw allow 1723
ufw allow 47
2)修改/etc/ufw/before.rules
在COMMIT之前添加如下内容:
-A ufw-before-input -p 47 -j ACCEPT
3)修改/etc/default/ufw
在IPT_MODULES选项中添加nf_conntrack_pptp
4)重启pptp服务器:sudo service pptp restart
你这样似乎是直接从iptables动手,可能会有一些潜在的问题呢
谢谢你的反馈,等有空了把你提供的方法加上去!
感谢博主!问题解决了!
在vultr的vps(ubuntu)上用pptpd搭建vpn后,确实出现了很奇怪的能ping通谷歌、不能访问网页(包括不经过DNS直接访问IP)、不能ping通百度等问题,后来发现关闭ufw(service ufw stop)后就正常了,就想到是ufw导致的。
经过测试,
【/etc/default/ufw文件中
IPT_SYSCTL=/etc/ufw/sysctl.conf
修改为:
IPT_SYSCTL=/etc/sysctl.conf】
这一步不进行,我的也能正常使用。不过最后还是做了这一步,因为/etc/ufw/sysctl.conf中有net.ipv4.ip_forward=1的配置。
实际上这一步做不做没发现区别。
再次感谢
谢谢你的反馈~
灰常有用,解决了我的问题,Google 了好多英文,都没你讲得好,谢谢