Ubuntu 22.04 に tarpit-endlessh (apt install endlessh) をインストールし、/etc/endlessh/config で次の設定を行いました。
port 22
Delay 10000
MaxLineLength 32
MaxClients 4096
LogLevel 0
BindFamily 0
ss -tulpen | grep ssh
endlessh ではポート 2222 に設定されていることがわかります。endlessh 構成でポート 22 を設定しているのに、ポート 2222 が監視されているのはなぜですか?
/etc/systemd/system/には空のendlessh.serviceファイルしかありません。代わりに、空でないendlessh.serviceファイルは/lib/systemd/system/にあります。
ここで、/etc/systemd/system/endlessh.service に次の変更を加えました。
Endlesshを1024未満のポートにバインドしたい場合
- 走る:
setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
- 次の行のコメントを解除する
AmbientCapabilities=CAP_NET_BIND_SERVICE
- 次の行にコメントする
#PrivateUsers=true
しかし、これは機能しませんでした:
setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
私はこれを理解します:
ファイル `/usr/local/bin/endlessh' に機能を設定できませんでした (そのようなファイルまたはディレクトリはありません) 機能引数の値はファイルに対して許可されていません。または、ファイルは通常の (非シンボリックリンク) ファイルではありません
編集: 後
systemctlデーモンリロード
現在はポート 22 を監視しています。ただし、このコマンドはまだ機能しません。
setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
Endlessh に関するほとんどのチュートリアルでは、apt install endlessh で簡単にインストールするのではなく、git からコンパイルするように記述されているのはなぜですか?
答え1
ポート 22 の指定は、プログラムの起動時に構成ファイルから読み取られます。構成ファイルを変更したら、新しい改良された構成ファイルを読み取るためにプログラムを再起動する必要があります。