GNU/Linux >> Linux の 問題 >  >> Linux

SSH がバージョン番号を通知しないようにする

解決策 1:

SSH デーモンのバージョン番号を隠すのは非常に困難ですが、Linux バージョン (Debian-3ubuntu4) は簡単に隠すことができます。

次の行を /etc/ssh/sshd_config に追加します

DebianBanner no

SSH デーモンを再起動します:/etc/init.d/ssh restart または service ssh restart

解決策 2:

それらを非表示にすると、サーバーが保護されません。システムが実行しているものをフィンガープリントする方法は他にもたくさんあります。特に SSH の場合、バージョンの発表はプロトコルの一部であり、必須です。

http://www.snailbook.com/faq/version-string.auto.html

解決策 3:

ほとんどの場合、識別バナーはコンパイルされたコードの一部であり、それらを変更または抑制する構成オプションはありません。これらのソフトウェアを再コンパイルする必要があります。

解決策 4:

バージョンの発表を実際に変更することはできないと確信しています。

sshd を保護する最善の方法は次のとおりです。

<オール>
  • デフォルトのポート番号を変更します。
  • ルート ログオンを禁止します。
  • プロトコル 2 を強制します (デフォルトでは実行されていないと仮定します)。
  • SSH 接続が許可されているサーバーをホワイトリストに登録する
  • 最初の 3 つは、/etc/sshd_config を変更することで実行できます

    4 つ目は、使用しているファイアウォール ソフトウェアによって異なります。

    解決策 5:

    上で述べたように、バージョン番号の変更は

    <オール>
  • 難しい
  • あいまいさによるセキュリティ
  • 柔軟性がない
  • 私が提案するのは、ポート ノッキングの実装です。これは、サーバー上で実行されているものをすべて隠すかなり単純な手法です。

    これが良い実装です:http://www.zeroflux.org/projects/knock

    これは、「秘密のノック」を知っている人だけに SSH を開くために、サーバー (他の番号) に実装した方法です:

    [openSSH]
        sequence = 300,4000,32
        seq_timeout = 5
        command = /opencloseport.sh %IP% 2305
        tcpflags = syn
    

    これにより、3 つの SYN パケットを正しい順序で受信する必要がある 5 秒のウィンドウが得られます。互いに離れており、連続していないポートを選択してください。そうすれば、ポートスキャナーが誤ってポートを開くことはありません。これらのポートは iptables で開く必要はありません。

    私が呼び出すスクリプトはこれです。 SYN パケットを送信する IP 用に特定のポートを 5 秒間開きます。

    #!/bin/bash
    /sbin/iptables -I INPUT -s $1 -p tcp --dport $2  -j ACCEPT
    sleep 5
    /sbin/iptables -D INPUT -s $1 -p tcp --dport $2  -j ACCEPT
    

    SYN パケットを送信するのは非常に面倒なので、スクリプトを使用してサーバーの SSH に接続します。

    #!/bin/bash
    knock $1 $2
    knock $1 $3
    knock $1 $4
    ssh [email protected]$1 -p $6
    

    (ここで何が起こっているかは明らかです...)

    接続が確立されたら、ポートを閉じることができます。ヒント:キー認証を使用します。それ以外の場合は、パスワードをすばやく入力する必要があります。


    Linux
    1. AndroidからLinuxでSSH接続する方法

    2. Ubuntu 20.04 での SFTP のセットアップと SSH の防止

    3. LinuxからEXEバージョンを読み取るCライブラリ?

    1. 新しいウィンドウがgnomeでフォーカスを盗むのを防ぐ方法

    2. SSH からのログアウト後に、現在実行中の Linux タスクが強制終了されないようにします

    3. プロセスがファイルを書き込めないようにする方法

    1. SSH - ~/.ssh/config ファイルに -t コマンドを含める方法

    2. 使用している RHEL のバージョンは?

    3. EPEL から同じマシンに 2 つの異なるバージョンの Java をインストールするにはどうすればよいですか?