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/