Amazon Linuxはできるだけ軽量かつシンプルに設計されており
不必要なアプリケーションやサービスはまったくインストールされていない
設定確認
### AMIバージョン確認 ### [root@ip-172-31-5-180 ~]# cat /etc/system-release Amazon Linux AMI release 2014.09 ### IPV6は無効となっている(netstatで確認可能) ### [root@ip-172-31-5-180 ~]# lv /etc/sysconfig/network | grep "NETWORKING_IPV6" NETWORKING_IPV6=no ### ファイルシステム(ext4) ### [root@ip-172-31-5-180 ~]# df -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/xvda1 ext4 8123812 1000580 7022984 13% / devtmpfs devtmpfs 502064 56 502008 1% /dev tmpfs tmpfs 510020 0 510020 0% /dev/shm [root@ip-172-31-5-180 ~]# lv /etc/fstab | grep "LABEL=/" LABEL=/ / ext4 defaults,noatime 1 1 ### チューニングしようとしたが、以下手法で測定したところ速度は変わらなかった(むしろ遅くなった) ### dd if=/dev/urandom oflag=direct ### fio -rw=randrw -bs=16k -size=100m -iodepth=32 -directory=/tmp -direct=1 -invalidate=1 -runtime=300 -numjobs=8 -name=iotest -ioengine=libaio -group_reporting [root@ip-172-31-5-180 ~]# tune2fs -o journal_data_writeback /dev/sda1 [root@ip-172-31-5-180 ~]# vi /etc/fstab [root@ip-172-31-5-180 ~]# lv /etc/fstab | grep "LABEL=/" LABEL=/ / ext4 barrier=0,noatime,data=writeback,errors=remount-ro 0 1 ### Linux I/Oスケジューラ ### [root@ip-172-31-5-180 ec2-user]# cat /sys/block/xvda/queue/scheduler [noop]
初期設定
### rootパスワード設定 ### [root@ip-172-31-5-180 ~]# passwd Changing password for user root. New password: Retype new password: passwd: all authentication tokens updated successfully. ### FWの無効化 ### [root@ip-172-31-5-180 ~]# chkconfig iptables off [root@ip-172-31-5-180 ~]# chkconfig ip6tables off [root@ip-172-31-5-180 ~]# chkconfig --list iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@ip-172-31-5-180 ~]# chkconfig --list ip6tables ip6tables 0:off 1:off 2:off 3:off 4:off 5:off 6:off ### TimeZoneの変更 ### [root@ip-172-31-5-180 ~]# date; cp /usr/share/zoneinfo/Japan /etc/localtime; date Sat Sep 27 12:07:05 UTC 2014 cp: overwrite ‘/etc/localtime’? y Sat Sep 27 21:07:10 JST 2014 ### localeの変更 ### [root@ip-172-31-5-180 ec2-user]# cat /etc/sysconfig/i18n LANG=en_US.UTF-8 [root@ip-172-31-5-180 ec2-user]# locale -a | grep ja # 利用できるロケールを確認 ja_JP ja_JP.eucjp ja_JP.ujis ja_JP.utf8 japanese japanese.euc [root@ip-172-31-5-180 ec2-user]# vi /etc/sysconfig/i18n [root@ip-172-31-5-180 ec2-user]# ll total 1024004 -rw-r--r-- 1 root root 1048576000 Sep 27 23:48 file # ログインし直すと日本語環境となる [root@ip-172-31-5-180 ec2-user]# echo $LANG ja_JP.UTF-8 [root@ip-172-31-5-180 ec2-user]# ll 合計 1024004 -rw-r--r-- 1 root root 1048576000 9月 27 23:48 file [root@ip-172-31-5-180 ec2-user]# yum install man-pages-ja # 日本語版manのインストール ### ホスト名の変更 ### [root@ip-10-10-10-10 ec2-user]# vi /etc/sysconfig/network ... HOSTNAME=proxy.akat.info ... [root@ip-10-10-10-10 ec2-user]# vi /etc/hosts 127.0.0.1 proxy.akat.info proxy localhost localhost.localdomain [root@proxy ec2-user]# reboot ... [root@proxy ec2-user]# hostname proxy.akat.info ### スワップ追加 ### [root@ip-172-31-5-180 ec2-user]# swapon -s http://www.agilegroup.co.jp/technote/ec2-initial-settings.html ### sysctl.conf ### [root@ip-172-31-5-180 ec2-user]# lv /etc/sysctl.conf http://ora.geo.jp/?p=465 http://netbuffalo.doorblog.jp/archives/4048147.html http://hiroki.jp/2009/11/11/604/ http://alpha-netzilla.blogspot.jp/2012/12/parameter-kernel.html http://blog.isnext.net/issy/archives/190 # 送信した接続要求のうち、 まだ接続先から ACK を受け取っていないものを記憶しておく最大数 net.ipv4.tcp_max_syn_backlog = 4096 # パケット受信時にキューにつなぐことのできるパケットの最大数 net.core.netdev_max_backlog = 4096 net.core.somaxconn = 4096 # 接続を受付側としてオープンするとき、 カーネルは SYN に ACK を詰め込んで送り、先に受けとった SYN を確認します。 これは 3 方向ハンドシェークの 2 番目の部分です。 この設定は、カーネルが接続をあきらめるまでに送る、 SYN+ACK パ>ケットの再送数を指定する net.ipv4.tcp_synack_retries = 3 物理メモリを使い切るまでスワップは利用しない vm.swappiness = 0 ulimitをあげておく ulimit -n オープン可能なファイルディスクリプタ数を確認 /etc/security/limits.conf ファイルディスクリプタ数を引き上げる
cloud-init
EC2インスタンスを起動する時に設定を自動化できる
cloud-initの既定では、インスタンスの初回起動時に自動でセキュリティアップデートを実行するため、無効にしておく
[root@ip-172-31-5-180 ec2-user]# vi /etc/cloud/cloud.cfg === repo_upgrade: none === [root@ip-172-31-5-180 ec2-user]# tail -f /var/log/cloud-init.log
時間
[root@ip-172-32-0-221 ec2-user]# cp /usr/share/zoneinfo/Japan /etc/localtime cp: `/etc/localtime' を上書きしますか? y [root@ip-172-32-0-221 ec2-user]# date 2015年 1月 15日 木曜日 21:41:47 JST ### 以下を設定しないとyum updateなどでglibcパッケージが更新されるとJSTからUTCに戻る ### [root@ip-172-32-0-221 ec2-user]# vi /etc/sysconfig/clock ==== ZONE="Asia/Tokyo" UTC=False ====
パッケージ管理-yum-
login as: ec2-user
Authenticating with public key "imported-openssh-key"
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2014.09-release-notes/
No packages needed for security; 1 packages available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-172-31-5-180 ~]$ id
uid=500(ec2-user) gid=500(ec2-user) groups=500(ec2-user),10(wheel)
### 設定ファイル ###
[root@ip-172-31-5-180 ~]# vi /etc/yum.conf
### リポジトリ ###
[root@ip-172-31-5-180 ~]# ls /etc/yum.repos.d/
amzn-main.repo amzn-nosrc.repo amzn-preview.repo amzn-updates.repo epel.repo epel-testing.repo
### インストール済みパッケージ確認 ###
[root@ip-172-31-5-180 ec2-user]# yum list installed
…
upstart.x86_64 0.6.5-13.3.13.amzn1 installed
util-linux.x86_64 2.23.2-16.22.amzn1 installed
vim-common.x86_64 2:7.4.027-2.28.amzn1 installed
vim-enhanced.x86_64 2:7.4.027-2.28.amzn1 installed
vim-filesystem.x86_64 2:7.4.027-2.28.amzn1 installed
vim-minimal.x86_64 2:7.4.027-2.28.amzn1 installed
wget.x86_64 1.14-8.11.amzn1 installed
…
### パッケージの更新確認 ###
[root@ip-172-31-5-180 ec2-user]# yum check-update
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00
amzn-updates/latest | 2.3 kB 00:00
aws-cli.noarch 1.4.4-1.0.amzn1 amzn-updates
[root@ip-172-31-5-180 ec2-user]# yum update
Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
--> Running transaction check
---> Package aws-cli.noarch 0:1.4.3-1.1.amzn1 will be updated
---> Package aws-cli.noarch 0:1.4.4-1.0.amzn1 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================================
Updating:
aws-cli noarch 1.4.4-1.0.amzn1 amzn-updates 489 k
Transaction Summary
=======================================================================================================================================
Upgrade 1 Package
Total download size: 489 k
Is this ok [y/d/N]: y
Downloading packages:
aws-cli-1.4.4-1.0.amzn1.noarch.rpm | 489 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : aws-cli-1.4.4-1.0.amzn1.noarch 1/2
Cleanup : aws-cli-1.4.3-1.1.amzn1.noarch 2/2
Verifying : aws-cli-1.4.4-1.0.amzn1.noarch 1/2
Verifying : aws-cli-1.4.3-1.1.amzn1.noarch 2/2
Updated:
aws-cli.noarch 0:1.4.4-1.0.amzn1
### パッケージの更新一覧 ###
[root@ip-172-31-5-180 ec2-user]# yum list updates
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00
amzn-updates/latest | 2.3 kB 00:00
### パッケージの検索 ###
[root@ip-172-31-5-180 ec2-user]# yum search mysql
Loaded plugins: priorities, update-motd, upgrade-helper
========================================================= N/S matched: mysql ==========================================================
MySQL-python.x86_64 : An interface to MySQL
apr-util-mysql.x86_64 : APR utility library MySQL DBD driver
collectd-mysql.x86_64 : MySQL plugin for collectd
dovecot-mysql.x86_64 : MySQL back end for dovecot
exim-mysql.x86_64 : MySQL lookup support for Exim
freeradius-mysql.x86_64 : MySQL support for freeradius
libdbi-dbd-mysql.x86_64 : MySQL plugin for libdbi
lighttpd-mod_mysql_vhost.x86_64 : Virtual host module for lighttpd that uses a MySQL database
mod_auth_mysql.x86_64 : Basic authentication for the Apache web server using a MySQL database
mysql.noarch : MySQL meta package
mysql-bench.noarch : MySQL benchmark scripts and data
mysql-common.noarch : Common files needed for the MySQL client or server
mysql-connector-java.noarch : Official JDBC driver for MySQL
mysql-connector-odbc.x86_64 : ODBC driver for MySQL
…
### パッケージのインストール ###
[root@ip-172-31-5-180 ec2-user]# yum install mysql55-common
Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
--> Running transaction check
---> Package mysql55-common.x86_64 0:5.5.39-1.2.amzn1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================================
Installing:
mysql55-common x86_64 5.5.39-1.2.amzn1 amzn-main 48 k
Transaction Summary
=======================================================================================================================================
Install 1 Package
Total download size: 48 k
Installed size: 480
Is this ok [y/d/N]: y
Downloading packages:
mysql55-common-5.5.39-1.2.amzn1.x86_64.rpm | 48 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mysql55-common-5.5.39-1.2.amzn1.x86_64 1/1
Verifying : mysql55-common-5.5.39-1.2.amzn1.x86_64 1/1
Installed:
mysql55-common.x86_64 0:5.5.39-1.2.amzn1
Complete!
### パッケージの削除 ###
[root@ip-172-31-5-180 ec2-user]# yum remove mysql55-common
Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
--> Running transaction check
---> Package mysql55-common.x86_64 0:5.5.39-1.2.amzn1 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================================
Removing:
mysql55-common x86_64 5.5.39-1.2.amzn1 @amzn-main 480
Transaction Summary
=======================================================================================================================================
Remove 1 Package
Installed size: 480
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing : mysql55-common-5.5.39-1.2.amzn1.x86_64 1/1
Verifying : mysql55-common-5.5.39-1.2.amzn1.x86_64 1/1
Removed:
mysql55-common.x86_64 0:5.5.39-1.2.amzn1
Complete!
### 全てのキャッシュを削除する-yumがエラーのときに利用すると解決するかも ###
[root@ip-172-31-5-180 ~]# yum clean all
Loaded plugins: priorities, update-motd, upgrade-helper
Cleaning repos: amzn-main amzn-updates
Cleaning up everything
### トランザクション処理-yumがエラーのときに利用すると解決するかも ###
[root@ip-172-31-5-180 ~]# yum-complete-transaction
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00
amzn-main/latest/group | 35 kB 00:00
amzn-main/latest/primary_db | 3.1 MB 00:00
amzn-updates/latest | 2.3 kB 00:00
amzn-updates/latest/group | 35 kB 00:00
amzn-updates/latest/updateinfo | 180 kB 00:00
amzn-updates/latest/primary_db | 4.9 kB 00:00
No unfinished transactions left.
### amzn-mainリポジトリからインストールしたパッケージを調べる ###
[root@ip-172-32-0-221 ec2-user]# yum list installed | grep yum-utils
yum-utils.noarch 1.1.31-18.17.amzn1 installed
[root@ip-172-32-0-221 ec2-user]# yumdb search from_repo amzn-main
読み込んだプラグイン:priorities, update-motd, upgrade-helper
GeoIP-1.4.8-1.5.amzn1.x86_64
from_repo = amzn-main
apr-1.5.0-2.11.amzn1.x86_64
from_repo = amzn-main
apr-util-1.4.1-4.14.amzn1.x86_64
from_repo = amzn-main
apr-util-ldap-1.4.1-4.14.amzn1.x86_64
from_repo = amzn-main
...
lvのインストール
[root@ip-172-31-5-180 src]# yum install ncurses-devel [root@ip-172-31-5-180 src]# wget http://www.ff.iij4u.or.jp/~nrt/freeware/lv451.tar.gz [root@ip-172-31-5-180 src]# tar xzvf lv451.tar.gz [root@ip-172-31-5-180 src]# cd lv451/build [root@ip-172-31-5-180 build]# ../src/configure [root@ip-172-31-5-180 build]# make [root@ip-172-31-5-180 build]# make install [root@ip-172-31-5-180 build]# cp lv /usr/bin/
http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/lv-4.51-1.el6.rf.x86_64.rpm
からrpmファイルを取得し、
rpm -ivh lv-4.51-1.el6.rf.x86_64.rpm (-h:処理の進行状況を「#」記号で表示する -v:操作対象のパッケージ名を表示)
でインストールするという方法もあり
MariaDB
[root@ip-172-31-5-180 ec2-user]# vi /etc/yum.repos.d/MariaDB.repo
=====
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
=====
[root@ip-172-31-5-180 ec2-user]# yum search mariadb
読み込んだプラグイン:priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00
amzn-updates/latest | 2.3 kB 00:00
mariadb | 1.9 kB 00:00
mariadb/primary_db | 18 kB 00:00
============================= N/S matched: mariadb =============================
MariaDB-Galera-server.x86_64 : MariaDB: a very fast and robust SQL database
: server
MariaDB-Galera-test.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-client.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-common.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-compat.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-devel.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-server.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-shared.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-test.x86_64 : MariaDB: a very fast and robust SQL database server
Name and summary matches only, use "search all" for everything.
[root@ip-172-31-5-180 ec2-user]# yum install MariaDB-server
…
[root@ip-172-31-5-180 ec2-user]# /etc/init.d/mysql start
Starting MySQL.. SUCCESS!
FTP
[root@ip-172-31-5-180 conf.d]# yum search vsftpd … [root@ip-172-31-5-180 conf.d]# vi pure-ftpd.conf ===== PureDB /etc/pure-ftpd/pureftpd.pdb PAMAuthentication no #UnixAuthentication yes ===== [root@ip-172-31-5-180 conf.d]# pure-pw useradd ftpuser -u www-data -g www-data -d /var/www/ [root@ip-172-31-5-180 conf.d]# pure-pw mkdb
http://www.server-world.info/query?os=CentOS_5&p=ftp&f=3
http://www.servermom.org/how-to-install-pure-ftpd-on-centos-6-4/789/
http://tejunsho.com/pure-ftpd/20110331000114.html
SMB
http://futurismo.biz/archives/1390
脆弱性対応
Amazon Linux AMI Security Center
Amazon Linuxには独自のセキュリティセンターがあり、こちらから脆弱性への対応方法などを確認可能
参考URL
インストールだけじゃない!yumの設定から便利な使い方まで徹底的に解説
http://oxynotes.com/?p=6777
AWS(EC2) Amazon Linux 初期環境設定
http://tanyaolinux.blogspot.jp/2013/01/amazon-linux-ec2.html
CentOS ext4ファイルシステム
http://www.unix-power.net/linux/ext4.html
yum でインストールした rpm がどの repository のものか調べる
Linux インスタンスのホスト名の変更
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/set-hostname.html
Amazon Linuxの特徴とCentOSとの違い まとめ
http://dev.classmethod.jp/cloud/aws/amazon-linux-centos-rhel-difference/