[AWS]RHEL6初期構築設定・コマンド詰め合わせ

2015.12.22

コンニチハ、千葉です。

OS初期構築時に色々なサイトを駆け巡って、コマンドを思い出しつつ構築することもあるかと思うので、時間短縮のためコマンド詰め合わせとして残しておきます。今回の対象はRHEL6となります。

やりそうなことを、かなり詰め込んだので役に立つかと思います!!

初期設定

ホスト名変更

# vi /etc/sysconfig/network

--以下の箇所を変更-- 
HOSTNAME=[ホスト名]

メモリ上のホスト名も変更

# hostname [ホスト名]

※一旦ログアウトして再接続するとプロンプトの表示が変更されます

確認

# uname -n

合わせてhostsも変えておきましょう。

127.0.0.1に[ホスト名]を追加

# vi /etc/hosts
127.0.0.1   [ホスト名] localhost localhost.localdomain

タイムゾーンの変更

# vi /etc/sysconfig/clock

--以下の箇所を変更-- 
ZONE="Asia/Tokyo"
UTC=false

こちらも変更

# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

反映のため再起動を実施

# reboot

確認

# date
2015年 12月 17日 木曜日 17:07:03 JST

ntpでの時間同期設定

# service ntpd start
# chkconfig ntpd on
# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*xxx.xxx.xxx.xxx   xxx.xxx.xxx.xxx    4 u    -   64    1    0.481  -10.558   0.030
 xxx.xxx.xxx.xxx   xxx.xxx.xxx.xxx    5 u    1   64    1    2.293  -16.737   1.021
 xxx.xxx.xxx.xxx     .INIT.          16 u    -   64    0    0.000    0.000   0.000

同期先を変更する場合は以下を修正

# vi /etc/ntp.conf 

--同期先サーバを適宜変更--
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.amazon.pool.ntp.org iburst
server 1.amazon.pool.ntp.org iburst
server 2.amazon.pool.ntp.org iburst
server 3.amazon.pool.ntp.org iburst

確認

「*」がついてるサーバと動機されています。

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*xxx.xxx.xxx.xxx   xxx.xxx.xxx.xxx    4 u    -   64    1    0.481  -10.558   0.030
 xxx.xxx.xxx.xxx   xxx.xxx.xxx.xxx    5 u    1   64    1    2.293  -16.737   1.021
 xxx.xxx.xxx.xxx     .INIT.          16 u    -   64    0    0.000    0.000   0.000

文字コードの変更

設定変更

# vi /etc/sysconfig/i18n

--以下の箇所を変更-- 
LANG=ja_JP.utf8

再起動

# reboot

確認

# locale
LANG=ja_JP.utf8
LC_CTYPE="ja_JP.utf8"
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=

ルートパーティションの拡張

Amazon Linuxでは自動拡張されますが、RHEL6やCentOSではでは拡張されないため確認が必要です。

dracut-modules-growrootのインストールと拡張

# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -i epel-release-6-8.noarch.rpm
# yum -y --quiet install dracut-modules-growroot
# dracut --force --add growroot /boot/initramfs-$(uname -r).img
# shutdown -r now

確認

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       40G  2.3G   36G   6% /
tmpfs           1.8G     0  1.8G   0% /dev/shm

EBSのパーティション作成

1つのEBSに2つのパーティションの作成することを想定しています。パーティションを分けたい場合のみ実行します。(通常は1EBS、1パーティションで利用することが多いと思います)

※今回は/dev/xvdbを対象としています。パスは適宜変更ください。 ※パーティションサイズやパーティションタイプも適宜変更ください。

swap用のパーティションの作成

# fdisk /dev/xvdb
コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 1
最初 シリンダ (1-1697, 初期値 1): 1
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-1697, 初期値 1697): +8G

コマンド (m でヘルプ): t
選択した領域 1
16進数コード (L コマンドでコードリスト表示): 82
領域のシステムタイプを 1 から 82 (Linux スワップ / Solaris) に変更しました

コマンド (m でヘルプ): p

ディスク /dev/xvdb: 14.0 GB, 13958643712 バイト
ヘッド 255, セクタ 63, シリンダ 1697
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0xd65cde81

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/xvdb1               1        1045     8393931   82  Linux スワップ / Solaris

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。

ext4用のパーティションの作成

<br /># fdisk /dev/xvdb

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 2
最初 シリンダ (1046-1697, 初期値 1046):
初期値 1046 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (1046-1697, 初期値 1697):
初期値 1697 を使います

コマンド (m でヘルプ): t
パーティション番号 (1-4): 2
16進数コード (L コマンドでコードリスト表示): 83

コマンド (m でヘルプ): p

ディスク /dev/xvdb: 14.0 GB, 13958643712 バイト
ヘッド 255, セクタ 63, シリンダ 1697
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0xd65cde81

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/xvdb1               1        1045     8393931   82  Linux スワップ / Solaris
/dev/xvdb2            1046        1697     5237190   83  Linux

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。

確認

コマンド (m でヘルプ): p

ディスク /dev/xvdb: 14.0 GB, 13958643712 バイト
ヘッド 255, セクタ 63, シリンダ 1697
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0xd65cde81

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/xvdb1               1        1045     8393931   82  Linux スワップ / Solaris
/dev/xvdb2            1046        1697     5237190   83  Linux

ファイルシステムの作成

作成したパーティションに対してファイルシステムを作成します

# mkfs -t ext4 /dev/xvdb2

マウント

# mkdir /vol1
# mount -t ext4 /dev/xvdb2 /vol1

確認

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       40G  2.3G   36G   6% /
tmpfs           1.8G     0  1.8G   0% /dev/shm
/dev/xvdb2      5.0G  138M  4.6G   3% /vol1

起動時に自動マウントするよう設定。

# vi /etc/fstab

--以下の行を追加-- 
/dev/xvdb2 /vol1   ext4    defaults,nofail        0       2

rebootして、起動後にマウントされているか確認を行う。

swap領域の追加

/dev/xvdb1をswap領域に割り当てることを想定したコマンドです。※パスは適宜変更ください

# mkswap /dev/xvdb1
# swapon /dev/xvdb1

確認

# swapon -s
Filename                Type        Size    Used    Priority
/dev/xvdb1                              partition   8393920 0   -1

起動時にswapが有効になるように設定

# vi /etc/fstab

--以下の行を追加-- 
/dev/xvdb1       none    swap    sw  0       0

さらに再起動してもswapが有効になっていることを確認する

グループ・ユーザー追加

グループを追加

# groupadd -g [グループID] [グループ名]

ユーザーを追加

# useradd -d [ホームディレクトリのパス] -g [グループ名] -G [サブグループ名] -s /bin/bash -u [ユーザーID] [ユーザー名]

パスワードの設定

# passwd [ユーザー名]

不要なユーザはログインできないようにする

# usermod -s /sbin/nologin [ユーザー名]

ec2-userの削除(不要な場合のみ実施)

# userdel -r ec2-user

ssh接続設定

公開鍵認証で接続する場合

# sudo su - [ユーザー名]
# mkdir .ssh
# chmod 700 .ssh
# touch .ssh/authorized_keys
# chmod 600 .ssh/authorized_keys
# vi .ssh/authorized_keys

※authorized_keysに公開鍵を貼り付けます

パスワード認証で接続する場合

# vi /etc/ssh/sshd_config

--以下の行のコメントをはずす--
PasswordAuthentication yes

# service sshd restart

ssh接続できるユーザーを指定する(接続ユーザーの制限)

# vi /etc/ssh/sshd_config

--以下の行を追加-- 
AllowUsers [接続許可するユーザー1] [接続許可するユーザー2] [・・・]

# service sshd restart

ftp接続設定

インストール

# yum install ftp vsftpd -y
# chkconfig vsftpd on
# service vsftpd start

接続を許可するユーザの設定(userlistに記載しているユーザのみ接続を許可するように設定する)

# vi /etc/vsftpd/vsftpd.conf

--以下の行を追加-- 
userlist_deny=NO

# vi /etc/vsftpd/user_list

--接続するを許可するユーザー名を記載する--
userA
userB

# service vsftpd restart

suの制限

wheelグループに所属するユーザーのみsuできるように設定(suできるユーザがいなくならないように、wheelに所属するユーザがいるかは事前に確認すること)

# vi /etc/pam.d/su

--以下の行のコメントをはずす-- 
auth        required    pam_wheel.so use_uid

SELinuxの無効化

SELinuxの無効化設定

# vi /etc/selinux/config

--以下の箇所を変更-- 
SELINUX=disabled

# reboot

確認

# getenforce
Disabled

iptablesの停止

※RHEL6.5だとデフォルトでoffになっていましたが念のため記載

# chkconfig iptables off
# service iptables stop

確認

chkconfig --list | grep iptables
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off

cloud-initの設定

cloud-initのカスタマイズは、以下を参考に

参考

さいごに

今後も追加項目があれば、更新していこうと思います。是非ご活用ください。