!!!インスタンスの起動
!!セキュリティグループ
予めセキュリティグループ作成しておいて、選択する。
!!サブネット(ゾーン)
ap-northeast-1c
を選ぶ。
!!ロール
EC2 API tools を利用する場合は、ロールを設定しておく方が良い。
アクセスキーでも可能だが、セキュリティ的にはロールを利用したほうが良い。
インスタンスを起動するときにロールの設定を忘れずに。
!!!細々したこと
http://d.hatena.ne.jp/bluepapa32/20101108/1289187846
!timezone の変更
$ date
Thu Nov 4 14:58:50 UTC 2010
UTC になっている。
$ sudo cp -p /usr/share/zoneinfo/Japan /etc/localtime
$ date
Thu Nov 4 23:59:00 JST 2010
JST になった。
!Locale の変更の補足
http://d.hatena.ne.jp/nekoruri/20150130/glibclocaltime
http://d.hatena.ne.jp/necoak/20120702/1341266925
正しくはtzdata-updateを使う。
/etc/localtime を直接編集した場合、glibcのアップデートなどの際に戻ってしまう可能性がある。
/etc/sysconfig/clock にタイムゾーンを書く
vi /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=false
ARC=false
:ZONE:ローカルタイムゾーンの設定。
:UTC:ハードウェアクロックに設定するタイムゾーンの設定。
:ARC:ARCコンソール特有の epoc time を使用するための設定
:SRM:SRMコンソール特有の epoc time を使用するための設定
tzdata-updateを実行する
sudo /usr/sbin/tzdata-update
!時刻同期
CentOS7ではntpdではなく、chronyに変わった。
ntpdは不要。
systemctl status chronyd
systemctl enable ntpd
!umask
vi .bashrc
umask 022
!su、sudo の設定
vi /etc/pam.d/su
auth required pam_wheel.so use_uid
コメントイン。
visudo
%wheel ALL=(ALL) NOPASSWD: ALL
secure_path に /usr/local/bin を追加しても良いかも。
管理者ユーザだけグループ追加
usermod -a -G wheel ユーザ
!!!スワップ領域
http://cloudstory.in/2012/02/adding-swap-space-to-amazon-ec2-linux-micro-instance-to-increase-the-performance/
http://x68000.q-e-d.net/~68user/unix/pickup?dd
標準のままだとスワップ領域を持っていないこともある。
なくてもなんとかなるけど、作りたい時はスワップ領域をイメージファイルとして作成する
!スワップ領域のイメージファイル作成
dd if=/dev/zero of=/swapfile bs=1M count=1024
chmod 0600 /swapfile
!スワップ領域の初期化
mkswap /swapfile
!スワップ領域の有効化
swapon /swapfile
もし /etc/fstab を編集後なら
swapon -a
でも良い。
!スワップ領域の確認
swapon -s
!/etc/fstab: の編集
/swapfile swap swap defaults 0 0
!!!SSH
!!パスワードログインの禁止
PasswordAuthentication yes
を
PasswordAuthentication no
に修正
!!ポート変更
デフォルトのポート番号22を他のポートにしておくといたずらされにくくなる。
ファイヤーウォールとセキュリティグループの設定でポートを開いておくのを忘れずに。
!!!ファイヤーウォールの設定
EC2のセキュリティグループで設定しているので、firewalld は無効にしても問題ない。
systemctl disable firewalld
もし、firewalld でも制御したい場合は以下のようにセキュリティグループで設定したポートを開放する。
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --add-service=ftp --permanent
sudo firewall-cmd --zone=public --add-port=60000-60030/tcp --permanent
sudo firewall-cmd --zone=public --add-port=sshのポートを変更した場合は変更したポート/tcp --permanent
sudo firewall-cmd --reload
設定されているか確認するには、iptablesを使えば良い。
sudo iptables --list -n
外部からのメールを受信する場合
sudo firewall-cmd --zone=public --add-port=25/tcp --permanent
ルールを消す場合は
sudo firewall-cmd --zone=public --remove-port=25/tcp --permanent
!!!ダイナミック DNS
http://b.n-at.me/archives/182
http://shikichi.ddo.jp/dice_install.html
http://www.jitaku-server.net/domain_dice.html
!!DiCE の設定
!設定
http://ddo.jp に登録
http://www.hi-ho.ne.jp/yoshihiro_e/dice/linux.html からダウンロード
解凍して適当なディレクトリに移動。(/usr/local/lib/DiCE とする)
cd /usr/local/lib/DiCE
./diced | nkf -uw
で起動する。 EUC で出力してくるので、文字化け対策のために nkf する。
もし ld-linux.so.2 不足でエラーが出る場合は
yum install glibc.i686
でライブラリ追加。
=-=-=- DiCE DynamicDNS Client -=-=-=
Version 0.19 for Japanese
Copyright(c) 2001 sarad
:?
? でヘルプ。
setupでDiCEの環境設定をします。
:setup
IPアドレスの検出方法を指定してください
(0) 自動検出
(1) ローカルのネットワークアダプタから検出
(2) 外部のスクリプトから検出
<現在:0>
(N)変更しない (P)戻る
>n
-------------------------------------------------
プライベートIPアドレスも検出対象ですか? (Y/N)
<現在:いいえ>
(P)戻る
>n
-------------------------------------------------
IPアドレスの検出をテストしますか? (Y/N)
(P)戻る
>y
検出IPアドレス>xxx.xxx.xxx.xxx
-------------------------------------------------
IPアドレスの検出をテストしますか? (Y/N)
(P)戻る
>n
-------------------------------------------------
IPアドレスをチェックする間隔を指定してください(分)
設定可能範囲は5分以上です
<現在:10>
(N)変更しない (P)戻る
>n
=================================================
DNSサーバーの負荷を軽減するために頻繁なDNS更新を防ぐ必要があります
前回の更新から一定時間DNS更新処理を行わないように保護時間を設定して
ください(分) 設定可能範囲は10分から1440分です
<現在:60>
(N)変更しない (P)戻る
>30
=================================================
設定を保存しますか? (Y/N)
(P)戻る
>y
設定を保存しました
=================================================
add でイベント追加
:add
新しくイベントを追加します
DynamicDNSサービス名を入力してください
"?"で対応しているサービスを一覧表示します
(P)戻る
>? <--対応しているサービスを検索
ZENNO.COM livedoor MyDNS.JP pcc.jp
JPN.ch MyIP.US @nifty StaticCling
MyServer ddns.ca p2p did.expoze.com
Dynamx WebReactor unicc Earth
DNS2Go EveryDNS Now.nu dynDNS.it
onamae.com DION ODN ysdn
ddo.jp Netservers todd USA
cjb Dyn.ee BIGLOBE dnip
my-domain ZoneEdit ZiVE yi
theBBS SelfHOsT No-IP nicolas
miniDNS Microtech instat ieServer
HAMMERNODE GetmyIP Dynup Dynu
dyns DynDSL DynDNSdk dyndns
DtDNS dnsQ dhs DDNS.nu
cheapnet changeIP ARTofDNS VALUEDOMAIN
ODS JSPEED IPDYN DnsTokyo
=================================================
>ddo.jp <--今回はddo.jpを使用
-------------------------------------------------
<< Dynamic DO!.jp >>
URL: http://ddo.jp/
*** 情報 ***
ユーザー名の入力は不要です
独自ドメインの場合はドメイン名を”ホスト”の所へ入力してください
=================================================
ドメイン名を入力してください
"?"でドメイン一覧を表示します
(P)戻る
>ddo.jp <--取得したドメインが***.ddo.jpの場合(***を除いた部分)
=================================================
ホスト名を入力してください
(P)戻る
>*** <--取得したドメインが***.ddo.jpの場合(ddo.jpを除いた部分)
=================================================
ログインユーザ名を入力してください
(P)戻る
>*** <--取得したドメインが***.ddo.jpの場合(ddo.jpを除いた部分)
=================================================
ログインパスワードを入力してください
(P)戻る
>?????? <--登録時に設定したパスワード
=================================================
登録するIPアドレスを入力してください
空白にすると現在のIPアドレスを自動検出します
(P)戻る
> <--空白のまま [enter]
このイベントに題名を付けてください
(P)戻る
>***.ddo.jpの更新 <--わかりやすい名前を設定
=================================================
このイベントを実行するスケジュールを設定します
-------------------------------------------------
実行する頻度を指定してください (番号入力)
(0)1回のみ (1)1日1回 (2)1週間に1回 (3)1ヵ月に1回
(4)その他の周期 (5)IPアドレス変化時 (6)起動時
(N)変更しない (P)戻る
>5 <--サーバーに負荷をかけない
-------------------------------------------------
IPアドレスがあまり変化しない環境の場合、更新せずに一定期間を過ぎると
アカウントを削除されてしまうことがあります
IPアドレスの変化が無い時に実行する間隔を指定してください
(0)7日毎 (1)14日毎 (2)21日毎 (3)28日毎
(4)35日毎 (5)56日毎 (6)84日毎
(N)変更しない (P)戻る
>0 <--ドメインが削除されないよう短めに設定
=================================================
詳細オプションを設定します
-------------------------------------------------
[ サービスタイプ ]
(0)無料 (1)有料
番号>0
-------------------------------------------------
[ SSL ]
(0)使用する (1)使用しない
番号>1
-------------------------------------------------
[ オフライン ]
(0)No (1)Yes
番号>0
=================================================
このイベントを有効にしますか? (Y/N)
(イベントの有効/無効は"EN/DIS"コマンドで切替えられます)
>y <--イベントを有効にする
=================================================
イベントを保存しますか? (Y/N)
(イベントの有効/無効は"EN/DIS"コマンドで切替えられます)
>y <--イベントを保存する
!!IPアドレス検出について
一部の環境ではIPアドレスの検出が止まってしまう。
IPv6だと止まってしまうような気がする。
対応策としては、外部スクリプトを利用してIPアドレスの検出を行う。
外部スクリプトとしては
http://dyn.value-domain.com/cgi-bin/dyn.fcg?ip
http://checkip.dyndns.org/
http://info.ddo.jp/remote_addr.php/
などがある。これを指定することで検出が可能になる。
:setup
IPアドレスの検出方法を指定してください
(0) 自動検出
(1) ローカルのネットワークアダプタから検出
(2) 外部のスクリプトから検出
<現在:0>
(N)変更しない (P)戻る
>2
-------------------------------------------------
スクリプトのURLを入力してください
<現在:>
(N)変更しない (P)戻る
>http://checkip.dyndns.org/
-------------------------------------------------
プライベートIPアドレスも検出対象ですか? (Y/N)
<現在:いいえ>
(P)戻る
>n
-------------------------------------------------
IPアドレスの検出をテストしますか? (Y/N)
(P)戻る
>y
検出IPアドレス>xxx.xxx.xxx.xxx
!!サービス登録
vi /etc/systemd/system/dice.service
[Unit]
Description=The ddojp
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=oneshot
# EnvironmentFile=/usr/local/lib/DiCE/diced
ExecStart=/usr/local/lib/DiCE/diced -l -e 0
# ExecReload=/bin/kill -HUP ${MAINPID}
# ExecStop=/bin/kill ${MAINPID}
# RemainAfterExit=yes
# PrivateTmp=true
[Install]
WantedBy=runlevel3.target
権限付与
chmod 755 usr/lib/systemd/system/dice.service
サービス登録
systemctl enable dice.service
サービススタート
systemctl start dice.service
!!ログ確認
nkf -Ew /usr/local/lib/DiCE/log/events.log
!!cron 登録
普通は必要ないと思うのだけど、一週間に一度の更新が正常に動作していないことがある。
とりあえず、cron で一週間に一度の更新をする。
sudo crontab -e
00 02 * * 5 /usr/local/lib/DiCE/diced -l -e 0 > /dev/null
毎週金曜日の2:00にIP更新をする。
!!!Apache
!!インストール
yum install httpd
systemctl enable httpd
!!設定
!サーバの設定
httpd.confの最後に追記するか、etc/httpd/conf.dに設定ファイルを作成する。
vi /etc/httpd/conf/httpd.conf
KeepAlive On
KeepAliveTimeout 5
ServerTokens Prod ← 余計な情報を出さない
ServerSignature Off ← 余計な情報を出さない
!メモリを食いつぶさないようにプロセス数を制御する
http://www.happyquality.com/2012/02/01/1905.htm
http://9ensan.com/blog/server/sakura-vps-httpd-confi/
以下の内容をhttpd.confの最後に追記する。
(/etc/httpd/conf.modules.dやetc/httpd/conf.dにファイルを作成してもよい)
StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 32
MaxClients 32
MaxRequestsPerChild 500
ちなみに、httpd が prefork なのか worker なのかは
httpd -V | grep MPM
でわかる
!public_html の設定
/etc/httpd/conf.d/userdir.confを編集する
vi /etc/httpd/conf.d/userdir.conf
UserDir public_html ← public_html を有効
#AllowOverride FileInfo AuthConfig Limit Indexes
AllowOverride FileInfo AuthConfig Limit Indexes Options
#Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
!Welcome 非表示
vi /etc/httpd/conf.d/welcome.conf
Options -Indexes
# ErrorDocument 403 /error/noindex.html
!!CGI を使う
yum install perl
yum install php
php.iniのタイムゾーンを設定しておく
date.timezone = "Asia/Tokyo"
.htaccess
Options +ExecCGI -Indexes
AddHandler cgi-script cgi pl
perl の実行権限は suExec によりホーム以下の場合は各ユーザの権限で実行される。
php での実行は、apache ユーザで実行されるので注意。
所有者をapacheにするか、sgid と apache の umask の設定で対処する
!!必要なライブラリの追加
yum install perl-CGI
yum install perl-GD
yum install perl-Data-Dumper
yum install php-gd
!!必要に応じてクローラ対策を行う
[[クローラー対策]]
bingボットの行儀が悪いので
vi /var/www/html/robots.txt
User-agent: bingbot
Disallow: /
とか。
!!!vsftpd
yum -y install vsftpd
sudo systemctl enable vsftpd
vi /etc/vsftpd/vsftpd.conf
connect_from_port_20=NO ← アクティブモードのデータ転送用ポートを20に固定するか
anonymous_enable=NO ← anonymousユーザ(匿名ユーザ)のログイン禁止
chroot_local_user=YES ← デフォルトでホームディレクトリより上層へのアクセスを禁止する
userlist_deny=NO ← user_list に書かれているユーザのみを許可する
use_localtime=YES ← タイムスタンプ時間を日本時間にする
pasv_addr_resolve=YES ← PASVモード接続先IPアドレスをホスト名から取得する
pasv_address=hogehoge.ddo.jp ← PASVモード接続先IPアドレスが牽けるホスト名※
pasv_min_port=60000 ← PASVモード接続時の最小ポート番号
pasv_max_port=60030 ← PASVモード接続時の最大ポート番号
force_dot_files=YES ← .htaccess のような隠しファイルも表示する
allow_writeable_chroot=YES ← chroot先が書き込み可能でも許可する。vsftpd 3.x.xはこれがないと接続できない。
listen=YES ← IPv4 ソケットのみリッスンするか
listen_ipv6=NO ← IPv6 ソケットのみリッスンするか
この場合は 60000 〜 60030 も Security Group の設定で通信を許可する
!ユーザーリストの設定
接続を許可するユーザのリストを編集する
vi /etc/vsftpd/user_list
!ファイルリストの表示について
.htaccessでファイルリストを表示する場合、以下の設定にしておく
文字コードの指定とファイル名の長さを自動に設定。
Options Indexes
IndexOptions Charset=UTF-8
IndexOptions NameWidth=*
!!!メール送信設定
sendmail コマンドで外部へメールを送る。
ただし、メールサーバは建てない。
なので、他のメールサーバにリレーしてもらう。
具体的な方法は、[[sendmailコマンドのsmtpサーバの設定]]参照。
!!!バックアップジョブ
EC2 API tools を使ってcronでスナップショットを取得してバックアップを取る。
!!EC2 API tools をインストールする
[[Amazon EC2 に EC2 API tools をインストール]]
!!スナップショットによるバックアップ
[[Amazon EC2 を snapshot でバックアップ]]
!!!SSL設定
[[Let's EncryptでSSL化]]
!!!メンテナンス記録
!!2023/11/13 DiCE起動内容修正
dicedが常にCPU10%前後使用しているためdicedを常時起動するのを止めた。
AWsは起動時にIPが決定し、起動中はIPが変わらないため起動後に一度だけdicedを実行すれば良い。
daemonを起動したままにする必要がない。
そのため、systemdで起動する内容を変更した。
!変更前
[Unit]
Description=The ddojp
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=notify
EnvironmentFile=/usr/local/lib/DiCE/diced
ExecStart=/usr/local/lib/DiCE/diced -d -l
ExecReload=/bin/kill =HUP ${MAINPID}
ExecStop=/bin/kill ${MAINPID}
RemainAfterExit=yes
PrivateTmp=true
[Install]
WantedBy=runlevel3.target
!変更後
[Unit]
Description=The ddojp
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=oneshot
# EnvironmentFile=/usr/local/lib/DiCE/diced
ExecStart=/usr/local/lib/DiCE/diced -l -e 0
# ExecReload=/bin/kill -HUP ${MAINPID}
# ExecStop=/bin/kill ${MAINPID}
# RemainAfterExit=yes
# PrivateTmp=true
[Install]
WantedBy=runlevel3.target
!!2023/11/03 IPv6化
2024/2からグローバルIPv4が有料化されるためIPv6化しようとしたが、結果的には失敗。
仮にIPv6で通信できたとしても、ddo.jp が無料のままだとIPv6運用ができないためIPv4のまま運用する。
やったことを記録する。
!参考
https://blog.serverworks.co.jp/amazonvpc-ipv6
!AWSのネットワーク周りのIPv6化
* VPCのCIDRにIPv6を追加
* subnetにIPv6 CIDR追加
* ルートテーブルに ::/0 のルート追加
* セキュリティグループにのソース ::/0 からの通信許可
* 対象EC2のネットワークインターフェイスにIPv6のアドレスを割当
!EC2のIPv6有効化
上記設定したがそもそもEC2インスタンスのOS上のIPv6が有効になっていなかった。
そのため、以下のファイルを編集してIPv6を有効化した。
IPv6のアドレスが付与されたように見えたが、通信がうまくできなかったため戻した。
* vim /etc/sysctl.d/99-sysctl.conf
** #net.ipv6.conf.all.disable_ipv6 = 1
** #net.ipv6.conf.default.disable_ipv6 = 1
** net.ipv6.conf.all.disable_ipv6 = 0
** net.ipv6.conf.default.disable_ipv6 = 0
* vim /etc/sysconfig/network-scripts/ifcfg-eth0
** IPV6ADDR=xxxx:xxxx:xxxx <- 上記で振り出したIPv6のアドレス
!!2021/04/28 certbot更新
Let's Encryptから ACMEv1のサポート切るから、ACMEv2使えるクライアントにアップデートしてねってメールがきた。
yum update certbot
でアップデート。
certbot renew --dry-run
で動作確認。httpdの再起動でエラーって出るけど、これは無視して良い。
!!2021/02/11 dockerインストール
dockerをインストールする際に、SELinuxが有効になるため
dockerインストール後にSELinuxを無効にした。
dockerをインストールしたは良いが、特に利用する予定はないため、サービスは無効のまま。
!!2020/10/29 FreshRSS設定変更
FreshRSSからnitter.netにアクセスをしていたが、接続を拒否られた模様。
FreshRSSのcurl時にproxyを通すように設定ファイルを修正。
その過程でEC2でdocker入れて、dockerグループしたりしたが、EC2が起動しなくなった。
dockerをインストールした際に、SELinuxが有効になり、SSHが22ポート以外で起動できなくなっていたため。
!!2019/11/30 SSL証明書期限切れ
証明書の期限切れが発生した。cronで毎月1日に更新するように設定していたが、先月の実行が失敗していた。
(たぶん、ネットワーク等の不調と思われる)
期限切れの月の更新に失敗してしまうと、そのまま期限切れになってしまうので、毎月1日と15日に実行するように修正した。
!!2019/03/10 データストレージ縮小
データ用のストレージがほとんど使われていないので縮小した。
ストレージの縮小機能は無いので、新しいストレージを作成してデータコピーする。
!ストレージ追加
+EC2コンソールでストレージ追加、アタッチ
+ディスクフォーマット
++パーティションは作成せずに、loopとした。後にストレージを拡張する際に、拡張が少し楽になるため。[[ディスク、パーティションの情報確認]]
++sudo mkfs -t ext4 /dev/xvdg
+ラベル設定
++sudo e2label /dev/xvdf DATA
+データコピー
++rsync -av コピー元 コピー先
+旧データストレージをでアタッチ
++インスタンスを止めて、ストレージをでアタッチ
+今後ストレージを拡張するとき
++EC2のコンソールでストレージを拡張
++sudo resize2fs /dev/xvdf
!vsftpの参照先を追加したストレージにする
vsftpでchrootしているため、追加したストレージのディレクトリにシンボリックリンクを貼ってもvsftpでは参照できない。
mount --bind
を使って追加したストレージを参照できるようにする。/etc/fstabに以下のようなものを追加
マウント元 マウント先 none bind 0 0
!!SSL化
[[Let's EncryptでSSL化]]参照
!!2018/01/13 外部メールの受信設定
AWS Certificate Manager の SSLを利用するためにドメイン宛のメールを受信するために以下を設定
+セキュリティグループで 25/tcp を許可
+firewall-cmd --zone=public --add-port=25/tcp --permanent
+/etc/postfix/main.cf を編集
++myhostname = xxx.ddo.jp
++mydomain = xxx.ddo.jp
++myorigin = $mydomain
++inet_interfaces = all
ACMのSSLはEC2では利用できないことがわかったため、一部の設定を戻す。
+セキュリティグループで 25/tcp を拒否
+firewall-cmd --zone=public --remove-port=25/tcp --permanent
+/etc/postfix/main.cf を編集
++inet_interfaces = localhost
!!2016/03/05 ストレージ追加
OS用、データ用のストレージを分けて、バックアップはOS用ストレージだけ取ることにした。
!準備
sudo yum install parted
sudo yum install e2fsprogs
!ストレージ追加
新しいボリュームを作成し
/dev/sdf
として追加した。
!フォーマットとマウント
パーティッションは作成せずに、デバイスをそのままフォーマットした。
sudo mkfs -t ext4 /dev/xvdf
ラベル設定
sudo e2label /dev/xvdf DATA
/etc/fstab
LABEL=DATA /mnt/data ext4 defaults 0 0
!データ用ストレージの拡張を行う場合
+データ用ボリュームのスナップショット作成
+スナップショットからボリュームを作成
++容量を拡張する
+マウントした状態で拡張する場合
++resize2fs /dev/xvdf
+マウントしない状態で拡張する場合
++sudo e2fsck -f /dev/xvdf
++sudo resize2fs /dev/xvdf
!!2016/03/04 ストレージ拡張
データ量を増やすことになったので、ストレージの拡張を行った。
参考
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-expand-volume.html#recognize-expanded-volume-linux
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/storage_expand_partition.html
!事前準備
yum install parted
yum install e2fsprogs <- e2fsckとはresize2fsが入っているパッケージ
!ボリュームの作成
容量を拡張する
アベイラビリティーゾーンを合わせること
!ボリュームの拡張
古いボリュームをアタッチしたまま起動
/dev/sda1 <- 最後の数字まで指定していることに注意
起動後に新しいボリュームをアタッチ
/dev/sdf
ボリュームの状況を確認
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 10G 0 disk
`-xvda1 202:1 0 10G 0 part /
xvdf 202:80 0 50G 0 disk
`-xvdf1 202:81 0 10G 0 part
partedでボリューム拡張
parted /dev/xvdf
表示単位をバイトからセクターに変更
(parted) unit s
状態を表示
(parted) print
Number Start End Size Type File system Flags
1 2000s 20971519s 20969520s primary ext3 boot
始点:2000s
Type:primary
Flags:boot
を書き留めておく。
パーティッションを拡張する。
(parted) rm 1
(parted) mkpart primary 2000s 100%
警告が出ることがあるが無視してよい。
(parted) set 1 boot on
(parted) print
(parted) quit
ファイルシステムのチェック
sudo e2fsck -f /dev/xvdf1
拡張
sudo resize2fs /dev/xvdf1
マウントと確認
mount /dev/xvdf1 /mnt
df -h
!新しいボリュームをアタッチ
インスタンスをシャットダウン
古いボリュームをデタッチ
新しいボリュームをアタッチ
/dev/sda1
インスタンス起動
!!2014/10/25
中国を中心に大量アクセスがあったため、日本国内からのみアクセス可能とした
!流したスクリプト
#!/bin/sh
IPLIST=cidr.txt
# 初期化をする
iptables -F # Flush
iptables -X # Reset
#iptables -P INPUT DROP # 受信はすべて破棄
iptables -P OUTPUT ACCEPT # 送信はすべて許可
iptables -P FORWARD DROP # 通過はすべて破棄
# サーバーから接続を開始した場合の応答を許可する。
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
if [ -z "$1" ]; then
date=`date -d '1 day ago' +%Y%m%d`
else
date="$1"
fi
if [ -e $IPLIST ]; then
mv $IPLIST "${IPLIST}_${date}"
fi
# 最新のIPリストを取得する
wget http://nami.jp/ipv4bycc/$IPLIST.gz
gunzip -d $IPLIST.gz
# ダウンロードしてきたIPリストで日本のIPだけを許可するようにする
sed -n 's/^JP\t//p' $IPLIST | while read ipaddress; do
iptables -A INPUT -s $ipaddress -j ACCEPT
done
# Amazon EC2のAsia Pacific (Tokyo) に割り振られているIPレンジを許可する
iptables -A INPUT -s 46.51.224.0/19 -j ACCEPT
iptables -A INPUT -s 54.248.0.0/15 -j ACCEPT
iptables -A INPUT -s 103.4.8.0/21 -j ACCEPT
iptables -A INPUT -s 175.41.192.0/18 -j ACCEPT
iptables -A INPUT -s 176.34.0.0/18 -j ACCEPT
iptables -A INPUT -s 176.32.64.0/19 -j ACCEPT
iptables -A INPUT -s 54.250.0.0/16 -j ACCEPT
# iptablesによってDROPされたアクセスのログを取る
#iptables -A INPUT -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES INPUT DROP] : '
iptables -P INPUT DROP # 受信はすべて破棄
#設定を保存する場合はコメントを外す
#/etc/init.d/iptables save
{{category2 仮想化}}