はじめましてhajimeです。
今回から定期的にエンジニアブログを書いていこうと思います。
テーマについてですが、AWS関連は他の人がたくさん書くと思うので
色々と迷った末にサーバ構築時のセキュリティ対策について基本的なことからマイナーな部分まで書いていこうかなと思います。
しばらくはLinuxサーバについて一通り書いて、その後はWindows編を書く予定です。
LinuxはRHEL7を対象とします。
WindowsはWindows Server 2012 R2を対象とします。
というわけで第1回の今回は「sudoers」です。
第1回のテーマとしては地味ーな感じもしますが。。
sudoersとはsudoに関する設定の定義ファイルです。
サーバ構築したことある方であれば大抵は触るファイルの一つでしょう。
LinuxサーバはSSH接続で操作する場合がほとんどですが
セキュリティ的な観点からいきなりrootユーザではログインしません。
任意ユーザでログインし、その後必要に応じてsuなりsudoをして操作します。
これは筆者の個人的な感覚なのですが、昔はroot権限を取得する場合はsuの方が主流だったような気がするのですが
いつからかsudoの方がメインになったような気がします。
やはり毎回suするのはめんどくさいsudoの方が運用しやすいからでしょうか。
前置きが長くなりましたが、sudoに関する設定は/etc/sudoersに記載します。
しかしこの設定ファイルは直接編集することが非推奨とされているため「visudo」コマンドを使用して設定ファイルを編集します。
# visudo
sudoersのフォーマットは以下の通りです。
<誰が> <どこで>=<誰として> <何をするか>
<誰が>
sudoコマンドを実行するユーザ名を書く。
グループ指定も可能。その場合は「%グループ名」。
<どこで>
どこで実行するのかホスト名を書く。
LDAP環境下でもなければ、基本的にコマンドはlocalで実行するためここは概ね「ALL」指定。
てか「ALL」以外が指定されてるのを見たことが無いです。
<誰として>
どのユーザ権限で実行するか、です。
ここも経験上「ALL」で良い場合がほとんどだと思います。
どうしても権限を制限したい場合はここに実行ユーザ名を記載します。
<何をするか>
実行するコマンド名、スクリプト名、などをフルパスで書く。
複数書く場合はカンマ区切りで。
「!」で禁止コマンド指定にすることも可。
厳格な運用を求められる環境の場合、ここに実行可能なコマンドを全部書くこととなります。
ディレクトリ指定もできますが、サブディレクトリは対象外となるので注意すること。
例)
root ALL=(ALL) ALL
rootユーザは、どこでも、誰としてでも、どのコマンドでも実行できる
normal ALL=(ALL) /bin/ls
normalユーザは、どこでも、誰としてでも、lsコマンドを実行できる
sudoersは以上のように設定します。
細かく言えばsudoersではもっと色々なことができるのですが
運用が複雑になるためここには最低限の設定のみ入れるというのが主流ではないでしょうか。
というわけで「セキュアなサーバ構築 Linux編01」終了です。また次回。