コース一覧
LinuC レベル1 102試験対策(LPIC-1対応)
ホストのセキュリティ

LinuC レベル1 102試験対策(LPIC-1対応)

LinuC レベル1/LPIC-1の102範囲を、シェル、ユーザーとセキュリティ、ネットワーク、システム管理の実機演習と章末問題で固めます。Linuxを安全に運用するための知識とコマンド操作を体系的に身につける25レッスンのコースです。

1
102 シェルとスクリプト
01. シェル環境18分
02. testと条件式18分
03. スクリプトの制御18分
04. cronとat15分
05. systemdタイマー18分
06. 過去問 シェル15分
2
102 ユーザーとセキュリティ
01. passwdとshadow18分
02. ユーザー管理コマンド18分
03. suとsudo18分
04. 特殊パーミッション18分
05. ホストのセキュリティ18分
06. SSHとGPG18分
07. 過去問 ユーザーとセキュリティ15分
3
102 ネットワーク
01. TCP/IPとウェルノウンポート18分
02. アドレス設定18分
03. ルーティング18分
04. 名前解決の設定18分
05. 疎通トラブルシュート18分
06. 過去問 ネットワーク15分
4
102 システム管理
01. 時刻とNTP15分
02. ロケールと文字コード18分
03. ログ管理18分
04. サービス管理の試験形式18分
05. メールと印刷のきほん15分
06. 過去問 システム管理15分

ホストのセキュリティ

「サービスを止めた」と言うとき、それが今動いているプロセスの話なのか、次に起動したときの話なのかで、必要なコマンドが変わります。片方だけでは止まりません。

まず、このマシンが何を晒しているかを見る

ターミナル

ss -tuln
オプション意味
-tTCP を表示
-uUDP を表示
-l待ち受け (LISTEN) 中のものだけ
-nサービス名に変換せず番号のまま表示
-p待ち受けているプロセス名と PID を表示。root 権限が要る
-a全ソケットを表示

ss は旧来の netstat を置き換えるコマンドで、オプションの体系はほぼ同じです。netstat -tuln と ss -tuln は同じ意味になります。netstat は net-tools パッケージの古いコマンドで、現代の環境では ss が推奨されます。試験ではこの対応を知っているかが問われます。

stop だけでは、次の起動でまた上がる

コマンド効果
systemctl stop <unit>今動いているプロセスを止める。次回起動時には再び立ち上がる
systemctl disable <unit>自動起動の設定を外す。今動いているプロセスはそのまま
systemctl mask <unit>ユニットを /dev/null へのリンクで覆い隠し、起動そのものを不可能にする

サービスを完全に止めるには stop と disable の両方が要ります。片方だけでは不十分だ、というのが試験の狙いどころです。

mask はさらに強い措置です。disable は自動起動を止めるだけなので、他のユニットが依存関係として要求すれば起動してしまいます。それも防ぎたいときに mask を使い、解除は unmask です。

ターミナル

systemctl is-active <unit>
systemctl is-enabled <unit>
systemctl list-unit-files --state=enabled

list-unit-files --state=enabled は自動起動が有効なユニットを一覧します。棚卸しの出発点として便利です。

誰が入っていたのかを見る

コマンド意味
lastログインの履歴を新しい順に表示
lastlog各ユーザーの最終ログイン日時を一覧表示
wログイン中のユーザーと実行中のプロセスを表示
whoログイン中のユーザーを表示

接続元による古典的なアクセス制御が TCP Wrapper で、/etc/hosts.allow と /etc/hosts.deny の2つのファイルで制御します。判定は hosts.allow が先で、そこで許可されればそれ以上見ません。両方に書かれていれば allow が勝ちます。

一時的に締める

/etc/nologin というファイルを作ると、root 以外のログインが拒否されます。ファイルの中身がログイン試行者へのメッセージとして表示されます。メンテナンス時に使い、終わったら削除します。

ulimit はシェルからプロセスに与えるリソース制限です。ulimit -a で現在の設定を一覧、-n でオープンできるファイル数、-u でプロセス数、-f でファイルサイズを制限します。恒久的な設定は /etc/security/limits.conf に書きます。

パスワードポリシーの既定値は /etc/login.defs にあり、PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE で有効期限の初期値を決めます。既存ユーザーの変更は chage で行います。

試験で狙われるところ

stop は今のプロセス、disable は次回以降の自動起動で、両方必要です。mask は /dev/null へのリンクで、依存関係経由の起動も防ぎます。hosts.allow と hosts.deny は allow が優先されます。ss -tuln の -n は名前解決をしない指定です。そして /etc/nologin があっても root はログインできます。

ヒント

まず ss -tuln を素で打って、どのポートが開いているかを目で見てください。80 と 22 が並んでいるはずです

記録はリダイレクトで残します。ss -tuln > /root/ports.txt です。止めてから記録すると80番が消えてしまうので順番に注意してください

systemctl stop nginx と systemctl disable nginx の2つが必要です。片方だけでは条件を満たしません

  • 1. ss -tuln で現在待ち受けているポートを一覧する
  • 2. ss -tulnp でどのプロセスが待ち受けているかまで確認する
  • 3. ss -tuln の出力を /root/ports.txt に保存する
  • 4. systemctl stop nginx で nginx を停止する
  • 5. systemctl disable nginx で自動起動を無効化する
  • 6. systemctl is-active nginx と systemctl is-enabled nginx で結果を確かめる

Linux は使うときに起動します(初回は約102MB通信します)

5 項目で採点します