トップページに戻る


CentOS 5 初期設定
最終更新日:2011.9.25

ユーザーを登録、削除

下記例ではcentosユーザーを登録、削除してみます。

ユーザーを登録

ユーザーを登録するには、まずユーザーを作成して、そのあとそのユーザーにパスワードを設定します。
# useradd centos	←ユーザーを追加 
# passwd centos  	←centosにパスワードを設定(パスワードは2回入力する)

ユーザーを削除

# userdel -r centos

ユーザーが所属するグループを確認

ユーザーが所属するグループを確認するにはidコマンドを実行します。
# id admin		←ユーザー"admin"が所属するグループを確認
uid=500(admin) gid=500(admin) 所属グループ=500(admin),10(wheel) context=user_u:system_r:unconfined_t
groupsコマンドでも所属グループを確認できます。
# groups admin
admin : admin wheel

コマンドの別名を設定する

長いコマンドや良く使うコマンドに対して、別名を設定できます。
ここでは例として、viコマンドを実行した場合、vimで開くように設定してみます。

1.全ユーザー共通

# vi /etc/bashrc
:
: (最終行に追記)
alias vi='vim'
(2)一旦ログオフしてログインし直す。
もしくは以下のコマンドを実行して反映させる。
# source /etc/bashrc

2.ユーザーごとに設定

(1)設定追加

$ vi ~/.bashrc
:
: (最終行に追記)
alias vi='vim'
(2)一旦ログオフしてログインし直す。
もしくは以下のコマンドを実行して反映させる。
# source ~/.bashrc

Tips:

alias ipconfig='ifconfig'
とか設定しておくと、以外と便利かもしれませんw

特定のユーザーでsudoを実行できるように設定する

初期設定では、root権限のあるユーザーでないとsudoを実行できません。

[admin@centos ~]$ sudo /etc/init.d/httpd start
[sudo] password for admin:
admin is not in the sudoers file. This incident will be reported.

CentOSでsudoを利用できるようにするには、様々な方法がありますがたとえば以下のようにユーザーadminをwheelグループに追加して、wheelグループでsudoコマンドを利用できるように設定変更する方法があります。

(1)まず、ユーザーadminをwheelグループに追加します。

# usermod -G wheel admin

(2)visudoを実行してwheelグループがsudoコマンドを実行できるようにします。

# visudo

(3)以下の行を検索して、コメントアウトを外す

## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL

以上でCentOSでadminユーザーがsudoコマンドを利用可能になります。

動作確認

sudoが利用できるようになったか確認します。

[admin@centos ~]$ sudo /etc/init.d/httpd start
httpd を起動中: [ OK ]
[admin@centos ~]$ sudo /etc/init.d/httpd stop
httpd を停止中: [ OK ]

ユーザー"admin"でsudoコマンドが使えるようになりました。

root権限に切り替えられるユーザーを制限する

デフォルト設定ではrootのパスワードがわかれば、管理者権限で何でも行なえてしまいます。

ここではユーザー"admin"をwheelグループに所属させて、 wheelグループに登録されているユーザーのみ管理者権限に切り替えられるように設定します。

[root@centos ~]# usermod -G wheel admin

[root@centos ~]# vi /etc/pam.d/su
#auth required pam_wheel.so use_uid
↓コメントをはずす
auth required pam_wheel.so use_uid

これでwheelグループに属するユーザーのみ、管理権限に切り替えられるようになりました。

rootへの切り替えをパスワード無しでおこなう

「root権限に切り替えられるユーザーを制限する」の設定を行なった後はwheelグループに所属するユーザーが「su -」コマンドを打った場合、パスワード認証が行なわれ、正しいパスワードを入れるとrootになれるようになります。ここで説明する設定を変更すると、「su -」コマンドを打った場合、パスワードなしにroot権限になれます。

[root@centos ~]# vi /etc/pam.d/su
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid
↓コメントをはずす
auth           sufficient      pam_wheel.so trust use_uid

これでrootにパスワード無しで切り替えられるようになりました。

rootでssh接続できないようにする

サーバーの不正アクセスの手段として、sshへの辞書攻撃が良くあります。
これを防ぐために一番危険なrootでのssh接続を出来ないように設定しましょう。

[root@centos ~]# vi /etc/ssh/sshd_config 
:
:
#PermitRootLogin yes

PermitRootLogin no

[root@centos ~]# /etc/rc.d/init.d/sshd restart
sshd を再読み込み中: [ OK ]

これで、root権限でssh接続できなくなります。
ただし、root以外のユーザー権限ではssh接続可能です。

ssh接続認証の制限時間を短くする

ssh接続はデフォルトで120秒以内に認証に成功しない場合、接続をシャットダウンします。
これを自分のタイプスピードに合わせて可能な限り短く設定することで、より安全にサーバーを運用できます。

[root@centos ~]# vi /etc/ssh/sshd_config 
:
:
#LoginGraceTime 2m (デフォルトは120秒)

LoginGraceTime 20

[root@centos ~]# /etc/rc.d/init.d/sshd restart
sshd を再読み込み中: [ OK ]

これで、制限時間(例では20秒)以内にssh接続の認証に成功しないと接続を切断されるようになり、若干安全になりました。

バッファオーバーフロー対策「Exec-Shield」を有効化する

CentOSにはExec-Shieldというバッファオーバーフロー対策機能が備わっています。
デフォルトの設定では1(基本的に有効と明示しない限り無効)に設定されています。

これを有効にします。

[root@centos ~]# echo 2 > /proc/sys/kernel/exec-shield

元の設定に戻すには1をechoします。

[root@centos ~]# echo 1 > /proc/sys/kernel/exec-shield

echo 2しただけでは次回再起動時に設定が元に戻ってしまいます。
以下のファイルに設定を書き込んで、常に有効になるように設定します。

[root@centos ~]# vi /etc/sysctl.conf
最終行に下記を追記
kernel.exec-shield = 2

設定が終わったら、一旦再起動します。

実行ファイル毎のExec-Shieldの有効化、無効化

例として、ここではApacheサーバーでの設定を例にあげます。

(1)実行ファイルのパス確認

[root@centos ~]# which httpd
/usr/sbin/httpd

(2)有効に設定

[root@centos ~]# execstack -c /usr/sbin/httpd

(3)無効に設定

[root@centos ~]# execstack -s /usr/sbin/httpd

(4)確認

[root@centos ~]# execstack -q /usr/sbin/httpd

パスの頭に"X"がついていれば無効、"-"がついていれば有効に設定されているのがわかります。