天天看點

Linux運維之(十六)iptables指令COMMAND :

iptables指令

建構防火牆的步驟
  • 清除所有規則

    為了避免建立的防火牆與系統中已經運作的防火牆互相幹擾,一般應該先清除所有規則。

  • 設定防火牆政策

    設定當資料包沒有比對到鍊中的規則時應該如何對待(是拒絕還是放行)。

  • 設定防火牆規則

    設定資料包的比對規則以及比對後的處理動作(指

    定目标)。

防火牆政策的設定方法

沒有明确允許的都被拒絕

方法1:

  1. 首先配置政策禁止所有的包
  2. 然後再根據需要的服務設定規則允許特定的包通過
  3. 最安全,但不太友善

方法2:

  1. 首先配置政策允許所有的包
  2. 然後再根據需要的服務設定規則允許特定的包通過
  3. 最後在鍊中添加一-條可捕捉一切的拒絕規則
  4. 當捕捉一切的拒絕規則被誤删除将導緻門戶的全面開放
iptables服務
#安裝iptables服務
yum -y install iptables-services
yum -y install system-config-firewall-{base,tui}

#屏蔽firewalld服務并開啟iptables服務
systemctl stop firewalld
systemctl mask firewalld
systemctl start iptables
systemctl enable iptables
           
iptables指令文法規則

格式:

iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION
           

COMMAND :

-A 追加規則

-D 删除規則

-R 修改規則

-I 插入規則

-L 檢視規則

-N 新的規則

CRETIRIA :

-p 協定

-s源位址

-d目的位址

-sport源端口

-dport目的端口

-i指定入口網卡

-o指定出口網卡

ACTION:

DROP:丢棄

REJECT:明示拒絕

ACCEPT:接受

SNAT:基于原位址的轉換

DNAT:目标位址轉換

source:指定原位址

MASQUERADE:動态僞裝

示例

列出防火牆所有規則

[[email protected] ~]# iptables -L -nv
# 列出所有規則,并顯示行号
[[email protected] ~]# iptables -L -nv --line-num
           

清楚防火牆規則(下列兩條同樣的效果)

[[email protected] ~]# iptables -F
[[email protected] ~]# iptables --flush
           

拒絕其他所有主機通路

# 此條應為防火牆政策的最後一條規則
[[email protected] ~]# iptables -A INPUT -j DROP
           

允許某個ip通路

日志記錄

[[email protected] ~]# iptables -A INPUT -m state --state INVALID -j LOG
# 同時要将無效通路拒絕,避免資源浪費
[[email protected] ~]# iptables -A INPUT -m state --state INVALID -j DROP
           

自定義鍊

[[email protected] ~]# iptables -N LAN
[[email protected] ~]# iptables -A INPUT -j LAN
[[email protected] ~]# iptables -A LAN -j ACCEPT 
           

大緻流程如下

Linux運維之(十六)iptables指令COMMAND :

設定通路端口

# 允許通路22 ssh服務端口
[[email protected] ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT 
# 一次性同時添加80,443端口
[[email protected] ~]# iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT 
           

#處理IP碎片數量,防止攻擊,允許每秒100個

設定ICMP包過濾,允許每秒1個包,限制觸發條件是10個包

設定位址僞裝,内網可以通路外網

允許内網通路外網某台機器

實作端口轉發

繼續閱讀