samba設定方法

久しぶりの投稿です。
少し解り難い設定項目があったりしていたので、自分なりのメモ程度になろうかと思いますが、sambaの設定について説明します。

環境

もう少しで使われなくなるであろうCentOS 8を対象としていますが、後継のOSでも基本的に同じだと思っています。

CentOS 8.3.2011

メモリとかストレージのサイズとかあまり気にしていません。

インストール

sambaのインストールは至って簡単です。

CentOS 6やCentOS 7の初期ではsamba-swatを使えましたが、現在は廃止されていて使うことが出来ません。
GUIでの設定方法は別の方法があるらしいのですが、あまり推奨しない方が良さそうなので、CUIで全て設定します。

この後の流れ

取り敢えず、インターネットなどに公開されておらず、クローズドな環境下で実装検証を行います。
インストールや設定の最中には、セキュリティ機能が邪魔をして何が原因か解らなくなることがありますよね。
今回は、そんな面倒なことを無視して、取り敢えずインストールして機能の確認が出来た後に、セキュリティ機能を復活させてセキュアな環境に戻してあげることとします。

今後の流れを以下に記します。
1)セキュリティ関連機能の停止
2)sambaの設定
3)動作確認
4)セキュリティ機能の復旧
この流れで作業を進めます。

1)セキュリティ関連機能の停止

sambaで実現することは、サーバ内部の一部ストレージを共有フォルダーとして使えるようにすることです。
つまりネットワーク関係のアクセスを変更しますので、firewallが影響します。
また、ファイルの書き込み時には、SELinuxも影響する可能性があります。
それでは、これらの機能を一時的に停止します。

まず、firewalldを停止させます。

これでネットワークのセキュリティが解除されます。
強引ですが、設定だけだとこれが一番楽なんですよね(^^ゞ

次に、SELinuxも一時的に停止します。

これで準備はOKです。
これらの設定は、OSを再起動すると復活します。
また、この設定をすることで、セキュリティが低下していますので、必ずセキュアなネットワーク空間で作業を行うことをお勧めします。

2)sambaの設定

sambaの設定は、以下の流れになります。

  • /etc/samba/smb.confの編集
  • デーモンの登録(サービスの登録)

ここで、今回は非常に簡単な設定を行います。
ネットワーク上の端末から誰でもID/パスワードなしでアクセス可能な共有NASの様な状態です。

それでは見て行きましょう。

最初に設定ファイルをバックアップしています。
特に必要なければ除外してください。
次にviで開きます。
smb.confの先頭あたりにある[global]セクションを最初に編集します。
下記にサンプルを記します。

今回追加した項目は、以下の項目です。

unix charset = UTF-8
 unix(Linux含む)で使用するエンコードを指定しています。
 デフォルトで設定されているので、特に設定する必要は無い様です。
 設定内容は以下のコマンドで確認することが可能です。
 実際に指定していないデフォルト設定の内容も全て表示されるので、多くの内容が記されています。
testparm -v
testparmコマンドは、編集内容のチェックを行ってくれる機能でもあります。

security = user
map to guest = Bad User

security = user と map to guest = Bad Userの組み合わせで、ログイン認証が不要になります。

log level = 2
log file = /var/log/samba/%m.log
max log size = 1024

 ログ出力の設定になります。

次に、[Share]セクションを追加します。

path
 共有フォルダーとして使用する領域を指定しています。
 対象はシンボリックリンクでも大丈夫でした。
 対象ディレクトリを/Share/Disk1としていますが、後でも先でも良いので作成します。
 パミッションは777にしておく必要があります。

writable
 書き込み許可

その他は適当に。。。

こんな感じで設定したら、デーモンを立ち上げる前に、記述内容のチェックをします。

この後、Enterを入力すると設定内容が表示されます。
この上記に記した内容が表示されていればOKですが、間違っているとその内容が表示されます。

3)動作確認

ここまででsambaの設定は完了しています。
デーモンを起動します。

OS起動時に自動起動設定する場合は以下のコマンドを入力します。

同一ネットワークに接続されているWindows PCなどからアクセスします。

Windowsの場合は、Exploreを開いて、アドレス入力欄に以下を入力します。

\\IPアドレス <==最初の\\は¥を2つです。

無事に接続出来たら、ファイルを追加したり削除して動作を確認してください。

4)セキュリティ機能の復旧

ファイアウォールを復旧します。

次に、ポートを開放します。

ファイアウォールを再読み込みして、設定を反映します。

この後、SELinuxの設定を行うのですが、一旦ここまでとします。
SELinuxの設定が面倒な場合には、Disableに設定しましょう。
設定方法は一旦割愛します。

以下で対象ディレクトリ以下に対し、SELinuxが有効でもSambaでアクセス出来る設定を行います。

と書いたのですが、ダメでした。
auditログから対処します。

※赤斜体文字がコマンドになります(#はコマンドプロンプト)

詳細は端折りますが、setseboolで上記2つの設定を行えば動くということですね(^^ゞ

これで動作確認を行って、きちんと見えました。書き込めました。

WordPress 5.6をインストールする手順

CentOS 8にWordPress 5.6をインストールします。
インストール先は、Apachのドキュメントルート(デフォルト)である下記ディレクトリ以下に設定することにします。

他のディレクトリでも良いのですが、セキュリティ絡みで面倒は避けたいので、ドキュメントルートなら安全かな?と逃げ腰選択です。
では、ダウンロードを始めます。

/var/www/html/wordpressに解凍されます。

データベース設定

ローカルアドレスで設定するには、ブラウザで http://127.0.0.1/wordpress/ へアクセスします。
実際には、外向けのIPアドレスやドメイン名を設定すると良いでしょう。
後で変更することが可能です。

データベース作成時に指定したユーザ名とパスワードを設定します。

書込みが上手くできたらこの画面は表示されません。

サイトのタイトルとユーザ名とパスワードとメールアドレスを登録します。

ローカルアドレス(127.0.0.1)での設定については、ここまでで問題ありませんでしたが、外部からアクセスすることが叶いません。
そこで、外部に公開するアドレスを指定します。
ログイン後に以下を開きます。

設定→一般を開き、以下の項目を編集します。

無事外部向けIPアドレスを設定出来れば、アクセス可能となります。
グローバルIPアドレスやドメインを設定することで、公開サイトとして動作することになるでしょう。
社内LANで構築して外部へも公開する場合には、どうしたものか?
複数のアドレス設定が出来ないようなので、ルーター側でパーマネント設定を施すなどが妥当なのかも知れませんね。

Zabbix 5.2 をCentOS 8へインストールする。(SELinuxは有効で!)を試してみる。

最近、日本語のインストール手順を記したサイトを確認したりしながら思うことがあります。
オリジナルサイトに英語で記述されている手順も確認する必要がありますね。

ということで、オリジナルサイトのインストール方法は下記のURLから確認してください。

多分、このURLから辿る感じですが。。。
https://www.zabbix.com/documentation/current/manual/installation/install_from_packages#from_distribution_packages

バージョン5.2をRHEL/CentOS/Oracle Linuxに入れる場合はこの辺りかな?
https://www.zabbix.com/download?zabbix=5.2&os_distribution=red_hat_enterprise_linux&os_version=8&db=mysql&ws=apache

ということで、順次始めて行きます。

まず、以下のインストールを行っておきましょう。

  • Apache
  • PHP 7.2以上

インストールと設定

上記で記したオリジナルサイトへアクセスして、対象を選択します。

Zabbix対象バージョンと環境を指定

少し画面をスクロールしてリポジトリのインストール方法を確認します。

Zabbixリポジトリの登録

リポジトリを追加して、dnfのキャッシュをクリーンしてます。

zabbixサーバとフロントエンドとエージェントをインストールします。

結構色々とインストールするみたいで、少し時間が掛かります。
途中、確認メッセージが表示されますが、全て「y」で答えれば大丈夫だと思います。(自己責任で)

データベースの設定

MariaDBの設定を行います。

データベースの初期設定やスキーマが準備されていますので、それを以下のコマンドで設定します。

最後に、設定ファイルにデータベースのパスワード設定を行えば、初期設定は完了です。
/etc/zabbix/zabbix_server.confにデータベース作成時に使用したパスワードを以下の様に設定すれば完了です。

サービスの登録

サービスを登録します。
色々サービス起動させるんですね。

最後に確認します。
http://IP_address/zabbix

こんな画面が表示されれば成功です。

zabbix起動画面

ログインまでの各種設定

まずは日本語にします。

Zabbix日本語で

前提条件がOKになっているか確認します。

前提条件確認画面

Zabbixデータベース接続設定。こちらではデータベースへのパスワードだけ入力します。他はそのままで大丈夫でしょう。

サーバの詳細でも何もすることないです。

GUIの設定が出来るようになっていました。
タイムゾーンとデフォルトデータを変更してみました。

GUI設定

最後に確認ですね。

確認画面

これでおしまい?

インストール設定終了画面

最後の設定が完了すると、ログイン画面が表示されます。

初期のユーザ名はAdminで、パスワードはzabbixです。

さて、このままでは正常に動作しません。
「zabbixサーバが動作していません・・・・」みたいなコメントが表示されます。
SELinuxに影響されています。
本家の設定内容にも記載がありますが、以下の設定を行います。

Apacheを再起動します。

これでSELinuxを有効にしていても、zabbixを使用することが可能です。
せっかくの監視システムですから、セキュリティにきちんとしておきたいですからね。

今更ですが、パッチ(Patch)の当て方について

最近は、プログラムの修正などはファイルを更新(アップデート)して完了させることが多いですね。
わざわざpatchを当てるくらいなら、何故、git使わないだ?という声もあるでしょう。
正直、需要が乏しい所でもありますね。
でも、今回は敢えてpatchについて、メモを残しておきます。

Patchとは

面倒なんで、Wiki調べてください。
https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%83%E3%83%81

差分ファイルを作って、それをもってファイルの更新を行う方法になります。
更新後に問題があった場合には、Patchを戻すことも可能です。

今回、私が出くわした状態は、ファイルを更新して欲しいという要望でした。
完全に更新すれば必ず動く!という保証付きならば良かったのですが、実際には間違っていた部分もあって、元に戻さないといけない可能性がありました。
当然、バックアップを取ってから更新するということも考えたのですが、そこそこの数があったので、どうたものかと悩んだ挙句、少し時間は掛かるものの、patchによる適用とバックオン可能な状況を選択しました。

悲しいかな、gitを適用してなかったのがいけないんですけどね(^^ゞ

差分の確認

patchは差分情報により、更新対象となるファイルを更新するとともに、最悪場合は元に戻すことが出来ます。
Linuxでは、patchコマンドに差分情報を与えることで、ファイルの更新を行うことになります。
この差分を確認するコマンドは、ご存知のdiffコマンドです。

# diff old.txt new.txt

これで、old.txtとnew.txtの差分を標準出力に出力することが可能です。

patchファイルの作成

patchファイルの作成には、このdiffコマンドを使用します。
具体的には以下のコマンドです。

# diff -up old.txt new.txt

ファイル単位で行うには、このコマンドで差分情報が標準出力に表示されます。
実際にpatchファイルを作成するには、以下の様にリダイレクトを使って標準出力をファイルに出力します。

# diff -up old.txt new.txt > file.patch

とすることで、patchファイルが作成されます。

patchの適用をする際には、このファイルを利用して以下の様に適用します。

# patch new.txt < file.patch

これで終わりです。
元に戻す場合には、以下のコマンドを使用します。

# patch -R new.txt < file.patch

でも、一つ一つのファイルに適用するのは面倒ですね。
patchコマンドは、ディレクトリ単位の更新にも対応しています。

まずは、差分情報の作成から行いましょう。

diff -uprN old_dir new_dir > dir.patch

更に適用するには以下のコマンドで適用します。

patch -p1 new_dir < dir.patch

元の状態に戻す場合も同様に、以下のコマンドを使用します。

patch -R -p1 new_dir < dir.patch

更新対象のファイルが実行ディレクトリにある場合や、ディレクトリが実行ディレクトリにある場合には、ファイル名やディレクトリ名を省略することが可能です。
でも、明示的に行う方が、間違いが無くて良いですよね。

patchコマンドの詳しいオプションに関してはヘルプを参照するとか、他のブログを参考にしてください。

Gnomeが固まる~~~( ゚Д゚)

私はCentOSを頻繁に使用していますが、放置するといつの間にか画面が固まった状態になったり、動いてもいつ反応が返ってくるのか遅延が酷くなる症状に陥ることがそこそこ頻繁に発生します。
当初は、無理やりリブート掛けたりしていたのですが、逃げ道を発見しました!

備忘録です。完ぺきではありません。
特に発生しやすい環境は仮想OSです。
これどうにかならないか?と悩んでいました。

まず、Ctrl+Alt+DELLを押します。
シャットダウンを促すダイアログが出てきますが、ここでシャットダウンしていたのは、今までの私です。
泣く泣く幾度シャットダウンを行ったことか・・・(TT)

せっかくCtrl+Alt+DELLを押しましたが、キャンセルします。
この後、右上の電源マークをクリックして現在のアカウントから以下のいずれかを選択します。

  • ユーザの切り替え
  • ログオフ

一度、ログイン画面へ遷移します。
その後、再度ログインすると問題が解消されます。

これに気が付くまで長かった~

概ねこれで解決です。

CentOS 8でログイン画面がスクリーンロックされるのを回避する。

通常、CentOS 8のログイン画面は、5分経過するとタイムアウトして画面が黒くなります。
これを回避する方法は、CentOS 7について記載したことがあるのですが、CentOS 8では同じ方法が出来なくなっていました。
これから記載する方法は、多分CentOS 7でも実現できる方法だと思いますが、CentOS 8で行う方法について記載したいと思います。

まず、必要になるdconf-editorパッケージをインストールします。

# dnf install dconf-editor

続いて、dconf-editorを起動します。

# dconf-editor

まあ、そのままですね。ただ、この方法は、デスクトップ環境で行う必要があります。

dconf-editorの初期画面

フォルダー構成の様になっていますので、以下の画面に示すようにフォルダーを移動します。
/org/gnome/desktop/session/idle-delay

dconf-editor画面

User default valueをオフにして、Custom valueを0に設定します。

これで、ログイン画面がスクリーンアウトすることがなくなるはずです。

QNAP:複数ドメインでSSL認証とBASIC認証の設定が面倒だったので

はじめに

QNAPで複数サイトを仮想ホストで立ち上げました。
その後、Let’s encryptでSSL認証を行ったのですが、5~6サイト以上設定しようとすると認証が取れない状態になってしまいました。
また、仮想ホストで指定したフォルダの場所が日本語(2バイト文字)を含むパスになっていて、どうにも.htpasswdの指定がエラーになってしまったので、その時の対処方法をまとめてメモします。

複数サイトを仮想ホストで準備する

多少説明を割愛します。
まず、Webサーバを準備するところから始めます。
QNAPのコントロールパネルを開くと、デフォルトでシステムポートに80ポートが使われていたりします。
この状態では、Webサイトで80ポートが使えず、後々Let’s encryptの設定が出来ません。
そこで、まずは、デフォルトのシステムポートを80以外(例:8080)にします。
同様に、HTTPS(SSL)のポート番号も443から別のポートに変更しておく必要があります。
こんな感じです。

コントロールパネル:システム


その後、コントロールパネル→アプリケーション→Webサーバで、Webサーバを有効にし、各ポート番号を変更してデフォルトの80ポートと443ポートが利用できる状態にしておきます。
こんな感じです。

コントロールパネル:Webサーバ

更に、「仮想ホスト」を有効にして、仮想ホストを画面の指示に従って設定します。
仮想ホストの対象フォルダは、NAS上のどこでも指定出来るみたいなので、自由度が高いのですが、それが後の後悔に繋がりました。
日本語(2バイト文字)を含むフォルダを指定したことで、後々苦労することになりました。
ちなみに、サイトを作成する際は、HTTPS(443)サイトだけを作るのではなく、HTTP(80)サイトも同じフォルダーを指定して両方作る必要があります。

Let’s encryptでSSL認証を行う。(失敗編)

複数サイトを構築する場合でも、2~3サイト/ドメインであればこの方法でも何とかなると思います。それでも面倒ですけど・・・

SSL認証を設定します。
お名前.comを利用して、ドメインを取得しました。
DNS認証にすれば良かったのですが、諸々の事情で複数のドメイン管理サイトでドメインを取得していたこともあり、安易にDNS認証やワイルドカードによる認証で回避が難しく、一つ一つ登録することを試みました。

コントロールパネル:セキュリティ

コントロールパネル→セキュリティ→証明書とプライベートキーから設定を行います。
Let’s encryptで認証を行う場合は、この「証明書の交換」を使用すると以下の画面が表示されます。

Let’s encryptで認証を指定
認証設定

ドメインには、DNSに指定したドメインを指定します。
メールは有効期限前の案内などが送られてきます。
「代替名(任意)」は、エイリアスですね。
複数サイトの認証を行う場合には、この「代替名(任意)」を利用して設定出来る様です。
但し、「ドメイン名」で指定できるのは1ドメインだけで、2つ目を「代替名(任意)」に指定することで認証が出来ました。
最初に1つだけ設定して、次に、1つ目に指定したドメインを代替名に指定し、新しい2つ目のドメインをドメイン名に指定する・・・これを繰り返すのか!?
でも、これを繰り返すしかないのか!?繰り返せば、もっと多くのドメインを登録できるのか?と戦々恐々としながらトライしてみました。

結論として、4~5ドメイン/サイトであれば登録出来ました。
その後、全く追加出来ない状態に陥ります。

尚、一つドメインを登録する毎に、QNAP画面のリロードを要求され最初の画面に戻ってから作業を繰り返すという面倒な仕様です。

やるならDNS認証だと思います!

きっと私の環境が悪いのでしょう。
本来であればDNS認証でDNSのTXTレコードを設定して・・・ということなのですよ。
でもね。TXTレコードを書けないDNSを併用していたため、どうにも逃げ道が無かったんです。
DNS認証の方法については、別の方が書かれているので他を参考にしてください。
気持ち的には、さくらの環境を使う方法が自動化も容易そうで羨ましいなぁと思いました。

Let’s encryptをマニュアルで!

結局ここなんですよね。
自動化は諦めました。
何方か自動化出来る提案があったら教えてください。
私の場合は環境の問題で無理ですが、お名前.comで認証出来ると嬉しかったなぁ~

さて、始めます。
Let’s Encryptを利用できるよう準備します。
たくさん書いている人がいるので、環境構築はご自由にしてください。
私は、適当に空いてたCentOSの仮想マシンを使いました。
きっと、認証専用マシンになるでしょう・・・(TT)

こんな感じです。

ここで、「Press Enter to Continue」を見てエンターキーを打ちたくなりますが、まずサイトが保存されいている場所に上のBで指定されているファイルを作成する必要があります。

こんな感じでファイルを作ります。
私が使用しているQNAPでは、公開している標準のWebサイトは、下記のディレクトリになります。
/share/Web
共有ディスク側については、以下のディレクトリになります。
/home/httpd
Webサーバの仮想ホストを利用している場合は、指定したフォルダになりますが、そのルートディレクトリは以下になります。
/share
色々と厄介ですが、これで対応が出来るはずです。

作り終わったら、エンターを押して次に進みます。

認証したいドメイン数分これを繰り返すことになります。

失敗した場合には認証が行われませんが、再度同じコマンドを実行したり、ドメインを追加して実効する際には、前に認証されているドメインは省略してくれます。

とは言え、失敗を繰り返すとLet’s encrypt側から一時的に認証を拒否される場合もありそうなので、失敗しない様に心がけましょう。

最終的に、以下のコメントが表示されます。

/etc/letsencrypt/live/xxxx.site(xxxx.siteには対象のドメインが示されます。)に認証ファイルがシンボリックリンクされて作成されます。

QNAPに認証ファイルを登録する。

先程作成した認証ファイルをQNAPに登録します。

失敗時?と同じように、QNAPのコントロールパネル→システム→セキュリティ→証明書とプライベートキーで「証明書の交換」をクリックし以下の画面を開きます。

証明書の交換:インポート
証明書のインポート

証明書のインポート画面で先ほど作ったファイルを登録します。
それぞれ以下の様になります。

証明書      :  cert.pem
プライベートキー :  privkey.pem
中間証明書(任意):  chain.pem

中間証明書が必要だったかどうかまでは知りません!
ここまで来て失敗するのが面倒だったんです!!

適用をクリックして、何も表示されるずに終了し、「リロード」を促されたら成功です!
再度最初の画面に戻ってください。

証明書の取得および登録は以上で完了です!お疲れ様でした!!

とはならないんですよね。。。。
まず、この状態では、HTTPでアクセスするとそのままHTTPアクセスが維持されます。
HTTPSでアクセスすれば当然HTTPSでアクセスされます。
ドメイン認証された方には判ると思いますが、自動でHTTP→HTTPSの変換/リダイレクトはやってくれません。
自分で書く必要があります。
サイトのトップに.htaccessを記載します。
好みもあると思いますが、簡単にこんな感じです。

説明は省略しますが、HTTPSじゃないアクセスがあったら、httpsに変えてアクセスしなおすことになります。

BASIC認証

BASIC認証では、.htpasswdの場所を.htaccessにフルパスで指定する必要がありますよね。
QNAPだとそのフルパスが良く分からなかったんです。

なんかググると、頭に「/share/を付ければなんとかなるみたいなんですけどね。
確かにその通りだったんですよ。でもね。日本語(2バイト文字)を含む場合は、Windowsで編集したりしてもどうにもダメだったんですよ。

で、諦めて半角文字だけパスの所にパスワードファイルを纏めようか?なんてことも考えましたが、気が付いたんです。これですね。

sshでQNAPへログインします。
中身はLinuxです。
/shareの下に見覚えのあるフォルダが並んでいるかと思います。
そこから適当に該当するサイトのファイルが保存してある場所を探して、直接viで.htaccessを編集することで、正しくパスを指定することが出来ます。

それと、理由は解りませんが、/dev/nullを指定できませんでした。
これがエラーになるみたいなんですよね。なんでだろう?削って大丈夫かな?と少し不安もありますが、取り敢えずは動いてるから様子見です。

これで終わりです。

証明書の更新は・・・多分、証明書を作成したマシンでcertbot renewってやって出来上がった認証ファイルを定期的にアップロードして更新してやることで解決するでしょう!!(期待)

本気で終わり!
長かった~(^^♪

ディスク復旧:マウントできない(TT)

CentOS 7の環境でOSとデータでディスクを分けていたのですが、OSのディスクが吹っ飛んでしまい、データだけでも抜き出そうと別のCentOSの環境にディスクを繋いでマウントしようとしたのですが、マウントが上手く出来無い現象に見舞われました。

初めて繋いだディスクですからマウントしているわけもなく、ネットをググりましたが、なんか見当違いの回答ばかりで最終的に行き着いたのがこの方法です。

まず状態を確認します。

sda1の下にddf1〜が存在します。
このddf1〜が邪魔をしていた様です。
このddf1〜は繋いだ際に勝手に作られるらしく、削除しても自動的に作成されます。
と言うことで削除しても問題なさそう!
削除します!

削除する順番は、ぶら下がっている子どもから順番に削除します。

この後、マウントすると上手くマウントできました。

mount /dev/sda1 /mnt/hdd/

ちなみに、最後になりましたが、/mnt/hddのディレクトリは事前に作っておきます。

これは思い出せないわ!ということで、メモです。

Apache 2.4 で少しセキュアなWebサーバを構築する。

1.はじめに

CentOS 7ではApache 2.4がデフォルトになっていますが、2.2の頃に比べて設定が簡素になっていて、逆に解り難くなっている感じもします。

また、多くのサイトでは基本的な設定は記載されているのですが、セキュリティを考えたり、マルチドメインに対応させたり、高速化を考えたり。。。意外と面倒なんですよね。

そこで、自分用にサイトをカスタマイズしてみました。
ということで、個人用設定です。

2.こんな感じにしよう

お品書きです。

・Apacheのインストール
・VirtualHostの設定
・SSL対応(紹介のみ)
・基本的なセキュリティ設定
・ちょっと踏み込んだセキュリティ設定
・高速化

こんな感じで進めていこうと思います。
SSL対応の前にVirtualHostの設定を行う理由は、今回使用するSSLの証明書がドメイン毎に必要となる為、事前にマルチドメインの設定を行っておきたかったためです。
順序についても少し考えてから行ってみると、作業が戻らなくて良いかと思います。

3.Apacheのインストール

CentOS 7ではデフォルトで準備されている場合もありますね。
もし入っていなかった場合には、yumでインストールしましょう。

あまりに簡単すぎますが、インストール自体はこれで終わりです。
以下のFirewall設定を行えば、公開出来てしまいます。

3.1 firewallの設定

上記のコマンドでは、httpとhttpsを開放しています。
実際には、まだhttpsの設定は行っていませんので接続は出来ません。
試しに、httpでドメインを指定してアクセスしてみましょう。
きちんとApacheのロゴが表示されるでしょう。

3.2 VirtualHostの設定

複数ドメインでWebサーバを構築したい場合があります。
そこで、複数ドメインでWebサーバが動くように設定を行います。
/etc/httpd/conf.dに新たな設定ファイルを追加します。
/etc/httpd/conf.d/virtual.confとします。

上記では、hoge.ne.jpとsub.hoge.ne.jpで指定する2つのドメインでアクセスできるようになりました。

4.SSL対応(紹介のみ)

Let’s Encryptを利用すると、無償でSSL証明書を得ることが出来ます。
下記のサイトにインストール方法が記されていますので参考にされると良いでしょう。
https://free-ssl.jp/usage/install-certbot.html#CentOS7

実行方法についても同じ様に下記のサイトに記されています。
https://free-ssl.jp/usage/#TestExec

コマンドを実行されたら内容を確認しながらインストールすると、 /etc/httpd/conf.d/virtual.conf も適当に書き換えられて、SSL対応が可能になります。
こんな感じに書き換えられます。

httpdを再起動するとSSLの設定が有効になります。

5.基本的なセキュリティ設定

これから幾つかの設定を行います。
設定を行った際に行う2つのことをここで説明しておきます。
1つ目は、正しき記載されているか?
2つ目は、httpdの再起動です。
それぞれ、よく使うコマンドになりますので以下に記します。

正しく記載されているか確認します。

httpdの再起動を行います。

5.1 Wellcomeページの削除

デフォルト状態でドメインへアクセスすると、Welcomeページが表示されます。
Welcomeページは通常不要なページです。
必要ないから削除してしまいましょう。

/etc/httpd/conf.d/welcom.confファイルを削除するかリネームすることでwelcomぺ^自我表示されなくなります。

httpdを再起動することで設定は反映されます。

5.2 Index表示をデフォルトで行わせない。

デフォルトの設定では、URLで指定されるフォルダーの一覧が表示される状態になっています。
フォルダーの一覧が表示されてしまうと、サイトに含まれるファイルの一覧や構造が解ってしまいます。
この機能をデフォルトでOFFにします。
/etc/httpd/conf/httpd.confに含まれる以下の設定を変更します。

5.3 HTTP TRACEメソッドを無効化する。

クロスサイトスクリプティングの対策として、TRACEメソッドを無効化します。
/etc/httpd/conf/httpd.confに以下の1行を追加します。

5.4 X-Frame-Options を設定する。

クリックジャッキングの対策として有効なX-Frame-Optionsを設定します。
/etc/httpd/conf/httpd.confに以下の1行を追加します。

SAMEORIGIN以外にもオプションはありますが、ブラウザによってサポートされていない場合もあります。
ブラウザのバージョンに依存することもあります。
ネット上で情報確認を行った上で対応を考えてみてください。
この設定を行うと、iframeなどで異なるドメインのサーバで勝手に使用されることが出来なくなります。

5.5 Apacheバージョンの隠ぺい

Apacheのバージョンをデフォルトでは取得できる設定になっています。
でも、バージョン情報が解ってしまうと、そのバージョンを狙った攻撃も解ってしまいます。
そこで、このバージョン情報を隠ぺいします。
普通は必要ない情報ですからいいでしょう。
/etc/httpd/conf/httpd.confに以下を追加します。

5.6 暗号化を強化する。

まず、安全性の低い暗号化を無効にします。
/etc/httpd/conf.d/ssl.confにある以下の内容を変更します。

次に、以下を有効にします。

CentOS 8:postgreSQL 12 + Python

前回のpostgreSQLインストールでドタバタしたのも束の間、psycopg2がインストール出来ない!?

postgreSQL 12のインストールは前回を参考にしてください。

pg_configが使えない?

それでもだめなので、.bashrcにパスを追加

それでも、gccが無いと怒られたので

 これでもか!ということで

最後良く分からないけど、なんかできた!

気になる技術の使い方を記録しています。マニアックなところもあると思いますので、ご利用は自己判断で。