不管是在Linux服务器还是在Ubuntu服务器中,当防火墙开启以后,会开放一些常用的端口,这时常常直接到自己Windows上telnet已经开放的端口,通常会忽略开放的这些端口在服务器中是否有程序进行监听,如果没有程序进行监听,telnet开放的这些端口时往往是不通的。
1、Ubuntu查看防火墙的状态
在Ubuntu系统进行安装的时候默认安装了ufw防火墙
查看防火墙的状态
命令:
sudo ufw status
系统提示: “Status: inactive”状态:不活跃
上面提示表示没有开启防火墙,并不是没有安装防火墙
如果没有安装可以使用命令安装
命令:
sudo sudo apt-get install ufw
2、Ubuntu开启防火墙
开启防火墙,
命令:sudo ufw enable
//开启防火墙
注意:Command may disrupt existing ssh connections. Proceed with operation (y|n)?
表示:命令可能会中断现有的ssh连接。继续操作(y|n)?
因为是在远程的Xshell进行连接开启防火墙的,有的系统是没有将SSH的22端口设置为public的,所以会有这样的提示,这里分为两种情况,如果开启防火墙时在防火墙之中检测到22端口已添加为防火墙的开放端口,那么输入y继续操作以后,当前Xshell会自动断开连接;相反,如果开启防火墙时在防火墙之中没有检测到22端口,那么输入y继续操作以后22端口将会不再支持其他连接,只支持当前已有的这个连接,保持当前连接的原因是可以通过该连接开放22端口。
这里之前没有设置过,直接输入y继续执行
系统提示:“防火墙是活动的,并在系统启动时启用”
表示防火墙已经开启
查看防火墙的状态
命令:sudo ufw status
//查看防火墙的状态
可以看到系统只对外开放了80端口
在这里通常会有些错觉,22端口没有开放,但是依然是连接状态,这是系统做的人性化优化,便于远程管理服务器,虽然22端口没有开放,但是用户通过当前的连接开启防火墙后,该连接依然处于连接状态,只要不关闭当前连接还是可以在当前连接中正产操作的。如果是重新开启一个连接是连不上的
在windows上进行telnet也是不通的
所以在远程管理服务器时,如果开启了防火墙先查看SSH的22端口有没有开放,如果没有开放,第一时间开放22端口(如果为了安全也可以指定ip开放22端口)
3、Ubuntu添加开放SSH端口
命令:sudo ufw allow 22
//开放22端口
开启完成,需要重启防火墙生效
命令:sudo ufw reload
//重启ufw防火墙
重启成功
再查看防火墙的状态
命令:sudo ufw status
//查看防火墙的状态
22端口已经开放
查看22端口的监听状态
命令:sudo netstat -tunlp | grep 22
//查看22端口信息
关闭普通端口
命令:sudo ufw delete allow 21
//关闭21端口
关闭成功
成功以后需要重启生效
命令:sudo ufw reload
//重启防火墙,是配置生效