メールサーバの構築・設定(1) CentOS 6上にPostfix 多分、CentOS 7でもそんなに変わらないはず。

今更感はあるものの、まだまだ一般に普及しているクラウドサーバの多くはCentOS 6である。(2016年12月現在)
そこで、敢えてCentOS 6上にPostfixを構築する。

まずは、インストール作業から・・・・っていつもの様に簡単です

CentOSでは、標準でsendmailがインストールされている可能性があります。
sendmailの動作状況を確認します。

今回は停止する必要はなさそうです。
削除してしまっても良いのですが、取りあえず止まっていればOKということで次に進めます。
尚、停止させたい場合は、以下のコマンドを実行して下さい。

ここで、MTAについて少し触れておきます。
用語説明程度です。
MTA(Mail Transfer Agent)とは、メール転送を行うためのエージェントです。
メールを送信するための機能で、メールサーバの一部です。
さて、戻ってsendmailは停止させましたが、どのMTAを使うかシステム内で設定が必要です。
多分、sendmailが指定されたままの状態になっているのではないでしょうか?
ということで、確認してみます。
※MTA:Mail Transfer Agent

まだ、linkの項目を見るとsendmailが使用される設定になっています。

postfixを使えるように設定します。
alternativesコマンドでmtaの設定を変更します。

system-switch-mailを使用できる環境の方は、system-switch-mailコマンドで操作した方が楽だと思います。
私の環境では、system-switch-mailをインストールするのにリポジトリを変更しなければならなかったので、alternativesコマンドで代用しています。

上記の画面が表示されたら、「2」にpostfixが登録されていますので、「2」を指定します。
設定されたのかどうか判らない感じで、終わってしまいます(^^ゞ

設定状態を確認してみましょう!

3行目に表示されているlink項目がpostfixに変更になっているのが解りますね。
一応、これでpostfixになっています。

もう一つ確認方法を・・・

「+」の項目がカレントで設定されていますので、postfixになっています。
何も入力せずにEnterを押して終了しましょう。

以上で、sendmailは無効となって、Postfixが利用可能な状態になりました。

何も設定していないのに動いて大丈夫なの?と思うかも知れませんが、デフォルトのMTAを指定・設定しただけであり、Postfixが稼働し始めているわけではありません。

とは言いつつ、心配ですよね。私も本当かどうか心配です。

以下のコマンドで状態を確認してみます。

きちんと「stopped」(停止)になっていました。
stoppedになっていなかった場合には、以下のコマンドで停止させておきましょう。

動いていても、設定が整っていないので外部からのメールを処理する状態にはなっていないはずですが、設定が完了していない状態で動いてしまうと心配ですよね。

ということで、作業準備は完了したはずです。

続きは次回。。。。(近日中に更新予定)

 

メールサーバを立ち上げることにした。

今までは、プロバイダが提供するメールサーバを利用していました。
個人ではなく法人で契約して、10年以上お世話になってきました。
メールアカウントの設定もメーリングリストの作成もGUIで管理出来て問題はないのですが、幾つか課題はありました。

迷惑メールをメールクライアント(メーラー)で仕分けしていたのですが、10年以上使っていると徐々に増える迷惑メールに対応が必要になってしまいました。
ドキッとするようなタイトルの迷惑メールに思わず反応してしまいそうになったり(^^ゞ
まあ、そんなことはどうでも良いですねw

迷惑メールのフィルタリング機能は、プロバイダでも提供されており、それを使用することも検討は行っていたのですが、フィルタリングに掛かる費用がレンタルサーバの費用と同じくらいになってしまうのが納得いかず、メールのフィルタリングサーバを考えたり、UTMの導入なども検討していました。

そんなモヤモヤが続いていたのですが、仕事が忙しいのを良いことに放置プレイをしていました。

ところが最近、プロバイダ側のメールサーバに大量のスパムが投入されて、本来届くはずのメールが受信できなるという状態が何日か続き、業務にも支障を来たす始末。
あるお客さんからはメールが配信エラーになったとの連絡も入ってきました。
これでは不味いということで、プロバイダに相談したところ、他社への移行も考えて頂いて結構です的な回答。悪い意味ではなく、良心的な回答ではありました。

そこで、他のプロバイダでメールサーバを考えたりもしていたのですが、メールフィルタリングのサポートなどを調べたりするのが面倒になり、プロバイダごと変えちゃおうかとも思ったり、色々と思案した挙句に出した結論は・・・

・メールサーバを自前で建てる。
・Webサーバも自前で建てよう。(後で)

セキュリティとかバックアップとか心配だから、プロバイダにお任せにしてきたのだが、どこが良いのか悩んでるくらいなら一度建ててから、後でじっくり考えようということにしました。

ということで、CentOSのサーバ構築バイブルを片手に、もう片手にインターネットで調べながら・・・・

結論としては、以下の構成で構築したいという方針に定まりました。

・Postfix+Dovecotでサーバ構築
・GUIの管理画面を追加する。
・Webメール機能も後で追加する。
・スパム対策としてSpamassasinを入れてみよう!

これで、私が求めていた
メールサーバで迷惑メールフィルタリングが出来て、Webメールも出来る環境が整うはず。パスワードも平文ではなく暗号化出来るし、セキュリティ上も進歩するはず。
一応求めていた機能は全て満足できる。
更には、Webメール機能は後でじっくり好きなツールを搭載すればよいわけで、プロバイダが準備している使い難いツールを使う必要はない。(別にWebメールだけ別に作っても同じなんですけどねw)

ということで、次回からサーバ構築をメモる!

記載が済み次第、ここで記事へのリンクをまとめるつもりです。

 

以上

 

 

 

FireFoxが重たくなって落ちる。。。50.1.0

FireFoxの動作が極度に落ちてしまい、最終的に落とさないと使い物にならない状態に至ってしまう現象がここ最近続いている。

原因が特定できなかったのですが、色々とインターネット上を探りながらバージョン50.1.0がリリースされれば。。。とか思っていたのですが、どうもダメっぽいw

日本語入力との相性が悪いという話もチラホラしていたのを思い出しました。

この本文を入力中も少し重くなったりすることがあります。

重くなったかな~と思ったので、日本語入力を解除してみました。
すぐに日本語入力を再開している訳ですが、重くなった現象が解消されます\(^o^)/

私だけがたまたまそうなのかも知れませんが、参考情報として記録しておきます。

 

Windows 10を入れて、Edgeのデフォルト検索エンジン設定をやってみた。(メモ)

Windows 10をギリギリでインストールした。

デフォルトのブラウザはEdgeになる。

ここまでは、想定通りなのだが、Bingがデフォルトの検索エンジンになっているので、これだけは変更したい。

ということで、ネットであちこちに紹介されているのだが、備忘録のつもりでメモを残すことにした。

取りあえず、EdgeでGoogleのホームページを開く。
#EdgeでGoogleのホームページを開いたことが無いとこの後の作業に影響するらしい。

次に、右上の「・・・」(詳細)ボタンをクリック→「設定」を開く。

更に、「詳細設定」を選択する。

「アドレスバーで検索時に使うプロバイダー:」が「Bing」になっているので、「変更」ボタンをクリックする。

「Google 検索(自動検出)」を選択し、「既定に設定」をクリックする。

何故か時間が掛かる・・・・

しばらく待つと、以下の様に「Google(既定)」となれば設定完了。

見難い!使い難!と思うけど、こんな感じで設定完了。

・なんかWindows 10にして重くなった様な気がする。
なんでだろう?重くなるんて・・・・しばらくすると、起動当初よりは軽くなった気がする。
ウィルスバスターが原因ポインだけど、確証はない。

・Edgeで表示出来ないサイトがたまにある。
多分、バグでしょう。
マイクロソフトの勝手な仕様とか。

・なんで勝手にスクリーンショットを撮ると、OneDriveに保存されるんだ? 単純に、スクリーンショットを撮った時に、最初にOneDriveへ保存するかどうかを聞いてきていたらしい。
キーボード操作で、Enterを押したタイミングが悪く、設定されていた様だ。

解除の方法が見つかり事なきを得たが、邪魔!

 

 

PTP(Precision Time Protocol)を使用した時刻同期

PTP(Precision Time Protocol)を使用してみたくて、試しにやってみた。

PTPを実装するには、本来、PTPに対応したハードウェアである必要があるらしい。

普通に使っているだけならNTPで十分なのですが、諸所の事由から2台にマシンで精度の高い時刻同期を行わせたいことになり、已む無く実装検証を試みることにしました。

さて、上手く行くのか?
試した環境は、これまた諸所の事由によりホストOSとゲストOS・・・つまり、1台のマシンで実装検証(^^ゞ
#意味あるんかいな?

 

xargs コマンド表示

makefileの中でxargsコマンドを用いて繰り返し処理を行ったら、コマンドがどこまで進んでいるのか解らない状態になってしまった。

一連の作業における進捗状況が解らない状態です。

実装対象になったmakefileは実行終了まで24時間以上かかる場合もあり、進捗状況が解らないのは困った状態です。

せめてコマンドの実行内容が表示されるようにできれば、その引数からどこまで進んでいるのか大方の予想が出来るのですが。。。。

ということで、xargsのコマンドオプションを

xargs –help

で調べてみたました。

それらしきオプションの説明はありません。(実際は既に表示されているのですが、オプション説明が無くて解らなかった(^^ゞ)

ということで、manで調べてみたらそれらしきオプションが(^^♪

実際に使用しているxargsコマンドのオプションに-tを追加して実行してみたら、上手いこと表示されました\(^o^)/

 

CGIでソケット通信を行えるようにするには、SELinuxの設定変更が必要

Linux上のApacheでCGIを利用してソケット通信を行いたい場合がありますが、SELinuxではデフォルトで許可されていません。

今回は、CGIでftp通信を行おうとしたのですが、拒否されてしまいました。

対策としては、SELinuxの設定を変更してApache(httpd)から発行されたソケット通信を含む処理を許可してあげます。

以下はその方法です。

まずデフォルトの設定状態を確認します。

次にhttpd_can_network_connectを許可します。

再度、設定内容を確認します。

これで、ソケット通信は可能になります。

 

Apache DocumentRoot以外のディレクトリをシンボリックリンクで繋げたら、Forbidden 403 エラーの対策

Linux上のApacheでDocumentRoot以外の場所を参照できるようシンボリックリンクで接続したら、Forbiddenと表示されました。

Forbidden
You don’t have permission to access /user_dir/hoge.html on this server.

パーミッションや所有者をApacheに変更してみたり、色々試した結果SELinuxを無効にすることで正常に動作することを確認しました。

Permissiveになっていれば、SELinuxはモニタリング状態でありアクセス制御は掛かっていない状態になっています。

SELinux事態を無効(モニタリング状態)にしておくのは、あまり良いことではありません。

出来ればアクセス制御は正常に行われている状態にすべきです。

アクセスできない原因がSELinuxのアクセス制御に影響されることが確定されたら、以下の操作を行うことでこの問題を解決することが出来ます。

さて、一般にパーミッションの確認などをする際には、ls -laなど個人差はありますがlsコマンドを使います。
SELinuxコンテキストも同じように確認することが出来ます。
コマンドは以下になります。

通常のファイルはこんな感じです。

さてSELinuxコンテキストを変更するには、まず最初に対象となるディレクトリに対して設定を行います。

続いて、対象ディレクトリ内のすべてのファイルとフォルダーに対して設定を反映します。

対象ディレクトリ以下に多量のファイルがあると、時間が掛かる場合があります。
SELinuxを有効にします。
SELinuxの有効化は以下のコマンドを実行します。

最後にブラウザで動作確認を行ってください。

これでもForbiddenが表示される場合は、上記の操作に問題があるか?本当にパーミッションが間違っていないか?確認してください。

ついでに確認方法を記載します。

上記でも記載したとおり以下のコマンドで確認します。

設定が変更されているのが解ると思います。