この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
コンニチハ、千葉です。
OS初期構築時に色々なサイトを駆け巡って、コマンドを思い出しつつ構築することもあるかと思うので、時間短縮のためコマンド詰め合わせとして残しておきます。今回の対象はRHEL6となります。
- こちらのエントリもありますので参考に【初心者向け】CentOS 7インスタンスの初期設定手順
やりそうなことを、かなり詰め込んだので役に立つかと思います!!
初期設定
ホスト名変更
# 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のカスタマイズは、以下を参考に
参考
- 公式:Amazon Linux インスタンスを設定する
- CentOS on Amazon EC2 でディスクサイズ変更しても変わらないときの対処方法
- 公式:インスタンスストアスワップボリューム
- 公式:Linux インスタンスでのユーザーアカウントの管理
さいごに
今後も追加項目があれば、更新していこうと思います。是非ご活用ください。