お名前.com VPS を借りて最初にやったこと(2) iptables設定、不要サービス停止

2013年5月28日

WordPress

お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第2回目。前回はユーザ作成と SSH 設定をやりました。

WordPress
お名前.com VPS を借りて最初にやったこと(1) ユーザ作成とSSH設定

お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第1回目。 今回は、お ...

続きを見る

今回は、お名前.com の VPS を申し込んで最初に設定した iptables の設定や不要サービスの停止、サーバの時刻合わせ、logrotate、日本語化、その他細々とした設定のメモです。

目次

  1. iptables によるファイヤーウォールを設定する
  2. IPv6 を無効にする
  3. SELinux をオフにする
  4. 不要なサービスを停止する
  5. 仮想コンソールを1個に減らす
  6. サーバの時刻を合わせる
  7. kernel panic 時の自動再起動
  8. logrotate設定
  9. 言語を日本語にする

iptables によるファイヤーウォールを設定する

iptables の最低限のサンプルです。

/etc/sysconfig/iptables

*filter
:INPUT    DROP    [0:0]
:FORWARD  DROP    [0:0]
:OUTPUT   ACCEPT  [0:0]
:SERVICES -       [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4  -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -j SERVICES
-A SERVICES -p tcp --dport 10022 -j ACCEPT
-A SERVICES -p tcp --dport 80 -j ACCEPT
-A SERVICES -p tcp --dport 443 -j ACCEPT
COMMIT

ざっくり説明です。

  • 外部からのアクセスに対して SSH(10022), HTTP(80), HTTPS(443) のポートを開け、それ以外は閉じる
  • 内部から外部へのアクセスに対する外部からの返答アクセスをすべて許可

設定を保存し、iptables を再起動します。

# /etc/init.d/iptables save
# /etc/init.d/iptables restart

以下のサイトを参考にしながら、設定を追加していくと良いと思います。

IPv6 を無効にする

IPv6 の iptables を停止。IPv6 の iptables の自動起動を停止。

# /etc/init.d/ip6tables stop
# chkconfig ip6tables off

/etc/modprobe.d/disable-ipv6.conf の最終行に以下を追加して IPv6 を無効化。

...
install ipv6 /bin/true

SELinux をオフにする

お名前.com は SELinux はデフォルトで無効になっているので以下対応は不要ですが、念のためメモしておきます。

設定の確認。Disabled と表示されていれば SELinux は無効。

# getenforce

Disabled

もし SELinux を無効化する必要があれは以下の手順で。setenforce コマンドで一時的に無効に。

# setenforce 0

/etc/sysconfig/selinux を修正して再起動しても無効に。

...
#SELINUX=enforcing
SELINUX=disabled
...

不要なサービスを停止する

デフォルトの状態では、不要なサービスがいくつか動いているので停止します。
起動しているサービスの状態を確認

# service --status-all

自動起動されるサービスを確認

# chkconfig --list | grep 3:on

acpid          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
blk-availability	0:off	1:on	2:on	3:on	4:on	5:on	6:off
crond          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
iptables       	0:off	1:off	2:on	3:on	4:on	5:on	6:off
lvm2-monitor   	0:off	1:on	2:on	3:on	4:on	5:on	6:off
messagebus     	0:off	1:off	2:on	3:on	4:on	5:on	6:off
network        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
postfix        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
rsyslog        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
sshd           	0:off	1:off	2:on	3:on	4:on	5:on	6:off
udev-post      	0:off	1:on	2:on	3:on	4:on	5:on	6:off

以下のサービスを停止

# chkconfig lvm2-monitor off
# chkconfig messagebus off

参考

不要なデーモンを停止しましょう | お便利サーバー.com

仮想コンソールを1個に減らす

仮想コンソールは使用しないので 6 から 1 にします。

# vi /etc/sysconfig/init
...
# What ttys should gettys be started on?
ACTIVE_CONSOLES=/dev/tty[1-1]
...

設定変更確認

# ps -aux | grep tty

サーバの時刻を合わせる

ntpdate をインストールして cron で定期的に時間をあわせます。

# yum install ntpdate

毎日 午前 0 時に時間を合わせるように cron を設定。

# crontab -e
0 0 * * * /usr/sbin/ntpdate ntp.jst.mfeed.ad.jp > /dev/null

kernel panic 時の自動再起動

kernel panic が発生したら 10 秒後に自動で再起動するように設定します。

/etc/sysctl.conf の末尾行に設定を追加。

# vi /etc/sysctl.conf
...
kernel.panic = 10

sysctl コマンドで設定反映します。

# sysctl -p

sysctl 実行時にエラーが表示されました。IPv6 を無効にしたことが関連しているようです。

error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key

以下をコメントアウトします。

/etc/sysctl.conf

# Disable netfilter on bridges.
#net.bridge.bridge-nf-call-ip6tables = 0
#net.bridge.bridge-nf-call-iptables = 0
#net.bridge.bridge-nf-call-arptables = 0

設定確認

# cat /proc/sys/kernel/panic

10

10 と表示が出れば OKです。

logrotate設定

デフォルトの設定だと rotate しないログがいくつかあるので /etc/logrotate.conf の末尾行に設定追加。

/etc/logrotate.conf

# system-specific logs may be also be configured here.
/var/log/boot.log {
    missingok
    notifempty
    yearly
}
/var/log/lastlog
{
    missingok
    notifempty
    monthly
}

言語を日本語にする

言語を日本語に変更します。

/etc/sysconfig/i18n

LANG="ja_JP.UTF-8"
SUPPORTED="ja_JP.UTF-8:ja_JP:ja"
SYSFONT="latarcyrheb-sun16"

おわりに

iptables の設定や不要サービスの停止、サーバの時刻合わせ、logrotate、日本語化などについて紹介しました。次回はメール送信確認をします。

WordPress
お名前.com VPS を借りて最初にやったこと(3) メール送信確認

お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第3回目。前回は ip ...

続きを見る

-技術ブログ
-