私の新しいCentos 6.5クラウドサーバーはこれに付属しています
/etc/sysconfig/iptables
内部には以下があります。
# Generated by iptables-save v1.4.7 on Mon Jun 16 20:04:05 2014
*filter
:INPUT ACCEPT [8:607]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6:1089]
COMMIT
# Completed on Mon Jun 16 20:04:05 2014
しかし、iptablesを停止したり起動したりしても、他のポートはまだ開いているようです。私はwebminのようなものをインストールし、ポート10000でうまく動作するので、これを知っています。
また、httpd.confにポートを追加しました。
listen 81
ポート81の仮想ホスト。
iptablesが起動しても停止しても機能します。
これは、上記のiptablesファイルを変更する必要があることを意味します。
ポート80と22を除くすべてのポートを無効にしたい
ここで直接テストし、追加のポートを追加できます。
答え1
ルールを作成する前に、クライアントIPにそのサーバーへのフルアクセス権を付与することをお勧めします。すべてのルールが完璧であることを確認したら、ルールを削除できます。
iptables -A INPUT -s YOUR-CLIENT-IP -j ACCEPT
YOUR-CLIENT-IPは、接続するサーバーのIPに置き換える必要があります。
これでルールの作成を開始できます。したがって、まずSSHとHTTPを許可します。
iptables -I INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
最後に、他のすべてのパケットをブロックできます。
iptables -A INPUT -j REJECT
その後、他のIPからSSHとHTTPにアクセスして、すべてが正常に機能していることを確認し、すべてが正常な場合はリストの最初のルールを削除できます。
iptables -D INPUT 1
短い答え
iptables -I INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -j REJECT
より良い答え
指摘したとおり小さな湾注釈のより良いアプローチは、最後のルールを次のように変更することです。
iptables -I INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -P INPUT REJECT