使用centos 7 防火墙firewalld进行服务器安全配置

someone2024-06-21未分类108

配置思路:    


关闭除80和443之外的所有端口,添加http及https服务,移除ssh服务。    

使用rich-rule设置ip白名单,白名单ip可以接通任何端口服务,不受移除影响。  


相关语句:  

firewall-cmd --list-all   查看防火墙规则    

firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="127.0.0.1" accept'   设置127.0.0.1为ip白名单。这个ip是服务器本地ip,必须设置。    

firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="1.XX.0.0/16" accept'  设置1.XX.0.0/16为ip白名单。这个ip是我的ip,根据实际情况查询。/16是遮罩,加了这个能让后面的0.0表达出ip端的效果。    

firewall-cmd --permanent --remove-service="ssh" 移除ssh服务。除了http和https外,不对公网开放的服务都可以移除。    

firewall-cmd --permanent --add-service="https" 添加https服务。    

firewall-cmd --permanent --remove-port="22/tcp"  移除22/tcp端口。除了80/tcp、443/tcp以及邮件端口都可以移除。

firewall-cmd --reload 重启防火墙后以上规则生效。    



firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="47.XX.1.108" reject'   添加ip黑名单 ,一般来说用不太上,有白名单就够了。  





备注:    

加错的服务用firewall-cmd --permanent --remove-rich-rule=""移除。例:firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="127.0.0.1" accept" 意思移除上面加的127.0.0.1ip白名单。 





学习资料: 

  


1、遮罩说明    

比方說    

1.81.0.0/16範圍是1.81.0.*~1.81.255.*=1.81.*.*    

1.81.0.0/15減了1這樣白名單範圍是1.81.0.*~1.81.127.*    

1.81.0.0/14減了2這樣是1.81.0.*~1.81.63.*    

1.81.0.0/13>1.81.0.*~1.81.31.*    

1.81.0.0/12>1.81.0.*~1.81.15.*    

1.81.0.0/11>1.81.0.*~1.81.7.*    

1.81.0.0/10>1.81.0.*~1.81.3.*    

1.81.0.0/9>1.81.0.*~1.81.1.*    

1.81.0.0/8>1.81.0.*=1.81.0.0~1.81.0.255    

1.81.0.0/7>1.81.0.0~1.81.0.127    

1.81.0.0/6>1.81.0.0~1.81.0.63    

23:22John這樣排列組合應該就看得比較清晰,遮罩越小,IP範圍越小    




centos 7    常用命令

yum list | grep firewall     # 查找安装包    

yum install  -y firewalld    

firewall-cmd --state            #  查看防火墙是否运行    

firewall-cmd --query-port=8080/tcp  #  先查看端口是否开放    

         #  firewall [ˈfaɪəwɔːl]  防火墙    

firewall-cmd --zone=public --list-ports  # 列出公共端口 zone [zoʊn] 地区    

firewall-cmd --permanent --add-port=8022/tcp    

         # 开放端口8022    

         # permanent [ˈpɜːmənənt]  永久的    

         # 不加此参数重启会失效    

firewall-cmd --permanent --remove-port=8080/tcp    

         # 移除端口    

firewall-cmd --zone=public --add-port=4400-4600/udp --permanent    

firewall-cmd --zone=public --add-port=4400-4600/tcp --permanent    

         # 开放多个端口,指定范围 :udp;tcp 类型    

#---  生效配置 ---#    

systemctl restart firewalld                                 # 添加端口后,重启防火墙生效    

firewall-cmd --reload                                        # 重载防火墙配置    

firewall-cmd --version                                      # 查看版本    

firewall-cmd --help      # 查看帮助    

firewall-cmd --state                                         # 显示状态    

firewall-cmd --zone=public --list-ports  # 查看所有打开的端口    

firewall-cmd --reload     # 更新防火墙规则    

firewall-cmd --get-active-zones   # 查看区域信息    

firewall-cmd --get-zone-of-interface=eth0 # 查看指定接口所属区域    

firewall-cmd --panic-on     # 拒绝所有包    

firewall-cmd --panic-off     # 取消拒绝状态    

firewall-cmd --query-panic    查看是否拒绝    

firewall-cmd --zone=public --list-ports  # 查看开启的端口,端口列表    

netstat -ntlp       # 查看正在运行的端口    

firewall-cmd --reload     # 重启防火墙    

systemctl stop firewalld     # 禁用防火墙    

systemctl enable firewalld    # enable 开机自动启动    

         # disable禁止开机启动    

firewall-cmd --list-all     #查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略)    

firewall-cmd --list-all-zones    #查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略)    

#######################    限制来访ip端口   ################################    

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="127.0.0.3" port protocol="tcp" port="1521" accept"    

     # 对指定IP 开放端口    

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.200" port protocol="tcp" port="80" reject"    

     # 限制IP访问80端口;firewall [ˈfaɪrwɑl] 防火墙;    

     # permannet [ˈpɜrmənənt] 永久, p man ent;  rith [rɪʧ] 丰富; rule [rul] 规则;永久添加丰富规则    

     # family  [ˈfæməli] 家族;家族规则;source [sɔrs] 来源; prot [pɔrt] 端口; protocol [ˈproᴜtəˌkɑl] 规则;reject [ˈriʤɛkt] 拒绝    

     # --add-rich-rule= 防火墙加入一段字符串:    

     # address="10.0.0.0/24"  其中 /24 是限制整段IP    

firewall-cmd --reload # 重载配置,生效    

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.0.200" port protocol="tcp" port="80" reject"    

          # 解除IP禁止访问端口   remove 删除规则    

firewall-cmd --reload   # 重载配置,生效    

firewall-cmd --zone=public --list-ports    

       # 查看记录    

# systemctl disable firewalld  # disables 禁止开机启动,enables 开启开机启动    

vi /etc/firewalld/zones/public.xml # 规则记录文件管理    

# --add-rich-rule= 防火墙加入一段字符串,产生如下信息:    

  <rule family="ipv4">    

    <source address="180.76.164.15"/>    

    <port protocol="tcp" port="22"/>       # 禁止22端口    

    <reject/>     # reject  [ˈriʤɛkt] 禁止    

  </rule>      # 当前是5行为一个规则    

firewalld 端口映射    

firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toaddr=172.17.0.2:toport=80    

                                                           # 将本机的80端口映射到内网 80    

                                                           # add 增加;     remove 删除    






发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。