3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CentOS7, Stream 8のシステム管理系コマンドメモ

Last updated at Posted at 2021-08-24

CentOS 7, Stream 8 のシステム管理系のコマンドのメモです。

記事の前提環境:

  • CentOS 7 / Stream 8 (x86_64)
  • インストールタイプ: Minimal Install
  • インストール時のキーボードタイプ: Japanese を選択

Red Hat Enterprise Linux (RHEL) のドキュメント参考:

以下、本記事ではRHEL側のドキュメントを参考とする。

基本設定

システム管理でよく使う基本設定のメモ。

OSのバージョン情報

/etc/ の下の *-release*-version ファイルをチェックする。

[CentOS 7/Stream 8 共通]
$ ls -l /etc/*release
-rw-r--r--. 1 root root 37 Nov 24  2020 /etc/centos-release
lrwxrwxrwx. 1 root root 21 Aug 22 23:36 /etc/os-release -> ../usr/lib/os-release
lrwxrwxrwx. 1 root root 14 Aug 22 23:36 /etc/redhat-release -> centos-release
lrwxrwxrwx. 1 root root 14 Aug 22 23:36 /etc/system-release -> centos-release

$ ls -l /etc/*version

[保有パッケージ: CentOS 7]
$ rpm -qf /usr/lib/os-release
centos-release-7-9.2009.1.el7.centos.x86_64

$ rpm -qf /etc/centos-release
centos-release-7-9.2009.1.el7.centos.x86_64

[保有パッケージ: CentOS Stream 8]
$ rpm -qf /usr/lib/os-release
centos-stream-release-8.5-3.el8.noarch

$ rpm -qf /etc/centos-release
centos-stream-release-8.5-3.el8.noarch

CentOS 7/Stream 8 でのファイル内容(例):

[例: CentOS 7 : /etc/centos-release]
$ cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

[例: CentOS 7 : /etc/os-release]
$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

[例: CentOS Stream 8 : /etc/centos-release]
$ cat /etc/centos-release
CentOS Stream release 8

[例: CentOS Stream 8 : /etc/os-release]
$ cat /etc/os-release
NAME="CentOS Stream"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Stream 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"

日付と時刻, ロケール, ホスト名

参考:

日付と時刻

$ man 1 date

$ date
Tue Aug 24 16:33:53 JST 2021

$ man 1 timedatectl

$ timedatectl
      Local time: Tue 2021-08-24 16:33:42 JST
  Universal time: Tue 2021-08-24 07:33:42 UTC
        RTC time: Mon 2021-08-23 20:29:03
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

※設定を更新する際は sudo timedatectl ...

ロケール(システムの言語, 文字コード, キーボードレイアウト)

$ man 1 localectl

$ localectl
   System Locale: LANG=en_US.UTF-8
       VC Keymap: jp
      X11 Layout: jp

※設定を更新する際は sudo localectl ...

ホスト名

  • man 1 hostnamectl
  • pretty hostname
    • 記号など含むホスト名
    • 例: Lennart's Laptop
    • 保存先: /etc/machine-info (未設定の場合は作成されない?)
    • see: man 5 machine-info
  • static hostname
    • 起動時に初期化されるkernel用ホスト名
    • 例: lennarts-laptop
    • 保存先: /etc/hostname
    • see man 5 hostname
  • transient hostname
    • DHCPなどネットワーク設定で取得するホスト名
    • static hostnameが使えないときのfallback用
$ man 1 hostnamectl

$ hostnamectl
   Static hostname: centos-7-t01.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 6a6bc562612f0247bc92fcfb812ee614
           Boot ID: a9f7f9a98f71499cb5c78dc8e43d9113
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1160.36.2.el7.x86_64
      Architecture: x86-64

※設定を更新する際は sudo hostnamectl ...

NTP(chrony) の同期状態

CentOS 7/Stream 8 ではNTPクライアントとして chrony がデフォルトで使われる。

参考:

chronyd のインストール:

  • インストール時にネットワーク接続を有効化し、NTPをONにすると chronyd がデフォルトでインストールされ、時刻同期が有効化される。
  • ネットワーク接続を有効化しても、NTPがOFFのままだと chronyd がインストールされず、時刻同期も行われないケースがあった。
    • この場合は、手動で chrony をインストールする必要がある。
$ sudo yum install chrony
or
$ sudo dnf install chrony

$ sudo systemctl enable chronyd
$ sudo systemctl start chronyd
$ sudo systemctl status chronyd

chrony の同期状態の確認:

$ chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^- rilynn.me.uk                  2   6   377    50  -5138us[-5031us] +/-  140ms
^* i172-105-204-167.poolntp>     3   6   337    47   +258us[ +365us] +/- 5107us
^- 152.115.59.242                2   6   377    46    -36us[  -36us] +/-  157ms
^- ktor1.k-ten.de                2   7     7    36  -1020us[-1020us] +/-  182ms

特に重要な M, S 列の見方(from RHEL7 "18.3.5.2. chrony ソースの確認"):

  • M 列
    • ソースのモードを示します。
    • ^ はサーバーを意味し、 = はピアを意味し、 # はローカルに接続された基準クロックを意味します。
  • S 列
    • この列は、ソースの状態を示します。
    • * : chronyd が現在同期しているソースを表します。
    • + : 選択したソースと結合する、受け入れ可能なソースを表します。
    • - : 受け入れ可能なソースで、結合アルゴリズムにより除外されたものを表します。
    • ? : 接続が切断されたソース、またはパケットがすべてのテストをパスしないソースを表します。少なくとも 3 つのサンプルが収集されるまで開始時にも表示されます。
    • x : chronyd が falseticker と考える (つまり、その時間が他の大半のソースと一致しない) クロックを表します。
    • ~ : 時間の変動性が大きすぎるように見えるソースを表します。
  • 詳細は chronyc(1) 参照

システムクロックを徐々に調整していく (slew) のを止め、一度に修正 (step) する:

$ sudo chronyc makestep

パッケージ管理(yum, dnf)

コマンド一覧等の参考資料

コマンド一覧(チートシート)等の参考資料:

  1. Fedora User Docs / System Administrator’s Guide / Package Management / DNF
    • Fedora によるDNFガイドで、全体像を掴みやすい資料になっている。
    • /etc/yum.repos.d/ 以下の設定ファイルの書き方やリポジトリ管理も解説している。
  2. @IT Linux基本コマンドTips 【dnf】コマンドシリーズ
    1. 基礎編 ソフトウェア(パッケージ)をインストールする
    2. 応用編その1 ソフトウェア(パッケージ)を探す
    3. 応用編その2 複雑な条件を付けてソフトウェア(パッケージ)を探す
    4. 応用編その3 複雑な条件を付けてソフトウェア(パッケージ)の情報を表示する
    5. 応用編その4 ソフトウェア(パッケージ)グループの情報を表示する
    6. 応用編その5 ソフトウェア(パッケージ)グループをインストールする
    7. 応用編その6 リポジトリを有効化/無効化する
    8. 応用編その7 リポジトリを追加する
    9. 応用編その8 パッケージを更新する
  3. Linuxシステムの勉強に役立つコマンドの紹介 - SSTエンジニアブログ
    • 基本的には上記記事の「パッケージ情報の調査」セクションを参考。
  4. PDF: YUM コマンドチートシート for Red Hat Enterprise Linux
  5. yum|yum リポジトリの有効/無効

以下、上記参考資料[1] に未掲載のリポジトリ関連の操作を補足として載せる。

パッケージ更新

[CentOS Stream 8]
$ sudo dnf upgrade

パッケージの情報取得

# 基本的なパッケージ情報の表示 (インストール済み)
$ rpm -qi procps-ng

# まだインストールしていないパッケージ情報の表示
$ dnf info <<package_name>>
$ dnf repoquery <<package_name>> --info

# どのリポジトリから追加されたのか?を知りたいときは dnf info
$ dnf info procps-ng
(...)
From repo    : baseos #<<<<<<<<< リポジトリ情報
(...)

# インストール済みパッケージ一覧
$ rpm -qa

# インストール済みパッケージのファイル一覧
$ rpm -ql <<package_name>>

# 依存パッケージの表示
$ rpm -qR <<package_name>>

# changelogの表示
$ rpm -q --changelog <<package_name>>

# カスタムスクリプトの表示
$ rpm -q --scripts <<package_name>>
$ rpm -q --triggers <<package_name>>
$ rpm -q --triggers --scripts <<package_name>>

NOTE: rpm -q 系で、ローカルファイル上にある .rpm ファイルの情報を確認したい場合は -qp を加える。例: rpm -qpi, rpm -qpl, rpm -qp --changelog, rpm -qp --triggers --scripts

ファイルの所有者, パーミッション一覧

$ rpm -q --qf "[%{FILEMODES:perms} %{FILEUSERNAME}:%{FILEGROUPNAME} %{FILENAMES}\n]" <package-name>
$ rpm -qp --qf "[%{FILEMODES:perms} %{FILEUSERNAME}:%{FILEGROUPNAME} %{FILENAMES}\n]" foobar.rpm

リポジトリ一覧/詳細/追加

[CentOS 7]
(enabledのみ)
$ sudo yum repolist
$ sudo yum repolist enabled

(disabled含む一覧)
$ sudo yum repolist all

(baseリポジトリの詳細)
$ sudo yum repolist base -v

(リポジトリの追加)
$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo <repository-url>

[CentOS Stream 8]
(enabledのみ)
$ dnf repolist
$ dnf repolist enabled

(disabled含む一覧)
$ dnf repolist all

(baseリポジトリの詳細)
$ dnf repolist baseos -v

(リポジトリの追加)
$ sudo dnf config-manager --add-repo <repository-url>

EPEL(Extra Packages for Enterprise Linux repository configuration) のインストール

[CentOS 7]
$ sudo yum search epel
(...)
============================================================ N/S matched: epel =============================================================
epel-release.noarch : Extra Packages for Enterprise Linux repository configuration

$ sudo yum install epel-release

[CentOS Stream 8]
$ sudo dnf search epel
(...)
============================================================ Name Matched: epel ============================================================
epel-next-release.noarch : Extra Packages for Enterprise Linux Next repository configuration
epel-release.noarch : Extra Packages for Enterprise Linux repository configuration

$ sudo dnf install epel-release

パッケージの検索とインストール例: screen

[CentOS 7]
$ sudo yum --disablerepo=* --enablerepo=base search screen
(...)
=========================================================== N/S matched: screen ============================================================
(...)
screen.x86_64 : A screen manager that supports multiple logins on one terminal
(...)
→ base リポジトリで見つかったので、そのままインストール

$ sudo yum --disablerepo=* --enablerepo=base install screen


[CentOS Stream 8]
$ sudo dnf --disablerepo=* --enablerepo=baseos search screen
→ 見つからない。

$ sudo dnf --disablerepo=* --enablerepo=epel search screen
(...)
====================================================== Name & Summary Matched: screen ======================================================
screen.x86_64 : A screen manager that supports multiple logins on one terminal
(...)

→ EPEL リポジトリにあったのでインストール
$ sudo dnf --disablerepo=* --enablerepo=epel install screen

パッケージグループの情報取得

[CentOS Stream 8]
# パッケージグループ一覧表示
$ dnf group list
# パッケージグループ一覧表示(英語で表示)
$ LANG=C dnf group list

# --hidden | --installed | --available | --ids はどれか一つだけ指定できる。
$ dnf group list --hidden
$ dnf group list --installed
$ dnf group list --available
# (group id を表示したいときは --ids オプション。)
$ dnf group list --ids
(-v をつけても良い)

# 特定のパッケージグループに含まれるパッケージ一覧
$ dnf group info "Development Tools"
(dnf group list --ids で表示されるIDを指定する場合:)
$ dnf group info development
(パッケージのバージョンまで表示したい場合:)
$ dnf -v group info "Development Tools"
$ dnf -v group info development
(info コマンドはインストールしていないパッケージグループでも使える)

# パッケージグループのインストール例
$ sudo dnf group install "Development Tools"

dnf group コマンド参考:

AppStream (RHEL8, CentOS8以降)

参考:

コマンド抜粋:

[モジュールの一覧/詳細]
$ sudo dnf module list
$ sudo dnf module list (module-name)
$ sudo dnf module info (module-name)

[パッケージインストール前にストリームを有効化]
$ sudo dnf module enable (module-name):(stream)

[モジュールのコンテンツ(=パッケージ一式)をインストール]
$ sudo dnf module install (module-name)
$ sudo dnf module install (module-name):(stream)
$ sudo dnf module install (module-name):(stream)/(profile)

[アクティブなストリームからすべてのパッケージを削除]
$ sudo dnf module remove --all (module-name)
$ sudo dnf module remove --all (module-name):(stream)
$ sudo dnf module remove --all (module-name):(stream)/(profile)

[モジュールを初期状態へのリセット]
$ sudo dnf module reset (module-name)

[モジュールおよびそのストリームの無効化]
$ sudo dnf module disable (module-name)

NetworkManager によるコマンドライン操作

設定ファイルではなく、NetworkManager によるGUI/tui/cui操作で設定する方が無難そう。
コマンドライン操作ではCUIである nmcli(1) を使う方法がシンプル。

参考:

ネットワークインターフェイス名の命名規則

ネットワークインターフェイス名について、CentOS 7, Stream 8 では Predictable Network Interface Names という命名規則を採用している。
以前の kernel起動時に検出した eth0, eth1, ... という命名ルールでは、hot-plugデバイスへの対応や検出順序によりインターフェイス名が入れ替わる(ずれる)などの課題があった。
Predictable Network Interface Names を使うことで、全体として一貫した命名規則、つまりデバイス間で一意に名前が定まり、インターフェイス名が入れ替わることも無くなる。
設定により、以前の命名規則に戻すことも可能。

systemd v197 で導入された Predictable Network Interface Names については以下を参照:

  1. NetworkInterfaceNames - Debian Wiki
  2. Predictable Network Interface Names
  3. ほげめも: Debian vs Ubuntu: ネットワークインタフェースの名前

CentOS 7/8 系 = RHEL7/8系でのインターフェイス名命名規則については以下を参照。

  1. Red Hat Enterprise Linux 7 ネットワークガイド, 第11章 ネットワークデバイス命名における一貫性
  2. Red Hat Enterprise Linux 8 ネットワークの設定および管理, 第1章 一貫性のあるネットワークインターフェースデバイスの命名

nmcli の使い方

bash-completion パッケージを入れると nmcli のコマンド補完が有効になるのでおすすめ:

[RHEL7/CentOS7]
$ sudo yum install bash-completion
→ログアウト後、ログインし直す。

[RHEL8/CentOS8/CentOS Stream 8]
$ sudo dnf install bash-completion
→ログアウト後、ログインし直す。

general, networking コマンド例:

[NetworkManager全体のステータス表示]
$ sudo nmcli general
$ sudo nmcli general status
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN
connected  full          enabled  enabled  enabled  enabled

[ホスト名(static hostname)の表示]
$ sudo nmcli general hostname

[ホスト名(static hostname)の設定]
$ sudo nmcli general hostname (new-hostname)

[ネットワーク管理のON/OFF]
$ sudo nmcli networking on
$ sudo nmcli networking off

デバイスと接続プロファイル

NetworkManager ではイーサネットアダプタなど物理的な「デバイス」と、そのデバイスでの「接続」設定を分離している。
これにより、例えばイーサネットアダプタのあるノートPCを自宅と職場で持ち歩くときに、1つのデバイス(ノートPCのイーサネットアダプタ)に対して自宅/職場それぞれの接続設定を接続プロファイルとして切り替えるような使い方が可能となる。
nmcli device ... で始まるコマンドがデバイス、つまりネットワークインターフェイスを操作するコマンドになる。
nmcli connection ... で始まるコマンドが接続プロファイルを操作するコマンドになる。

デバイスと接続プロファイルについては以下の資料の解説が分かりやすい:

[ネットワークインターフェイス一覧]
$ sudo nmcli device
$ sudo nmcli device status

[ネットワークインターフェイス設定値一覧]
$ sudo nmcli device show (device-name)

[接続プロファイル一覧]
$ sudo nmcli connection show

[接続プロファイルの設定値一覧]
$ sudo nmcli connection show (connection-name)

[接続プロファイルの設定変更]
$ sudo nmcli connection modify (connection-name) (設定項目名) (値)

[例: 接続プロファイル名の変更]
$ sudo nmcli connection modify (old-connection-name) connection.id (new-connection-name)

[接続プロファイルの起動(= 接続)]
$ sudo nmcli connection up (connection-name)

[接続プロファイルの停止(= 切断)]
$ sudo nmcli connection down (connection-name)

[接続プロファイルの削除]
$ sudo nmcli connection delete (connection-name or connection-uuid)

接続プロファイルの自動接続ON/OFF

[自動接続の確認]
$ sudo nmcli -f name,autoconnect connection show

[自動接続ON]
$ sudo nmcli connection modify (connection-name) connection.autoconnect yes

[自動接続OFF]
$ sudo nmcli connection modify (connection-name) connection.autoconnect no

DHCPをON

[DHCP用の接続プロファイルを追加]
$ sudo nmcli connection add con-name (new-connection-name) ifname (device-name) type ethernet

[IPアドレス/ゲートウェイ/DNSの設定を空に戻す]
$ sudo nmcli connection modify (connection-name) ipv4.dns ""

$ sudo nmcli connection modify (connection-name) ipv4.gateway ""
(or
$ sudo nmcli connection modify (connection-name) ipv4.gateway 0.0.0.0
)

$ sudo nmcli connection modify (connection-name) ipv4.addresses ""
※ ipv4.gateway を空にしてから、ipv4.addresses を空にする。逆だとエラーになる。

[DHCPを有効化]
$ sudo nmcli connection modify (connection-name) ipv4.method auto

[既存プロファイルの修正の場合、一度停止]
$ sudo nmcli connection down (connection-name)

[接続プロファイルを起動]
$ sudo nmcli connection up (connection-name)

ipv4.xxx の手動設定が残ったままだと、DHCPで取得したIP/ゲートウェイ/DNS情報と、手動設定が両方有効な状態となる。

参考:

  1. Red Hat Enterprise Linux 7 ネットワークガイド, 3.3.7. nmcli を使用した動的イーサネット接続の追加および設定
  2. Red Hat Enterprise Linux 8 ネットワークの設定および管理, 8.5. nmcli で動的イーサネット接続の設定

DHCPを無効化し、IPアドレス/ゲートウェイ/DNSを手動設定

接続プロファイルのIPアドレスを ipv4.addresses で設定した後に、 ipv4.methodmanual に設定する。
( ipv4.addresses が空の状態で ipv4.methodmanual に変更しようとすると 「ipv4.addresses が空の状態で manual に設定することはできません」という趣旨のエラーメッセージが表示される)

[手動設定用の接続プロファイルを追加]
$ sudo nmcli connection add con-name (new-connection-name) ifname (device-name) type ethernet

[IPアドレス設定]
$ sudo nmcli connection modify (connection-name) ipv4.addresses 192.168.1.10/24

[デフォルトゲートウェイ設定]
$ sudo nmcli connection modify (connection-name) ipv4.gateway 192.168.1.1

[DNS設定]
$ sudo nmcli connection modify (connection-name) ipv4.dns "8.8.8.8 8.8.4.4"

[DHCPを無効化]
$ sudo nmcli connection modify (connection-name) ipv4.method manual

[既存プロファイルの修正の場合、一度停止]
$ sudo nmcli connection down (connection-name)

[接続プロファイルを起動]
$ sudo nmcli connection up (connection-name)

参考:

  1. Red Hat Enterprise Linux 7 ネットワークガイド, 3.3.8. nmcli を使用した静的イーサネット接続の追加および設定
  2. Red Hat Enterprise Linux 8 ネットワークの設定および管理, 8.1. nmcli を使用した静的イーサネット接続の設定

DNSの追加/削除

[追加]
$ sudo nmcli connection modify (connection-name) +ipv4.dns 8.8.8.8
$ sudo nmcli connection modify (connection-name) +ipv4.dns "8.8.8.8 8.8.4.4"

[削除]
$ sudo nmcli connection modify (connection-name) -ipv4.dns 8.8.8.8
$ sudo nmcli connection modify (connection-name) -ipv4.dns "8.8.8.8 8.8.4.4"

参考: 公開DNSキャッシュサーバー(パブリックDNS)

  1. Google Public DNS
    • primary: 8.8.8.8
    • secondary: 8.8.4.4
  2. Cloudflare

静的ルート/ゲートウェイの設定

参考:

静的ルート設定:

[上書き設定]
$ sudo nmcli connection modify (connection-name) ipv4.routes "ip[/prefix] [next_hop]"
$ sudo nmcli connection modify (connection-name) ipv4.routes "ip[/prefix] [next_hop] [metric] [attribute=value] [attribute=value] ..."

[ルートの追加]
$ sudo nmcli connection modify (connection-name) +ipv4.routes "ip[/prefix] [next_hop]"
$ sudo nmcli connection modify (connection-name) +ipv4.routes "ip[/prefix] [next_hop] [metric] [attribute=value] [attribute=value] ..."

[ルートの削除]
$ sudo nmcli connection modify (connection-name) -ipv4.routes "ip[/prefix] [next_hop]"
$ sudo nmcli connection modify (connection-name) -ipv4.routes "ip[/prefix] [next_hop] [metric] [attribute=value] [attribute=value] ..."

複数の接続プロファイルがアクティブなときのデフォルトゲートウェイについては、metric指定をして制御できる:

$ sudo nmcli connection modify (connection-name) ipv4.route-metric (new-metric)
$ sudo nmcli connection modify (connection-name) ipv4.route-metric (new-metric) ipv6.route-metric (new-metric)

ルーティングテーブルの確認:

$ sudo ip r
$ sudo ip -4 r
$ sudo ip -6 r

$ tracepath -n (ip-address)
$ tracepath -n (internet-hostname)

manページのEXAMPLESから抜粋

manページの最後にEXAMPLESがあり、実際のコマンド例がいろいろ紹介されている。
個人的に気になったものをいくつか抜粋する。

  • nmcli connection show --active
    • アクティブな接続プロファイルを一覧表示する。
  • nmcli -f name,autoconnect c s
    • 接続プロファイル名と connection.autocnnect プロパティを一覧表示する。
    • 全体的に -f で表示するフィールド名を指定できる。
  • nmcli -p connection show "My default em1"
    • "My default em1" 接続プロファイルの詳細を表示する。
    • 全体的に -p により、より分かりやすい表示になる。(-p = --pretty)
  • nmcli dev disconnect em2
    • デバイス em2 を切断する。デバイス自体が利用不可能となるため、 autoconnect が有効な接続プロファイルがあっても接続が確立されない。
    • 明示的に nmcli device connect (device-name) するか、デバイスの autoconnect をTRUEにしないと、自動接続が動作しない。

セキュリティ

ファイアウォール(firewalld)

コマンド抜粋:

[起動/停止/状態確認]
$ sudo systemctl start firewalld.service
$ sudo systemctl stop firewalld.service
$ sudo systemctl status firewalld.service
$ sudo firewall-cmd --state

[自動起動ON/OFF/確認]
$ sudo systemctl enable firewalld.service
$ sudo systemctl disable firewalld.service
$ sudo systemctl is-enabled firewalld.service

[デフォルトゾーン/アクティブゾーンの確認]
$ sudo firewall-cmd --get-default-zone
$ sudo firewall-cmd --get-active-zones

[すべてのゾーン/指定したゾーンの設定確認]
$ sudo firewall-cmd --list-all-zones
$ sudo firewall-cmd --list-all --zone=(zone-name)

[すべてのゾーン/指定したゾーンの恒久的な設定確認]
$ sudo firewall-cmd --list-all-zones --permanent
$ sudo firewall-cmd --list-all --zone=(zone-name) --permanent

[デフォルトゾーンの変更]
$ sudo firewall-cmd --set-default-zone=(zone-name)
$ sudo firewall-cmd --set-default-zone=(zone-name) --permanent
[アクティブゾーンの変更]
$ sudo firewall-cmd --zone=(zone-name) --change-interface=(if-name)
$ sudo firewall-cmd --zone=(zone-name) --change-interface=(if-name) --permanent

[設定の再読み込み]
$ sudo firewall-cmd --reload

[利用可能なサービス一覧]
$ sudo firewall-cmd --get-services

[許可サービスの追加/削除]
$ sudo firewall-cmd --add-service=(service-name) --zone=(zone-name)
$ sudo firewall-cmd --add-service=(service-name) --zone=(zone-name) --permanent
$ sudo firewall-cmd --remove-service=(service-name) --zone=(zone-name)
$ sudo firewall-cmd --remove-service=(service-name) --zone=(zone-name) --permanent

[ポート番号許可の追加/削除]
$ sudo firewall-cmd --add-port=(port-number)/{tcp|udp} --zone=(zone-name)
$ sudo firewall-cmd --add-port=(port-number)/{tcp|udp} --zone=(zone-name) --permanent
$ sudo firewall-cmd --remove-port=(port-number)/{tcp|udp} --zone=(zone-name)
$ sudo firewall-cmd --remove-port=(port-number)/{tcp|udp} --zone=(zone-name) --permanent

[IPアドレス許可の追加/削除]
$ sudo firewall-cmd --add-source=192.168.0.0/24 --zone=(zone-name)
$ sudo firewall-cmd --add-source=192.168.0.0/24 --zone=(zone-name) --permanent
$ sudo firewall-cmd --remove-source=192.168.0.0/24 --zone=(zone-name)
$ sudo firewall-cmd --remove-source=192.168.0.0/24 --zone=(zone-name) --permanent

[IPアドレス拒否の追加/削除]
$ sudo firewall-cmd --add-source=192.168.0.0/24 --zone=drop
$ sudo firewall-cmd --add-source=192.168.0.0/24 --zone=drop --permanent
$ sudo firewall-cmd --remove-source=192.168.0.0/24 --zone=drop
$ sudo firewall-cmd --remove-source=192.168.0.0/24 --zone=drop --permanent

RHELドキュメントの逆引き

RHELドキュメントはたくさんの種類が公開されており、どこに何が書かれてあるかすぐに探すのが難しい。
そのため、筆者の方で主なRHELドキュメントのトピックを抜粋してみた。
CentOSでシステム構築をする際に、キーワードで探してみて、そこからRHELのドキュメントを逆引きするのに使ってほしい。

RHEL8 ドキュメントの逆引き

全体:

一般的なシステム設定:

  • 「基本的なシステム設定の構成」
    • 日付と時刻
    • システムロケールの設定
    • キーボードレイアウトの設定
    • ネットワーク設定(基礎編)
    • systemd
    • ファイアウォールの設定(基礎編)
    • SELinuxの設定(基礎編)
    • ユーザーアカウント管理, sudo/sudoers管理, rootユーザパスワードのリセットなど
    • kdump, syslog設定
    • yum によるパッケージ管理, 自動更新設定
    • システムのシャットダウン/再起動
    • systemd, systemctl によるサービス管理, 独自ユニットファイルの作成
    • ファイル権限, umask管理
    • chrony による時刻同期
    • OpenSSHの設定と管理
    • rsyslogによるリモートロギング設定
    • Python, PHP, Tcl/Tk の使用ガイド
  • 「さまざまな種類のサーバーのデプロイメント」
    • Apache HTTPD
    • nginx
    • samba
    • BIND DNS
    • NFS
    • squid
    • データベース (MariaDB, PostgreSQL)
    • SMTP(sendmail, postfix), POP/IMAP(Dovecot)
    • 印刷(cups)
  • 「カーネルの監視および更新の管理」
    • kernel RPMパッケージの構成, yum による更新
    • kernel モジュールの管理
    • kernel コマンドラインパラメータ設定
    • sysctl によるパラメータ設定
    • データベースサーバ向けのkernelパラメータ調整
    • printk, dmesg, /var/log/boot.log 等の kernel logging (ring buffer)
    • kdump の詳細な管理と設定
    • crash を使ったコアダンプ解析
    • kernel の live patch
    • コントロールグループ (cgroups v1, v2) の解説とsystemdによる管理
    • eBPFとbcc-toolsの紹介

ネットワークとセキュリティ:

  • 「ネットワークの設定および管理」
    • デバイス名の命名規則
    • NetworkManager, nmtui, nmcli によるネットワーク/WiFi設定の詳細
    • VLAN/ネットワークブリッジ/チーミング/ボンディング設定の詳細
    • VPN, IPSec 設定の詳細
    • IPトンネル(IPIP, GRE)の詳細
    • ポートミラーリングの設定
    • 802.1x標準の使用
    • ルーティング設定(デフォルトゲートウェイ, 静的ルート)の詳細
    • ダミーインターフェイスとnetconsoleの紹介
    • systemd とのインテグレーション
    • トラフィック制御 (qdiscs, tc)
    • Multipath TCP の使用
    • DNSの優先度設定の詳細, /etc/resolv.conf の手動設定
    • ethtool によるオフロード/コロケーター機能の設定
    • ping, host ユーティリティの紹介
    • DHCPサービスの詳細
    • BIND DNSの設定と管理
    • firewalld, nftablesの詳細
    • eBPF と bcc-tools の詳細
    • その他高度なネットワーク設定の管理
  • 「ネットワークのセキュリティー保護」
    • OpenSSHの詳細
    • RHEL8におけるSSL/TLSの設定詳細
    • IPSec, firewalld, nftables の詳細
  • 「セキュリティー更新の管理および監視」
    • セキュリティ情報の参照先
    • セキュリティ更新の一覧取得とインストール
  • 「セキュリティーの強化」
    • システム全体の暗号化ポリシー設定
    • FIPSモードの使用
    • Crypto Policies を使ったカスタム暗号ポリシーの設定
    • PKCS#11 で暗号化ハードウェアを使用する設定
    • 証明書ストアの管理と証明書の追加
    • SCAPを使った設定コンプライアンスと脆弱性スキャン
    • LUKSを使用したブロックデバイスの暗号化
    • auditd を使ったシステム監査
    • USBGuard によるUSBデバイスからの保護
    • その他高度なセキュリティ設定
  • 「SELinuxの使用」
    • Permissive/Enforcingモードの切り替えと無効化
    • 制限のあるユーザ/ないユーザ, sysadm_u による管理者の制約, sudo と sysadm_r ロールによる制約
    • トラブルシューティングとauditログ
    • MLS(Multi-Level Security) の詳細
    • カスタムSELinuxポリシーの作成
    • コンテナのSELinuxポリシーの作成
    • SELinux設定のデプロイメント

GNOMEデスクトップ環境:

  • 「RHEL 8 でデスクトップ環境の使用」
    • GNOME3, GNOME Standard / Classic の紹介と選択方法, カスタマイズ方法
    • リモートデスクトップアクセス(VNC)
    • GNOME設定 (dconf, gsettings)
    • GNOMEのカスタマイズ
    • 日本語入力のインストール

開発系:

3
4
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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?