お名前.com VPS を借りたらまずやること(Debian) (2)
これは前の記事の続きです。
- パーティションの設定(/homeを別パーティションに移動)
- iptablesの設定
を行います。
3. パーティションの設定
この記事は、こちらの記事と こちらの記事を参考にしています。ありがとうございます。
パーティションの設定は現在この用になっています。
$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
rootfs 19G 1.4G 17G 8% /
udev 10M 0 10M 0% /dev
tmpfs 101M 232K 101M 1% /run
/dev/disk/by-uuid/3c384a48-4f6d-498a-9298-1d01d4d87c59 19G 1.4G 17G 8% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 377M 0 377M 0% /run/shm
/dev/vdb1 79G 215M 75G 1% /home
最初にインストールされた時には、
/dev/vdb1 79G 215M 75G 1% /home
の部分がない状態でした。つまり、20GBに全てが設定されている状態でした。 調べてみると、デフォルトの状態(CentOS)では残りの80GBは/data
として マウントされているようですね。
ここでは、/home
を/vdb
にマウントしてみたいと思います。
# fdisk /dev/vdb
# Command (m for help): n <- 新しい領域を作成する
# Command action
e extended
p primary partition (1 - 4)
p <- パーティションを設定
Partition number (1 - 4): 1 <- 1に設定
First cylinder (1 - 4): 1 <- 1に設定
Last Cylinder or +size or +sizeM or + sizeK: 767 <- 空き領域を全て使う
Command (m for help): t
Partition number (1 - 4): 1
Hex code (type L to list codecs): 83 <- Linux領域に設定
Command (m for help): p
Command (m for help): w <- 情報を書き込む
次に、/vdb
をフォーマットします。ここではext4
でフォーマットします。
# mkfs.ext4 /dev/vdb1
フォーマットが正常に終了したら、試しに一時的にマウントしてみます。
# mount -t ext4 /dev/vdb1 /mnt
マウントが正常に終了したら、古い/home
ディレクトリの内容を全て/mnt
にコピーします。
# cp -a /home/* /mnt
コピーが終了したら、古い/home
ディレクトリの中身を削除しま。
# rm -rf /home
上記が全て終了したら、/etc/fstab
に次のような行を追加する。
/dev/vdb1 /home ext4 defaults 1 1
終わったら、一時的にマウントした/mnt
をアンマウントして再起動します。
# umount /mnt
# reboot
ログインすると、この記事の最初に載せたようになっていると思います。
4. iptablesの設定
以前の記事でもセキュリティの設定はしましたが、よりセキュアになるようにiptables
の設定をしましょう。
ここでは、Debian本家のWikiとこちらの記事を参考にしています。ありがとうございます。
まずは必要なパッケージをインストールします。
$ sudo apt-get install iptables iptables-persistent
現在の様子を見てみます。
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
当然何も設定されていませんね。
厳しいルール設定をしましょう。
$ sudo vim /etc/iptables.test.rules
このように記載します。
*filter
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You could modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allows SSH connections
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
-A INPUT -p tcp -m state --state NEW --dport 30000 -j ACCEPT <- ここは、自分で設定したSSHのポート番号を書きましょう。
# Now you should read up on iptables rules and consider whether ssh access
# for everyone is really desired. Most likely you will only allow access from
certain IPs.
# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# log iptables denied calls (access via 'dmesg' command)
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: "
--log-level 7
# Reject all other inbound - default deny unless explicitly allowed policy:
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT
この設定を適用しましょう。
$ iptables-restore < /etc/iptables.test.rules
$ iptables-save > /etc/iptables/rules
$ sudo service iptables-persistent start
お疲れ様でした。