iptables web |
做者:高波 centos 歸檔:學習筆記 api 2018年1月16日21:06:46 服務器 |
快捷鍵: tcp Ctrl + 1 標題1 學習 Ctrl + 2 標題2 字體 Ctrl + 3 標題3 centos7 Ctrl + 4 實例 spa Ctrl + 5 程序代碼 3d Ctrl + 6 正文 |
格式說明: 藍色字體:註釋 黃色背景:重要 綠色背景:注意 |
1.1.4 防火牆setup沒法啓用. 開啓debus-daemon --system 1
iptables 主要工做在OSI的二三四層.從新編譯內核也能夠工做在七層.
iptables:術語說明
iptables 表tables 鏈chains rule 規則
centos6 iptables centos7 firewalld
iptables 是採用數據包過濾機制工做,因此它會請求的數據包的包頭進行數據分析,
並根據咱們預先設定的規則來匹配是否能夠進入主機.
iptables工做流程總結:
知道全部的匹配默認規則獲得明確的阻止仍是經過.
iptables 表和鏈chains
iptables -L #查看默認規則的配置
開啓dbus-daemon --system
iptables -nL -v --line-numbers
iptables -X 刪除用戶自定義的鏈
iptables -F清除全部的規則,不會處理默認的規則
iptables -Z 鏈的計數清零 數據包計算器和數據包字節計算器.
[root@web01 ~]# iptables -A INPUT ! -s 10.0.0.7 -p tcp -d 10.0.0.8 -j ACCEPT
[root@web01 ~]# iptables -A INPUT -p tcp -j DROP # 拒絕全部TCP
iptables -A INPUT -p tcp -m iprange ! --src-range 10.0.0.7-10.0.0.8 -j DROP
過濾源地址範圍:
iptables -A INPUT -m iprange --src-range 192.168.1.2-192.168.1.7 -j DROP
過濾目標地址範圍:
iptables -A INPUT -m iprange --dst-range 192.168.1.2-192.168.1.7 -j DROP
1、ipset安裝
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
ipset create allset hash:net (也能夠是hash:ip ,這指的是單個ip)
2.1、查看已建立的ipset
2.2、ipset默承認以存儲65536個元素,使用maxelem指定數量
ipset create openapi hash:net maxelem 1000000
ipset list
3、加入一個黑名單ip
ipset add allset 145.201.56.109
4、建立防火牆規則,與此同時,allset這個IP集裏的ip都沒法訪問80端口(如:CC攻擊可用)
iptables -I INPUT -m set --match-set allset src -p tcp --destination-port 80 -j DROP
service iptables save
5、去除黑名單,與此同時,又能夠訪問了
ipset del allset 145.201.56.109
6、將ipset規則保存到文件
ipset save allset -f allset.txt
7、刪除ipset
ipset destroy allset
8、導入ipset規則
ipset restore -f allset.txt
iptables -A INPUT -p tcp -s 10.0.0.7 --dport 22:88 -j DROP
iptables -A INPUT -s 10.0.0.6 -p tcp -m multiport --dport 22 -j DROP
iptables -A INPUT -s 10.0.0.6 -p tcp -m multiport --dport 22,80 -j DROP
下面兩個配置的是主機出去的.
[root@web01 ~]# iptables -A INPUT -s 10.0.0.6 -i eth0 -p icmp --icmp-type 0 -j DROP
[root@web01 ~]# ping 10.0.0.6
PING 10.0.0.6 (10.0.0.6) 56(84) bytes of data.
^C
--- 10.0.0.6 ping statistics ---
9 packets transmitted, 0 received, 100% packet loss, time 8616ms
相對於配置的主機出去的到不了10.0.0.8
[root@web01 ~]# iptables -I OUTPUT -o eth0 -p icmp --icmp-type 8 -j DROP
[root@web01 ~]# ping 10.0.0.6 #在10.0.0.8上面ping的
PING 10.0.0.6 (10.0.0.6) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
^C
--- 10.0.0.6 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4557ms
iptables -A INPUT -s 10.0.0.6 -i eth0 -p icmp --icmp-type 8 -j DROP
INPUT -i --icmp-type 8