特定の範囲の IP アドレスからのアクセスを許可するように Linux サーバーのファイアウォールを構成する

特定の範囲の IP アドレスからのアクセスを許可するように Linux サーバーのファイアウォールを構成する

私は Linux サーバー初心者です。現在、Ubuntu 10.10 サーバーを初めて起動して実行しようとしており、管理には Webmin を使用しています。ファイアウォールの設定で行き詰まっています。必要なのは、IP の範囲 (例: 128.171.21.1 - 128.171.21.100) のみに HTTP サーバーと Webmin へのアクセスを許可することです。多くのチュートリアルを見てきましたが、どれも私のニーズに合いません。

前もって感謝します!

答え1

DROPデフォルトのポリシーがforINPUTおよびOUTPUTchainsに設定されている場合、次のコマンドを使用して HTTP サーバへのアクセスを許可できます。

$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A OUTOUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -s 128.171.21.0/24 -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

$ sudo iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
$ sudo iptables -A INPUT  -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

すべてのサブネット 128.171.21.0/24 が Web サーバーにアクセスできるようになります。必要に応じてカスタマイズできます。

注意してください。サーバーにリモートでアクセスするには、SSH (ポート 22) などの他のプロトコルを許可する必要がある場合があります。

編集:最後の 4 つのルールは、サーバーが DNS と HTTP を要求できるようにするために追加されました。

答え2

iptablesが難解すぎると思うなら、Ubuntuにはシンプルなiptablesラッパーがあります。ユーフォ

関連情報