相信很多小伙伴在配置服务器时,最常干的一件事便是直接关闭防火墙,为自己省去了很多麻烦,但是这也隐藏这很多风险。所以博主建议建站的小伙伴们,买到服务器之后,第一件事就是做好安全措施,保护自己的服务器,已免成为肉鸡!
一般而言,服务器到手之后都会干这几件事来保护自己的服务器:
1. 修改登录密码(废话)
2. 修改 ssh 端口
3. 配置防火墙,严格控制开放的端口
4. 使用密匙登录,禁止密码登录
5. 安装 fail2ban 防止暴利破解 ssh ftp 等服务帐号
当然今天博主主要是讲 firewalld 防火墙的配置!可能很多小伙伴都像博主一样喜欢使用 iptables 来作为防火墙,但今天博主自己的看了一下 firewalld 的一些说明,发现并没有那么难,相比 iptables ,感觉 firewalld 在规则上还要稍微简单一些!
1. 安装 firewalld
yum -y install firewalld
注意事项:
运行 firewalld 之前的准备,这一点真的非常重要,博主之前直接关闭防火墙也是因为这个原因,每次安装完 firewalld 之后,SSH 就连不上服务器了。。。
firewalld 默认规则已经放行 SSH 服务( 22 端口),但如果你修改过 SSH 端口,则必须先放行,否则一旦启用 firewalld 将被阻挡在外,无法连接服务器,那就只能重装系统了。。。
比如将 SSH 端口修改为了 2019,可以直接编辑 firewalld 的配置文件, 使用以下指令
vi /etc/firewalld/zones/public.xml
里面加入下面这条规则:
<port protocol="tcp" port="2019"/>
添加位置如下面所示:
<?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="dhcpv6-client"/> <service name="ssh"/> <port protocol="tcp" port="2019"/> </zone>
接着输入命令: systemctl start firewalld
来启动 firewalld ,这样就不会被阻挡。
2. firewalld 常用指令
这里博主在这里一般习惯使用 service
2.1 查看 firewalld 的状态
service firewalld status 或 systemctl status firewalld 或 firewall-cmd --state
2.2 启动、停止、重启
# 启动 service firewalld start 或 systemctl start firewalld # 停止 service firewalld stop 或 systemctl stop firewalld # 重启 service firewalld restart 或 systemctl restart firewalld
如果在启动的时候提示 “Failed to start firewalld.service: Unit firewalld.service is masked.”,输入下面的命令可解决:
systemctl unmask firewalld.service
2.3 开机自启动的关闭与开启
# 开启开机自启动 systemctl enable firewalld # 关闭开机自启动 systemctl disable firewalld
2.4 查看防火墙的规则
firewall-cmd --list-all
3. 端口配置
# 查询 8080 端口是否开放 firewall-cmd --query-port=8080/tcp # 开放 80 端口 firewall-cmd --zone=public --add-port=80/tcp --permanent # 删除已经放行的 8080 端口: firewall-cmd --zone=public --remove-port=8080/tcp --permanent #重启防火墙(修改配置后要重启防火墙) firewall-cmd --reload #查看监听(Listen)的端口 netstat -lntp # 参数解释 1、firwall-cmd:是 Linux 提供的操作 firewall 的一个工具; 2、--zone:表示作用域 3、--add-port=80/tcp:表示添加端口,格式为:端口/通讯协议 4、--permanent:表示永久生效,没有此参数重启后失效; 5、--add-port:标识添加的端口;
这里博主只讲一点,就是使用 netstat -lntp
来查看到底有哪些端口被程序占用,如果不是非法占用就开启此端口,比如 80 端口被 nginx 占用,就开启 80 端口即可!
4. 屏蔽 IP
#屏蔽 IP firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=43.229.53.61 reject" #重启防火墙(修改配置后要重启防火墙) firewall-cmd --reload #查看屏蔽结果 firewall-cmd --list-rich-rules
过来看看,学习一下!
大咖啊,我来学习了,要收藏!
广告布局基本一致,上边距改小点就好看了