CentOS7.5の初期設定

Time4VPSのStorage VPSを使うためにLinuxでサーバーを立てることになりました。FreeBSD 11.2の初期設定フォーマットに従って、CentOS7の設定内容をまとめます。

OSのメンテナンスとパッケージシステム

LinuxはFreeBSDと違ってOS部分もディストリビューターによって違うものを寄せ集めているので、OSのアップデートもパッケージシステムが担当しているっぽい。Red Hat系のCentOSのパッケージマネージャはyumだそうです。

# yum -y update
base                                                                                             | 3.6 kB  00:00:00
extras                                                                                           | 3.4 kB  00:00:00
updates                                                                                          | 3.4 kB  00:00:00
(1/4): base/7/x86_64/group_gz                                                                    | 166 kB  00:00:00
(2/4): extras/7/x86_64/primary_db                                                                | 205 kB  00:00:00
(3/4): updates/7/x86_64/primary_db                                                               | 6.0 MB  00:00:00
(4/4): base/7/x86_64/primary_db                                                                  | 5.9 MB  00:00:01
No packages marked for update

ちなみにCentOSバージョンは/etc/redhat-releaseファイルに書いてあります。

# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

半年ほど経っているのに特にアップデートないのはなんでだろう。

ファイアウォールの設定

CentOS7のファイアウォールはfirewalldというサービスを使うらしい。そしてデーモンの操作はserviceではなくてsystemctlコマンドを使います。

startではサービスが立ち上がるだけで、再起動後も自動的に動かすためにはenableしなきゃいけない。FreeBSDと違って/etc/rc.conf設定が不要なのは楽なのかな。

# systemctl start firewalld.service
# systemctl enable firewalld.service
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 土 2018-11-24 04:54:08 EET; 28s ago
     Docs: man:firewalld(1)
 Main PID: 870 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─870 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Nov 24 04:54:08 *****.s.time4vps.cloud systemd[1]: Starting firewalld - dynamic firewall daemon...
Nov 24 04:54:08 *****.s.time4vps.cloud systemd[1]: Started firewalld - dynamic firewall daemon.
Nov 24 04:54:08 *****.s.time4vps.cloud firewalld[870]: WARNING: ipset not usable, disabling ipset usage in firewall.
Nov 24 04:54:08 *****.s.time4vps.cloud firewalld[870]: ERROR: Failed to read file "/proc/sys/net/netfilter/nf_c...per'
Nov 24 04:54:08 *****.s.time4vps.cloud firewalld[870]: WARNING: Failed to get and parse nf_conntrack_helper setting
Nov 24 04:54:08 *****.s.time4vps.cloud firewalld[870]: WARNING: ebtables not usable, disabling ethernet bridge ...all.
Hint: Some lines were ellipsized, use -l to show in full.

設定はfirewall-cmdというコマンドを使います。

最初の–add-portはsshの接続ポート指定。続く4つの–add-serviceは許可するサービスの追加設定。いずれも–permanentを付けないと恒久設定になりません。さらに–reloadしないと設定が読み込まれません。

# firewall-cmd --permanent --add-port=20022/tcp
success
# firewall-cmd --permanent --add-service=http
success
# firewall-cmd --permanent --add-service=https
success
# firewall-cmd --permanent --add-service=dns
success
# firewall-cmd --permanent --add-service=ntp
success
# firewall-cmd --reload
success
# firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh dhcpv6-client http https dns ntp
  ports: 20022/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

ちゃんと設定できたかどうか、–list-allで確かめておきましょう。

SSHの設定

こちらはFreeBSDと同じ。useraddで接続用ユーザーを作ったら、~/.ssh/authorized_keyファイルに公開鍵を書き込んで、/etc/ssh/sshd_configを設定します。

Port 20022                  # 接続ポートを標準外にすることで攻撃されにくくします
Protocol 2                  # SSH2接続のみ許可します
PermitRootLogin no          # rootでのログインを拒否します
PasswordAuthentication  no  # パスワード認証を拒否します
PermitEmptyPasswords no     # パスワードなしの接続を拒否します
AllowUsers general_user     # ログインユーザーを限定します

ファイアウォールの設定で開いておいたポートと間違いないことを確認したら、sshdを再起動します。

# service sshd restart
Redirecting to /bin/systemctl restart sshd.service

…うっかりserviceコマンドを使ってもsystemctlコマンドにリダイレクトしてくれるね。

ntpの設定

CentOS7からntpdに代わってchronyというのが標準NTPサーバーになったそうです。

が、Time4VPSのCentOS7には入ってなかった。なぜならOpenVZ上の仮想環境だから。カーネルがホストOSと共通なので、この辺りのサービスはゲストで使えないようになっています。

インストールやその後の設定などはQiitaに参考になりそうな記事があります。

不要な一時ファイルの削除

CentOS7では/tmpおよび/var/tmpディレクトリ以下の一時ファイルをsystemd-tmpfiles-cleanというサービスが自動削除してくれます。

# systemctl status systemd-tmpfiles-clean.timer
● systemd-tmpfiles-clean.timer - Daily Cleanup of Temporary Directories
   Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-clean.timer; static; vendor preset: disabled)
   Active: active (waiting) since Sat 2018-11-24 10:42:49 JST; 4h 23min ago
     Docs: man:tmpfiles.d(5)
           man:systemd-tmpfiles(8)

Nov 24 10:42:49 81014.s.time4vps.cloud systemd[1]: Started Daily Cleanup of Temporary Directories.
Nov 24 10:42:49 81014.s.time4vps.cloud systemd[1]: Starting Daily Cleanup of Temporary Directories.

設定は/usr/lib/tmpfiles.d/tmp.confファイル。削除対象はvで始まるディレクトリ、除外対象はxまたはXで始まるディレクトリやファイルなどです。/tmpは10日、/var/tmpは30日で削除されるようになっていますね。

# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d

# Exclude namespace mountpoints created with PrivateTmp=yes
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp

スワップファイルの設定

Time4VPSのStandard VPSも御多分に洩れずスワップパーティションはないわけですが、メモリをチェックしてみたらSwapが設定されていました。

Time4VPS.EU - VPS hosting in Europe

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/simfs       40G  668M   40G   2% /
devtmpfs        512M     0  512M   0% /dev
tmpfs           512M     0  512M   0% /dev/shm
tmpfs           512M  176K  512M   1% /run
tmpfs           512M     0  512M   0% /sys/fs/cgroup
tmpfs           103M     0  103M   0% /run/user/1000
tmpfs           103M     0  103M   0% /run/user/0
# free -m
              total        used        free      shared  buff/cache   available
Mem:           1024          34         763           0         225         814
Swap:           512           0         512

でも/etc/fstabには何も書き込まれていないんだよね。なんでだろう?