自分用メモ。
1)rootユーザでのログインを禁止
/etc/ssh/sshd_config
PermitRootLogin no
2)sshdのログインポートの変更
/etc/ssh/sshd_config
Port 1234
3)パスワード認証を禁止
/etc/ssh/sshd_config
PasswordAuthentication no
4)いらないサービスを停止/削除
いらないサービスを極力停止または削除する。
サービスの状態確認のコマンド
$ systemctl list-unit-files --type=service
ポートが開いているサービスの一覧コマンドは以下。
$ ss -atl
または
netstat -ntl
MySQLの停止例
$ sudo systemctl stop mysql
5)再起動させない設定
たとえばログインパスワードを知らなくても、再起動しメンテナンスモードで起動すれば
パスワード無しで管理者権限を得ることが可能。そのため、システムを再起動させないようにする。
一般的なIntelアーキテクチャだと、Ctrl + Alt + Deleteでシステムが再起動するので、
このキー操作を無効化する。
6) セキュリティアップデートの自動化
$ sudo systemctl mask ctrl-alt-del.target $ sudo systemctl daemon-reload
7)fail2banのインストール
悪意あるアクセス元のIPアドレスを遮断する。
※Sshguardというサービスもあるが、感覚的にfail2banのほうが日本語情報が多い印象があるため、
fail2banを使用
8)Rootkit Hunter(rkhunter)でルートキット、バックドア、ローカルの脆弱性の検出を行う
インストール
$ sudo apt install rkhunter
rootkitデータベースを更新
$ sudo rkhunter --update
rootkitプロパティデータベースを更新
$ sudo rkhunter --propupd
システムチェック
$ sudo rkhunter -c
簡易。警告メッセージのみ表示し、テストごとにEnter入力を求めないシステムチェック)
$ sudo rkhunter -c --rwo -sk
9)ufw(ファイヤーウォール)のインストール及び設定
10)lynis(システム診断ツール)を入れる。
インストール
$ sudo apt install lynix
診断
$ sudo lynis audit system
WarningsやSuggestionsを見て、対処が必要なものから対応していく。
11)アンチウイルスソフトを入れる
定番の「Clam antivirus」を入れる。
インストール
$ sudo apt install -y clamav
現段階では不要な「ウイルス定義更新をclamdに通知する設定」をOFFにする。
/etc/freshclam.conf
$ # NotifyCamd /etc/clamav/clamd.conf
ウイルスデータベースを更新(手動)
$ sudo freshclam
自動的にウイルスデータベースを更新
$ sudo systemctl start clamav-freshclam
ディレクトリを手動でスキャン
/homeディレクトリをスキャンする例
sudo clamscan -i -r /home
12)logwatchを入れる
[参考]
そこそこセキュアなlinuxサーバーを作る - Qiita
Ubuntu 最低限抑えておきたい初期設定 - Qiita
ざっくり概要!Linuxセキュリティに関する基礎知識まとめ
How to Scan for Rootkits, backdoors and Exploits Using 'Rootkit Hunter' in Linux
【Ubuntu 18.04/16.04 LTS Server】ClamAVで定期的にウイルスチェックし、メール通知する | The modern stone age.
Ubuntu 16.04: ClamAVでウィルススキャンを実行する - Narrow Escape