ipset是什麼?
ipset是iptables的擴展,它容許你建立 匹配整個地址集合的規則。而不像普通的iptables鏈只能單IP匹配, ip集合存儲在帶索引的數據結構中,這種結構即時集合比較大也能夠進行高效的查找,
除了一些經常使用的狀況,好比阻止一些危險主機訪問本機,從而減小系統資源佔用或網絡擁塞,IPsets也具有一些新防火牆設計方法,並簡化了配置.
官網:http://ipset.netfilter.org/
一、ipset安裝mysql
yum安裝: yum install ipset 源代碼安裝:進官網下載ipset-6.30.tar.bz2 , yum -y install libmnl-devel libmnl tar -jxvf ipset-6.30.tar.bz2 && cd ipset-6.30 && ./configure --prefix=/usr/local/ipset && make && make install 完成安裝
2.建立ipset集合:sql
[root@localhost ~]# which ipset /usr/sbin/ipset [root@localhost ~]# ipset --list [root@localhost ~]# ipset create zabbix_server hash:net [root@localhost ~]# ipset add zabbix_server 192.168.1.20 [root@localhost ~]# ipset create mysql_server hash:net [root@localhost ~]# ipset add mysql_server 192.168.1.20 [root@localhost ~]# ipset --list Name: zabbix_server Type: hash:net Header: family inet hashsize 1024 maxelem 65536 Size in memory: 16784 References: 0 Members: 192.168.1.20 Name: mysql_server Type: hash:net Header: family inet hashsize 1024 maxelem 65536 Size in memory: 16784 References: 0 Members: 192.168.1.20
3.保存規則到ipset文件:網絡
[root@localhost ~]# /etc/init.d/ipset save ipset: Saving IP sets to /etc/sysconfig/ipset: [肯定] [root@localhost ~]# cat /etc/sysconfig/ipset create zabbix_server hash:net family inet hashsize 1024 maxelem 65536 add zabbix_server 192.168.1.20 create mysql_server hash:net family inet hashsize 1024 maxelem 65536 add mysql_server 192.168.1.20
4.iptables規則文件:數據結構
[root@localhost ~]# cat /etc/sysconfig/iptables #Generated by iptables-save v1.4.7 on Wed Jul 31 10:21:39 2019 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [10988:6938377] -A INPUT -s 118.32.234.103/32 -j DROP -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m multiport --dports 80,81,82,443 -m state --state NEW -j ACCEPT -A INPUT -s 211.144.68.140/32 -p tcp -m multiport --dports 10050,3306 -j ACCEPT -A INPUT -p tcp -m set --match-set zabbix_server src -m tcp --dport 10050 -j ACCEPT -A INPUT -p tcp -m set --match-set mysql_server src -m tcp --dport 3306 -j ACCEPT -A INPUT -p tcp -m multiport --dports 570,21,1038 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 5/sec --limit-burst 10 -j ACCEPT -A INPUT -j DROP COMMIT
5.命令行添加iptables規則並保存:tcp
iptables -I INPUT -m set --match-set mysql_server src -p tcp -m multiport --dports 10050,3306 -j ACCEPT iptables -I INPUT -m set --match-set rsync_server src -p tcp --dport 873 -j ACCEPT service iptables save /etc/init.d/iptables save
6.ipset del使用:ide
ipset del刪除規則時,必須重啓iptables服務纔會生效.net
ipset del jump_mysql 111.206.110.202
重啓iptables才能生效命令行
ipset add 添加規則時,不用重啓iptables 就會生效設計