Proxmoxプラットフォームで実行されている複数のLinux(主にDebian)サーバーがあります。いずれもADSL回線を介してインターネットに接続されており、認定IPは1つだけです。
そのうちの1つは、外部サーバー(インターネットに接続されているADSLを介して監視される他のネットワーク)を監視するために、1年以上前にOMD(Open Monitoring Distribution)を実行してきました。
これで、リモートサーバーの所有者から夜間にポートスキャンを実行するADSLパブリックIPを検出して、開いているポートをスキャンするように求められました。
Debianシステムでこれが起こったのは、今回が2番目です:(
スキャンを実行するプロセスを検出する必要があります。
- 問題のLinuxシステムでは、どのプロセスがポートスキャンを開始するかをどのように知ることができますか?ここで難しいのは、夜のいずれかの時点で発生する可能性があるスキャンが発生したときにプロセスを理解するために何でも実行する必要があることです。
- どのように開始してから2回の間に完了したプロセスのリストを取得する方法はありますか(例:23:00から03:00まで開始された新しいプロセス)
事前にありがとう
答え1
これらの悪い行動を追跡する最良の方法は、頻繁にコンピュータの活動ログを収集することです。
開いているネットワーク接続を表示するには、15分ごとにスクリプトを実行するのがcron
おそらく最良の方法です。
lsof
このコマンドを使用して、コンピュータのネットワーク接続に関する情報を収集することをお勧めします。それは次のとおりです。
lsof [email protected] >> /tmp/my-connexions.log
または、コンピュータがランダムに検索し、検索ごとにIPを変更する場合(TCP接続のみ):
lsof -iTCP >> /tmp/my-connexions.log
コマンドの結果lsof
は次のとおりです。
iceweasel 31562 user 50u IPv4 13500060 0t0 TCP bill:47039->stackoverflow.com:https (ESTABLISHED)
iceweasel 31562 user 60u IPv4 13549538 0t0 TCP bill:60564->104.16.15.128:http (ESTABLISHED)
iceweasel 31562 user 61u IPv4 13578815 0t0 TCP bill:46285->185.45.5.43:https (ESTABLISHED)
iceweasel 31562 user 67u IPv4 13496262 0t0 TCP bill:47020->stackoverflow.com:https (ESTABLISHED)
各行の左端には、接続を実行するプログラムの名前が表示されます(あなたの場合はこれが興味深い部分です)。残りの行では、使用されている接続とプロトコルについて説明します。
また、プログラムのすべてのシステムコールをカーネルに記録する内容auditctl
(パッケージに付属)を見ることもできます(時々実行するよりも正確です)。次のコマンドを実行できます(いつものように、まず文書を読んでください!)。auditd
lsof
auditctl -A exit,always -S connect