iptables 單向阻止 http 和 ssh

iptables 單向阻止 http 和 ssh

我有一個拓撲,其中有一個 Linux 作為連接兩個 Linux 的路由器,我想使用 iptables 在一個方向上過濾 ssh 和 HTTP。我使用了下面的程式碼,但它不起作用!我非常感謝您提供的任何幫助。

iptables -A FORWARD -i ens33 -o ens38 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i ens38 -o ens33 -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -i ens38 -o ens33 -p tcp --dport 80 -j DROP

拓樸結構

答案1

你的腳本應該適用於http,但它並不是很好。我會使用這樣的東西:

IPTABLE=/sbin/iptables

$IPTABLE -P INPUT ACCEPT
$IPTABLE -P FORWARD DROP
$IPTABLE -P OUTPUT ACCEPT

$IPTABLE -F
$IPTABLE -X

$IPTABLE -F -t nat
$IPTABLE -X -t nat

$IPTABLE -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

#http
$IPTABLE -A FORWARD -i ens33 -o ens38 -p tcp --dport 80 -j ACCEPT
#https
$IPTABLE -A FORWARD -i ens33 -o ens38 -p tcp --dport 443 -j ACCEPT
# ssh
$IPTABLE -A FORWARD -i ens33 -o ens38 -p tcp --dport 22 -j ACCEPT
# icmp
$IPTABLE -A FORWARD  -p icmp -j ACCEPT

一旦規則生效,我建議做一個iptables-save > /etc/iptables/rules.v4.規則隨iptables-persistent資料包一起在啟動時載入。
除了您需要的 iptables 規則之外

  1. 在您的網關上啟用 IP 轉送。
  2. 內部主機上外部網路的路由
  3. 外部主機上內部網路的路由

相關內容