「エアコンの安全な修理・適切なフロン回収」はこちら

Rocky Linux8.4でサーバー構築 初期設定 Ⅰ

1.サーバー構築設定の前準備 SELinuxの無効化

まず、selinuxを無効化します。selinuxはLinuxの監査やセキュリティを向上させる機能ですが、有効になっているとサービスの動作や、設定内容にかなりの制限が出てきます。そのため、基本的には無効にする場合が多いのが実情です。

ウェブサイトを見ながらサーバー構築を行って、思った通りに動作しない場合は、このselinuxが有効化されていることが原因だったりします。その為、インストール後に忘れずに無効化します。
次のようにすると無効化ができます。(本ページでは一般ユーザー名「jimy」、ホスト名「Lepard」になっています)
一般ユーザーでログイン後、ルートユーザーに権限変更の方法は既知のこととして進めます。

Lepard login: jimy
Password:
[jimy@Lepard ~]$ su –     ルートパスワード入力
[root@Lepard ~]# getenforce   ← SELinux機能の確認
Enforcing              ← SELinux有効
[root@Lepard ~]# setenforce 0  ← SELinux機能を無効にする
[root@Lepard ~]# getenforce   ← SELinux機能の再確認
Permissive             ← SELinux機能が無効である   

このままでは、サーバーを再起動すればseinuxは有効に戻りますので、永久にselinuxを無効にするには/etc/sysconfig/selinuxファイルを修正します。

[root@Lepard] ~]# vi /etc/sysconfig/selinux

赤枠の中「SELINUX=enforcing」を「SELINUX=disabled」に変更する

変更後

2.サーバー構築設定の前準備 SSHによるリモート接続の設定

SSHはサーバーへリモートで接続するためのサービスで、基本的にはOSインストール直後に動作していますが、デフォルトの設定ではややセキュリティに難があります。
ここではデフォルトの設定を変更してssh接続のセキュリティを高める設定を行います。

2.1 SSHサービスの設定ファイル変更

SSHサービスの設定を変更するために設定ファイルを変更します。
SSHサービスの設定ファイルは“/etc/ssh/sshd_config”になります。設定ファイルをviエディターで開きます。(viエディタの使い方はネットに情報がたくさんありますので調べて下さい)

viエディタで開くと次のような画面が出ます。

「Port 22」の箇所を探してウェルノンポート以外の任意のポート番号に変えます、今回は「Port 3333」に変更して進めていきます(このポート番号を変えるだけでも不正なアクセスは軽減できます)
②「#ListenAddress 0.0.0.0」を探しコメントアウトするため、前の「#」を削除します
③「#PermitRootLogin yes」を探し「PermitRootLogin no」に変更する
 rootユーザーはユーザー名が既に判明しているためパスワードが判明すると、管理者権限でサーバーへログイン出来るため、これを拒否する設定を行います。

SSH の再起動

3.ファイアウォール(firewalld)の設定方法

Rocky Linuxではファイアウォールはfirewalldがデフォルトに設定されており、OSインストール時に有効になっています。

「firewalld」について簡単に説明すると、通信制御のポリシーを設定する場合、事前に定義されたゾーンに対して通信の許可・遮断ルールを適用し、そのゾーンを各NIC(ネットワークアダプタ)に割り当てていくという方式になっています。

3.1 「firewalld」を制御するための「firewall-cmd」コマンド使用方法

1)ゾーンについて
初期状態で9つのゾーンが用意されています

ゾーン通信許可サービス説明
blockなし 外部からの接続はすべて遮断設定変更不可 遮断時は「CIMP Pohibited」を返し、内部からの通信時は戻りの通信も許可される
dmzsshdmz用に定義されたゾーン
dropなし 外部からの通信はすべて遮断設定変更不可 内部からの通信は送信できるが、外部からの戻りの通信は遮断されるため、結果的にすべての通信が出来ない
externalsshIPマスカレード有効でルータなど外部ネットワークとの接続で使用するために定義されたゾーン
homedhcpv6-client  ipp-client  mdns  samba-client  ssh自宅などで使用するために定義されたゾーン
internaldhcpv6-client  ipp-client  mdns  samba-client 内部ネットワークで使用するために定義されたゾーン
publicdhcpv6-client ssh公共の場所で使用するために定義されたゾーン
trustedすべての通信を許可設定変更不可
workdhcpv6-client ipp-client ssh職場などの業務エリアで使用するために定義されたゾーン

2)「fierwalld」の状態や設定内容を確認するためのコマンド

①firewalld稼働状況確認

[root@Lepard ~]# firewall-cmd –state
「firewalld」が動作している場合は「running」、停止している場合は「not running」と表示されます

または

[root@Lepard ~]# 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 金 2016-08-26 15:13:37 JST; 26min ago
Main PID: 735 (firewalld)
CGroup: /system.slice/firewalld.service
mq735 /usr/bin/python -Es /usr/sbin/firewalld –nofork –nopid
停止している場合
Active: inactive (dead)と表示され、firewalldが停止していることが分かります

➁defaultゾーン設定を表示

[root@Lepard ~]# firewall-cmd –list-all
public (default, active)
interfaces: eno16777736 eno33554984
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

上記の例ではpublic」ゾーンが「default」設定となっていて、「eno16777736」「eno33554984」のNICに割り当てられており、サービス「dhcpv6-client」「 ssh」が許可されていること等がわかります

➂指定したゾーンの設定を表示

下記の実行例は「dmz」ゾーンの設定を表示させた例
[root@Lepard ~]# firewall-cmd –zone=dmz –list-all
dmz
interfaces:
sources:
services: ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

④「–permanent」オプションについて
サーバの再起動や「firewalld」サービスの再起動で設定が消えてしまわないようにするためには、

「–permanent」オプションを使用して設定を行う必要があります。その際、「–permanent」オプションを指定して設定を行った場合は、そのままでは「firewalld」に設定が反映されないため「fiewall-cmd  –reload」で設定を反映させる必要があります

例としてHTTPサービスをシステムを再起動しても初期化されず恒久的に利用するためには
[root@Lepard~]# firewall-cmd –add-service=http –permanent
[root@Lepard~]# firewall-cmd –reload

ゾーンへのサービス追加・削除

すでに定義されているサービスをゾーンに追加するためには「–add-service」でサービスの指定行います
[root@Lepard~]# firewall-cmd [–permanent] –zone=ゾーン名 –add-service=サービス名
恒久的にゾーンにサービスを追加したい場合は「–permanent」オプションをつけて設定を行う必要があります。

一時的にサービスを追加する設定例

[root@Lepard~]# firewall-cmd –zone=public –add-service=http
success

恒久的にサービスを追加する設定例

「–permanent」オプションを指定して、「public」ゾーンに「http」サービスを追加する例
[root@Lepard~]# firewall-cmd –permanent –zone=public –add-service=http
success

⑥サービス削除

ゾーンに設定されているサービスを削除するには「–remove-service」を使用
[root@Lepard~]# firewall-cmd [–permanent] –zone=ゾーン名 –remove-service=サービス名
例として「http」サービスを「public」ゾーンから削除
[root@Lepard~]# firewall-cmd –permanent –zone=public –remove-service=http
success
# firewall-cmd –reload
success

⑦ゾーンへのポート追加・削除
サービスとして追加されていない通信をゾーンに追加する場合は、ポート番号とプロトコルを指定して追加する

ポートの追加

ゾーンへのポート追加は「–add-port」を使用して行います
[root@Lepard~]# firewall-cmd [–permanent]–zone=ゾーン –add-port=ポート番号/プロトコル
設定例
「public」ゾーンにポート番号「10022」プロトコル「TCP」のルールを追加してみます
[root@Lepard~]# firewall-cmd –permanent –zone=public –add-port=10022/tcp
success
# firewall-cmd –reload
success

ポートの削除

ゾーンからポートを削除するには「–remove-port」を使用
[root@Lepard~]#  firewall-cmd [–permanent]–zone=ゾーン –remove-port=ポート番号/プロトコル
設定例
先ほど追加した「public」ゾーンの「10022/tcp」ルールを削除します
[root@Lepard~]# firewall-cmd –permanent –zone=public –remove-port=10022/tcp
success
# firewall-cmd –reload
success

⑧起動・停止方法

「firewalld」は「systemd」で制御されているので、起動と停止には「systemctl」コマンドを使用
firewalldの起動
[root@Lepard~]# systemctl start firewalld
firewalldの停止
[root@Lepard~]# systemctl stop firewalld

⑧追加情報
次の通りファイアウォール( firewalld )の動作状況の確認を行うと

# systemctl status firewalld
firewalld.service – firewalld – dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: active (running) since 月 2014-09-** 06:01:06 JST; 5min ago
Main PID: 567 (firewalld)
[以下省略]
WARNING: AllowZoneDrifting is enabled.>
が表示される場合 firewalld.conf を編集する

「firewalld.conf」のバックアップ
[root@Lepard~]# cp -p /etc/firewalld/firewalld.conf /etc/firewalld/firewalld.conf.original_bk
「firewalld.conf」の編集
[root@Lepard~]# vi /etc/firewalld/firewalld.conf
最後の行を、AllowZoneDrifting=no に変更
[root@Lepard~]# systemctl restart firewalld

4.不足パッケージのインストール

RHEL 8 からは、デフォルトでyum が dnf に変更になっています。 yum のままでもOKです。
「ベース」と「その他の開発」を groupinstall でインストールします。
※※ 注意 ※※ yum -y update を先にすると Base のインストールがエラーになりますので注意してください。
つまり、カーネルのバージョンを先に最新バージョンにしないことです。
# dnf -y groupinstall “Base” “Additional Development”

5.セキュリティ対策のため停止するサービス

次の不要と思われるサービスを停止します。

atd 単発的にスケジュール化した コマンド を実行させるデーモン
auditd  監査メッセージのログファイルを出力するデーモン
kdump システムがクラッシュした時、原因を特定するためのdumpファイルを保存してくれるサービス
lvm2-monitor論理ボリュームマネージャー(LVM) 利用時の障害監視のためのデーモン
mdmonitor ソフトウェアRAID 監視サービス
rngdハードウェア を元に乱数を発生させるためのデーモン
smartd ハードディクスのS.M.A.R.T.による自己診断機能情報を取得する
tunedCPUガバナーを利用して強制的にCPUを最大パフォーマンスで動作させる

# systemctl stop atd.service
# systemctl disable atd.service
# systemctl stop auditd.service
# systemctl disable auditd.service
# systemctl stop kdump.service
# systemctl disable kdump.service
# systemctl stop lvm2-monitor.service
# systemctl disable lvm2-monitor.service
# systemctl stop mdmonitor.service
# systemctl disable mdmonitor.service
# systemctl stop rngd.service
# systemctl disable rngd.service
# systemctl stop smartd.service
# systemctl disable smartd.service
# systemctl stop tuned.service
# systemctl disable tuned.service
# systemctl stop dm-event.socket
# systemctl disable dm-event.socket

6.Windowsからリモート接続

Windowsでの設定

Windowsからリモート接続するための設定を始めます、ターミナルエミュレーターは「Tera Term」を使用します。
Tera Termを起動し、起動画面のキャンセルをした後、Tera Termメニューの「設定」から「TCP/IP」を選択すると、次の画面になりますので赤字で説明の通り入力します。
「TCPポート番号」の箇所は上記「SSHサービスの設定ファイル変更」で設定したポート番号を入力します。最後に「OK」をクリック

再度Tera Termメニューの「ファイル」から「新しい接続」を選択すると上記の画面になるのて゜「OK」をクリックすると、次の画面になる

上の画面で「続行」をクリックすると、次の画面になる

情報が正しければ下図のように正常にログインできるはずです。

タイトルとURLをコピーしました