要約

要約

要約

サーバー管理について詳しく知りたいです。私は友達がたくさん設定しましたが、私は何年も自分のWebサーバーを運営してきました。

私は主にセキュリティ、ネットワークセキュリティ、ファイアウォールに興味があり、これについて詳しく学ぶための良いリソース/本を探しています。

それにもかかわらず、私の意図は次のとおりです。

  • 特定のポートを除くすべての着信接続をブロックします。
  • セキュリティ関連のタスクを理解するには、研究する必要があります。

着信接続を許可する短いポートのリストがあります。

$ iptables -A INPUT -p icmp -j ACCEPT            # allows anyone to ping?
$ iptables -A INPUT -p tcp --dport 22 -j ACCEPT  # allow public ssh
$ iptables -A INPUT -p tcp --dport 80 -j ACCEPT  # allow public apache
$ iptables -A INPUT -p tcp --dport 443 -j ACCEPT  # allow public apache (ssl)
$ iptables -A INPUT -p tcp --dport 9001 -j ACCEPT  # allow a public service
$ iptables -A INPUT -j DROP                      # default drop

理論的には、上記のルールのリストは、22、80、443、および9001を除くすべてをブロックするのに十分安全です。ただし、これらのルールが有効になっている間は、サーバーにSSH経由でアクセスできません。その後、ルール(iptables -F)を更新してSSHを再利用できます。

ベストアンサー1

残りのルールの前に削除ルールを配置すると、SSHは正常に機能します。

iptablesはルールを上から下に評価するので、順序は重要です。同様に、最初にポート 22 を許可するルールを作成し、次にすべてをポート 22 に削除する次のルールを作成する場合、後者のルールが適用されます。

以下は、稼働中の本番サーバーの構成例です。

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j LOG --log-prefix "IPTABLES IN:"
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j LOG --log-prefix "IPTABLES OUT:"
COMMIT

まず、デフォルトで着信および転送接続を削除し、デフォルトで着信接続を許可するように設定します。次に、状態に関連する接続を受け入れて設定します。その後、ICMP がグローバルに承認され、ループバック トラフィックが承認されます。宛先ポート22と80を受け入れた後、ロギングなどの規則があります。 Centosを使用してルールをファイルに保存するため、iptablesを再ロードするとそのファイルのルールが直接フラッシュされます。もちろん、デフォルトファイルを設定するには、再起動時にルールがロードされたときにルールが正しく機能することを確認する必要があります。

ルールセットは、「iptables-restore <path_to_rules」を使用してファイルから再ロードできます。

おすすめ記事