投稿

7月, 2013の投稿を表示しています

メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバは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の反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

WordPressのSPAMが半端じゃない

イメージ
急に増えてきたSPAM WordPressを使うと素早くソコソコの見栄えのサイトが構築できるので、お世話になっている。 ところが、管理しているWordPressのコメントに執拗に大量のSPAMが書き込まれるようになってきた。 一応、管理者が許可しない限り、表示はされないのだけれど、その確認のメールが毎日山のように届いくのが苦痛だ。 仕方なく、SPAM指定をしてIPを記録していくのだけれど、一向に減らないのは向こうも様々なツールをあちこちから使っているんだろうなぁ・・・と、分かっているだけに気分が悪い。 ましてや、まともなコメントが埋もれてしまったりするのも嫌だし…。 と思っていたら、こんな記事を見つけたので早速導入することにした。 「 Throws SPAM Away 」- WordPressプラグイン Throws SPAM Awayでコメントスパム、トラックバックスパム対策。困っている人はぜひ使ってみてください。 まさに自分にピッタリということで、飛びつきました。 Throws SPAM Away WordPressのプラグインから検索すると出てきます。 そこで、インストールしてやればOK。多分すんなりと入るはずです。 すると、設定のメニューが左に出来上がります。 あとは、ここを選んで細かく設定するだけ。とは言っても、ほぼデフォルでOKです。 しかも作者は日本字なので、細かい説明も違和感のない表記で分かりやすいですね〜。 自分で設定したのは、以下の2点。 SPAMブラックリスト利用 WordPressのコメントで「スパム」にしたIPからの投稿にも採用する この2つをONにすること。 そして、後者は「※Akismet等で自動的にスパムマークされたものも含む 現在「spam」フラグが付いているIPアドレス:」の後に、これまでSPAMとマークしたコメントのIPの一覧が表示されているので、このデータを「対象IPアドレスにコピーする」ボタンを選択して、登録してやることです。 以上で、これまでSAPMとマークした作業(データ)も生かせるし、今後はブラックリストも併用して、防ぐというわけです。 22日にこの記事を見て、即日設定してからは、今のと

sshのパスフレーズ自動入力

SSHは安心だけど とりあえずVPSとの接続はsshしか手段がない。 Macからのssh接続だと、最初の接続でパスフレーズをキャッシュするかと聞いてくるので、覚えさせればいい。 そうすれば、以後configに設定した名前だけで接続が可能になる。 この時、パスフレーズの入力は必要ない。 $ ssh vps でOK。 さてノートPCのUbuntuにid_rsaをコピーして、同様にconfigを.ssh以下に保存する。 端末から、Mac同様に接続を試みる。 $ ssh vps ここまでは、同じだ。 ところが、Ubuntuは自動ではパスフレーズをキャッシュしてくれない。 ssh-agentを起動 そのためのツールが別に用意されているので、起動する。 $ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-SqRHipZc2573/agent.2573; export SSH_AUTH_SOCK; SSH_AGENT_PID=2574; export SSH_AGENT_PID; echo Agent pid 2574; すると、上記のような表示がなされる。この時点では、パスフレーズはキャッシュされていないので、続いて、追加作業をおこなっておく。 ここでは、ssh-addを実行する。 $ ssh-add Enter passphrase for /home/satoshi/.ssh/id_rsa: Identity added: /home/satoshi/.ssh/id_rsa (/home/satoshi/.ssh/id_rsa) 今度は、パスフレーズを聞いてくるので、正しく入力すればOK。 これで、準備完了だ。 早速接続してみる。 $ ssh vps Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-49-generic x86_64)  * Documentation:  https://help.ubuntu.com/ Last login: Sat Jul 27 21:07:50 2013 from xxx-yyy-zz-aa.sub.domain.jp username@vps:~$ 今度は、パスフレーズを聞かれることなく、接続が完了する。

imapでの接続

postfixの次のSTEP 前回、SMTPにpostfixを導入し設定を終えた。 今度は、外部からメールの取り出しができるように、imapの設定を継続する。 Dovecotが一般的らしく、前回Postfixを入れるときに一緒に入れた。 受信の確認には、コンソール用のMTUが必要(前回mailで確認しようとしたけれど、Maildirに非対応)なんだけど、とりあえずMaildir内を確認して届くのをチェック。 一応、Muttを入れてみるが、設定ファイルを書く必要があって、あちこち探して見るけれど、あまり詳しい情報がない。 いくつかのサイトを参考にしながら、次のように設定。 set mbox_type="Maildir" set folder="~/Maildir" set spoolfile="~/Maildir/" # realnameは、Fromヘッダの名前になる。 set realname="username" # use_fromを設定しないと、ローカルコンピュータの名前が設定される。 set use_from="yes" set from="username@xxxxx.yyy.zz" # envelope_fromを"yes"にしないと、MAIL FROM:コマンドでローカルコンピュータ名が # 使用される。   set envelope_from="yes" # Return-Path:これを正しく設定していないと、@niftyのメールサーバがはじく。 my_hdr Return-Path: username@xxxxx.yyy.zz my_hdr Bcc: username@xxxxx.yyy.zz set nomove mailboxes "~/Maildir/inbox" "~/Maildir/trash" # 一覧画面の表示項目(日時と件名のみ) set index_format="%4C %Z %{%b %d} %s" set postponed="~/Maildir/draft"

Slideshareが残念なことに・・・

KEYNOTEのファイルが使えなくなってる・・・ 以前、PDFに出力し忘れたときに、SlideshareにKeynoteのファイルをUPして コンバートしてもらった。 実は、今日もPDFに出力し忘れて、困ったのでSlideshareを利用しようとアクセスしたのだけれど・・・。 keyファイルをuploadしらたformat errorとでるではないですか・・・。 zipにしてUPするも、だめだと言われる。 あれれ? Forumを検索すると We are currently facing issues with conversion and uploading of Apple files such as Keynote and Pages. We are working on a resolution for this, but since it may take some time, we have disabled uploading for these file types. Until we do resolve this issue, you can still upload your files by converting your presentation to a PDF before uploading. These PDFs should also upload more quickly and display more consistently than Keynote or Pages files. とな・・・。 せっかくの素敵な機能なのに、早く対応してくれることを祈ります。 今回は資料なしでやるしかなくなって、orz 他にいい方法はないのだろうか? そりゃ、忘れた自分が悪いんだけどさ…。

メールサーバの設定

イメージ
もっとも大変かも… サーバ設定で、ミスをすると致命的なのがメールサーバなので、しっかりと下調べをして臨むことに。何せ他のサーバへの影響が大きいのと、不要なトラフィックを発生させることになるからね。 基本的にはpostfixでOKなのだけれど、「POP3/IMAP4サーバ」にDovecotを使うのが、このところの標準構成らしい。 できればPOPは、さまざまな端末からの利用を考えると、問題があるのでIMAPを使えるようにしておきたい。 どうやら現在のubuntuには仮想パッケージが用意されている。 # apt-get install dovecot-postfix これで、postfix関連、dovecot関連の全てを入れてくれる。 途中で、このメールサーバの設定を聞かれるので、「インターネットサイト」を選択し、 ドメインを入力するだけで、インストールが完了する。 dovecot-core dovecot-imapd dovecot-managesieved dovecot-pop3d dovecot-postfix dovecot-sieve mail-stack-delivery postfix 全部で、8個のパッケージを入れてくれた。 設定の確認と修正 修正に関しては、 先人の情報 を参考にして/etc/postfix/main.cfを確認・修正する。 30行目あたりのmyhostnameを修正。 myhostname = mail.xxx.jp と、自ドメインのメールサーバのホスト名に変更。もちろん、前回DNSに登録してあるホスト名を利用。 34行目あたりのmydestinationを確認、修正。 mydestination = xxx.jp, vzzz-yyy-xxx-www.myvps.jp, localhost.xxx.jp, localhost  のように、受け取るドメインを列記する。VPSの本来のマシン名がデフォルトで入っているが、今のところ問題はないので、そのまま残しておく。 9行目あたり smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) となっているのを、以下のように変更。不要な情報は出さないように修正。 smtpd_ban

BINDの設定

イメージ
ネームサーバが無くては話にならない ということで、bindをインストール。 # apt-get install bind9 インストールは簡単だけど、設定は慎重に行う必要がある。 /etc/bind/ に設定ファイルがあるので、追加変更を行う。 /etc/bind/named.confに自分のドメインの設定を追加する。 include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; include "/etc/bind/named.conf.mydomain"; ←追加 でもって、named.conf.mydomainにzoneを記述。 zone "xxx.jp" {   type master;   file "/etc/bind/db.xxx.jp";   allow-query{ any; };   allow-transfer {     210.172.129.81;   }; }; zone "196.7.157.in-addr.arpa" {   type master;   file "/etc/bind/db.196.7.157";   allow-query{any;}; };  xxx.jpは自分の取得したドメインを記述。fileは単なるファイル名なので、同じでなくてもいいのだけれど、あとで訳がわからなくなるので統一しておく。 セカンダリdnsはお名前.comのを利用する。 マニュアル(Q&A)によると、2nd.dnsv.jp(210.172.129.81)を使えということなので、transferの許可を与えておく。 あとは、db.xxx.jpと逆引き用のdb.196.7.157を書いてやればOK。 今回は、IPが1つだけだし、サーバも全部共用させるので、wwwもmailもnsも同じマシンを指すように設定。 再起動をかけて、ロ

ネットワークの設定

イメージ
まずは情報収集 現状はDHCPでのIP取得に設定されている(とはいっても固定でIPが割り振られる)ので、その状態を確認。 $ ifconfig で、NIC、IPとブロードキャスト、ネットマスクなどを確認。 デフォルトgatewayは $ route で確認。 nameserverは、/etc/resolv.confを読み取る。 nameserver 210.157.1.171 nameserver 210.157.1.170 search myvps.jp 固定IPの設定 DHCPでも固定でIPを振ってくれるはずなので、問題はないのだけれど、オリジナルドメインを利用する上で、しっかりと設定しておきたいのと、最近のツールの確認も含めて、手動設定する。 /etc/network/interfacesを編集 # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address xxx.xxx.xxx.xxx netmask 255.255.255.0 gateway yyy.yyy.yyy.yyy dns-nameservers 127.0.0.1 zzz.zzz.zzz.zzz iface eth0 inet dhcpの行をstaticに変更し、以下を追加する。 設定内容は、先の確認事項を拾う これで、これまで同様のIPを固定的に割り振るはず。 ネットワークを再起動すればOKなんだけど、sshで接続しているので、rebootをかけておく。 resolv.confの自動書き換え 12.04からresolv.confは起動時に自動的に更新されるので、先の dns-nameservers 127.0.0.1 zzz

ubuntu serverにssh

VPSの設定を開始 さてVPSが動作するのは分かったし、標準以外のOSも利用できるのも確認できたので、本番環境を少しずつ構築することに。 作業内容を忘れると面倒なので、作業しながら記録しておくことにする。 まずは、Ubuntu Server 12.04 LTS 64bit版をインストール。 普通serverは言語を英語で入れるのだけれど、これだけ簡単なら試しに日本語もいけるかもと思いテストしてみる。 もちろん、ubuntuが日本語を選択できなければ不可能だけれども…。選べるようだ。 ディスクも分割して使用する意味は、今のところないので、100GBまとめて利用することにして、インストール設定する。 昨日と同様のペースで進んでいく。 VNCなので(しかもブラウザ上)ちょっと表示がもたつく感じがするものの、特に問題なく終了。 光学メディアのイメージを強制排出して、再起動する。 sshのインストール $ sudo apt-get install openssh-server 実際は、これだけなんだけどね。 この時点で、パスワード認証での接続が可能になるので、確認のため接続してみる。 このままでは、アタックされ放題なので…。きちんと設定しておこう。 そのためにはsshの設定ファイルを編集する必要がある。使い慣れたエディタjedもついでに入れておく。 $ sudo apt-get install jed 準備は整ったので、設置ファイルを書き換える。 まずは、rootでのログインは無効にしておきたい。 $ sudo jed /etc/ssh/sshd_config PermitRootLogin no 保存したら、sshdの再起動。 $ sudo service ssh restart 設定ファイルを書き換えたら、これを忘れないように…。と自分に言い聞かせるw 鍵の生成作業 鍵を使った認証をするために、クライアントマシン上で鍵を生成する。 $ ssh-keygen -t rsa 好きなパスフレーズを入力。再入力も通ればファイルが生成される。 秘密鍵id_rsaと公開鍵id_rsa.pubだ。公開鍵はサーバ上に持っていく。 $ scp .

ドメイン取得&VPS

イメージ
随分前から考えていたが・・・ 最近の値段は驚くほど安くなっているのと、たまたまテスト的に使用したい案件が発生したので、サクッと契約してみた。 どこでも良かったのだが、VPSを借りようと思っていたので、料金の比較的安いプランのある「 お名前.comのVPS 」でいくことにする。年間9,999円という安さ。 ここを選択したのは、価格だけでなく、OSのイメージが選択できることだ。いつも使っているUbuntuが選択肢にあるのはありがたい。 ローカルの作業と同じように使え、こちらでテストすることもできるので気楽に使える。 ついでに、お名前.comでドメインも取得することに。 .infoが維持費込みで考えても、かなり安いのでこれでいくことに。 初年度280円で更新費用が920円。とりあえず使うには充分な価格。 希望のドメインもサックリ取れそうだ。 Whois情報公開代行も無料なので申し込んでおく。 ここまで、およそ10分。カード情報を入れて承認されると、すぐにメールが届く。 契約完了。 続けてVPSにとりかかる。 同様にフォームを進めていくと、電話で認証するとな。 15日間の無料トライアルのためには、必要な手続きだってさ。 メールが届き、リンクを踏む。 登録した番号に電話がかかってくる。画面に表示されるコードを入力。 これでOK。今日は電話の近くで作業していて良かった。 すると、画面表示が完了に。 ここまで計15分。 なんと、お名前.comのユーザ登録に時間がかかっただけで、正味10分もかからない。 これで、レンタルサーバが可能になるとは…。 起動してみる すべてブラウザから操作ができるようになっている。 デフォルトのCentOSを入れて起動するだけなら、2分程度で終了。 今回はUbuntu12.04LTSを使うことにする。64bitか32bitか迷うところだけど…。1回めはテストで入れるだけなので、32bitを選択。 Guideに従って英語バージョンでインストール。 このGuideは結構丁寧に作られている。文章は少ないけれどキャプチャ画面が多用されていて、まぁ分かりやすい方かな。 この作業には多少時間がかかった。それでも全部で約20分。 特にjp.archive.ubuntu.comか

さくらサーバでLynxが…

イメージ
自動化するのにPerlを検討 ある案件で、あるサイトのフォームへ手入力しているものを、自動化するという処理を構築することに。 当初、メールでデータを流しこみ、Perlで解析し、POSTする方法を検討。 ところが、何度もページを遷移したあとで入力フォームにたどり着くのだけれど、SSLなページが、LWPではどうも上手くいかない。 まあWebブラウザを作るのと同じような内容になってしまうので、面倒すぎる。 どうもHiddenでデータ渡しているし、セッションを使っているのでCookieまわりの処理とかがダメっぽい。ひょっとするとReferer等も見ている感じ ふ〜む、そうだ! WWW::Mechanizeを使おうと考えた。データを作るのに手入力はやっていられないので、HTTP::RecorderでProxyさせて、記録することに。 でもSSL通すと記録してくれない…。 はぁ…。 テキストブラウザLynxが使えないレベル ならば、いっその事テキストブラウザを制御する方向で検討。 メールで受けて、解析し、テキストブラウザをスクリプトで動作させる。 スクリプトには解析した内容から、フォームに入力させるようにPerlで生成する。 よし。これならOKそう。 まずは手元のUbuntu上で簡単な動作確認を行う。 Lynxには、マニュアルに載っていないコマンドラインオプションがあって、 $ lynx -cmd_log ファイル名 とすると、操作を記録してくれる。 この記録されたファイルを編集してやれば思い通りに動かせるはず。 実行するには、 $ lynx -cmd_script ファイル名 でOKだ。 実際には、 lynx -cmd_script log.txt -accept_all_cookies URL なんて指示してやる。 どうやら、日本語もちょっとうまく処理してやるとフォームに流し込めることが判明。 SSLもモジュールさえ入っていれば動作するのを確認。 本番環境の調査 お客さんの借りているのが「さくらのレンタルサーバ スタンダード」。契約内容からSSHがOK。Lynxも入っている。PerlもOK。 ここまでは、事前の調査で分かっているので、最

planex GW-USMicro300 をUbuntu12.04で動作させる

イメージ
廃棄用のPCを再生していて Windows Vistaが入っていたノートPC(VersaPro)のメディアはないし、システムが壊れてしまい復旧ができなくなったということで、廃棄を依頼された。 スペックはなかなか良い(Core2Duo 2GHz+2GBメモリ)ので、ディスクが物理的に逝っていなければ何とかなると思い、Ubuntuを入れてみることに。 とりあえず、CDトレイが排出されないので、クリップを使って強制排出。 CDブートができれば、何とかなる…。 とりあえず、CDからの起動はOKだった。 ところが、無線LANは搭載していない。有線LANを接続するがコネクタが壊れているらしくLINKしない。とほほ。 USBも1つは物理的に逝っている。 仕方なく、ネットワーク接続は後ほどすることで、まずはインストール実行。 マシンが速いのとメモリが多いおかげか、予想以上に速く完了。 相変わらずCDは強制排出して、再起動。 無事Ubuntu12.04が起動した。しめしめ…。 念のためDiskをチェックし異常がないのを確認する。 さてネットワークをどうするか…  手元にあるiPhoneを接続し、使えるUSB端子を確認する。 インターネット共有をONにすると、無事ネットワークに接続できるところまで確認。 しかし、テザリングで400MB強のデータを落とす気にはならないので、思案どころ。 そういえば、ずいぶん前に入手したUSB LANアダプタが転がっているはず。 PLANEX の GW-USMicro300 があった。 USB端子に挿してみるが反応なし。 ググってみる。 「GW-USMicro300がZorin OS 6.1 lite(Ubuntu 12.04)で使えるようになった」 なんてのを見つけた。 ピンポイントで有用な情報だ。 /etc/modulesに rt2800usb 次に、/etc/modprobe.d/usmicron.confを新規に作成する。 install rt2800usb /sbin/modprobe --ignore-install rt2800usb; /bin/echo "2019 ab29" > /sys/bus/usb/drivers/r