ホーム » コンピュータ » Linux » Debian (ページ 17)

Debian」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

dovecotのSSL接続ができなくなった

Debian で dovecot の更新があったが、 /etc/dovecot/conf.d/10-ssl.conf パッケージメンテナー版に 更新したら、 imaps=993 での接続ができなくなった。 imap=143 での接続はできるので、設定ファイルを見直すが接続できず。 以下のようなエラーLOGが残っている。

(( /var/log/mail.log ))
Dec 20 19:07:31 perrine dovecot: imap-login:
Disconnected (no auth attempts in 0 secs): user=<>,
rip=192.168.xx.xx, lip=192.168.xx.x,
TLS handshaking: SSL_accept() failed:
error:140A1175:SSL routines:SSL_BYTES_TO_CIPHER_LIST:
inappropriate fallback, session=<xxxxxxxxxxxxxxxx>

色々試したが、SSL鍵の設定がまずいみたい。 メンテナー版のdovecotの鍵は、以下のような設定であったが、

(( /etc/dovecot/conf.d/10-ssl.conf ))
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem

鍵の再設定の方法もよく判らなかったので、apache の SSL鍵を 共有するように、以下のように書き換えた。 (当然、自宅サーバなので、オレオレ鍵)

(( /etc/dovecot/conf.d/10-ssl.conf ))
ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key

DELL Chromebook 11にDebianプログラム開発環境

学校でのプログラミング演習で、安価なChromebookを使うことができないかと、 色々実験してみた。 まずは、通常のインターネット利用やレポート作成であれば、Chromebookの Google Documentsでワープロ、表計算、プレゼンテーション資料の作成は可能。 ただし、既存のMicrosoft Office環境との互換性が問題になるかもしれない。

プログラミングに利用するといっても、Chromebookは ブラウザ操作以外のことを できないようにすることで、安価で安全な環境を提供しているため、通常であれば何もできない。 かといって、ChromebookはLinuxで動いているため、Linuxディストリビューションとは 親和性がある。croutonというchroot環境で別のLinuxを動かすようにしたものを使えば、 プログラミング環境を構築できる。

プログラミング環境構築までの手順

  1. DELL Chromebook 11のリカバリイメージ作成
    まずは、OS環境を色々といじるため、いつでも状態を復旧できるようにリカバリイメージを作成。
  2. DELL Chromebook 11でデベロッパーモード
    通常では、ブラウザ以外を起動させないモードになっているので、デベロッパーモードを導入。
  3. DELL Chromebook 11にcrouton / Debian を入れる
    crouton を使って Debian を入れる。他の方の資料では、Ubuntu が多いけど、 自分が管理しているサーバは Debian only なので、最新の Jessie にてインストール。
  4. crouton / Debianにプログラム開発環境
    最後に、一般的なプログラミング環境として、C++,Java,Arduino,Processingをそろえる。

ひとまずの感想

32000円ほどで、インターネット環境、レポート作成の環境が使え、 crouton導入で、ローカルで Linux 環境が使用でき、 基本的なプログラミング環境が使えるという意味では、 学生の共通購入端末として悪くないのではないだろうか。 ただし、crouton+Debianなどの導入までの手順を簡単化するのが重要。

crouton / Debianにプログラム開発環境

Arduino組み込み開発環境

Debian(jessie)であれば、Arduinoの環境は登録されているので、 下記のように、インストールすればいい。adduser は、USBシリアルの 書き込みのために、dialout グループにユーザを登録する。

$ sudo aptitude install arduino adduser
$ sudo adduser YOURUSERID dialout

Javaの開発環境とProcessing

Javaの開発環境は、openjdk をインストールするだけ。 Processingは、Javaの環境とライブラリを入れておく。 processing 本体で、processing.org から processing-x.x.x-linux64.tgz をダウンロードし、 /opt に展開し、起動ができるようにシンボリックリンクを貼る。

$ sudo aptitude install
openjdk-7-jdk libprocessing-core-java
$ wget http://download.processing.org/processing-2.2.1-linux64.tgz
$ sudo tar zxvf processing-2.2.1-linux64.tgz -C /opt
$ sudo ln -s /opt/processing/processing /usr/local/bin/processing

DELL Chromebook 11 に gcc,g++, emacs24,uim,anthy, chromium,thunderbird, dropbox, java, arduino, processing とひとまずインストールしてきて、ディスク使用量は、/ で 38% ほど。 操作をしていて、特に遅いという感覚はない。 初心者からのプログラミング学習で使いそうなものであれば、この程度かな。

DELL Chromebook 11にcrouton/Debianを入れる

ChromebookにLinuxの開発環境を入れるには、利便性の点では、crouton が便利。 インストールするには、最初にcroutonのページ から、インストール用のファイルをダウンロード。

Ctrl+Alt+tでcroshを起動し、ここで shell と入力すると、 開発モードの uid=chronos の環境が起動する。

crouton は、この中に chroot 環境としてインストールされる。 このため、crouton 側で chromebook の環境に対して悪影響が 及ぶことはない。crouton には、いくつかの debian ベースの ディストリビューションを入れることができる。

$ cd ~/Downloads
$ sudo sh crouton -r list
使用可能なDebianの種類が表示される。
Debian の wheezy や jessie
Ubuntu の precise や trusty など

今回は、個人的に使い慣れた Debian で、最新の jessie をインストールすることにする。

$ sudo sh crouton -r jessie -t xfce
最後に -e を付けると、chroot 環境構築時に
ファイル名などが暗号化されるみたい。
途中で、debian の環境のためのユーザ名とパスワードを入力する。

chronos環境には、できあがった Linux の環境を起動するために、"enter-root"とか"startxfce4"といった コマンドが "/usr/local/bin" にインストールされている。

ひとまずは、日本語環境用のフォント,エディタ(emacs),日本語入力環境,chromeブラウザを インストール。

$ sudo enter-chroot
---ここからchroot環境---
$ sudo apt-get install aptitude locales g++
fonts-ipafont-gothic fonts-ipafont-mincho
fonts-vlgothic emacs24 anthy anthy-el
uim-anthy uim nautilus-dropbox
chromium chromium-l10n dnsutils
$ sudo dpkg-reconfigure locales
ja_JP.UTF-8 をチェックし、
システムのデフォルトlocaleに ja_JP.UTF-8 を設定。
$ startxfce4

xfce4が立ち上がるので、設定・キーボードで、日本語キーボードの設定をすれば、 Debian環境できあがり。

通常の使い方

上記の設定が終われば、後は Debian の使い方ができる。環境の切換えは、以下の通り。

Ctrl+Alt+←(F1)     Chromebook環境
Ctrl+Alt+→(F2)     chronos環境
Ctrl+Alt+Reload(F3) DebianのX11環境(一旦chronosに切替が必要)
(( Chromebook環境で Ctrl+Alt+t でchronos環境を起動し ))
$ sudo startxfce4
---ここからchroot環境---
debian環境のパスワード

最初起動すると、CtrlキーとSearch(CAPS)ボタンの配置が逆で気持ちが悪いので、 以下の設定を書き込めばよい。

(( $HOME/.Xmodmap ))
clear control
clear mod4
keycode 37 = Super_L NoSymbol Super_L
keycode 105 = Control_R NoSymbol Control_R
keycode 133 = Control_L NoSymbol Control_L
add control = Control_L
add control = Control_R
add mod4 = Super_L

ただし、Chromebook環境とDebianのX11環境で "Ctrl"と"Search"キーを切り替えているが、 モード切替の"Ctrl"は、本来の"ctrl"でないと認識しなかったり、切り替えた後の"search"だったり するため、モードを切り替えるための "Ctrl+Alt"+"←/F1,→/F2,Reload/F3"は、 色々と試しながら切り替える。

gcalcli v3.1のインストール

2014/11月に入って、PerlのGoogle Calendar APIで取得していた予定が、 "403 Forbidden"で取得できなくなった。同様の記事が同じタイミングで 報告されており、どうも Calendar API が ver 2.x だとダメになった様子。 色々探していたら、python で書かれた gcalcli の v3.1 であれば、 取得できているみたいなので、インストール。

gitを使ってgcalcli最新版をインストール

# git clone https://github.com/insanum/gcalcli.git
# cd gcalcli
# python setup.py install
((必要となるpythonライブラリ))
# aptitude install python-dateutil python-gflags
python-googleapi python-gdata
python-parsedatetime python-pyicu

gcalcliでアクセスする際の認証

gcalcliでカレンダーを取得するために認証を行う必要があるが、 ssh経由で作業中だと、テキストブラウザ "w3m" が起動され、 認証ページ遷移や、キー取得遷移がうまくいかないので、 "–noauth_local_webserver"をつけて、手作業で行う。

$ gcalcli list --noauth_local_webserver
# googleカレンダーの認証を行うためのURLが
# 表示されるので、ブラウザにcopyして表示
# されるkeyをcopyし、キーを改めて入力

gcalcliを使ってみる

自宅では、今日のカレンダーをeabadgeで表示させているけど、 色エスケープシーケンス表示やら、12時間表示やら趣味に合わないな…

$ gcalcli --nocolor --military agenda today 11pm

CGIからgcalcliを呼び出したら、漢字部分が消える…。 環境変数LANGが設定されていないとダメらしい。

外付けHDD故障

自宅サーバが、今朝、落ちていることが判明。 /var/log/messages を漁ると、外付けのUSB-HD0(2TB)へのバックアップ処理後に、 xfs_alloc_fixup_trees… あたりでカーネルで異常なメッセージを大量に吐いている。 HDDの故障の前兆と見るべきだろう。 中身を確認すると…2TB購入時の日記が無いな…。 最も古そうなファイルは、2012年9月。2年で壊れたというのであれば、根性ナシだな。

バックアップ処理の確認

書き込み時に落ちると思われるので、改めて、バックアップ処理の中身を確認。 crontab のUSB-HD0保存のバックアップをコメントアウトする。

((backup1))
/ ------------ (tar)   -> USB-HD0/BackupLiux
/var --------- (tar)   -> USB-HD0/BackupLinux
/home -------- (rsync) -> USB-HD0/Mirror/home
/home/Photo -- (rsync) -> USB-HD0/Photo
/home/Music -- (rsync) -> USB-HD0/Music
/home/*data* - (rsync) -> USB-HD0/Mirror/home
((backup2))
/*bin* ------- (rsync) -> /root2
/var --------- (tar)   -> /home2/BackupLinux
/home -------- (tar)   -> /home2/BackupLinux
/home/*data* - (tar)   -> /home2/BackupLinux
/home/Photo -- (tar)   -> /home2/BackupLinux
/home/Music -- (tar)   -> /home2/BackupLinux
USB-HD0/PhotoArchive
(tar)   -> /home2/BackupLinux
USB-HD0/Video  (tar)   -> /home2/BackupLinux

HDDの発注

原因も判明しているし、交換のHDDを早々に注文。(今年2個めか…)
先日、USB3.0 のボードも入れたし、USB3.0 インタフェースの外付けを発注する。 バックアップ高速化できるかな。

spamassassinのバグ?libnet-dns-perlのバグ?

数日前(2014/11/06)頃から、以下のような警告メールが 流れてくるようになった。

Subject: Cron <amavis@perrine> test -e /usr/sbin/amavisd-new-cronjob
&& /usr/sbin/amavisd-new-cronjob sa-sync
Argument "0.80_2" isn't numeric in numeric ge (>=)
at /usr/share/perl5/Mail/SpamAssassin/Plugin/AskDNS.pm line 214.
Argument "0.80_2" isn't numeric in numeric lt (<)
at /usr/share/perl5/Mail/SpamAssassin/Dns.pm line 521.
Argument "0.80_2" isn't numeric in numeric ge (>=)
at /usr/share/perl5/Mail/SpamAssassin/Plugin/AskDNS.pm line 214.

警告メッセージで検索をかけると、spamassassinのバグかと 思っていたけど、議論の流れをみると、libnet-dns-perl での バージョン番号の比較方法が拙いだろ…との話の中、 様子を見守っていたら、libnet-dns-perl (0.81-1) が公開された様子。

ということで、以下を実行して、強制的に 0.80_2 を 0.81-1 に バージョンをあげて、無事エラーがでなくなる。

$ sudo aptitude install libnet-dns-perl/sid

自動バックアップ用2台が揃ってSMARTエラー

自宅サーバの管理者用メールをみたら、数日前から自動バックアップ用の HDDが、S.M.A.R.T 監視でエラーを吐いている。しかも、2台。 1台は、すでに絶命してるし…

2次バックアップ用なので、廃棄マシンから取り出したとか、 RAIDエラーを起こして取り出したHDDの再フォーマットとかを 使っていたし、壊れても仕方がない。

とはいえ、無くなっては困るデータもあるし、 安い内蔵1TBをAmazonで発注する。

DebianのコンソールでCapsとCtrlの入れ替え

キーボードを使うに当たって、Aの隣はControlキーとして使うのが 定番で、日常使うマシンは、どれもControlとCAPSキーを 入れ替えて使っている。

しかし、Debianのサーバで、最近は設定が console レベルか、 X11 レベルかで、色々な設定がでてくるので、面倒な場合は 入れ替え無しで使っていた。

しかし、改めて色々なレベルをまとめて記載してあるページを 見つけたので、その解かりやすい記事のおかげで設定。

(( /etc/default/keyboard ))
- XKBOPTIONS=""
+ XKBOPTIONS="ctrl:swapcaps"
(( 設定 ))
# dpkg-reconfigure -phigh console-setup

systemdの起動にビビる

いつもどおりのサーバの更新の中、 先月あたりに systemd が導入されたみたい。

んで、今日久々に reboot をかけたら、起動時のブート画面で 表示メッセージが以前に比べちょろっと表示された後、 画面に何も表示されない。

一瞬、更新の失敗でブートできなくなったかと焦っていたら、 見慣れない X11(Window Manager何になってるんだろ…)のlogin画面。 /etc/init.dが並行動作って聞いていたけど、こーゆーふーに なっちゃったのね。慣れないからビビった。

Google 検索

My Google   Yahoo

Microsoft

ファンサイト