CentOS7使用firewall+ipset

运维技术  

一、概述

    1. 用途 ipset是ip地址的集合;
      firewalld使用ipset可以在一条规则中处理多个ip地址;
      执行效果更高; 对ip地址集合的管理也更方便。
    1. 注意 与iptables所用的ipset命令的不同; 不要混合使用firewall-cmd的ipset参数与linux平台上的ipset命令,避免引起冲突; firewalld的ipset会记录到/etc/firewalld/ipsets/目录下。

二、部署

  • 安装前注意事项
    为防止把自己挡住,提前关闭firewall开机自启动,并将ssh跳板机加入到信任区
systemctl disable firewalld.service  
firewall-cmd --permanent --zone=trusted --add-source=120.79.12.4  
firewall-cmd --reload  
    1. 安装ipset
yum -y install ipset*  
    1. 新建set
firewall-cmd --permanent --new-ipset=office --type=hash:ip  
ll /etc/firewalld/ipsets/  
    1. 在set添加ip
firewall-cmd --permanent --ipset=office --add-entry=x.x.x.x  
    1. 查看添加效果
# cat /etc/firewalld/ipsets/office.xml 
<?xml version="1.0" encoding="utf-8"?>  
<ipset type="hash:ip">  
  <entry>14.29.126.87</entry>
</ipset>  
    1. 把set加入到firewall中
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source ipset="office" accept'  
firewall-cmd --reload  
#添加协议和端口
firewall-cmd –permanent –add-rich-rule ‘rule family=”ipv4” source ipset=”office” port port=3306 protocol=tcp accept’  
    1. 设置开机启动
systemctl enable firewalld.service  

三、日常维护命令

  • 列出所有的ipsets
firewall-cmd --permanent --get-ipsets  
  • 删除ip
firewall-cmd --permanent --ipset=office --remove-entry=x.x.x.x  
  • 删除set
firewall-cmd --permanent --delete-ipset=office  
  • 打印set的路径
firewall-cmd --permanent --path-ipset=office  
  • 打印set的内容
firewall-cmd --permanent --info-ipset=office  
  • 列下set下所有的entry
firewall-cmd --permanent --ipset=office --get-entries  

四、添加运维平台或者跳板机ip

firewall-cmd --permanent --info-ipset=office  
firewall-cmd --permanent --ipset=office --add-entry=1.1.1.1