6.Linux防火牆規則以及使用方法


防火牆

從防御個數分:

主機防火牆(針對單個主機,單體防御)

網絡防火牆(部署在因特網入口,集體防御)

從物理層面分:

硬件防火牆:基於軟件,性能好(安全公司賣的東西)

軟件防火牆:可以破解,安全性不高,成本低,性能不高,利用本機的CPU計算(360全家桶)

iptables

Linux的防火牆,確切說是客戶端的用戶代理

netfilter

真正的防火牆的安全框架,Linux核心內部數據包處理模塊
1.nat(CCNA內容可以看到)
2.數據修改
3.防火牆功能(數據過濾)

iptables使用

iptables按流程按規則(rules)辦事

五鏈

prerouting 數據包剛進入網絡層,數據包停在網卡口上
input 路由判斷好了,進入用戶空間
output 用戶空間發出,讓路由判斷從哪走
postrouting 數據包通過網絡口發出去
forward 不進入用戶空間,直接轉發

四表(括號內為內核模塊)

filter表:負責過濾(iptables_filter)

對應鏈:input、forward、output

nat表:網絡地址轉換(iptable_nat)

對應鏈:除了forward以外都可以

mangle表:解析報文,修改報文,封裝報文(iptable_mangle)

對應鏈:全部都可以

raw表:關閉nat表的連接追蹤(iptable_raw)

對應鏈:prerouting、output

表優先級關系:raw>mangle>nat>filter

匹配數據包后的處理動作

ACCEPT:允許數據包通過
DROP:丟包,不給對方數據信息和回應
REJECT:拒絕數據包通過,收到拒絕信息
SNAT:原地址轉換,解決內網用戶共用公網ip上網的問題,類似於路由
MASQUERADE:動態改變IP
DNAT:目標地址轉換
REDIRECT:本機端口映射
LOG:記錄日志,日志在Linux位於/var/log/messages

filter過濾規則

查看命令

iptables -t filter -L
iptables -t raw -L
iptables -t mangle -L
iptables -t nat -L

iptables --line-numbers -nvL INPUT 按照行號顯示INPUT內容

police:當前默認的策略
pkts:匹配多少報文
bytes:報文大小
target:對目標的規則對應動作
prot:對應協議
opt:對應規則采取的選項
in:網卡流入,匹配哪張網卡(*表示所有,lo表示環回口)
out:從哪個網卡流出
source:源地址
distinction:目標地址
iptables -vL INPUT   查看總的INPUT  
iptables --line-numbers -vL INPUT   規整查看總INPUT
iptables -t filter -I INPUT -s 192.168.1.61 -j DROP     
拒絕來自192.168.1.61的input流量,但是會看到對方向自己發送的包

iptables -t filter -A INPUT -s 192.168.1.133 -j DROP 在列表最后添加

iptables -D INPUT 10 刪除第10個

iptables -t filter -F INPUT 刪除filter中所有INPUT

yum -y install iptables-services 安裝iptables服務

service iptables save 保存防火牆規則,保存在/etc/sysconfig/iptables

iptables匹配方式

iptables -I INPUT -s [ip或網段] -j [動作]

常規操作

iptables -I INPUT ! -s [ip或網段] -j [動作]
取反操作,除了目標ip其他都怎么樣,面對DDoS適用
iptables -I INPUT -s 1.1.1.1 -d 1.1.1.2 -j DROP
拒絕源是1.1.1.1目標是1.1.1.2的INPUT方向的數據包
iptables -I INPUT -s 1.1.1.1 -p tcp -j DROP
拒絕所有來自1.1.1.1的tcp請求

-p:協議,包括tcp udp udplite icmp esp ah sctp icmpv6 mh

iptables -I INPUT -s 192.168.1.132 -p icmp -j DROP

拒絕192.168.1.132的ping請求

iptables -I INPUT -s 1.1.1.1 -i ens33 -p icmp -j DROP
拒絕來自網卡ens33的input方向的來自1.1.1.1的icmp請求

拓展功能(-m)

iptables -I INPUT -s 1.1.1.1 -p tcp -m multiport --dports 22,3389,80 -j DROP
通過拓展模塊multiport,同時拒絕多個端口
iptables -t filter -I INPUT -m iprange --src-range 192.168.1.130-192.168.1.133 -j DROP
拒絕來自范圍ip的數據包
iptables -t filter -I OUTPUT -m iprange --dst-range 192.168.1.130-192.168.1.133 -j DROP
拒絕向某個范圍的ip發送分析后的數據包
iptables -t filter -I INPUT -p tcp --sport 80 -m string --algo bm --string "XXOO" -j REJECT
拒絕經過tcp協議,80端口來的數據匹配到含有“XXOO”字符串的信息的數據包
string是匹配字符串,algo匹配算法(bm,kmp)

時間拓展模塊

iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --timestart 09:00:00 --timestop 19:00:00 -j DROP
早上9點到晚上7點不允許使用80端口
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --weekdays 6,7 -j DROP
周六和周日不允許使用80端口
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --monthdays 27,28 -j DROP
每月的27和28不允許使用80端口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM