歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 關於Linux下的iptables 的淺析命令和了解

關於Linux下的iptables 的淺析命令和了解

日期:2017/2/28 14:50:45   编辑:Linux教程

iptables默認三張表:
•filter:防火牆,包含INPUT、OUTPUT、FORWARD
•nat:網絡地轉轉換,包含PREROUTING、POSTROUTING、OUTPUT
•mangle:流量整形,包含所有的五條鏈

iptables的五條鏈 ->寫規則的地方
•INPUT:數據包的目地的是LINUX主機本身
•OUTPUT:數據包由LINUX主機本身發送
•FORWARD:數據包從一個接口進入,另一個接口發出(如果做路由轉發的話必須開啟/etc/sysctl.conf 修改net.ipv4.ip_forward=1)
•PREROUTING:做路由之前
•POSTROUTING:做路由之後



命令

清空防火牆

iptables -F

把INPUT默認規則改成DROP

iptables -P INPUT DROP

添加一條規則允許SSH通過INPUT

一般插入很多人都寫iptables -A (是追加規則,添加的規則在最下方,防火牆的規則是誰在最上邊誰生效,所以我一般用-I,添加的規則先生效並且I能指定具體位置)

iptables -I INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT

iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT(將這條規則插入到上面第二行)

只允許允許192.168.0.0、24從eth0網卡訪問本機的22端口

iptables -I INPUT -i eth0 -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT

列出防火牆規則

iptables -L

刪除INPUT裡面的第二條規則(從最上面開始)

iptables -D INPUT 2

保存防火牆規則(防火牆如果沒有保存,重啟服務後規則失效)

service iptables save

備份防火牆規則

iptables-resotre < /etc/sysconfig/iptables.20130301

路由

阻止某個IP到達本機

iptables -I FORWARD -s 202.106.0.20 -j DROP

iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SANT --to 1.1.1.1

將192.168.0.0網段的地址轉換成1.1.1.1去做nat訪問

iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SANT --to 1.1.1.1-1.1.1.20

將192.168.0.0網段的地址轉換成1.1.1.1-20網段的地址去做nat訪問

iptables -t nat -I PREROUTING -i eth0 -p tcp 80 -j DNAT --to 192.168.0.1

將通過網卡eth0的訪問80端口的數據包目的地址改為192.168.0.1

iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

將源地址是192.168.0.0/24網段的數據包地址進行偽裝

STATE

-m state --state 狀態分為

NEW: 有別於tcp的syn

ESTABLISHED:連接態

RELATED:衍生態,與conntrack(連接跟蹤模塊)關聯(FTP)

INVALID:不能識別的連接或者狀態

iptables -I INPUT -m state --state RELATED,ESTABLISHED \ -就ACCEPT

允許連接出去後對方主機回應的數據包

MAC

-m mac --mac-source MAC

iptables -I FORWARD -m mac --mac0source xx:xx:xx:xx:xx:xx \ -j DROP

阻斷來自某MAC地址的數據包,經過本機的路由

iptables -P FORWARD DROP

iptables -I FORWARD -s 192.168.0.2 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT

ip與mac地址綁定,只有這個ip能從本機路由

LIMIT限速

-m limit --limit

iptables -I FORWARD -d 192.168.0.2 -m limit --limit 50/s -j ACCEPT

iptables -I FORWARD -d 192.168.0.2 -j DROP

限速50/s要想實現限制上傳和下載的速度,得結合TC去分網段

簡單web服務器上的防火牆配置

iptables -I INPUT -i eth0(網絡端口端口)-j ACCEPT

iptables -I INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT

iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -P INPUT DROP

網關


實例:ADSL 撥號上網的拓撲

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -o eth0 \

-j MASQUERADE


對外服務器

服務協議(TCP/UDP)

對外服務端口

內部服務器私網 IP

內部真正服務端口

實例:

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 \

-j DNAT --to 192.168.1.1

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 81 \

-j DNAT --to 192.168.1.2:80

Copyright © Linux教程網 All Rights Reserved