ホームネットワーク日記

設定したことを忘れないように書いてあります。

2018.03.03
smbに接続できない

専用のNASを買ってから、ほとんど使っていなかったサーバの共有フォルダに接続したらつながらない。 どうやらWindows 10 Fall Creaters UpdateからSMBv1がインストールされなくなったのが原因らしい(参考)。 とりあえず、smb.confにmin/max protocolの設定を入れると、publicには接続できるようになった。

[global]

        unix charset = UTF-8
        dos charset = cp932
        display charset = UTF-8
        min protocol = SMB2
        max protocol = SMB2

参考にしたページでは、maxまたはminだけで問題ないようだったが、私の環境では両方を記載しないと動作しなかった。

publicは認証無しで記載していたが、このままではなぜかhomeにアクセスできなくなってしまった。結果的にpublicの設定にguest onlyを入れることで、homeにアクセスできるようになった。

2015.03.31
NamazuをUTF-8環境で使う

事情があって会社の旧環境を延命せざるを得なくなった。 サーバは用意されたが、OSが最新になり、いろいろ変更をしなければならない。 特に、ディストリビューションがRedHatに変わったのでいろいろ面倒だ。

面倒なことの一つに、namazuで作成していた全文検索システムが使えないこと。 文字コードがUTF8ベースとなったが、namazuはutf8に対応していないため、不整合が発生した。 elasticsearchに移行などもちらと考えたが、java入れるとか大変なので、namazuをutf8環境で使えるようになんとかすることにした。

ここを参考に、 もともとあるnamazu.cgiをnamazu2.cgiに変更し、新たにnamazu.cgiというwrapperを書いた。

しかしながら、リンク先のwrapperをそのまま使用すると、

という問題があるので、以下のように修正した。
#!/usr/bin/perl
use CGI;
use Text::Iconv;
use CGI::Lite;
use Encode::Guess qw/euc-jp/;

my $cgi = new CGI;

my $dec = Encode::Guess->guess($cgi->param('query'));
my $url = $cgi->url;
$url =~ s|/namazu.cgi|/namazu2.cgi|;

my $new_query;
if ( $dec->name eq 'utf8' ) {
        my $converter = Text::Iconv->new("UTF8", "EUC-JP");
        $new_query = $converter->convert($cgi->param('query'));
} else {
        $new_query = $cgi->param('query');
}

my $uencode = url_encode($new_query);
my $oParam = "";
foreach  my $key ($cgi->param) {
        next if ( $key eq 'query' );
        $oParam .= "&".$key."=".$cgi->param($key);
}
print "Location: ".$url."?query="."$uencode$oParam\n\n";

文字コードの判定などは他にもっと良い方法があるかもしれないが、とりあえず上記で問題無さそう。

2013.01.06
Cyrus imapdのエラー

cyrusは毎回アップデートのために問題が発生する。 たしかvine seedから入れたと思うので、入れたタイミングが悪いのだろう。

とりあえずインストールは正常に終わったように見えるが、/etc/init.d/cyrus-imapを起動すると、

cyrus fatal error: can't open old database Converting from /var/lib/imap/mailboxes.db (berkeley) to /var/lib/imap/mailboxes.db.flat (flat)
などとメッセジーがでる。
head -c 17 /var/lib/imap/mailboxes.db | tail -c 13
で確認してskiplistと出るようなら、skip-list形式なのにbarkeley形式から変換している可能性があると書いてあり、 その場合は、下記のようにしろとあったが、
/etc/init.d/imapd stop
cd /var/lib/imap/
mv annotations.db annotations.db-skiplist
/usr/lib/cyrus-imapd/cvt_cyrusdb /var/lib/imap/annotations.db-skiplist skiplist /var/lib/imap/annotations.db berkeley
mv mailboxes.db mailboxes.db-skiplist
/usr/lib/cyrus-imapd/cvt_cyrusdb /var/lib/imap/mailboxes.db-skiplist skiplist /var/lib/imap/mailboxes.db berkeley
exit
しかしながら、これでは解決せず。
cvt_cyrusdbを呼んでいるところをコメントアウトせよ。しても問題ないはず。
などとの書込があり、試したところ、確かに立ち上がる。

なので、とりあえず、/var/lib/imap配下の、mailboxes.db annotations.db などを全て削除(リネーム)して立ち上げたところ新しいdbが作成されて立ち上がるようになった。

これで、コネクションは張れるになったが、こんどはcyrusに接続できない。

testsaslauthd -u <username> -p <password>
0: NO "authentication failed"
上記のようにtestsaslauthdで確認すると、authエラーとなる。

過去いろいろやった経緯から試したが不明。 authはpamに任せているので、telnet認証で入れるのにauthエラーになるのは何事?と、 いろいろ調べた結果、vineのsaslauthdがpamに対応していないことが問題の可能性がありそうだと判断。 saslauthd -vの結果は下記の通りで、対応しているように見えるのであるが。

$ saslauthd -v                                                                                                                                
saslauthd 2.1.23
authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap
/etc/sysconfig/saslauthdのMECH=pamを下記のようにshadowに修正したら、認証できるようになった。
# Directory in which to place saslauthd's listening socket, pid file, and so
# on.  This directory must already exist.
SOCKETDIR=/var/run/saslauthd

# Mechanism to use when checking passwords.  Run "saslauthd -v" to get a list
# of which mechanism your installation was compiled with the ablity to use.
MECH=shadow

# Additional flags to pass to saslauthd on the command line.  See saslauthd(8)
# for the list of accepted flags.
FLAGS=
あっさり書いているが、これだけで3時間はかかった。
そのあと、/etc/postfix/main.cfとmaster.cfを過去の通り修正。
でも、/var/log/maillogを見ると、下のようなlogかあるから、lmtpunixで配送されているような気がするのだが。
Jan  6 15:11:01 argus postfix/qmgr[13831]: 39F839FC0: removed
Jan  6 15:11:01 argus lmtpunix[3817]: execute

ただ、/var/lib/imap/のdbを削除したため、mailboxの構成とあわなく、メールボックスが見つかりませんと言われる。 であるから、mailboxの構成の修復が必要となった。

まずは、メール本体である/var/spool/imap/[a-z]/user以下にあるので、必要なものを念のためバックアップしておく。
次に、cyradmでcmコマンドによりメールボックスの作成を行う。
これでメールボックス自体は作成されたので、/var/spool/imapのディレクトリ構成と合うように、 mailクライアントであるshurikenからメールボックスのフォルダを作成してゆく。 時々、lsで/var/spool/imap/[a-z]/userのディレクトリ構成を見ながら同じ名前になっていることを確認して地道に作成したが、 これはcyradmからする方法もあるかもしれない。
すべてが完了したら、/usr/lib/cyrus/bin/reconstruct -r user.<mailbox>でメールボックスの修復を行う。 これでshurikenからメールを確認できるようになった(仕分けルールは全て消えた)が、/var/log/maillogをみると、何か操作するたびに

imap[13909]: SQUAT didn't find validity record
imap[13909]: SQUAT failed
のログが表示され続けている。インデックスが壊れているようなので、
sudo -u cyrus /usr/lib/cyrus-imapd/squatter -r user.<mailbox>
で再作成して完了。

2011.08.08
無線LANモデムの更新

無線LANの調子が悪くなった。なぜか追加したPCやスマートフォンを認識しない。その都度、ルータのリセットが必要になる。 現状は、WARPStar 7800Hで、子機もNECアクセステクニカ製をつかってることもあり、今回もNECアクセステクニカの製品を購入。 まあ、学生時代の同級生が設計をやっている(ハズ)ということもある。

今回のWR8700HPモデルはLANはギガイーサ、無線LANは802.11nで、理論値で300Mbpsとなっている。バッファローとかでは450Mbpsなどというものもあるが、CATVインターネットの速度はどちらにしろそんなには出ないので問題はない。

WR8700で使えるなと思った機能としては、SSIDを2つもつ事ができ、それぞれに暗号化レベルを設定できるマルチSSID機能がありがたい。 WEPのみの対応だったDSのために、WEP環境を用意していた人間としては、無線LANルータを削減できる。 まあ、DSiからWAPに対応しているので今となってはあまり稼働率は高くはないのだが。

無線LANにはそれぞれネットワーク分離機能を設定できる。 このネットワーク分離機能は、無線LANから、有線LANへの接続を抑止するもの。 SSID別に、たとえばWEP端末からはインターネットには抜けられるが、有線でつないでいるPCやプリンタには接続できないなどという設定ができる。 最初、この設定はセカンダリのみに有効と勘違いして、プライマリのSSIDのネットワークに設定してしまい、無線からルータの設定が変更できなくなってしまった。

もう一つは、簡易NAS機能。USBストレージが接続できる。 これでREGZA Z3500にハードディスクが増設できる REGZA z3500のUSBのポートはUSBハブを介しても1台しかUSBストレージを認識しなかった。NASは複数台つなげられるが、そのためにNASを購入するのは馬鹿らしいと思っていた。 認識させるためには、REGZAの設定メニュー=>レグザリンク設定=>LAN HDD設定=>機器の登録から設定。 赤ボタンを押して再検索しなければ認識しなかったが、それ以外は問題なく認識した。

WR7600からの移行で戸惑った点としては、

事がある。まあ、私の環境では事実上の支障は無いが、旧環境の設定を移している最中にエラーがでて戸惑った。

こいつを導入したことにより、WEP用の無線LAN APは不要になった。 しかしながら、WEP用の無線LANルータは、スイッチとしてもとしてもつかっていたため、代替えのSW HUBか必要になった。 きょうび、なるべく低消費電力にしたいので、USB給電も可能な、Logitech elecomのLAN-SW03N/PSB 100BASE-TX対応 小型スイッチングハブを購入。 こいつは本当に小さく、手のひらに乗るくらい。フットプリントで8分の1くらいになった。 これで節電&省スペースにかなり貢献したと思う。

塩田紳二のモバイルトレンドにもアクセステクニカの機種導入記事が。 WR8600の方が、スイッチが100Mbpsなのに店頭価格が高いのだよね。 後発とはいえ。 違いはUSBにWebカメラが使えるかどうかしか見えないのだが。