~ 路線列表

~ 路線列表

在過去的一個月裡,我無法解決這個問題,我制定了不同的 iptables 規則,在核心上啟用和停用模組,但結果相同,甚至更多的資料包被 iptables 丟棄。這使得用戶在嘗試存取虛擬機器上從 192.168.1.0/24 到 192.168.3.0/28 的不同共用資料夾時會出現 3/5 秒的延遲。

我在日誌上看到這個:

2 月14 日13:53:02 ns129115 核心:[12426815.202643] IPTables-OUTPUT-Dropped:IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.192.168.1.115 DST=192.168.1.192.1000TL T 61932 DF協定=TCP SPT=22115 DPT=49225 視窗=384 RES=0x00 ACK PSH URGP=0
2 月14 日13:53:02 ns129115 核心:[12426815.393379] IPTables-OUTPUT-Dropped:IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.192.168.1.115 DST=192.168.1.192.106 T 61933 DF協定=TCP SPT=22115 DPT=49225 視窗=384 RES=0x00 ACK URGP=0
2 月14 日13:53:02 ns129115 核心:[12426815.834944] IPTables-OUTPUT-Dropped:IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.192.168.1.115 DST=192.168.1.192.106 T 61934 DF協定=TCP SPT=22115 DPT=49225 視窗=384 RES=0x00 ACK URGP=0
2 月14 日13:53:02 ns129115 核心:[12426815.835219] IPTables-OUTPUT-Dropped:IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.192.168.1.115 DST=192.168.1.192.168。 61935 DF協定=TCP SPT=22115 DPT=49225 視窗=384 RES=0x00 ACK PSH URGP=0
2 月14 日13:53:19 ns129115 核心:[12426832.829664] IPTables-FWD-Dropped:IN=br0 OUT=br0 PHYSIN=vnet0 PHYSOUT=eth2 MAC=70:85:c2:4fYSIN=vnet0 PHYSOUT=eth2 MAC=70:85:c2:4fYSIN=vnet0:0fYSOUT=eth2 MAC=70:85:c1:4fYSIN 。 RES= 0x00 ACK PSH URGP=0
2 月14 日13:53:39 ns129115 核心:[12426852.496117] IPTables-OUTPUT-Dropped:IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.192.168.1.115 DST=192.168.1.192.168.1.115 DST=192.168.1.192.168.10TL T 29023 DF協定=TCP SPT=22115 DPT=52214 視窗=263 RES=0x00 ACK PSH URGP=0
2 月14 日13:53:49 ns129115 核心:[12426862.856776] IPTables-FWD-Dropped:IN=br0 OUT=br0 PHYSIN=eth2 PHYSOUT=vnet0 MAC=00:16:3e:9018 :34 :b0:20:a4:08:00 SRC=192.168.1.237 DST=192.168.1.156 LEN=40 TOS=0x00 PREC=0x00 TTL=128 ID=1644 DF PROTO=PINDPTM RES= 0x00 確認URGP=0
2 月14 日13:53:50 ns129115 核心:[12426863.288983] IPTables-OUTPUT-Dropped:IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.192.168.1.115 DST=192.168.1.192.168.1.115 DST=192.168.1.192.1600 P 29069 DF協定=TCP SPT=22115 DPT=52214 視窗=263 RES=0x00 ACK PSH URGP=0
2 月14 日13:54:19 ns129115 核心:[12426892.906806] IPTables-FWD-Dropped:IN=br0 OUT=br0 PHYSIN=eth2 PHYSOUT=vnet0 MAC=00:16:3e:14:18 :35 :6a:18:7a:08:00 SRC=192.168.1.199 DST=192.168.1.156 LEN=248 TOS=0x00 PREC=0x00 TTL=128 ID=13244 DF1969>L496997436D NPTLSPTSSPTSSPTSSPTSSPTS7S70S7975756L] NPTLSPTS. RES= 0x00 ACK PSH URGP=0
2 月14 日13:54:42 ns129115 核心:[12426915.939242] IPTables-OUTPUT-Dropped:IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.192.168.1.115 DST=192.168.1.192.168。 61969 DF協定=TCP SPT=22115 DPT=49225 視窗=384 RES=0x00 ACK PSH URGP=0

帶有 iptables 和 2 個橋接器的 Debian 伺服器

  • BR0,是通往網關192.168.1.1的Internet存取網橋,所有使用者都在該網路上
  • VIRBR10,第二個網橋,vm1 已使用 ip 192.168.3.12 (192.168.3.0/28) 連接到該網橋,並透過 br0 透過 iptables 與外部進行 nat

此處 »» 帶有網關和虛擬機器管理器的網路圖

這是我的路線表

~ 路線列表

核心IP路由表
目標閘道 Genmask 標記量測參考使用 Iface
預設 192.168.1.1 0.0.0.0 UG 0 0 0 br0
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
192.168.3.0 * 255.255.255.240 U 0 0 0 virbr10

~ brctl 顯示

橋接名稱 橋接器 ID 啟用 STP 的介面
br0 8000.0cc47ac18d3c 是 eth2
virbr10 8000.525400c4b847 是 virbr10-虛擬
                                                        虛擬網路2

~ iptables 規則

#!/bin/sh
#刷新所有規則
iptables -P 輸入接受
iptables -P 轉送接受
iptables -P 輸出接受
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables-X

# 允許基本輸入流量。
iptables -A 輸入 -m 狀態 --state 已建立,相關 -j 接受
iptables -A 輸入 -i lo -j 接受
iptables -A 輸入 -p icmp --icmp-type 8 -m conntrack --ctstate 新 -j 接受
iptables -A 輸入 -p icmp -m conntrack --ctstate 新 -j 接受

#
#MTU
iptables -t mangle -A FORWARD -o virbr1 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1460
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

#SMB
#連接埠:netbios - 445/tcp
#連接埠:netbios-ns – 137/udp -- NETBIOS 名稱服務
#連接埠:netbios-dgm – 138/udp -- NETBIOS 資料封包服務
#連接埠:netbios-ssn – 139/tcp -- NETBIOS 會話服務
iptables -A 輸入 -m 狀態 --state 新 -m tcp -p tcp --dport 445 -j 接受
iptables -A 輸入 -p udp -m udp --dport 445 -j 接受
iptables -A 輸入 -p udp -m udp --dport 137:138 -j 接受
iptables -A 輸入 -m 狀態 --state 新 -m tcp -p tcp --dport 139 -j 接受
#iptables -A 輸入 -p tcp -m tcp -m conntrack --ctstate 新 --sport 137 -j 接受
#iptables -A 輸入 -p tcp -m tcp -m conntrack --ctstate 新 --sport 138 -j 接受
#iptables -A 輸入 -p tcp -m tcp -m conntrack --ctstate 新 --sport 139 -j 接受

#RDP
#連接埠:3389
# 來自外部的連接
iptables -I 轉送 -o virbr10 -d 192.168.3.12 -j 接受
iptables -t nat -I PREROUTING -p tcp --dport 3589 -j DNAT --to 192.168.3.12:3389

# 偽裝本地子網
iptables -I 轉發 -o virbr10 -d 192.168.3.0/28 -j 接受
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 -j MASQUERADE
iptables -A FORWARD -o virbr10 -m state --state 相關,已建立 -j 接受
#Permite conexiones salientes de virbr10 hacia la red 192.168.1.0/24
iptables -A 轉送 -i virbr10 -o br0 -j 接受
iptables -A 轉送 -o virbr10 -i br0 -j 接受
iptables -A 轉送 -i virbr10 -o lo -j 接受

###
#KVM 路由訪客
# 傳送到虛擬機器的 DHCP 封包沒有校驗和(由於長期存在的錯誤)。
iptables -t mangle -A POSTROUTING -o virbr10 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fil

# 不要偽裝這些保留地址塊。
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 -d 224.0.0.0/24 -j 返回
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 -d 255.255.255.255/32 -j 返回
# 偽裝從虛擬機器到 LAN/Internet 的所有資料包。
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 ! -d 192.168.3.0/28 -p tcp -j MASQUERADE --to-埠 1024-65535
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 ! -d 192.168.3.0/28 -p udp -j MASQUERADE --to-port 1024-65535
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 ! -d 192.168.3.0/28 -j 偽裝

# 接受 SSH 連線。
iptables -A 輸入 -p tcp -m tcp --syn -m conntrack --ctstate 新 --dport 22 -j 接受

# 接受 Radmin
iptables -A 輸入 -p tcp -m tcp --syn -m conntrack --ctstate 新 --dport 4899 -j 接受

# 允許入站流量到達私有子網路。
iptables -A 轉送 -d 192.168.3.0/28 -o virbr10 -m 狀態 --state 已建立,相關 -j 接受
#7218-12_07 桌面存取速度慢 iptables -A FORWARD -d 192.168.1.0/24 -o br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#7218-12_07 桌面存取速度慢 iptables -A FORWARD -d 192.168.3.0/28 -o br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允許來自私有子網路的出站流量。
iptables -A FORWARD -s 192.168.3.0/28 -i virbr10 -m state --state 已建立,相關 -j 接受
#7218-12_07 桌面存取速度慢 iptables -A FORWARD -s 192.168.1.0/24 -i br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#7218-12_07 桌面存取速度慢 iptables -A FORWARD -s 192.168.3.0/28 -i br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允許虛擬機器之間的流量。
iptables -A 轉送 -i virbr10 -o virbr10 -j 接受
# 拒絕其他一切。
iptables -A FORWARD -i virbr10 -j REJECT --reject-with icmp-port-unreachable
# 接受來自虛擬機器的 DNS(連接埠 53)和 DHCP(連接埠 67)封包。
iptables -A 輸入 -i virbr10 -p udp -m udp -m 多埠 --dports 53,67 -j 接受
iptables -A 輸入 -i virbr10 -p tcp -m tcp -m 多埠 --dports 53,67 -j 接受

#ICMP
iptables -A 輸出 -p icmp -m conntrack --ctstate 已建立,相關 -j 接受

# 拒絕其他一切。
iptables -A 輸入 -m conntrack --ctstate 無效 -j 刪除
iptables -A INPUT -p tcp -m tcp -j REJECT --reject-with tcp-reset
iptables -A 輸入 -j REJECT --reject-with icmp-port-unreachable

#記錄丟棄的資料包
iptables -A INPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-INPUT-Dropped:" --log-level 4
iptables -A FORWARD -m limit --limit 2/min -j LOG --log-prefix "IPTables-FWD-Dropped:" --log-level 4
iptables -A OUTPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-OUTPUT-Dropped:" --log-level 4

更新

  1. 將日誌鏈更改為腳本末尾並貼上新的日誌條目

答案1

在谷歌搜尋後我可以解決這個問題。

  1. Windows Server 2012 R2 中的網域控制站上的SMB 存取共用檔案速度緩慢的原因是,當目標中不存在資料夾時,資料夾重新導向GPO 在重定向過程中對使用者設定檔資料夾中的權限進行了更改。基於 Microsfot Technet 的 iamrafic (關聯),我們需要將資料夾權限變更為:

在所需位置建立資料夾 停用從父級繼承的權限,並透過點擊對應的按鈕刪除所有繼承的權限。 DACL 中已存在一項:本機管理員。

更改本機管理員:完全控制:此資料夾、子資料夾和文件

新增系統:完全控制:此資料夾、子資料夾和檔案。

新增創建者擁有者:完全控制:此資料夾、子資料夾和檔案。

新增經過身份驗證的使用者:列出資料夾/讀取數據,建立資料夾/附加資料:僅此資料夾

新增網域管理員:完全控制:此資料夾、子資料夾和檔案。

按一下“確定”。

  1. 另一個問題是我的 iptables 規則,我需要執行一個全新的鏈並修復每個 FORWARD 規則的順序,因為這會改變分析封包時的效能。這裡是新的。
    #!/bin/sh
    
    #刷新所有規則
    iptables -P 輸入接受
    iptables -P 轉送接受
    iptables -P 輸出接受
    iptables -t nat -F
    iptables -t mangle -F
    iptables -F
    iptables-X
    iptables -t 原始 -F
    
    # 基本表
    iptables -A 輸入 -m conntrack --ctstate 已建立,相關 -j 接受
    iptables -A 輸入 -i lo -j 接受
    
    #
    
    iptables -A 轉發 -o virbr32 -s 192.168.1.0/24 -d 192.168.100.0/28 -m conntrack --ctstate 已建立,相關 -j 接受
    iptables -A 轉發 -i virbr32 -s 192.168.100.0/28 -d 192.168.1.0/24 -m conntrack --ctstate 已建立,相關 -j 接受
    iptables -A 轉送 -o virbr32 -i br0 -j 接受
    iptables -A 轉送 -i virbr32 -s 192.168.100.0/2 -j 接受
    iptables -A 轉送 -i virbr32 -o virbr32 -j 接受
    iptables -A FORWARD -i virbr32 -j LOG --log-prefix "iptables-FORWARD-REJECT: "
    iptables -A FORWARD -i virbr32 -j REJECT --reject-with icmp-port-unreachable
    
    # 偽裝本地子網
    iptables -t nat -A POSTROUTING -s 192.168.100.0/28 -j MASQUERADE
    # 不要偽裝這些保留地址塊。
    iptables -t nat -A POSTROUTING -s 192.168.100.0/28 -d 224.0.0.0/24 -j 返回
    iptables -t nat -A POSTROUTING -s 192.168.100.0/28 -d 255.255.255.255/32 -j 返回
    
    #中小企業
    # RPC EPM TCP 135
    # 透過 HTTPS TCP 593 進行 RPC
    # SMB(用於命名管道)TCP 445
    # 短暫範圍,動態 *
    iptables -I FORWARD 6 -o virbr32 -i br0 -m conntrack --ctstate NEW -p tcp -d 192.168.100.12 --dport 445 -j 接受
    iptables -I FORWARD 7 -o virbr32 -i br0 -m conntrack --ctstate NEW -p tcp -d 192.168.100.12 --dport 139 -j 接受
    
    # 接受來自虛擬機器的 DNS(連接埠 53)和 DHCP(連接埠 67)封包。
    iptables -I FORWARD 8 -o virbr32 -i br0 -m conntrack --ctstate NEW -p tcp -m tcp -m 多埠 --dports 53,67 -j ACCEPT
    iptables -I FORWARD 9 -i virbr32 -o br0 -m conntrack --ctstate NEW -p udp -m udp -m 多埠 --dports 53,67 -j ACCEPT
    
    #
    
    #
    
    # 下面的兩個規則確保只檢查 TCP 封包。所有其他人
    # 繼續進入*篩選器表。
    iptables -t 原始 -N TCPFLAGS
    iptables -t raw -A PREROUTING -p tcp -j TCPFLAGS
    iptables -t raw -A PREROUTING -j 接受
    
    # 快速接受標準握手
    # 允許 ACK 或 ACK/SYN
    #-A TCPFLAGS -j 接受
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,ACK,URG,PSH,RST ACK -j ACCEPT
    
    # 允許使用 URG 或 PSH 或兩者都允許 ACK/FIN
    # 但SYN和RST不能設定
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,ACK,RST ACK,FIN -j ACCEPT
    
    # 允許 SYN 或 ACK/SYN
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN、SYN、URG、PSH、RST SYN -j 接受
    
    # 允許 RST 或 ACK/RST
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,URG,PSH,RST RST -j ACCEPT
    
    # 此規則捕獲 xmas-tree 和 fin 攻擊
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN FIN -j DROP
    # 此規則捕獲 xmas-tree 和 syn/rst 攻擊
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags SYN SYN -j DROP
    
    # 此規則捕獲空攻擊
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags 全部無 -j DROP
    
    #-A TCPFLAGS -p tcp -ecn-tcp-cwr -j DROP
    # 這些規則捕獲錯誤的 ack 組合
    #-A TCPFLAGS -p tcp --tcp-flags ACK ACK -j ACC
    #iptables -t raw -A TCPFLAGS -j 接受
    
    # 那麼,我們接受什麼 TCP 協定呢?
    # 握手 (ACK/FIN)、(ACK/SYN)、(SYN)、(ACK)、(RST)、(ACK/RST)、
    # 以及帶有 PSH 或 URG 或 FIN 或 ACK 的資料包
    
    #
    
    #記錄丟棄的資料包
    iptables -A INPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-INPUT-Dropped:" --log-level 4
    iptables -A FORWARD -m limit --limit 2/min -j LOG --log-prefix "IPTables-FWD-Dropped:" --log-level 4
    iptables -A OUTPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-OUTPUT-Dropped:" --log-level 4
  • 正如您所看到的,我使用iptables -I FORWARD 而不是iptables -A FORWARD,因為這樣可以在我的過濾表上執行有序規則,首先放置更重要的規則,然後在DROP 或拒絕其餘規則後進行更深入的處理。所有 FORWARD 規則都在此行之前
    iptables -A 輸入 -p icmp --icmp-type 8 -m conntrack --ctstate 新 -j 接受

編輯:我只需要進行一些更改即可在將檔案從虛擬機複製到區域網路192.168.1.0/24中的外部時獲得更高的傳輸速率,我不能超過4Mb/s。任何建議將不勝感激!

相關內容