iptables tips

iptables.png

  • 4 張表的分工:bash

    filter 用於過濾,服務器

    nat 用於網絡地址轉換,網絡

    mangle 用於給數據包作標記以修改分組數據的特定規則,tcp

    raw 表則獨立於Netfilter鏈接跟蹤子系統。ide

  • 3 種數據包通過的鏈(chain)ui

aaa.jpg

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
  • iptables 常見 target

ACCEPT      # 容許數據包經過
DROP        # 丟棄數據包
REJECT      # 拒絕數據包經過
SNAT        # 源地址轉換
MASQUERADE  # 地址欺騙,自動化的snat
DNAT        # 目標地址轉換
REDIRECT    # 重定向
LOG         # 將數據包信息記錄到 syslog 日誌
QUEUE       # 排隊
RETURN      # 返回
  • iptables 進行 url 過濾

# iptables 其實不是真正對 url 進行過濾,只是對傳送的數據包內容進行過濾
# 而 http 頭中含有目標 url
# 關於 -m 參數,man iptables 只有幾句簡介,
# 詳細信息須要在 man iptables-extensions 裏面進一步查詢

# 開啓
# 過濾掉含有 qq.com 的 url
sudo iptables -A OUTPUT -m string --string "qq.com" --algo bm -j DROP
# 若是本機是 squid 服務器,能夠經過 INPUT 鏈過濾
sudo iptables -A INPUT -m string --string "qq.com" --algo bm -j DROP
# 對於 nat 轉發的內容過濾
sudo iptables -A FORWARD -m string --string "qq.com" --algo bm -j DROP
# 查看
sudo iptables -nL --line-numbers
# 移除(最後的數字爲加 --line-numbers 參數後 num 顯示的序號)
sudo iptables -D OUTPUT 2
  • 移除過濾規則示例

#查看
sudo iptables -t filter -nL --line-numbers
#移除。最後的數字爲加 --line-numbers 參數後 num 顯示的序號
sudo iptables -t filter -D FORWARD 1
  • 保存規則以便重啓生效(Ubuntu 16.04)

sudo su
iptables-save > /etc/iptables.rules
cd /etc/network/if-pre-up.d/
vim iptables
#>>> #! /bin/bash
#>>> iptables-restore < /etc/iptables.rules
chmod +x iptables
sudo iptables -I INPUT   -p tcp -j REJECT --reject-with tcp-reset -m connlimit --connlimit-above 20
sudo iptables -I FORWARD -p tcp -j REJECT --reject-with tcp-reset -m connlimit --connlimit-above 10



*** walker ***

相關文章
相關標籤/搜索