最近、マルウェアのために、VPSサーバーの1つを(再度)再インストールする必要がありました。私は、かなり良いセキュリティ対策を講じました。 rootアカウントもロックし、Sudoも使用しています。しかし、1日後、ログインして、プログラム 'agetty'がいくつかのTTYで実行されていることに気付きました。
root 382 0.0 0.0 12600 292 tty3 Ss+ Jun21 0:00 /sbin/agetty --noclear tty3 linux
root 383 0.0 0.0 12600 292 tty2 Ss+ Jun21 0:00 /sbin/agetty --noclear tty2 linux
root 384 0.0 0.0 12600 292 tty5 Ss+ Jun21 0:00 /sbin/agetty --noclear tty5 linux
root 385 0.0 0.0 12600 292 tty6 Ss+ Jun21 0:00 /sbin/agetty --noclear tty6 linux
root 386 0.0 0.0 12600 292 tty4 Ss+ Jun21 0:00 /sbin/agetty --noclear tty4 linux
root 387 0.0 0.0 12600 296 tty1 Ss+ Jun21 0:00 /sbin/agetty --noclear --keep-baud console 115200 38400 9600 vt102
どうやらagettyは「代替getty」であり、シリアルコンソールを介してシステムにアクセスするために使用されます。少なくともそれは私の理解です。したがって、これらのプロセスが私のサーバーで実行されている正当な理由はないようです。私はそれについてプロバイダーにメールしました、そして、私がこれを設定しない限り、それは実行されるべきではなく、彼らのシステムとは何の関係もないと彼らは言った。それは私が誰かが私のサーバーをハッキングしようとしていると再び思います。
少し質問があります。まず、これらのプロセスが表示される正当な理由はありますか?次に、これらのオプションの意味は次のとおりです:--keep-baud console 115200 38400 9600 vt102
? manページを読んだり、オンラインで見つけたものから何が起こっているのかを完全に理解することができませんでした。誰かが私のサーバーにログインコンソールを取得でき、シェルを取得するためにブルートフォース攻撃を試みている可能性はありますか? auth.logとsyslogを確認したところ、そのようなアクティビティを示すものは見つかりませんでした。
私はこのプロセスが何であるかを理解しようとしていると思います、そしてそれが悪意のある場合、どうすればそれを殺すことができますか?マシンを再起動しても動作しませんでした...ヒントをいただければ幸いです。
これらは、デフォルトのLinux「コンソール」または仮想端末(VT)、Alt + F1-F6です。デフォルトでインストールされていないシステムを見た覚えはありません。
それらをinit/systemd/upstart/whateverスクリプトから削除することで無効にします。 Linuxディストリビューションのドキュメントには、おそらくそれが記載されています。
(ps -A
コマンドを入力するとsystemd
がPID 1
とともに表示される場合、システムはsystemd
を使用します)
オペレーティングシステムがsystemd
を使用している場合:
tty1
はコマンドによってインスタンス化されました
/sbin/agetty --noclear --keep-baud console 115200 38400 9600 vt102
ps -A
抽出が示すように。 tty1
は常に起動時に開始されます。どうして? Lennart Poetteringの投稿 " systemd for Administrators、Part XVI:Gettys on Serial Consoles(and Elsewhere) "を参照して説明を書きます(VTは仮想端末を意味します; Lennart Poetteringはsystemd
):
2つのVTは自動生成ロジックによって特別に処理されます。最初にtty1は特別な扱いを受けます。グラフィカルモードで起動すると、ディスプレイマネージャーがこのVTを取得します。マルチユーザー(テキスト)モードで起動すると、その上でgettyが開始されます-無条件で、オンデマンドロジックなし[2]。
[2] VT1はデフォルトでアクティブなVTであるため、VT1のgettyがオンデマンドで開始されるかどうかにほとんど違いがないことに注意してください。
その他の場合tty<N>
:次のように入力して、ttyサービスが構成されているかどうかを確認できます。
systemctl is-enabled getty@tty<N>.service
ここで、<N>
はtty識別番号(tty2
など)に置き換える必要があります。
上記のチェックがFailed to get unit file state for getty@tty<N>.service: No such file or directory
を出力した場合、サービスは有効になっていません。上記のチェックでメッセージenabled
が出力された場合は、次のように入力してttyサービスを非アクティブ化できます。
systemctl disable getty@tty<N>.service
あなたはそれを再び有効にすることができます:
systemctl enable getty@tty<N>.service