私は固定IP(私の家のコンピュータ)を持っています。次のルールを使用すると、使用するリモートサーバー(自宅、静的IPからリモートサーバーまで)を保護するのに十分ですか?
# Allow all loopback (lo0) traffic and reject traffic
# to localhost that does not originate from lo0.
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT
#Allow traffic from address $STATIC_IP
-A INPUT -s $STATIC_IP -j ACCEPT
-A OUTPUT -d $STATIC_IP -j ACCEPT
#Reject everything else
-A INPUT -j REJECT
-A FORWARD -j REJECT
-A OUTPUT -j REJECT
COMMIT
編集:ここに私の最終的なIptableがありますエゴール・バシリエフ回答
iptablesの一般的な使用(DNSなし、httpsなし、外部IPのhttpなし、マイ固定IP XXXXのみ)
# Allow all loopback (lo0) traffic and reject traffic
# to localhost that does not originate from lo0.
-A INPUT -i lo -j ACCEPT
-A OUTPUT -i lo -j ACCEPT
#Allow traffic from address X.X.X.X
-A INPUT -s X.X.X.X -j ACCEPT
-A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#Reject everything else
-A INPUT -j REJECT
-A FORWARD -j REJECT
-A OUTPUT -j REJECT
COMMIT
編集:DNS、HTTP、HTTPSを許可するルールが追加されました(配布ミラーから新しいパッケージをダウンロードし、ホスト名をIPに解決するために必要です)
なりすましを防ぐためのループバックの追加規則を参照してください(参照:議論する次のように)
-A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT
パッケージを更新およびインストールするためのIptablesルール
*filter
#Allow all loopback (lo0) traffic and reject traffic
#to localhost that does not originate from lo0.
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT
-A OUTPUT -o lo -j ACCEPT
#Allow traffic from address X.X.X.X
-A INPUT -i eth0 -s X.X.X.X -j ACCEPT
-A OUTPUT -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#Allow DNS
-A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT
-A INPUT -i eth0 -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
#Allow HTTP
-A OUTPUT -o eth0 -p tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
#Allow HTTPS
-A OUTPUT -o eth0 -p tcp --dport 443 -j ACCEPT
-A INPUT -i eth0 -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
#Reject everything else
-A INPUT -j DROP
-A FORWARD -j DROP
-A OUTPUT -j DROP
COMMIT
現在私の解決策は、これらの2つの規則を交互に使用し、一般的な使用には最初の規則を使用し、パッケージの更新とインストールには2番目の規則(DNS、HTTP、HTTPSを使用)に変更することです。
答え1
これはサーバールールですか?もしそうなら:
このルールは必要ありません:
-A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT
このルールはなりすまし保護です。トラフィックのみを許可します。~からそして到着あなたのコンピュータを信頼するならば、この規則は必要ありません。
ループバックアドレスを必要とするアプリケーションが正しく機能しません。。
誰にとっても基本的なポリシーがあり、ループバックトラフィックを許可するルールREJECT
はありません。OUTPUT
スクリプトに次のルールを追加します。
-A OUTPUT -i lo -j ACCEPT
サーバーはすべてのトラフィックをコンピュータに送信できます。
それがあなたに必要なものなら、あなたのルールは正しいものです。もしただコンピュータでデータ交換を有効にする必要がありますが、ルールが正しくありません。
この規則を変えなさい:
-A OUTPUT -d $STATIC_IP -j ACCEPT
これに関して:
-A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
答え2
これは、サーバーが自分が送信するトラフィックのみを受信し、自分だけにトラフィックを送信することを制限します。このルールセットを使用すると、サーバーを直接使用しても他の場所からサーバーにアクセスできなくなります。これはサーバーを保護しながらサーバーを使用できなくするので、おそらくこれをしたくないでしょう。