投稿

ラベル(tr)が付いた投稿を表示しています

メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバはVPS上に構築していた。 ・Ubuntu Server ・Postfix ・Dovecot ・spamAssassinと、BlackListの利用 Spam対策を行ってきたし、サーバ上でメールをトリガーにして各種プログラムを動かしたりしてきた。 メールサーバのメンテナンスは結構面倒くさくて、  ・Disk容量のチェック  ・不正アクセスのチェック  ・各種セキュリティパッチの適用 など、手間がかかる。 そこで、外部のサーバを利用することに…。 結構安くて使い勝手の良さそうなのが、「さくらのメールボックス」 3年契約で、3070円とな…。  メールアドレスは自分のだけなので、20GBまで利用可能!  (Gmailより大きいねぇ) ということで、早速契約。 アカウント設定を行って、既存のDNSを書き換える。WHOISも書き換えて完了。 SMTPとIMAPが利用できればOK。 ちょうど、GoogleがSPF設定していないと受信しないし、DKIMおよびDMARCに対応していないメールを弾くようになったので、対応しているのを確認。 さくらサーバ自体は、これまでお客さんのサーバとして何件も利用しているので、利用方法も難しくはない。  Webメールにも対応しているので、いざという場合にもありがたい。 ということで、各メールソフトの設定を変更。  PC(常時使用する3台)とタブレット、スマートフォンと台数は多いがそれ程手間はかからない。 問題は、旧サーバで送受信したメールの履歴だけれど、これはThunderbrdを使ってローカルに保存することで回避。  本当は、サーバtoサーバでMailboxに残そうとも考えたんだけど、古いメールはそれ程必要ないし、ローカルにバックアップしてあれば凌げるので、良しとする。 移行時にDNSの反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

ソースコードのチェック

プログラマに求められることは何か… 毎年、非常勤として言語や環境設定、アルゴリズムなどを少し教えている。 ここ数年気になっていることがある。  自分のコードを書かない、書けない人の割合が増えているような気がしている。 確かに、Google先生に聞けば、いくらでもサンプルコードは入手できるし、解説も読める。以前に比べ格段に、ソースコードや開発に関わる情報を入手しやすくなっているとは思う。  そして、自分が作成しようとするプログラムで行き詰まって、検索したサンプルコードを参考に動くようにする。  これは、問題ないと思っている。  人のコードを読む→理解する→自分のプログラムで使えるように修正する(または利用する)→動かす→デバッグする…。  プログラマなら多分、普通の行動でしょう。  ところが、最近、Webに紹介されているコードをそのまま利用して、動く・動かないだけを確認する学生を目にするようになった。 課題を課す→同じ内容の問題と解答を探す→そのまま持ってきて提出する 他人のプログラムを入手→改行やコメントを付け加える→提出する これは、自分の考え・思考をコードに落としたことになるのか? 練習にもなっていないし、何も理解度が上がっていない…。 実力・経験値は一切向上していない…。 対策することに 他人のプログラムを、提出されて「はいOK」という訳にはいかない。 将来ソフトウェア関係の仕事をするのであれば、なおさらそんなことは許されない。  これまでは、各ファイルのmd5sumを取って、同一かどうか(不正しているかどうか)の判定を最初に行っていた。  ところが、最近は、コメントを書き加えるとか、無駄に改行やスペースを入れるという、Cheatまがいの手法を使うケースが目立ってきた。  仕方なく、コメントを無視し、スペースや改行を無視した上で、同一かどうかを判定することにした。 md5.sh 手軽に処理するためにシェルスクリプトで作成してみた。 md5.shで保存して、実行権限を付加してパスの通ったところに置けばOK。 findと併用するのを前提にしている。 #!/bin/bash # 元ファイルから改行・スペースを除去したハッシュ値を出力する # 結果は カレントディレクトリの$re

大量のパスワード生成

イメージ
良くあるんだけど… 客先のサーバの管理をしていると、アカウントの作成依頼が時々くる。 どうやって管理するかと言うとExcelやGoogle Spreadsheetに ユーザ名・パスワード、氏名、作成日などを記録しておく。 ユーザ名は、氏名から作成するので問題ないがパスワードはあらかじめ余分に生成して記録しておく。 使っていないパスワードが、あと1〜2個になったら、さらに生成して追記している。 ところが、パスワードをまとめて作れば作るほど、間隔が伸びるので作り方を忘れてしまう。 以前は、PHPで書いて、WEBアクセスで指定個数分出力させる方法も取っていたが、ブラウザを起動するのが面倒だ。 たまには、Commandの使い方の解説も含めて、記録しておこうと思う。 パスワードの作成 $ pwgen これで、160個のパスワードを生成してくれる。(図) ただしオプション無しだと本当にランダムに生成するので、たまたま強度の弱いパスワードが生成される。 そこで、通常は次のようなオプションを付加する。 $ pwgen -Ccns とか $ pwgen -CcnsB とか・・・ 使い方は以下の通り Usage: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ] Options supported by pwgen:   -c or --capitalize Include at least one capital letter in the password   -A or --no-capitalize Don't include capital letters in the password   -n or --numerals Include at least one number in the password   -0 or --no-numerals Don't include numbers in the password   -y or --symbols Include at least one special symbol in the pa