インストール後の初期設定(CentOS8.4)
更新日:2021/12/25
新しくPCを作成し、CentOS8.4をインストールしました。設定などの環境構築について、備忘としてまとめました。
KVMによる仮想環境の構築についてはこちらにまとめています。
固定IPの割り当て
「/etc/sysconfig/network-scripts/ifcfg-XXXX」を手動するのが、昔は普通だった気がしましたが、NetworkManagerというツール(nmcliコマンド)で設定変更をするのが一般的な様子。
なので、素直にそれに従います。
ネットワークについては、「デバイス」と「コネクション」で、分けて管理されています。
「デバイス」は、単純に物理デバイスのことで、「コネクション」はその物理デバイスが実際にどこかに接続する通信のことを指します。
デバイスの一覧は「nmcli device」、コネクションの一覧は「nmcli connection」で表示できます。
デバイスとコネクションを分けて管理すると、都合が良い時もある様子で、このようになっているみたいです。
しかし、単純なネットワークの場合、デバイス名=コネクション名のほうが管理しやすいです。
そのため、まずは、デバイス名とコネクション名が同じになっているかチェックし、違う名前がついていたら、同じ名前に修正します。
以下の例では、コネクション名が「System enp1s0」、デバイス名が「enp1s0」になっているので、コネクション名を「enp1s0」に変更しています。
[root@localhost ~]# nmcli connection ←現在のコネクション名を表示する(コネクションに対応するデバイス名も表示される) NAME UUID TYPE DEVICE System enp1s0 c0ab6b8c-0eac-a1b4-1c47-efe4b2d1191f ethernet enp1s0 [root@localhost ~]# nmcli con mod c0ab6b8c-0eac-a1b4-1c47-efe4b2d1191f connection.id enp1s0 ←UUIDを指定し、コネクション名をenp1s0に変更 [root@localhost ~]# nmcli connection ←変更した結果を確認 NAME UUID TYPE DEVICE enp1s0 c0ab6b8c-0eac-a1b4-1c47-efe4b2d1191f ethernet enp1s0
続いて、固定IPアドレスの設定を行います。
以下の4点を設定し、コネクションを再起動することで、有効になります。
・IPアドレスの指定
・GATEWAYの指定
・DNSの指定
・OS起動時に自動的に有効になるように設定
[root@localhost ~]# nmcli device ←ネットワークのデバイス一覧を表示 DEVICE TYPE STATE CONNECTION enp1s0 ethernet 接続済み enp1s0 lo loopback 管理無し -- [root@localhost ~]# nmcli connection ←ネットワークのコネクション一覧を表示 NAME UUID TYPE DEVICE enp1s0 ebd0703f-f262-46a4-ae92-c83c95ab7bf1 ethernet enp1s0 [root@localhost ~]# nmcli connection modify enp1s0 \ ←コネクション名「enp1s0」に対し、固定IPを設定 > ipv4.method manual \ > ipv4.addresses 192.168.11.42/24 [root@localhost ~]# nmcli connection modify enp1s0 \ ←コネクション名「enp1s0」に対し、gatewayを設定 > ipv4.gateway 192.168.11.1 [root@localhost ~]# nmcli connection modify enp1s0 \ ←コネクション名「enp1s0」に対し、DNSを設定 > ipv4.dns 192.168.11.1 [root@localhost ~]# nmcli connection modify enp1s0 \ ←コネクション名「enp1s0」に対し、OS起動時に起動するように設定 > connection.autoconnect yes [root@localhost ~]# nmcli connection up enp1s0 ←コネクション名「enp1s0」を再起動する 接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/2)
上記のコマンドのコピペ用。
nmcli connection modify enp1s0 ipv4.method manual ipv4.addresses 192.168.11.42/24 nmcli connection modify enp1s0 ipv4.gateway 192.168.11.1 nmcli connection modify enp1s0 ipv4.dns 192.168.11.1 nmcli connection modify enp1s0 connection.autoconnect yes nmcli connection up enp1s0
NTPの設定(chrony)
CentOS7あたりから、ntpdからchronydに移行したらしい。
chronyの設定を行いntpサーバーとの時間を同期させるようにします。
基本的にCentOS8やRHEL8をインストールしたら、デフォルトでインストールされていると思います。
設定値を変更します。
接続するNTPサーバーを、あらかじめ知っておく必要がありますので、ググっておきます(プロバイダが提供しているものを使う or googleのNTPを使うか・・・自分の好きなものを決めておきます)。
ここでは、私の環境向けに設定します。
NVR500というルーターを使っており、そのルーターがNTPサーバーの代わりもしてくれるので(このルーターもインターネット上のNTPサーバーと時間同期させています)ので、このルーター(192.168.11.1)を使うこととします。
「/etc/chrony.conf」を手動で編集します。
以下の赤字の部分が、元々ある設定ファイルから変更した部分です。
変更部分の説明については、下に記載します。
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #pool 2.centos.pool.ntp.org iburst server 192.168.11.1 iburst # Record the rate at which the system clock gains/losses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 second. makestep 1.0 3 # Enable kernel synchronization of the real-time clock (RTC). rtcsync # Enable hardware timestamping on all interfaces that support it. #hwtimestamp * # Increase the minimum number of selectable sources required to adjust # the system clock. #minsources 2 # Allow NTP client access from local network. #allow 192.168.0.0/16 allow 192.168.11.0/24 # Serve time even if not synchronized to a time source. local stratum 10 # Specify file containing keys for NTP authentication. keyfile /etc/chrony.keys # Get TAI-UTC offset and leap seconds from the system tz database. leapsectz right/UTC # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. #log measurements statistics tracking #port 0
server 192.168.11.1 iburst
NTPサーバーをのIPアドレスを記載しています。
「iburst」はオプション設定です。このオプションのところには、どのぐらいの間隔でNTPサーバーに問合せしに行くかなど、いくつかオプションがあります(詳しくはchronyのドキュメント参照)。
iburstだと、64秒に1回程度の頻度でNTPに接続しにいきます。細かいこだわりがないので、とりあえずこれで良しとします。
(細かい要求がある場合は、オプションを変更する。特にない場合は、これで問題が発生することは無いはず。)
allow 192.168.11.0/24
本サーバをNTPサーバーとして動かす場合、どのIPアドレスからのアクセスを許可するかの設定。
192.168.11.Xの中からしかアクセスさせたくないため、設定を変更しています。
※NTPサーバーとして使用しない場合は、特にコメントアウトのままでOK。
local stratum 10
上位のNTPサーバーとの通信が出来なくなったときの、stratumの値(NTPサーバーの階層レベル)。
stratumは0~15の範囲の値で、NTPの階層構造を表していて、16になるとNTPサーバーとして無効扱いとなる(クライアントがstratumの値をチェックして16の場合、このNTPサーバーは正常ではない・・・という扱いにして、戻り値を使わなくなる・・・みたいなイメージ)
そしてこの設定値は、上位のNTPサーバーと通信できなくなったとき、16を返すのではなく10を返すという挙動にする。
なので、上位のNTPサーバーが何らかの原因で接続できなくなったとしても、エラーとせず、自分の時間を戻り値として返す・・・という挙動になる・・・はず。
※NTPサーバーとして使用しない場合は、特にコメントアウトのままでOK。
#port 0
NTPサーバーとして動作させない(ただのntpクライアントとしてしか動かさない場合)、port 0とする設定をいれる・・・らしい。
この設定を使ったことが無いので、とりあえずコメントアウトしてある。
「/etc/chrony.conf」のファイル編集が終わったら、chronyの再起動をして設定値を読み込ませる。
systemctl restart chronyd
ちゃんと動いているか確認を行います。
まず、NTPサーバーの接続先として、何と接続しているのかを表示するコマンド「chronyc sources」を実行します。
接続先に「setup.netvolante.jp」が表示されているので、OK(NVR500というルーターと接続させていますが、これの場合は、名前がこれになるっぽい)
[root@localhost ~]# chronyc sources 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* setup.netvolante.jp 1 6 377 49 -50ms[ -236ms] +/- 24ms
次に、こちらはntpサーバーから取得した値の補正結果などの情報が表示されます。
詳しいことは、chronyのドキュメント参照(時間の難しい系の話です)。
[root@localhost ~]# chronyc tracking Reference ID : C0A80B01 (setup.netvolante.jp) Stratum : 2 Ref time (UTC) : Fri Sep 24 06:10:39 2021 System time : 0.028412165 seconds slow of NTP time Last offset : -0.029395238 seconds RMS offset : 0.084289983 seconds Frequency : 816.254 ppm fast Residual freq : -1061.637 ppm Skew : 670.856 ppm Root delay : 0.015625017 seconds Root dispersion : 0.068240523 seconds Update interval : 65.0 seconds Leap status : Normal
ネットワーク設定
通信ポートのopen/closeの設定方法などについて、まとめます。
RHEL8/CentOS8の環境にたいして設定することを前提とします。
ファイヤーウォールについての説明
RHEL/CentOS8においては、「firewalld」「nftables」「iptables」・・・という3種類のパケットの制御方法があります。
そして、この3種類のものを同時に立ち上げると、わけわからんことになるので、どれか1つを使いましょうということらしいです。
→ https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/using-and-configuring-firewalld_configuring-and-managing-networking
時代の流れで、「iptables」だけの時代から、変化があった様子で、調べたことを以下に記載します。
・Linuxは、「iptables」を使ってパケットの制御をしていた。
・「iptables」を使いやすくするためのツール、「firewalld」が追加される。
・「iptables」から、改良した「nftables」に置き換えが行われる(「iptables」のコマンド自体は使える状態だが、実体は「nftables」)
・「firewalld」も「iptables」ではなく、「nftables」を使うように変更。
という感じの様子。
なので、現在のRHEL8/CentOS8では、パケットの制御には「nftables」が使われており、それの簡単設定ツールである「firewalld」もある・・・という状態。
「iptables」だけを使いたいなぁ・・・というケースも、「firewalld」のサービスを停止してしまえば、「iptables」のコマンド自体は残してあるので、昔から使っているコマンドも使えますよ・・・ということらしい(たぶん)。
ここでは「firewalld」を使った設定についてを扱います。
firewalldの基本
firewalldは、zoneというルールの集合に対し、ネットワークインターフェイスを関連付けて、通信を制御している様子。
最初からいくつかのzoneが作成されており、、詳細は以下のコマンドで見ることができます(自分でzoneを追加することも可能)。
「firewall-cmd --list-all-zones」を実行すると、zone等の情報を全部表示することができます(出力結果が長いので、実行結果は省略)。
なお、「firewalld」は、着信の接続(外部から自分にアクセスしてくる)を制御しますが、自分自身から外へ通信をする時の制御は、zoneの設定では行われません(無制限に外にアクセスできる)。
なので、外へアクセスも制御したい場合は「ダイレクトルール」というものを使用することになっています。
デフォルトでは、「public」というzoneが、PCのあるネットワークインターフェイスに適用されていいます。
「public」は、選択した着信接続のみが許可されます・・・という状態のルールになっているらしい。
基本的には、これで良いはず(それ以外のルールが使用したくなった時に、別途調査しようと思います・・・)。
[root@miranda ~]# firewall-cmd --get-zones ←zoneの一覧を表示 block dmz drop external home internal libvirt nm-shared public trusted work [root@miranda ~]# firewall-cmd --get-default-zone ←デフォルトで使用するzoneを表示 public [root@miranda ~]# firewall-cmd --list-all --zone=public ←「public」というzoneの詳細を表示 public (active) target: default icmp-block-inversion: no interfaces: br0 enp3s0 ←このzoneで使用するネットワークインターフェイスが表示されている(環境によって表示されるものは異なる) sources: services: cockpit dhcpv6-client ssh ←通信を許可するサービスの一覧が表示されている ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@miranda ~]#
上記の「services」で表示されているサービス名ですが、これは「/usr/lib/firewalld/services/」以下にxmlファイルがあり、こちらで定義されています(1サービス、1つのxmlファイル)。
全部が網羅されているわけではないので、新たにserviceを追加することも可能です。
xmlを手動で作成するわけではなく、「firewall-cmd」コマンドに引数を色々渡して設定を行う感じです。
(作り方は、どこかで触れます・・・)
通信を許可するserviceを追加/削除する
通信を許可するserviceを追加・・・は、portに穴を開けるということです。
逆に、通信を許可するserviceを削除は、穴を開けていたportを閉じる・・・ですね。
特定のIPアドレスの、特定portの通信のみ許可は、以下の方法では出来ません。
これは、「リッチルール」というものを使う必要があります。
オプションに「--permanent」をつけていますが、これを付けない場合、OSを再起動すると設定が消えてしまいます。
また、設定変更後に「firewall-cmd --reload」を行わないと、設定が有効になりません。
通信を許可するserviceを追加してみます。
以下はhttp(80番ポート。service名とポート番号の対応は「/usr/lib/firewalld/services/」の中のファイルを見るしかない)の通信を許可します。
[root@localhost ~]# firewall-cmd --add-service=http --zone=public --permanent ←publicというzoneに、httpを追加 success [root@localhost ~]# firewall-cmd --reload ←reloadの実行 success [root@localhost ~]# firewall-cmd --list-all --zone=public --permanent ←恒久設定されている現在の設定を表示 public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http ssh ←httpが追加されている ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@localhost ~]# success
逆に、今度は削除してみます。
以下の例では、先ほど追加したhttpを削除しています。
[root@localhost ~]# firewall-cmd --remove-service=http --zone=public --permanent ←publicというzoneから、httpを削除 success [root@localhost ~]# firewall-cmd --reload ←reloadの実行 success [root@localhost ~]# firewall-cmd --list-all --zone=public --permanent ←恒久設定されている現在の設定を表示 public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client ssh ←httpが消えている ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
プロセスが使っているポートを表示する
「lsof」コマンドは、ファイルを使っているプロセスを調べたりなど色々できます。
「-i」オプションを付けると、ソケットの一覧を表示させることができます。
全プロセスを表示させたい場合、root権限が必要になります。
ちなみに、「-P」を追加すると、ポート番号がサービス名ではなく、単純に番号として表示してくれます。
[root@localhost ~]# lsof -i ←プロセスが使用しているポートの一覧を表示する
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root 41u IPv4 18956 0t0 TCP *:sunrpc (LISTEN)
systemd 1 root 42u IPv4 18957 0t0 UDP *:sunrpc
systemd 1 root 43u IPv6 18958 0t0 TCP *:sunrpc (LISTEN)
systemd 1 root 44u IPv6 18959 0t0 UDP *:sunrpc
rpcbind 712 rpc 4u IPv4 18956 0t0 TCP *:sunrpc (LISTEN)
rpcbind 712 rpc 5u IPv4 18957 0t0 UDP *:sunrpc
rpcbind 712 rpc 6u IPv6 18958 0t0 TCP *:sunrpc (LISTEN)
rpcbind 712 rpc 7u IPv6 18959 0t0 UDP *:sunrpc
avahi-dae 749 avahi 15u IPv4 23124 0t0 UDP *:mdns
avahi-dae 749 avahi 16u IPv6 23125 0t0 UDP *:mdns
avahi-dae 749 avahi 17u IPv4 23129 0t0 UDP *:41439
avahi-dae 749 avahi 18u IPv6 23130 0t0 UDP *:41430
chronyd 765 chrony 6u IPv4 23139 0t0 UDP localhost:323
chronyd 765 chrony 7u IPv6 23140 0t0 UDP localhost:323
sshd 816 root 5u IPv4 24882 0t0 TCP *:ssh (LISTEN)
sshd 816 root 7u IPv6 24884 0t0 TCP *:ssh (LISTEN)
cupsd 819 root 9u IPv6 24047 0t0 TCP localhost:ipp (LISTEN)
cupsd 819 root 10u IPv4 24048 0t0 TCP localhost:ipp (LISTEN)
xrdp-sesm 1045 root 9u IPv4 26123 0t0 TCP localhost:findviatv (LISTEN)
xrdp 1046 root 11u IPv4 26126 0t0 TCP *:ms-wbt-server (LISTEN)
ポートスキャン(nmap)
対象のサーバーに対し、どのポートがOPENされているかチェックしてみます。
※ポートスキャンは、自分が所持しているサーバーだけを対象に実行します。他人のサーバーを対象に実行はしません(攻撃とみなされることがあります・・・)。
ここでは、nmapというツールを使用します。
nmapはデフォルトでは1000個ほどのポートにたいして、ポートスキャンを行います(あらゆるポート(0-65535)に対して実行したい場合は、別途オプション指定する必要があります)。
UDPも調査したい場合は、別途オプションを追加する必要有り(後述)。
まず、nmapのインストールを以下のコマンドで行います。
dnf install nmap
nmapには、色々なオプションがあります。
ここでは、以下のオプションを使います。
「-sS」 → TCPを対象にポートスキャンする(TCPのパケットを投げるときの方式の指定。「TCP SYNスキャン」というデフォルトの方式を指定)。
「-sU」 → UDPを対象にポートスキャンする。
IPアドレス「192.168.11.42」のサーバーにたいして、このサーバー自身にログインしてnmapを実行したときと、外部のサーバーから「192.168.11.42」へnmapを実行したときの例を以下に示します。
以下は、IPアドレス「192.168.11.42」のサーバにログインし、自分自身へnmapを実行した結果です。
内側からの通信について、特に何も制御していない状態のため、「1994 closed ports」と表示されています。
「closed」というステータスは、ポートはOPENだが、そのポートで待ち受けをしているプロセスがいない・・・という状態です。
root@localhost ~]# nmap -sS -sU localhost ←自分自身へnmapを実行 Starting Nmap 7.70 ( https://nmap.org ) at 2021-12-19 15:47 JST Nmap scan report for localhost (127.0.0.1) Host is up (0.0000030s latency). Other addresses for localhost (not scanned): ::1 Not shown: 1994 closed ports ←closedとなっているところがポイント PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 631/tcp open ipp 3389/tcp open ms-wbt-server 111/udp open rpcbind 5353/udp open|filtered zeroconf ←openなのかフィルタされているのか、nmapからは判別不能な状態 Nmap done: 1 IP address (1 host up) scanned in 4.07 seconds
次に、上記でnmapを行ったサーバー(IPアドレスが192.168.11.42)に対し、別のサーバーからnmapを実行してみます。
同じサーバーにたいして内部で実行するのと、外部で実行するのとでは、結果が異なるのが分かります。
実行してから終わるまで約20分程度かかりました。
(UDPも対象にいれているので、時間がかかります)
[root@miranda ~]# nmap -sS -sU 192.168.11.42 ←「192.168.11.42」に対し、nmapを実行 Starting Nmap 7.70 ( https://nmap.org ) at 2021-12-19 15:18 JST Nmap scan report for 192.168.11.42 Host is up (0.00014s latency). Not shown: 1997 filtered ports ←filteredとなっているところがポイント PORT STATE SERVICE 22/tcp open ssh 80/tcp closed http 9090/tcp closed zeus-admin MAC Address: 52:54:00:77:EC:AF (QEMU virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 1019.22 seconds
サーバーの外からチェックしてみると、「22/tcp」「80/tcp」「9090/tcp」の3つが応答を返している様子です。
続いて、firewalldの設定との整合性を見ていきたいと思います。
firewalldの設定としては、以下の状態でnmapを実行しました。
[root@localhost ~]# firewall-cmd --list-all --zone=public --permanent public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
なので、OPENになっているのは「cockpit」「dhcpv6-client」「ssh」の3つです。
それぞれ、調べたことを記載します。
services | 説明 |
cockpit |
「/usr/lib/firewalld/services/cockpit.xml」を見ると、cockpitはtcp/9090であることが分かります。 tcp/9090なので合っていますが、nmapが出力した「zeus-admin」とサービス名が謎です。 nmapはポート番号とサービス名の対応表を「/etc/services」ではなく、「/usr/share/nmap/nmap-services」という自前のものを使っているのかもしれません。 ※「/usr/share/nmap/nmap-services」を見ると「9090/tcp」の名前が「zeus-admin」と定義されています。 おそらく、これが原因ではなかろうかと思います。 cockpit自体使ってないので、closedステータスになっていると思われます。 |
dhcpv6-client |
「/usr/lib/firewalld/services/dhcpv6-client.xml」を見ると、udp/546と書いてありますが、「<destination ipv6="fe80::/64"/>」と書いてあります。 ・・・よくわかりませんが、ipv6用なので、「dhcpv6-client」はipv4上においては、意味のないポートOPENなのかもしれません。 詳細よくわからず・・・。 |
ssh |
「/usr/lib/firewalld/services/ssh.xml」を見ると、cockpitはtcp/22であることが分かります。 sshのサービスはONにしているため、ステータスがOPENなので想定通りです。 |
ダイレクトルール(外への通信の制御)
自分のサーバーから外への通信の制御はfirewalldのzone設定では制御されません。
そのため、ダイレクトルールという物を使用します(何がダイレクトなのかというと・・・コマンドがiptablesのソレだから・・・という意味だと思います)。
ダイレクトルールを使うと、INPUTもOUTPUTも、iptablesのように設定が可能です。
ここでは、OUTPUTの通信を制御する設定を追加してみます。
以下のようにcurlコマンドを使って、インターネット上のファイルの取得が、可能な状態です。
[root@localhost ~]# curl https://alctail.sakura.ne.jp/css/common/diary.css ←webサイトからファイルを取得 @charset "UTF-8"; /* 段落の行間を設定(文章の段落用) */ p.diaryPara { margin: 1em 0em; padding: 0em 0em; text-indent: 1em; }[root@localhost ~]# firewall-cmd --direct --get-all-rules ←現在のダイレクトルールの一覧を表示 [root@localhost ~]# ←ダイレクトルールは0個なので、何も表示されない
これをfirewalldのダイレクトルールで、https通信(port番号443)を出来ないように設定してみます。
以下のコマンドを実行します。
実行後、「/etc/firewalld/direct.xml」に設定した内容が出力されます。
[root@localhost ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -m state --state NEW -m tcp -p tcp --dport 443 -j DROP success [root@localhost ~]# firewall-cmd --reload ←設定を有効にするため、リロード success [root@localhost ~]# iptables -L --line-numbers ←iptablesのコマンドを使って、設定を表示 Chain INPUT (policy ACCEPT) num target prot opt source destination Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination 1 DROP tcp -- anywhere anywhere state NEW tcp dpt:https
上記の設定で、https通信がfirewalldによってdropされるはずです。
再度curlでファイル取得を行ってみます(dropしているので、クライアントに応答を返しません。なので、タイムアウト時間を5秒という設定でファイルを取得)。
[root@localhost ~]# curl -m 5 https://alctail.sakura.ne.jp/css/common/diary.css curl: (28) Connection timed out after 5000 milliseconds [root@localhost ~]#
といった感じでルールを追加できます。
ちなみに、上記で追加したルールは、以下のコマンドで削除可能です。
[root@localhost ~]# firewall-cmd --permanent --direct --remove-rule ipv4 filter OUTPUT 1 -m state --state NEW -m tcp -p tcp --dport 443 -j DROP
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# iptables -L --line-numbers ←削除したので、なにも表示されていない
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
[root@localhost ~]#
不要なものを消す
ソフトウェアや設定など、不要なものを削除します。
cockpit
「cockpit」というOSをブラウザから操作できるソフトウェアがCentOSでは、インストールされた状態になります(OSインストール時のパッケージの選択次第では入らないときもある)。
使わない場合は、不要なのでアンインストールしておきます。
dnf remove cockpit
アンインストールしても、firewallの設定値が残ったままなので、そちらも削除します。
[root@miranda ~]# firewall-cmd --remove-service=cockpit --zone=public --permanent
success
[root@miranda ~]# firewall-cmd --reload
success
[root@miranda ~]# firewall-cmd --list-all --zone=public
public (active)
target: default
icmp-block-inversion: no
interfaces: br0 enp3s0
sources:
services: dhcpv6-client ssh ←cockpitが消えているのでOK
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
firewalldの設定削除
初期の状態ではSSHのみ受け付けるように設定を行いたいです。
なので、OPENしているサービスで、使わないものを、設定から削除していきます。
[root@miranda ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: br0 enp3s0
sources:
services: dhcpv6-client ssh ←ここにでてくるものを「ssh」だけにしたい
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
「services」のところに、「dhcpv6-client」「ssh」と2つ表示されています(環境によってはもっとある)。
これを1個づつ消していきます。
削除方法はこちらを参照。
ホスト名の設定
コマンドで設定することが推奨されています(はず)。
以下のコマンドで、サーバーの名前を「miranda」に変更します。
/etc/hostnameファイルを見ると、ホスト名が指定したものに設定されていることが分かると思います(teratermを接続しなおすとホスト名が設定したものが出てくるはず)。
[root@localhost ~]# hostnamectl set-hostname miranda