LinuCレベル3 303試験の例題と解説

ホストの堅牢化

LinuCレベル3 303試験の試験範囲から「326.1 ホストの堅牢化」についての例題を解いてみます。

■トピックの概要

このトピックの内容は以下の通りです。

<326.1 ホストの堅牢化>
重要度     3

<説明>
一般的な脅威からLinuxが稼働するコンピュータをセキュアにすることができることが求められる。

<主要な知識範囲>
BIOSとブートローダー(GRUB 2)強化の設定。
無用なソフトウェアとサービスの無効化。
セキュリティ関連のカーネル設定、特にASLR、Exec-Shield および IP / ICMP の設定のためのsysctlの使用。
リソース使用量の制限。
chroot 環境での作業。
不要な機能権限の削除。
仮想化のセキュリティの有意性についての知識。

<重要なファイル、用語、ユーティリティ>
grub.cfg
chkconfig, systemctl
ulimit
/etc/security/limits.conf
pam_limits.so
chroot
sysctl
/etc/sysctl.conf

■例題
/etc/security/limits.confで「testuser soft nofile 2048」を設定した。
説明として以下の中から正しいものを、全て選択せよ。

1.ユーザーtestuserに対して、最大プロセス数を2048に制限する
2.ユーザーtestuserに対して、使用することができるファイルディスクリプタ(開くことができるファイルの数)を2048に制限する
3.ユーザーtestuserは、ulimitコマンドでファイルディスクリプタを2048から4096に変更ができる
4.ユーザーtestuserは、ulimitコマンドでファイルディスクリプタを変更する場合、上限は2048となる

※この例題は実際の試験とは異なります。


解答と解説

答えは「2.ユーザーtestuserに対して、使用することができるファイルディスクリプタ(開くことができるファイルの数)を2048に制限する」と「4.ユーザーtestuserは、ulimitコマンドでファイルディスクリプタを変更する場合、上限は2048となる」です。

Linuxでは、ユーザー毎に使用可能な最大プロセス数やファイルディスクリプタを/etc/security/limits.confで設定します。
「testuser soft nofile 2048」では、ユーザーtestuserに対して、ファイルディスクリプタを2048に制限しており、
2048までであれば変更可能ですが、それを超える値を設定することはできません。
また、値の変更等については、ulimitコマンドで変更します。

以下、それを確認するための操作となります。
-------
[root@CentOS6 ~]# vi /etc/security/limits.conf ・・・・ファイルを編集
[root@CentOS6 ~]# cat /etc/security/limits.conf | grep testuser ・・・・変更した部分のみを表示
testuser    soft     nofile         2048
[root@CentOS6 ~]# su - testuser ・・・・testuserにスイッチ

[testuser@CentOS6 ~]$ ulimit -a ・・・・testuserのリソース使用量の制限を確認
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 3899
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 2048  <-------ファイルディスクリプタは、この値
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[testuser@CentOS6 ~]$ ulimit -n 1024 ・・・・testuserのファイルディスクリプタを1024に変更
[testuser@CentOS6 ~]$ ulimit -a ・・・・testuserのリソース使用量の制限を確認
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 3899
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024  <-------1024に変更された
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[testuser@CentOS6 ~]$ ulimit -n 4096 ・・・・testuserのファイルディスクリプタを4096に変更
-bash: ulimit: open files: cannot modify limit: 許可されていない操作です

■例題作成者
鯨井 貴博 氏(登録インストラクター、LPI-Japanアカデミック認定校 Zeus IT Camp)
ページトップへ