誰かがSSHサーバーに接続するときにbashスクリプト(freebsd)を実行する方法

誰かがSSHサーバーに接続するときにbashスクリプト(freebsd)を実行する方法

freeBSDサーバーとbashスクリプトがあります。このスクリプトはipfwのログファイル(不正なSSHアクセス用)を分析し、破損した場合はメールでメッセージを送信します。スクリプトをcronに入れると、すべてがうまくいきます。しかし、スクリプトをリアルタイムで実行するにはどうすればよいですか?アイデアは、このアクティビティのスクリプトを開始することです。したがって、誰かがSSHを介してサーバーに接続しようとすると、これはスクリプトになります。しかし、それを実装する方法は何ですか? PSテスト作業。 Fail2banとEメール送信機能について学びます

答え1

sshdスタンドアロンサービスとして実行するか、inetdinetdssh

# cat /root/bin/sshd.sh
#!/bin/sh
logger -i -p auth.info "Someone is trying to ssh in"
exec /usr/sbin/sshd "$@"
# ls -l /root/bin/sshd.sh
-rwx------  1 root  wheel  204 Jul 11 13:32 bin/sshd.sh*
# grep ^ssh /etc/rc.conf
sshd_enable="no"
# grep ^ssh /etc/inetd.conf
ssh     stream  tcp     nowait  root    /root/bin/sshd.sh       sshd -i -4

周囲をめまいにすることで、sshセキュリティを強化するのではなく弱める可能性があることを覚えておいてください。 Fail2Banなどの専用製品はより良いソリューションかもしれません。

sshまた、非常に高速で接続を受信すると、接続が開始されるたびにスクリプトを実行するのに費用がかかる可能性があります。以前と同様に、これはシステムリソースを消費し、サービス拒否を引き起こす可能性があります。 cron ジョブを 1 分ごとまたは 5 分ごとに実行することは、システムに最小限の継続的なロードしか適用しないため、より望ましい場合があります。接続固有のスクリプトモデルは、攻撃圧力に比例して負荷を増加させますssh

関連情報