リモートサーバーのセキュリティ: iptables: 4分だけ与えますか?

リモートサーバーのセキュリティ: iptables: 4分だけ与えますか?

リモートサーバー:

すべての着信トラフィックをブロックするようにiptablesを設定したいと思います。

しかし、..システムが完全に起動してから4分

私が持つことができるように4分でSSH経由で接続
私がロックされる前に。

これを達成するための最良の方法は何ですか?

ステップ1おそらく:

 chkconfig iptables off

何ですかステップ2

答え1

システムの起動時に実行されるスクリプトを生成して、最初に4分間スリープモードに切り替えてから、必要なiptablesコマンドを実行できます。

それは次のとおりです。

#!/bin/bash
/etc/init.d/iptables stop
sleep 4m
/etc/init.d/iptables start
iptables -P INPUT DROP

システム起動時にこれを実行するには、/etc/init.dchmod +x yourscript.shで適切な権限()を使用してスクリプトをコピーし、rcを更新します。例:

update-rc.d yourscript.sh defaults 100

答え2

セキュリティの観点からは、アプリケーションを実行する前にファイアウォールをインストールするのが最善です。

したがって、を使用する方がより適切かもしれません。この方法では、ポートをknockd開き、指定された時間後に閉じるポートノックシーケンスを設定できます。ssh

構成例は次のとおりです。

/etc/knockd.conf
[options]
    logfile = /var/log/knockd.log

[opencloseSSH]
                   sequence      = 8081,8082,8083
                   seq_timeout   = 5
                   tcpflags      = syn
                   start_command = /usr/sbin/iptables -I IN_external_allow -i enp0s8 -s %IP% -p tcp --dport 22 -j ACCEPT
                   cmd_timeout   = 15
                   stop_command  = /usr/sbin/iptables -D IN_external_allow -i enp0s8 -s %IP% -p tcp --dport 22 -j ACCEPT

入力したい場合は、次のようなものを使用できます。

nc -w 1 myhost 8081
nc -w 1 myhost 8082
nc -w 1 myhost 8083
ssh user@myhost

パケットのみをチェックするので、上記のポートのリスナーを設定する必要はありませんsyn。ただし、パケットがホストに到達できるように、外部ファイアウォールでポートを開く必要があります。すでに開いている可能性が高い80、25、443などのより一般的なポートを使用することもできます。

設定によっては、このシーケンスは5秒以内に完了する必要があり、15秒後にポートが再び閉じられます。既存のセッションは引き続き開かれているため、安全に使用できます。

また、見ることができますhttp://www.zeroflux.org/projects/knockこの機能を構成する方法の詳細。

関連情報