web-dev-qa-db-ja.com

Ubuntuで3つを除くすべてのポートをブロックするにはどうすればよいですか?

1962、999、12020を除くすべてのポートをブロックするにはどうすればよいですか?

SSH用の1つのポートと、一種のスクリプト用の2つのポート。したがって、これらのポートでの発信を許可する必要がありますよね?

私のiptables:

# Generated by iptables-save v1.4.4 on Sat Feb 25 17:25:21 2012
*mangle
:PREROUTING ACCEPT [643521:136954367]
:INPUT ACCEPT [643521:136954367]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [645723:99904505]
:POSTROUTING ACCEPT [645723:99904505]
COMMIT
# Completed on Sat Feb 25 17:25:21 2012
# Generated by iptables-save v1.4.4 on Sat Feb 25 17:25:21 2012
*filter
:INPUT ACCEPT [643490:136950781]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [645723:99904505]
-A INPUT -p tcp -m tcp --dport 1962 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 999 -j ACCEPT 
COMMIT
# Completed on Sat Feb 25 17:25:21 2012
# Generated by iptables-save v1.4.4 on Sat Feb 25 17:25:21 2012
*nat
:PREROUTING ACCEPT [5673:734891]
:POSTROUTING ACCEPT [2816:179474]
:OUTPUT ACCEPT [2816:179474]
COMMIT
# Completed on Sat Feb 25 17:25:21 2012

申し訳ありませんが、これに関しては私は本当の初心者です。サーバーのセキュリティを強化したいだけです。

22
okapa

最初は常にフラッシュして、既に何が定義されているかを確認する必要があります。

iptables -F

最後に到達し、ルールが一致しない場合は、INPUTチェーンのデフォルトポリシーをDROPに設定します。

iptables -P INPUT DROP

ループバックが影響を受けないようにするには、追加する必要があります

iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

lo-if上のすべてのトラフィックと、確立した接続のすべての受信トラフィックを許可するため。その後、サービスに必要なすべてのルールを追加します(必要な場合はsshを開くことを忘れないでください。それ以外の場合はアウトです)

iptables -A INPUT -p tcp -m tcp --dport 1962 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 999 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 12020 -j ACCEPT 

最後に追加したセキュリティに誤って自分や他の人が穴を開けないようにするためのちょっとしたトリック:

iptables -A INPUT -j DROP

この行はINPUTチェーンのすべてに一致し、ポリシーは何も取得しません。これの利点は、ルールセットを初期化した後でACCEPTルールを追加した場合でも、すべてが以前に削除されるためチェックされないことです。そのため、すべてを1か所に保管する必要があります。

あなたの質問では、全体は要約すると次のようになります:

iptables -F
iptables -P INPUT DROP
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1962 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 999 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 12020 -j ACCEPT 
iptables -A INPUT -j DROP
25
Mose

あなたと同じように初心者からの返信:-)私もUbuntuサーバーをセキュリティで保護する必要がありました。 UFW(複雑でないファイアウォール)は、ファイアウォールの構成をできるだけ簡単にするプログラムです。

  • ufwをインストールします。

    Sudo apt-get install ufw
    
  • すぐに無効にします(自分のSSHログインからロックアウトされたため、レスキューブートする必要がありました)。

    Sudo ufw disable
    
  • デフォルトのルールとして「拒否」を設定します(これにより、すべてのポートがブロックされます)。

    Sudo ufw default deny
    
  • 必要なポートを許可:

    Sudo ufw allow to 1962
    Sudo ufw allow to 999
    Sudo ufw allow to 12020
    
    Sudo ufw allow from 1962
    Sudo ufw allow from 999
    Sudo ufw allow from 12020
    
  • 上記のルールでssh接続が切断されないことが確実な場合は、ufwを有効にします。

    Sudo ufw enable
    

ドキュメントはよく書かれており、より多くの例を提供します: https://help.ubuntu.com/community/UFW

20
Vlad Gerasimov