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

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

システム

最近の投稿

アーカイブ

カテゴリー

メールの配送が止まってると思ったら

何気に自宅サーバにてメールが流れていないことが判明。 メールキューをみたら、nagiosなどのメールが溜まっている。

設定を確認していたら、DNSが動いていない。でもnslookupは動くぞ…。 よくよく確認すると、/etc/resolv.conf が空っぽ。 以前にも同様のトラブルがあったけど、NetworkManager がresolv.confを 編集しているのが原因。

以前の場合には、"aptitude remove network-manager" で消したけど、 最近は、依存しているパッケージが多く、消すに消せない。

そこで、改めて NetworkManager を調べると、"dns=none"という 設定があるみたい。

(( /etc/NetworkManager/NetworkManager.conf ))
[main]
+ dns=none
plugins=ifupdown,keyfile
[ifupdown]
managed=false

(追記)resolv.confの書き換えチェック

別トラブルでサーバの再起動がかかったら、Proxyサーバの動きが変。 原因を確認したら、今度は resolvconfパッケージが、これまたresolv.confを触っていて、 サーバの内向けDNSを、ルータDNSに勝手に書き換えている。 ということで、"aptitude remove resolvconf"してから、改めて /etc/resolv.conf を手作業で編集。 こいつは、サーバ機なんだから、resolv.conf 勝手に触るなよ….

めったにないとは思うけど、無駄に悩みたくないので、nagiosで監視させよう。

(( /etc/nagios-plugins/config/local.cfg ))
define command{
command_name check_dig_match
command_line /usr/lib/nagios/plugins/check_dig -H '$HOSTADDRESS$' -l '$ARG1$' -a '$ARG2$'
}
(( /etc/nagios3/conf.d/localhost.cfg ))
define service{
use       generic-service
host_name localhost
service_description DNS
check_command  check_dig_match!<自宅内ドメイン>!<自宅内サーバIPアドレス>
}

でもなぁ、こんなパッケージの設定ミス対策のチェックをあちこち書き込んだら、 設定を変更するときに、2重管理してるのと一緒だしなぁ…意味ないかな。

amavisの設定も

先日、SPAMフィルタのpostgrey(ホスト名でフィルタ)の設定を 見直したが、まだメールが配送できなくなり 今度は、コンテンツフィルタのamavisの設定を見直した。

(( /etc/amavis/conf.d/50-user ))
@local_domains_acl = (
".$mydomain" ,
# 自宅外ドメイン
".xxxxx.net" ,
"xxxxx.net" ,
) ;
(( amavis 再起動 ))
/etc/init.d/amavsi restart

postgreyのトラブルでメールが止まる

自宅で立ち上げているメールサーバで、 spamなどでrejectされるメール流量が減っていると思ったら、 普通のメールさえ流れていないことが判明。 エラーメッセージを見ると postgrey が原因っぽい。

かといって、"telnet localhost 10023"とかでも、postgreyは普通に動いている様子。 色々と調べてみたが、perl のバージョンアップの影響かも。

自宅blogの記事で、数年前にpostgreyを入れた時には、起動オプションが"–inet=10023"だと、 IPv6を使おうとすることで失敗していたことが解り、"–inet=127.0.0.1:10023" と設定していた。しかし、改めて最近のpostgrey設定記事を 探すと、前者の設定が多い。 そこで、改めて"–inet=10023"に変更したら、動き出す…

(( /etc/default/postgrey ))
POSTGREY_OPTS="--inet=10023"

BuffaloルータのsyslogをDebianサーバで記録

以前から、ルータWZR-1166DHP2の状況のモニタのために、syslogの設定をしようとしたけど、 ファシリティなどの値が分らず失敗していたので、改めて設定したのでメモを残す。

記録側のDebianサーバのsyslogの設定

Debianサーバのrsyslogを受信状態にするために、 udp の 514 ポートを受信状態に設定する。

(( /etc/rsyslog.conf ))
$ModLoad imudp
$UDPServerRun 514

Buffaloの家庭用ルータであれば、syslog の出力ファシリティは、 ここによれば、Local1 となっているので、以下の設定を追加する。

(( /etc/rsyslog.d/local1.conf ))
local1.*   /var/log/local1.log

これだけでは、ファイル local1.log が肥大化するので、 logrotate の設定を行う。

(( /etc/logrotate.d/rsyslog ))
:
  /var/log/debug
  /var/log/messages
+ /var/log/local1.log
  {
    rotate 4
    weekly
  :

最後に、設定を反映させる。

(( 設定を反映 ))
$ sudo /etc/init.d/rsyslog restart

Buffaloルータ側のsyslogの設定

管理-ログ-syslog設定にて、syslogサーバの欄にサーバIPアドレスを設定する。

 


(注意) LOGでのルータアドレスの逆引きとか不要かと思い、/etc/default/rsyslog に、”-x”とかの オプションをつけて再起動とかしたけど、設定が反映されない。 “ps ax | grep rsyslog”などを実行しても、”-n”のオプションしかついていない。 よくよく考えると、systemd が入っているので、/etc/systemd/system/syslog.service にて、 “ExecStart=/usr/sbin/rsyslogd -n”と記載されている。 ここを変更すればとは思うけど、「個人的設定の都合」でこの辺のファイルを書き換えるのは、 Debian流じゃないように思えないので、書き換えを躊躇している。
# systemd で全容が把握できていないだけなんだけど…

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 インタフェースの外付けを発注する。 バックアップ高速化できるかな。

Google 検索

My Google   Yahoo

Microsoft

ファンサイト