0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CentOS7初期設定

Last updated at Posted at 2021-01-19

はじめに

CentOS 7 で初めにすることを記載します(以下前提)

  • VPS
  • 公開サーバ
  • rootユーザでの操作

OS・パッケージのアップデート

OS・カーネル・パッケージをアップデートします
OSやカーネルをアップデートしたくない場合は /etc/yum.conf を修正します(今回は省略します)

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

以下を実行します(数分掛かります)

# yum -y update
Loaded plugins: fastestmirror
:
Complete!
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

ロケールの設定

地域や言語を日本にします
まずは現在の設定を確認

# localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: jp
      X11 Layout: jp,us
     X11 Variant: ,

ロケールを変更します

# localectl set-locale LANG=ja_JP.utf8
# localectl status
   System Locale: LANG=ja_JP.utf8
       VC Keymap: jp
      X11 Layout: jp,us
     X11 Variant: ,

/etc/locale.conf を安全に書き換えてくれるようです

/etc/locale.conf
LANG=ja_JP.utf8

現在のログインの環境変数には未反映のようです

# env | grep LANG
LANG=en_US.UTF-8

反映するには再度ログインするか、以下を実行します

# . /etc/locale.conf

rootユーザのパスワード変更

コンソールからログインする時に使用するパスワードを設定します

# passwd
ユーザー root のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
パスワードが一致しません。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

不要なサービスを停止(必要に応じて)

あらかじめインストールされた有効なものを確認します

# systemctl list-unit-files --state=enabled --type=service
UNIT FILE                                   STATE
acpid.service                               enabled
auditd.service                              enabled
autovt@.service                             enabled
chronyd.service                             enabled
crond.service                               enabled
:
32 unit files listed.

サービスを停止します

# systemctl stop サービス名

サービスを自動起動を無効にします

# systemctl disable サービス名

サービスを起動不可にします

# systemctl mask サービス名

ホスト名の設定

ホスト名を設定します

# hostnamectl set-hostname www.example.com

/etc/hostname を安全に書き換えてくれるようです

/etc/hostname
www.example.com

CentOS 6 では /etc/sysconfig/network の編集により変更可能でした
また、# による行コメントアウトも可能でしたが、
CentOS 7 で同様なことをしてしまうと、ホスト名の設定がおかしくなります

プロンプトに表示されるホスト名はログインし直すと反映されます

[root@www ~]#

DNSの設定

VPS提供者のDNSサーバが利用できない場合、公開DNSサーバを利用します

/etc/resolve.conf
# Generated by NetworkManager
search example.com
nameserver 8.8.8.8
nameserver 8.8.4.4

CentOS 7 では、設定ファイルを直接編集せずに、nmcli コマンドを使用することになっています
search はホスト名の設定によりドメイン部分が自動設定されるようです
nameserver は /etc/sysconfig/network-scripts/ifcfg-eth0 の DNS が自動設定されるようです

SSH のポート変更

既定のポートのままだと攻撃されやすいので変更します
SELinuxが有効になっているとそのままではポートを変更できませんので今回はSELinuxを無効化します
無効化するには、SELinuxの設定ファイルを編集します

# vi /etc/selinux/config
/etc/selinux/config
:
# SELINUX=enforcing
SELINUX=disabled
:

SELinuxの変更を反映するには再起動をします

# shutdown -r now

ここからSSHの設定です
まずはsshdの設定ファイルを編集します

# vi /etc/ssh/sshd_config
/etc/ssh/sshd_config
:
Port 22222
:

SSHのサービスを再起動します

# systemctl restart sshd

あわせてファイアウォールの設定も変更します
これをやらないとSSH接続できなくなります
firewalld の既定の設定ファイルをコピーして独自の設定ファイル作成します

# cp -p /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
# vi /etc/firewalld/services/ssh.xml

ポート番号を変更します

/etc/firewalld/services/ssh.xml
:
  <port protocol="tcp" port="22222"/>
</service>

ファイアウォールの変更を反映します

# firewall-cmd --reload
success

ファイアウォールの設定

公開するサービスのポートを許可します
まずは現在のファイアウォールの設定を確認します

# firewall-cmd --list-all
public (active)
:
  services: dhcpv6-client ssh
:

例として、Webサービス(http、https)への接続を許可します

# firewall-cmd --zone=public --add-service=http --permanent
success
# firewall-cmd --zone=public --add-service=https --permanent
success

変更を反映します

# firewall-cmd --reload
success
# firewall-cmd --list-all
public (active)
:
  services: dhcpv6-client http https ssh
:

もう一つの例として、特定のIPアドレスからのすべての接続を許可します
既定の public ゾーンの他に、trusted ゾーンを追加します

# firewall-cmd --add-source=XXX.XXX.XXX.XXX --zone=trusted --permanent
success

変更を反映します

# firewall-cmd --reload
success

変更を確認します

# firewall-cmd --get-active-zones
public
  interfaces: eth0
trusted
  sources: XXX.XXX.XXX.XXX
#  firewall-cmd --list-all --zone=trusted
trusted (active)
:
  sources: XXX.XXX.XXX.XXX
  services:
:
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?