Locked

sakura_VPS_setup_701

さくらVPS 1G/SSD プラン - CentOS7 追加設定

初期設定以降の設定内容です。
ホスト名やIPアドレス情報は例示です。

ネットワーク設定

従来(CentOS6まで)のNetwork InitscriptとNetworkManagerのどちらで管理するかによって、使用するコマンド/設定内容が変わってきます。
デバイス構成によっては選択の余地が無い場合もありますので、要件を確認しておく必要があります。

ここではNetworkManagerを使用します。

ホスト名設定

# hostnamectl set-hostname hostname.example.jp

$ nmcli g hostname
hostname.example.jp

nf_conntrack_max拡張

nf_conntrack_maxの値は明示的に設定しない限りメモリサイズによって決められます。
サーバの使用用途に応じて値を確認/拡張します。

設定値の確認。

# cat /sys/module/nf_conntrack/parameters/hashsize
7940
# sysctl -n net.nf_conntrack_max
31760

拡張後。

# cat /sys/module/nf_conntrack/parameters/hashsize
32768
# sysctl -n net.nf_conntrack_max
262144

IPv6有効化

カーネルパラメータを変更し、リブートします。

--- a/sysctl.conf
+++ b/sysctl.conf
@@ -8,5 +8,5 @@ net.ipv6.conf.default.accept_ra=0
 net.ipv6.conf.all.accept_ra=0
 net.ipv6.conf.eth0.accept_ra=0
 # Do not use IPv6
-net.ipv6.conf.all.disable_ipv6 = 1
-net.ipv6.conf.default.disable_ipv6 = 1
+#net.ipv6.conf.all.disable_ipv6 = 1
+#net.ipv6.conf.default.disable_ipv6 = 1

# reboot

或いはリブートの代替としてsysctlによる値の設定(要NetworkManagerのリスタート)も可能です。

現在の設定を確認します。

# nmcli -p con show
===========================================================================
                    NetworkManager connection profiles
===========================================================================
NAME         UUID                                  TYPE            DEVICE
---------------------------------------------------------------------------
System eth0  abcxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  802-3-ethernet  eth0
System eth1  defxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  802-3-ethernet  --
System eth2  012xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  802-3-ethernet  --

# nmcli -p con show "System eth0"
===============================================================================
                   Connection profile details (System eth0)
===============================================================================
connection.id:                          System eth0
connection.uuid:                        abcxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
connection.stable-id:                   --
connection.interface-name:              eth0
connection.type:                        802-3-ethernet
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.timestamp:                   1400000000
connection.read-only:                   no
connection.permissions:
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        -1 (default)
-------------------------------------------------------------------------------
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:
802-3-ethernet.wake-on-lan:             1 (default)
802-3-ethernet.wake-on-lan-password:    --
-------------------------------------------------------------------------------
ipv4.method:                            manual
ipv4.dns:                               203.0.113.1,203.0.113.2
ipv4.dns-search:
ipv4.dns-options:                       (default)
ipv4.dns-priority:                      0
ipv4.addresses:                         192.0.2.2/24
ipv4.gateway:                           192.0.2.1
ipv4.routes:
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
-------------------------------------------------------------------------------
ipv6.method:                            ignore
ipv6.dns:
ipv6.dns-search:
ipv6.dns-options:                       (default)
ipv6.dns-priority:                      0
ipv6.addresses:
ipv6.gateway:                           --
ipv6.routes:
ipv6.route-metric:                      -1
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.token:                             --
-------------------------------------------------------------------------------
===============================================================================
      Activate connection details (abcxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
===============================================================================
GENERAL.NAME:                           System eth0
GENERAL.UUID:                           abcxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
GENERAL.DEVICES:                        eth0
GENERAL.STATE:                          activated
GENERAL.DEFAULT:                        yes
GENERAL.DEFAULT6:                       no
GENERAL.VPN:                            no
GENERAL.ZONE:                           --
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/0
GENERAL.SPEC-OBJECT:                    /
GENERAL.MASTER-PATH:                    --
-------------------------------------------------------------------------------
IP4.ADDRESS[1]:                         192.0.2.2/24
IP4.GATEWAY:                            192.0.2.1
IP4.DNS[1]:                             203.0.113.1
IP4.DNS[2]:                             203.0.113.2
-------------------------------------------------------------------------------
IP6.GATEWAY:
-------------------------------------------------------------------------------

IPv6設定を行います。

# nmcli con mod "System eth0" ipv6.method auto
# nmcli con mod "System eth0" ipv6.address "2001:db8::2/64"
# nmcli con mod "System eth0" ipv6.gateway "fe80::1"
# nmcli con mod "System eth0" ipv6.dns "2001:db8::53"
# nmcli con mod "System eth0" ipv6.method manual

IPv4/IPv6ともにDHCPを使用しないので、関連項目を明示的に無効化します。

# nmcli con mod "System eth0" ipv4.ignore-auto-routes yes
# nmcli con mod "System eth0" ipv4.ignore-auto-dns yes
# nmcli con mod "System eth0" ipv6.ignore-auto-routes yes
# nmcli con mod "System eth0" ipv6.ignore-auto-dns yes

設定を反映します。

nmcli con up "System eth0"

設定内容を確認します。

# nmcli -p con show "System eth0"
===============================================================================
                   Connection profile details (System eth0)
===============================================================================
connection.id:                          System eth0
(...中略...)
ipv4.ignore-auto-routes:                yes
ipv4.ignore-auto-dns:                   yes
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
-------------------------------------------------------------------------------
ipv6.method:                            manual
ipv6.dns:                               2001:db8::53
ipv6.dns-search:
ipv6.dns-options:                       (default)
ipv6.dns-priority:                      0
ipv6.addresses:                         2001:db8::2/64
ipv6.gateway:                           fe80::1
ipv6.routes:
ipv6.route-metric:                      -1
ipv6.ignore-auto-routes:                yes
ipv6.ignore-auto-dns:                   yes
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.token:                             --
-------------------------------------------------------------------------------
===============================================================================
      Activate connection details (abcxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
===============================================================================
(...中略...)
-------------------------------------------------------------------------------
IP6.ADDRESS[1]:                         2001:db8::2/64
IP6.ADDRESS[2]:                         fe80::2/64
IP6.GATEWAY:                            fe80::1
IP6.DNS[1]:                             2001:db8::53
-------------------------------------------------------------------------------

# cat /etc/resolv.conf
# Generated by NetworkManager
search example.jp
nameserver 203.0.113.1
nameserver 203.0.113.2
nameserver 2001:db8::53

IPv6ネットワークに関するfirewalld設定は、特に明示的に指定していない限り、IPv4と同じ設定が施されています。
内容を確認し、必要に応じて加除修正します。

# ip6tables -L -nv
...

プライベートネットワーク構築

さくらのVPSでは、仮想スイッチを作成し、同一リージョン内の仮想マシン間でプライベートネットワークを構成することが可能です。

仮想スイッチの作成/適用には仮想マシンの停止が必要になるので、予め設定しておきます。
ここではeth1を使用したプライベートネットワークを構築します。

インターフェースアドレス設定。

# nmcli con mod "System eth1" ipv4.method auto
# nmcli con mod "System eth1" ipv4.address "198.51.100.1/24"
# nmcli con mod "System eth1" ipv4.method manual
# nmcli con mod "System eth1" ipv4.never-default yes
# nmcli con mod "System eth1" ipv4.ignore-auto-routes yes
# nmcli con mod "System eth1" ipv4.ignore-auto-dns yes
# nmcli con up "System eth1"

firewalldを設定します。
デフォルトではpublicが適用されているので、適切なフィルタに変更します。

# firewall-cmd --get-default-zone
public

# firewall-cmd --get-active-zones
public
  interfaces: eth0 eth1

firewalldで使用可能なゾーン名/サービス名を確認。

$ firewall-cmd --list-all-zones
$ firewall-cmd --get-services

仮想スイッチ下のサーバ間でもフィルタを適用したい場合はhome/work辺りのフィルタを適用/修正すると良いでしょう。
ここでは、信頼できるネットワークとしてtrustedを適用します。

# firewall-cmd --change-interface=eth1 --zone=trusted --permanent
# firewall-cmd --reload

# firewall-cmd --get-active-zones
public
  interfaces: eth0
trusted
  interfaces: eth1

yum-cron

自動的にパッケージ更新を行うようにします。

# yum install yum-cron
...
================================================================================
 Package         Arch          Version                        Repository   Size
================================================================================
Installing:
 yum-cron        noarch        3.4.3-150.el7.centos           base         61 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 61 k
Installed size: 51 k

--- a/yum/yum-cron.conf
+++ b/yum/yum-cron.conf
@@ -17,7 +17,7 @@ download_updates = yes

 # Whether updates should be applied when they are available.  Note
 # that download_updates must also be yes for the update to be applied.
-apply_updates = no
+apply_updates = yes

 # Maximum amout of time to randomly sleep, in minutes.  The program
 # will sleep for a random amount of time between 0 and random_sleep

# systemctl start yum-cron
# systemctl enable yum-cron