はじめに
こんにちは、plotsです。
RehHat系の Linux に触る機会が多く、メモがてらに残しておこうと思ったので、
この新シリーズ始めてみました。記事長くなると投稿が遅くなるので各初回は、
・Webサーバ
httpd を入れてホストからゲストOSの立てたテストページにアクセスするところまで
・メールサーバ
Postfix で(内部の)相手にメールを送る Dovecot でメールを見るところまで
・時刻サーバ
時刻同期するところまで
とりあえずここまでやってみようか。今回はWebサーバだよ。
本編
では、これからいろんなサーバを立てる前に
念のためスナップショットを残しておこう。
Oracle VM の Ξ の「スナップショット」の名前とコメントを残して作成する。
これさえ残しておけば、(上書きさえしなければ)何度でもクローンして蘇れるのだ。
Webサーバ
早速 httpd を入れる。インストールには以下のコマンド。
# dnf install httpd
[y/N] と聞かれるので y と入力してEnter でインストール完了。
※どっかからパッケージを持ってきて rpm -i コマンドでインストールという手段があるが、
ものによってはパッケージ依存性を解決しなきゃならないことがあるので、
訳ありで外部への通信をしない以外なら、基本的に dnf コマンド(もしくは yum)でインストール。
これだけじゃ何もできないので、systemctl コマンドで httpd をスタートする。
# systemctl start httpd
さーて http://IPアドレスでアクセスしようとしたらダメでした。
それはそう。だってファイアウォールで許可してないもん。
じゃあ今の設定を firewall-cmd コマンドで見てみよう
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
httpd に関するポートもサービスも許可されてないのがわかる。
じゃあ --add-port オプションでポートに穴をあけよう。
http は 80番なので、
# firewall-cmd --add-port=80/tcp --permanent
※ --permanet オプションをつけないと、再起動したときにこの許可した設定が消えてしまうので
実験か何かで一時的にしか許可しない以外なら基本的につける
最後に --reload で firewall の更新して
# firewall-cmd --reload
さぁもう一度 http でアクセスしてみよう。
この仮想マシンは MIRACLE LINUX なので、MIACLELINUX のテストページが出てきた。
これで終わり。
終わりに
そういえば firewall-cmd でなぜ http の許可に 80番のポートを開けたかというと、
これは httpd の設定ファイルに書いてあるからなのだ。
せっかくなので探してみよう。
設定ファイル全般は /etc ディレクトリにあるので、配下の httpd に移動。
[root@localhost ~]# cd /etc/httpd
[root@localhost httpd]#
こんな感じになっただろうか。
今回の設定で 80番を開けたので、80 を検索ワードにして、httpdディレクトリ配下を
grep コマンドで検索してみる。
[root@localhost httpd]# grep -rn 80
conf/httpd.conf:46:#Listen 12.34.56.78:80
conf/httpd.conf:47:Listen 80
conf/httpd.conf:100:#ServerName www.example.com:80
/etc/httpd/conf/httpd.conf の 47行目で設定しているのがわかった。
※ -r オプションは、各ディレクトリの下にあるすべてのファイルを再帰的に読み込む
-n オプションは、行数表示
では、vi コマンドで 47行目の Listen 80 を 9000 にしてみよう。
# vi /etc/httpd/conf/httpd.conf
変更して保存したら、以下のコマンドで httpd を再起動して
# systemctl restart httpd
http://IPアドレスでアクセスしてみるとアクセスできなくなるだろう。
じゃあ、ポートを変えたので、変更した 9000番ポートを穴あけしてと。
↓この設定する
[root@localhost httpd]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: cockpit dhcpv6-client ssh
ports: 80/tcp 9000/tcp
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
http://IPアドレス:9000 でアクセスするとテストページが表示できる。
こんなことするの見かけたことないから特段の理由がない限りは、
あんまりポートは変えずにデフォルトの方がいいね。混乱するし。
設定を変えたらちゃんと元に戻しておこう
設定を変えないでそのままやっててダルイことになった試しがあるので
次回は 続きをやるか、メールをやるかどっちにしようかな