第6章 ネットワークアプリケーション

目次

6.1. ウェッブブラウザー
6.1.1. ブラウザー設定
6.2. メールシステム
6.2.1. 近代的メールサービスの基礎
6.2.2. ワークステーションのメール設定戦略
6.3. メールトランスポートエージェント(MTA)
6.3.1. exim4設定
6.3.2. SASLを使うpostfixの設定
6.3.3. メールアドレス設定
6.3.4. 基本的なMTAの操作
6.4. メールユーザーエージェント(MUA)
6.4.1. 基本MUA — Mutt
6.5. リモートメールの取得および転送ユーティリティー
6.5.1. getmailの設定
6.5.2. fetchmailの設定
6.6. フィルター付きのメールデリバリーエージェント(MDA)
6.6.1. maildropの設定
6.6.2. procmailの設定
6.6.3. mboxの内容の再配達
6.7. POP3/IMAP4サーバー
6.8. プリントサーバーとユーティリティー
6.9. リーモートアクセスサーバーとユーティリティー(SSH)
6.9.1. SSHの基本
6.9.2. SMTP/POP3トンネルをするためのポートフォワーディング
6.9.3. リモートパスワード無しでの接続
6.9.4. 外部SSHクライアントへの対処法
6.9.5. ssh-agentの設定
6.9.6. SSH上のリモートシステムをシャットダウンする方法
6.9.7. SSHのトラブルシュート
6.10. 他のネットワークアプリケーションサーバー
6.11. 他のネットワークアプリケーションクライアント
6.12. システムデーモンの診断

ネットワーク接続を確立した(5章ネットワークの設定参照)あとで、各種のネットワークアプリケーションを実行できます。

6.1. ウェッブブラウザー

多くのウェッブブラウザーパッケージがハイパーテキストトランスファープロトコル(HTTP)を使って遠隔コンテントにアクセスするために存在します。

表6.1 ウェッブブラウザーのリスト

パッケージ ポプコン サイズ タイプ ウェッブブラウザーの説明
iceweasel * V:32, I:50 3820 X ブランドを外した Mozilla Firefox
iceape-browser * V:1.6, I:2 36440 , , 非商標化されたMozillabug#505565というセキュリティー問題で削除済
epiphany-browser * V:13, I:35 1001 , , GNOME HIG準拠、Epiphany
galeon * V:1.0, I:1.6 1776 , , GNOMEGaleonEpiphanyが継承
konqueror * V:9, I:17 3328 , , KDEKonqueror
w3m * V:27, I:84 1856 テキスト w3m
lynx * I:23 248 , , Lynx
elinks * V:2, I:6 1448 , , ELinks
links * V:3, I:9 1360 , , Links (テキストのみ)
links2 * V:0.8, I:3 3264 グラフィクス Links (Xを使わないコンソールグラフィクス)

6.1.1. ブラウザー設定

次に示す特別のURL文字列を使うと一部のブラウザーでその設定値を確認する事ができます。

  • "about:"
  • "about:config"
  • "about:plugins"

Debianは、Java (ソフトウエアープラットフォーム)Flashのみならず、MPEGMPEG2MPEG4DivXWindows Media Video (.wmv)QuickTime (.mov)MP3 (.mp3)Ogg/VorbisファイルやDVDsやVCDs等を取り扱えるブラウザーのプラグインコンポーネントを提供します。Debianではnon-freeのブラウザープラグインパッケージをcontribかnon-freeのコンポーネントのブラウザープラグインとしてインストールできます。

表6.2 ブラウザープラグインのリスト

パッケージ ポプコン サイズ コンポーネント 説明
icedtea6-plugin * V:0.8, I:1.2 272 main OpenJDKとIcedTeaに基づくJavaプラグイン
sun-java6-plugin * I:10 100 non-free SunのJava SE 6(i386専用)のためのJavaプラグイン
mozilla-plugin-gnash * V:1.4, I:5 164 main Gnashに基づくFlashのプラグイン
flashplugin-nonfree * V:1.5, I:15 132 contrib Adobe Flash Player (i386とamd64専用)をインストールするFlashのプラグインヘルパー
mozilla-plugin-vlc * V:3, I:4 144 main VLCメディアプレイヤーに基づくマルチメディアプラグイン
totem-mozilla * V:19, I:35 544 main GNOME's Totemメディアプレイヤーに基づくマルチメディアプラグイン
gecko-mediaplayer * V:0.5, I:0.6 724 main (GNOME) MPlayerに基づくマルチメディアプラグイン
nspluginwrapper * V:0.9, I:1.9 472 contrib i386 Netscapeプラグインをamd64アーキテクチャー上で実行するためのラッパー

[ティップ] ティップ

上記のDebianパッケージを使うのが遥に簡単であるとはいえ、今でもブラウザーのプラグインは"*.so"をプラグインディレクトリー(例えば"/usr/lib/iceweasel/plugins/")等にインストールしブラウザーを再起動することで手動で有効にすることができます。

ウェッブサイトによっては使っているブラウザーのユーザーエージェント文字列によって接続を拒否します。こういう状況はユーザーエージェント文字列を偽装することで回避できます。例えば、これは次の内容を "~/.gnome2/epiphany/mozilla/epiphany/user.js"か"~/.mozilla/firefox/*.default/user.js"といったユーザー設定ファイル追加すればできます。

user_pref{"general.useragent.override","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"};

こうする代わりに、URLに"about:config"を入力して表示画面内容を右クリックしてこの変数を追加や再設定することでもできます。

[注意] 注意

誤魔化されたユーザーエージェント文字列はJavaに対して良からぬ副次効果を引き起こすかもしれません。

6.2. メールシステム

[注意] 注意

もしインターネットと直接メール交換するメールサーバーを設定するなら、このような初歩的文書が不要なぐらいシステムを熟知しているべきです。

[注記] 注記

以下の設定例は消費者用インターネット接続上の典型的モービルワークステーションにのみ有効です。

6.2.1. 近代的メールサービスの基礎

スパム(望みも頼みもしないemail)問題を封じ込めるために、多くの消費者用インターネット接続を提供するISPは対抗措置を実施しています。

  • 彼らの顧客がメッセージを送信するためのスマートホストサービスは、rfc4954で規定される(SMTP AUTHサービスの)パスワードを使いrfc4409で規定されるメッセージサブミッションポート(587)を使います。
  • ISPのネットワーク内部(但しISP自身の送信メールサーバーを除く)からのSMTPポート(25)からインターネットへの接続はブロックされます。
  • 外部ネットワークの怪しげなホストからISPの受信メールサーバーへのSMTPポート(25)接続はブロックされます。(ダイヤルアップ接続等の消費者用インターネット接続に用いられる動的IPアドレス範囲上のホストからの接続はほぼ確実にブロックされます。)

メールシステムを設定したりメール配達問題を解決する際には、こうした新たな制約に配慮しなければいけません。

このような敵意のあるインターネットの状況と制約を考慮して、Yahoo.comやGmail.com等の独立インターネットメールISPはトランスポートレイヤーセキュリティー(TLS)やその前駆者であるセキュアーソケットレイヤー(SSL)を使ってインターネット上のどこからでも接続できるセキュアーなメールサービスを提供しています。

  • 彼らの顧客がメッセージを送信するためのスマートホストサービスはパスワード(SMTP AUTHサービス)を使いSMTP/SSLポート(465)かメッセージサブミッションポート(587)を使います。
  • 受信メールにはPOP3を使ってTLS/POP3ポート(995)でアクセスできます。
[注意] 注意

リモートホストに確実にメールを直接送るために、消費者用インターネット接続上でSMTPサーバーを実行するのは現実的ではありません。メールは拒否されるでしょう。あなたの接続ISPもしくは独立メールISPが提供する何らかのスマートホストサービスを使わなければいけません。次の文章では簡単のために、そのスマートホストが"smtp.hostname.dom"にあり、SMTP AUTHを必要とし、メッセージサブミッションポート(587)を使うと仮定します。

6.2.2. ワークステーションのメール設定戦略

最も簡単なメール設定は、MUA(「メールユーザーエージェント(MUA)」参照)自身がISPのスマートホストにメールを送信しISPのPOP3サーバーからメールを受信する設定です。この設定タイプは機能が充実したicedove(1)やevolution(1)等のGUIのMUAでよく使われます。メールを種類毎にフィルターする必要がある際にはMUAのフィルター機能を使う必要があります。このような場合にはローカルのMTA(「メールトランスポートエージェント(MTA)」参照)はローカル配送のみをする必要があります。

これに代わるメール設定は、ローカルのMTA経由でISPのスマートホストにメールを送信しISPのPOP3サーバーからメール取得プログラム(「リモートメールの取得および転送ユーティリティー」参照)によってローカルのメイルボックスに受信する設定です。メールの種類毎にフィルターする必要がある場合には、フィルター付きのMDA(「フィルター付きのメールデリバリーエージェント(MDA)」参照)を使って別々のメイルボックスにフィルターします。このタイプの設定は、どんなMUAで設定することができるのですが、単純なmutt(1)やgnus(1)等のコンソールのMUA(「メールユーザーエージェント(MUA)」参照)でよく使われます。このような場合にはローカルのMTA(「メールトランスポートエージェント(MTA)」参照)はスマートホストへの配送とローカル配送の両方をする必要があります。モービルワークステーションは有効なFQDNを持たないので、メール配送エラーを避けるように外部に出すメール中のローカルメール名を隠して偽装するようにローカルMTAを設定します(「メールアドレス設定」参照)。

[ティップ] ティップ

Maildirを使いホームディレクトリー下のどこかにemailのメッセージを保存するようにMUA/MDAを設定したいかもしれません。

6.3. メールトランスポートエージェント(MTA)

普通のワークステーションでは、メールトランスポートエージェント(MTA)にexim4-*postfixパッケージのどちらがよく選ばれます。この選択は全くあなた次第です。

表6.3 ワークステーションでの基本的メールトランスポートエージェント関連パッケージのリスト

パッケージ ポプコン サイズ 説明
exim4-daemon-light * V:60, I:66 1016 Exim4メールトランスポートエージェント(MTA: Debianのデフォールト)
exim4-base * V:62, I:68 1688 Exim4文書(text)と共通ファイル
exim4-doc-html * I:0.7 3452 Exim4文書(html)
exim4-doc-info * I:0.4 556 Exim4文書(info)
postfix * V:17, I:20 3488 Postfixメールトランスポートエージェント(MTA: Debianの代替候補)
postfix-doc * I:2 3420 Postfix文書(html+text)
sasl2-bin * V:2, I:5 448 Cyrus SASL APIの実装(SMTP AUTHについてpostfixを補完)
cyrus-sasl2-doc * I:2 284 Cyrus SASL - 文書

ポプコンの投票数ではexim4-*postfixより何倍も人気があるようですが、postfixがDebianのデベロッパーに人気がないということではありません。Debianのサーバーシステムはexim4postfixも使っています。目立つDebianのデベロッパーからのメーリングリスト投稿メールのヘッダーの分析は、これら両方のMTAがともに人気があることを示唆しています。

exim4-*パッケージは非常に小さなメモリー消費とその設定が非常にフレキシブルであることで知られています。postfixパッケージは非常にコンパクトで高速で単純でセキュアーであることで知られています。両ソフトウエアーは十分な文書とともに提供され、品質とライセンスでもともに良好です。

Debianアーカイブ中には異なった能力と狙いを持ったメールトランスポートエージェント(MTA)パッケージに関して多くの選択肢があります。

表6.4 Debianアーカイブ中のメールトランスポートエージェント(MTA)パッケージに関する選択肢リスト

パッケージ ポプコン サイズ 能力と狙い
exim4-daemon-light * V:60, I:66 1016 高機能
postfix * V:17, I:20 3488 高機能(セキュリティー)
exim4-daemon-heavy * V:1.8, I:2 1132 高機能(柔軟性)
sendmail-bin * V:2, I:2 1908 高機能(既に慣れている場合)
nullmailer * V:0.6, I:0.8 436 超軽量、ローカルメール無し
ssmtp * V:1.2, I:1.7 0 超軽量、ローカルメール無し
courier-mta * V:0.16, I:0.18 12316 超高機能
xmail * V:0.15, I:0.2 836 軽量
masqmail * V:0.03, I:0.05 464 軽量
esmtp * V:0.10, I:0.2 172 軽量
esmtp-run * V:0.08, I:0.13 64 軽量(esmtpのsendmail互換性拡張)
msmtp * V:0.3, I:0.7 336 軽量
msmtp-mta * V:0.11, I:0.14 32 軽量(msmtpのsendmail互換性拡張)

6.3.1. exim4設定

スマートホスト経由のインターネットメールに関しては、exim4-*パッケージを次のように(再)設定します。

$ sudo /etc/init.d/exim4 stop
$ sudo dpkg-reconfigure exim4-config

"General type of mail configuration"に関して、"スマートホストでメール送信; SMTP または fetchmail で受信する"を選択します。

"System mail name:"をそのデフォルトであるFQDN (「ホスト名の解決」参照)に設定します。

"IP-addresses to listen on for incoming SMTP connections:"をそのデフォルトである"127.0.0.1 ; ::1"と設定します。

"Other destinations for which mail is accepted:"の内容を消去します。

"Machines to relay mail for:"の内容を消去します。

"送出スマートホストの IP アドレスまたはホスト名:"を"smtp.hostname.dom:587"と設定します。

"Hide local mail name in outgoing mail?"に関して"<No>"を選択します。(この代わりに、「メールアドレス設定」にある"/etc/email-addresses"を使用します。)

"DNSクエリの数を最小限に留めますか(ダイヤルオンデマンド)?"に次の内のひとつの返答をします。

  • 起動時にインターネットに接続されている場合は、"No"とします。
  • 起動時にインターネットに接続されていない場合は、"Yes"とします。

"Delivery method for local mail:"を"mbox format in /var/mail/"と設定します。

"Split configuration into small files?:"に関して"<Yes>"を選択します。

"/etc/exim4/passwd.client"を編集しスマートホストのためのパスワードエントリーを作成します。

$ sudo vim /etc/exim4/passwd.client
 ...
$ cat /etc/exim4/passwd.client
^smtp.*\.hostname\.dom:username@hostname.dom:password

次のようにしてexim4を起動します。

$ sudo /etc/init.d/exim4 start

"/etc/exim4/passwd.client"中のホスト名はエリアスであってはいけません。真のホスト名は次の様にして確認できます。

$ host smtp.hostname.dom
smtp.hostname.dom is an alias for smtp99.hostname.dom.
smtp99.hostname.dom has address 123.234.123.89

エリアス問題を回避するために"/etc/exim4/passwd.client"の中に正規表現を用いています。もしISPがエリアスで示されるホストを移動させてもSMTP AUTHがきっと動きます。

[注意] 注意

"/etc/exim4/"中のexim4設定ファイルを手動で改変した後にはupdate-exim4.conf(8)を実行しなければいけません。

[注意] 注意

"DNSクエリの数を最小限に留めますか(ダイヤルオンデマンド)?"というdebconfの質問に"No" (デフォールト値)が選ばれシステムがブート時にインターネットに繋がっていない場合、exim4の起動は長い時間がかかります。

[注記] 注記

次に示す正式のガイドを読んで下さい: "/usr/share/doc/exim4-base/README.Debian.gz"とupdate-exim4.conf(8)。

[ティップ] ティップ

ローカルのカスタム化ファイル"/etc/exim4/exim4.conf.localmacros"を作成してMACROを設定してもいいです。例えば、Yahooのメールサービスでは"MAIN_TLS_ENABLE = true"と"AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS = yes"がその設定の中に必要だと言われています。

[ティップ] ティップ

あなたのラップトップPC用に"/etc/aliases"を尊重する軽量MTAを探しているなら、exim4(8)の設定を"/etc/default/exim4"中に"QUEUERUNNER='queueonly'"や"QUEUERUNNER='nodaemon'"等と設定する事を考慮するべきです。

6.3.2. SASLを使うpostfixの設定

スマートホスト経由のインターネットメールに関してはpostfix文書と重要マニュアルページを読むことから始めるべきです。

表6.5 重要postfixマニュアルページのリスト

コマンド 機能
postfix(1) Postfixコントロールプログラム
postconf(1) Postfixの設定ユーティリティー
postconf(5) Postfix設定パラメーター
postmap(1) Postfix検索テーブルのメンテナンス
postalias(1) Postfixエリアスデーターベースのメンテナンス

postfixsasl2-binパッケージを次のように(再)設定します。

$ sudo /etc/init.d/postfix stop
$ sudo dpkg-reconfigure postfix

"スマートホストを使ってインターネット"を選択します。

"SMTP リレーホスト (なければ空):"を"[smtp.hostname.dom]:587"と設定します。

$ sudo postconf -e 'smtp_sender_dependent_authentication = yes'
$ sudo postconf -e 'smtp_sasl_auth_enable = yes'
$ sudo postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'
$ sudo postconf -e 'smtp_sasl_type = cyrus'
$ sudo vim /etc/postfix/sasl_passwd

スマートホストのパスワードエントリーを作成します。

$ cat /etc/postfix/sasl_passwd
[smtp.hostname.dom]:587     username:password
$ sudo postmap hush:/etc/postfix/sasl_passwd

次に記すようにpostfixを起動します。

$ sudo /etc/init.d/postfix start

dpkg-reconfigureダイアログと"/etc/postfix/sasl_passwd"の中で"["と"]"を使うことでMXレコードを確認せずに指定されたhostnameその物を直接使うように確実にします。"usr/share/doc/postfix/html/SASL_README.html"の中の"Enabling SASL authentication in the Postfix SMTP client"を参照下さい。

6.3.3. メールアドレス設定

メールのトランスポートとデリバリーとユーザーのエージェントが使うメールアドレス設定ファイルが少々存在します。

表6.6 メールアドレス関連のファイルのリスト

ファイル 機能 アプリケーション
/etc/mailname (送出)メールのデフォールトのホスト名 Debian固有、mailname(5)
/etc/email-addresses 送出メールのホスト名の偽装 exim(8)固有、exim4-config_files(5)
/etc/postfix/generic 送出メールのホスト名の偽装 postfix(1)固有、postmap(1)コマンド実行後有効。
/etc/aliases 受入メールのためのアカウント名のエリアス 一般的、newaliases(1)コマンド実行後有効。

通常"/etc/mailname"ファイル中のmailnameはホストのIPの一つとして解決できる完全修飾ドメイン名(FQDN)です。解決できるIPアドレスのあるホスト名を持たない可動ワークステーションの場合には、このmailnameを"hostname -f"に設定します。(これはexim4-*postfixの両方に有効な安全な選択肢です。)

[ティップ] ティップ

"/etc/mailname"の内容は多くのMTA以外のプログラムによってそのデフォールト挙動のために使われます。muttの場合、~/muttrcファイル中の"hostname"と"from"変数を設定してmailnameの値をオーバーライドします。bts(1)やdch(1)等のdevscriptsパッケージ中のプログラムの場合、環境変数の"$DEBFULLNAME"や"$DEBEMAIL"をエキスポートしてその値をオーバーライドします。

mailnameを"hostname -f"と設定した時には、次によってMTAで発信元メールアドレスを偽装することが実現できます。

  • exim4(8)の場合、exim4-config_files(5)に説明されているように"/etc/email-addresses"
  • postfix(1)の場合、generic(5)に説明されているように"/etc/postfix/generic"

postfixの場合、次に記す追加ステップが必要です。

# postmap hash:/etc/postfix/generic
# postconf -e 'smtp_generic_maps = hash:/etc/postfix/generic'
# postfix reload

あなたのメール設定は次のようにするとテストできます。

  • exim(8)の場合、-brw, -bf, -bF, -bV, …オプションを使用
  • postmap(1)の場合、-qオプションを使用
[ティップ] ティップ

Eximはexiqgrep(8)やexipick(8)のようないくつかのユーティリティープログラムとともに供給されます。利用可能なコマンドは"dpkg -L exim4-base|grep man8/"を参照下さい。

6.3.4. 基本的なMTAの操作

基本的なMTA操作が存在します。その一部はsendmail(1)互換性インターフェース経由で実行する事もできます。

表6.7 基本的MTA操作のリスト

eximコマンド postfixコマンド 説明
sendmail sendmail 標準入力からメールを読み配送を手配(-bm)
mailq mailq メールキューを状態とキューIDとともにリスト(-bp)
newaliases newaliases エリアスデーターベースを初期化(-I)
exim4 -q postqueue -f 待機メールを排出(-q)
exim4 -qf postsuper -r ALL deferred; postqueue -f 全メールを排出
exim4 -qff postsuper -r ALL; postqueue -f 凍結メールをも排出
exim4 -Mg queue_id postsuper -h queue_id キューIDによってメッセージを凍結
exim4 -Mrm queue_id postsuper -d queue_id キューIDによってメッセージを削除
N/A postsuper -d ALL 全メッセージを削除

[ティップ] ティップ

"/etc/ppp/ip-up.d/*"中のスクリプトで全メールを排出するのは良い考えかも知れません。

6.4. メールユーザーエージェント(MUA)

Debian関連のメーリングリストを購読する場合、参加者のデファクトスタンダードで期待通り挙動をするmuttgnus等のMUAを使うのは良い考えかも知れません。

表6.8 メールユーザーエージェント(MUA)のリスト

パッケージ ポプコン サイズ タイプ
iceweasel * V:32, I:50 3820 X GUIプログラム(ブランドを外した Mozilla Firefox)
evolution * V:21, I:35 4724 X GUIプログラム(グループウエアスイートの一部)
icedove * V:9, I:13 38884 X GUIプログラム(ブランドを外した Mozilla Thunderbird)
mutt * V:25, I:83 6004 きっとvimとともに使われるキャラクターターミナルプログラム
gnus * V:0.03, I:0.4 6453 (x)emacsの下でキャラクターターミナルプログラム

6.4.1. 基本MUA — Mutt

vimと組み合わせてmuttをメールユーザーエージェント(MUA)として使うように"~/.muttrc"を使って次に示すようにカスタム化します。

#
# User configuration file to override /etc/Muttrc
#
# spoof source mail address
set use_from
set hostname=example.dom
set from="Name Surname <username@example.dom>"
set signature="~/.signature"

# vim: "gq" to reformat quotes
set editor="vim -c 'set tw=72 et ft=mail'"

# "mutt" goes to Inbox, while "mutt -y" lists mailboxes
set mbox_type=Maildir           # use qmail Maildir format for creating mbox
set mbox=~/Mail                 # keep all mail boxes in $HOME/Mail/
set spoolfile=+Inbox            # mail delivered to $HOME/Mail/Inbox
set record=+Outbox              # save fcc mail to $HOME/Mail/Outbox
set postponed=+Postponed        # keep postponed in $HOME/Mail/postponed
set move=no                     # do not move Inbox items to mbox
set quit=ask-yes                # do not quit by "q" only
set delete=yes                  # always delete w/o asking while exiting
set fcc_clear                   # store fcc as non encrypted

# Mailboxes in Maildir (automatic update)
mailboxes `cd ~/Mail; /bin/ls -1|sed -e 's/^/+/' | tr "\n" " "`
unmailboxes Maillog *.ev-summary

## Default
#set index_format="%4C %Z %{%b %d} %-15.15L (%4l) %s"
## Thread index with senders (collapse)
set index_format="%4C %Z %{%b %d} %-15.15n %?M?(#%03M)&(%4l)? %s"

## Default
#set folder_format="%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f"
## just folder names
set folder_format="%2C %t %N %f"

HTMLメールやMSワードのインラインのアッタチメントを表示するように、"/etc/mailcap"か"~/.mailcap"に次に記す内容を追加します。

text/html; lynx -force_html %s; needsterminal;
application/msword; /usr/bin/antiword '%s'; copiousoutput; description="Microsoft Word Text"; nametemplate=%s.doc
[ティップ] ティップ

MuttはIMAPクライアントやメールボックス様式変換機として使えます。メッセージを"t"や "T"他でタグできます。こうしてタグされたメッセージは";C"を使う異なるメールボックス間の移動や";d"を使う消去で一括処理できます。

6.5. リモートメールの取得および転送ユーティリティー

fetchmail(1)はGNU/Linux上のリモートメールの取得のデファクト標準でしたが、著者は現在getmail(1)が気に入っています。もしバンド幅を節約するためにメールをダウンロードする前に拒否したいなら、mailfiltermpopが役に立つかもしれません。どのメールの取得ユーティリティーを使おうとも、取得したメールをパイプ経由でmaildrop等のMDAに配送するようにシステム設定をすることをお勧めします。

表6.9 リモートメールの取得および転送ユーティリティーのリスト

パッケージ ポプコン サイズ 説明
fetchmail * V:2, I:6 2560 メール取得ユーティリティー(POP3、APOP、IMAP) (旧式)
getmail4 * V:0.3, I:0.8 660 メール取得ユーティリティー(POP3、IMAP4、SDPS) (単純、セキュアー、高信頼)
mailfilter * V:0.01, I:0.06 332 メール取得ユーティリティー(POP3)、regexフィルター機能付き
mpop * V:0.02, I:0.08 316 メール取得ユーティリティー(POP3)かつMDA、フィルター機能付き

6.5.1. getmailの設定

getmail(1)の設定はgetmail文書に記載されています。次に示すのがユーザーとして複数のPOP3アカウントにアクセスする著者の設定です。

"/usr/local/bin/getmails"を次のように作成します。

#!/bin/sh
set -e
if [ -f $HOME/.getmail/running ]; then
  echo "getmail is already running ... (if not, remove $HOME/.getmail/running)" >&2
  pgrep -l "getmai[l]"
  exit 1
else
  echo "getmail has not been running ... " >&2
fi
if [ -f $HOME/.getmail/stop ]; then
  echo "do not run getmail ... (if not, remove $HOME/.getmail/stop)" >&2
  exit
fi
if [ "x$1" = "x-l" ]; then
  exit
fi
rcfiles="/usr/bin/getmail"
for file in $HOME/.getmail/config/* ; do
  rcfiles="$rcfiles --rcfile $file"
done
date -u > $HOME/.getmail/running
eval "$rcfiles $@"
rm $HOME/.getmail/running

次のように設定します。

$ sudo chmod 755 /usr/local/bin/getmails
$ mkdir -m 0700 $HOME/.getmail
$ mkdir -m 0700 $HOME/.getmail/config
$ mkdir -m 0700 $HOME/.getmail/log

各POP3アカウント毎に"$HOME/.getmail/config/pop3_name"設定ファイルを次のように作成します。

[retriever]
type = SimplePOP3SSLRetriever
server = pop.example.com
username =  pop3_name@example.com
password = secret

[destination]
type = MDA_external
path = /usr/bin/maildrop
unixfrom = True

[options]
verbose = 0
delete = True
delivered_to = False
message_log = ~/.getmail/log/pop3_name.log

次のように設定します。

$ chmod 0600 $HOME/.getmail/config/*

"/usr/local/bin/getmails"が15分毎にcron(8)により実行されるようにスケジュールするために、"sudo crontab -e -u <user_name>"と実行して次に記すユーザーのcronエントリーを追加します。

5,20,35,50 * * * * /usr/local/bin/getmails --quiet
[ティップ] ティップ

POP3へのアクセス問題はgetmailに起因しないかもしれません。一部の有名な無償のPOP3サービスはPOP3のプロトコルに違反しているかも知れませんし、それらのスパムフィルターが完璧でないかも知れません。例えば、RETRコマンドを受信するとDELEコマンドの受信を待たずにメッセージを消去するかもしれませんし、スパムメールボックスに隔離するかも知れません。被害を最小限にするにアクセスされたメッセージをアーカイブして消去しないようにサービスの設定をします。"Some mail was not downloaded"を参照下さい。

6.5.2. fetchmailの設定

fetchmail(1)を設定するには、"/etc/default/fetchmail"や"/etc/fetchmailrc"や"$HOME/.fetchmailrc"を設定します。"/usr/share/doc/fetchmail/examples/fetchmailrc.example"中の例を参照下さい。

6.6. フィルター付きのメールデリバリーエージェント(MDA)

postfixexim4等のほとんどのMTAプログラムは、MDA(メールデリバリーエージェント)として機能します。フィルター機能のある専門のMDAがあります。

procmail(1)はGNU/Linux上のフィルター付きのMDAのデファクト標準でしたが、著者は現在maildrop(1)が気に入っています。どのフィルターユーティリティーを使おうとも、フィルターされたメールをqmailスタイルのMaildirにデリバリーするようにシステムを設定します。

表6.10 フィルター付きのMDAのリスト

パッケージ ポプコン サイズ 説明
procmail * V:17, I:84 368 フィルター付きMDA(旧式)
mailagent * V:0.4, I:5 1692 Perlフィルター付きMDA
maildrop * V:0.3, I:0.8 1000 構造化フィルター言語付きMDA

6.6.1. maildropの設定

maildrop(1)の設定はmaildropfilter文書に記載されています。次に"$HOME/.mailfilter"の設定例を示します。

# Local configuration
MAILROOT="$HOME/Mail"
# set this to /etc/mailname contents
MAILHOST="example.dom"
logfile $HOME/.maildroplog

# rules are made to override the earlier value by the later one.

# mailing list mails ?
if (     /^Precedence:.*list/:h || /^Precedence:.*bulk/:h )
{
    # rules for mailing list mails
    # default mailbox for mails from mailing list
    MAILBOX="Inbox-list"
    # default mailbox for mails from debian.org
    if ( /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h )
    {
        MAILBOX="service.debian.org"
    }
    # default mailbox for mails from bugs.debian.org (BTS)
    if ( /^(Sender|Resent-From|Resent-sender): .*@bugs.debian.org/:h )
    {
        MAILBOX="bugs.debian.org"
    }
    # mailbox for each properly maintained mailing list with "List-Id: foo" or "List-Id: ...<foo.bar>"
    if ( /^List-Id: ([^<]*<)?([^<>]*)>?/:h )
    {
        MAILBOX="$MATCH2"
    }
}
else
{
    # rules for non-mailing list mails
    # default incoming box
    MAILBOX="Inbox-unusual"
    # local mails
    if ( /Envelope-to: .*@$MAILHOST/:h )
    {
        MAILBOX="Inbox-local"
    }
    # html mails (99% spams)
    if ( /DOCTYPE html/:b ||\
         /^Content-Type: text\/html/ )
    {
        MAILBOX="Inbox-html"
    }
    # blacklist rule for spams
    if ( /^X-Advertisement/:h ||\
         /^Subject:.*BUSINESS PROPOSAL/:h ||\
         /^Subject:.*URGENT.*ASISSTANCE/:h ||\
         /^Subject: *I NEED YOUR ASSISTANCE/:h )
    {
        MAILBOX="Inbox-trash"
    }
    # whitelist rule for normal mails
    if ( /^From: .*@debian.org/:h ||\
         /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h ||\
         /^Subject: .*(debian|bug|PATCH)/:h )
    {
        MAILBOX="Inbox"
    }
    # whiltelist rule for BTS related mails
    if ( /^Subject: .*Bug#.*/:h ||\
         /^(To|Cc): .*@bugs.debian.org/:h )
    {
        MAILBOX="bugs.debian.org"
    }
    # whitelist rule for getmails cron mails
    if ( /^Subject: Cron .*getmails/:h )
    {
        MAILBOX="Inbox-getmails"
    }
}

# check existance of $MAILBOX
`test -d $MAILROOT/$MAILBOX`
if ( $RETURNCODE == 1 )
{
    # create maildir mailbox for $MAILBOX
    `maildirmake $MAILROOT/$MAILBOX`
}
# deliver to maildir $MAILBOX
to "$MAILROOT/$MAILBOX/"
exit
[警告] 警告

procmailと違い、maildropは欠落したmaildirディレクトリーを自動的に作りません。"$HOME/.mailfilter"の例中のように事前にmaildirmake(1)を使ってディレクトリーを作らなければいけません。

6.6.2. procmailの設定

procmail(1)用の"$HOME/.procmailrc"を使う類似設定を次に記します。

MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/Inbox/
LOGFILE=$MAILDIR/Maillog
# clearly bad looking mails: drop them into X-trash and exit
:0
* 1^0 ^X-Advertisement
* 1^0 ^Subject:.*BUSINESS PROPOSAL
* 1^0 ^Subject:.*URGENT.*ASISSTANCE
* 1^0 ^Subject: *I NEED YOUR ASSISTANCE
X-trash/

# Delivering mailinglist messages
:0
* 1^0 ^Precedence:.*list
* 1^0 ^Precedence:.*bulk
* 1^0 ^List-
* 1^0 ^X-Distribution:.*bulk
{
:0
* 1^0 ^Return-path:.*debian-devel-admin@debian.or.jp
jp-debian-devel/

:0
* ^Resent-Sender.*debian-user-request@lists.debian.org
debian-user/

:0
* ^Resent-Sender.*debian-devel-request@lists.debian.org
debian-devel/

:0
* ^Resent-Sender.*debian-announce-request@lists.debian.org
debian-announce

:0
mailing-list/
}

:0
Inbox/

6.6.3. mboxの内容の再配達

もしあなたのホームディレクトリーが一杯になりprocmail(1)がうまく機能しなかった場合には、"/var/mail/<username>"からホームディレクトリー内の仕分けられたメールボックスの中に手動でメールを配達しなければいけません。ディスク空間を確保した後に、次を実行します。

# /etc/init.d/${MAILDAEMON} stop
# formail -s procmail </var/mail/<username>
# /etc/init.d/${MAILDAEMON} start

6.7. POP3/IMAP4サーバー

LAN上でプライベートのサーバーを実行する場合、LANクライアントにメールを配達するためにPOP3 / IMAP4サーバーを実行することを考えます。

表6.11 POP3/IMAPサーバーのリスト

パッケージ ポプコン サイズ タイプ 説明
qpopper * V:1.1, I:4 636 POP3 Qualcomm拡張のBSD POP3サーバー
courier-pop * V:1.7, I:2 244 POP3 Courierメールサーバー - POP3サーバー(maildirフォーマットのみ)
ipopd * V:0.11, I:0.18 212 POP3 Washington大学POP2とPOP3サーバー
cyrus-pop3d-2.2 * V:0.19, I:0.3 852 POP3 Cyrusメールシステム(POP3サポート)
xmail * V:0.15, I:0.2 836 POP3 ESMTP/POP3メールサーバー
courier-imap * V:3, I:3 1624 IMAP Courierメールサーバー - IMAPサーバー(maildirフォーマットのみ)
uw-imapd * V:0.8, I:4 280 IMAP Washington大学IMAPサーバー
cyrus-imapd-2.2 * V:0.4, I:0.6 2632 IMAP Cyrusメールシステム(IMAPサポート)

6.8. プリントサーバーとユーティリティー

旧来のUnix的システムではBSDのラインプリンターデーモンが標準でした。 Unix的システム上のフリーソフトの標準プリント出力フォーマットはPostScriptなので、Ghostscriptとともに何らかのフィルターシステムを使ってnon-PostScriptプリンターへの印刷が可能になっています。

最近、共通UNIX印刷システム(CUPS)が新しいデファクトスタンダードです。CUPSは、インターネット印刷プロトコル(IPP)を使います。IPPは現在Windows XPやMac OS X等の他のOSでもサポートされ、新たなクロスプラットフォームの両方向通信能力のあるリモート印刷のデファクト標準となっています。

Debianシステム上のアプリケーションの標準の印刷可能データーフォーマットは、ページ記述言語であるPostScript (PS)です。PSフォーマットのデーターはGhostscriptというPostScriptのインタープリターに供給され、プリンター固有の印刷可能なデーターを生成します。「Ghostscript」を参照下さい。

CUPSシステムのファイルフォーマット依存の自動変換機能のおかげで、どんなデーターでもlprコマンドに供給すると期待される印刷出力が生成されます。(CUPSでは、lprcups-bsdパッケージをインストールすると有効となります。)

Debianシステムには、プリントサーバーやユーティリティーで留意すべきパッケージがいくつかあります。

表6.12 プリントサーバーとユーティリティーのリスト

パッケージ ポプコン サイズ ポート 説明
lpr * V:2, I:2 440 printer (515) BSD lpr/lpd (ラインプリンターデーモン)
lprng * V:0.7, I:1.0 2904 , , , , (拡張)
cups * V:34, I:44 8168 IPP (631) インターネット印刷CUPSサーバー
cups-client * V:18, I:46 496 , , CUPS用System Vプリンターコマンド: lp(1)とlpstat(1)とlpoptions(1)とcancel(1)とlpmove(8)とlpinfo(8)とlpadmin(8)等
cups-bsd * V:8, I:41 216 , , CUPS用BSDプリンターコマンド: lpr(1)とlpq(1)とlprm(1)とlpc(8)等
cups-driver-gutenprint * V:10, I:37 1292 非該当 CUPS用のプリンタードライバー

[ティップ] ティップ

CUPSシステムはウェッブブラウザーを"http://localhost:631/" に向けることで設定できます。

6.9. リーモートアクセスサーバーとユーティリティー(SSH)

セキュアーシェル(SSH)はインターネット経由で接続するセキュアーな方法です。Debianでは、OpenSSHと呼ばれるSSHのフリーバージョンがopenssh-clientopenssh-serverパッケージとして提供されています。

表6.13 リモートアクセスサーバーとユーティリティーのリスト

パッケージ ポプコン サイズ ツール 説明
openssh-client * V:51, I:99 2208 ssh(1) セキュアーシェルクライアント
openssh-server * V:68, I:82 800 sshd(8) セキュアーシェルサーバー
ssh-askpass-fullscreen * V:0.08, I:0.4 92 ssh-askpass-fullscreen(1) ユーザーにssh-add用のパスフレーズを質問する(GNOME2)
ssh-askpass * V:0.8, I:5 156 ssh-askpass(1) ユーザーにssh-add用のパスフレーズを質問する(プレーンX)

[注意] 注意

あなたのSSHがインターネットからアクセスできる場合には、「インターネットのためのセキュリティー強化策」を参照下さい。

[ティップ] ティップ

リモートのシェルプロセスが回線接続の中断の際にも継続するようにするためにscreen(1)プログラムを使いましょう(「screenプログラム」参照)。

6.9.1. SSHの基本

[警告] 警告

OpenSSHサーバーを実行したい場合には、"/etc/ssh/sshd_not_to_be_run"が存在してはいけません。

SSHには2つの認証プロトコルがあります。

表6.14 SSHの認証プロトコルと方法のリスト

SSHプロトコル SSH手法 説明
SSH-1 "RSAAuthentication" RSAアイデンティティ鍵を用いるユーザー認証
, , "RhostsAuthentication" ".rhosts"に基づくホスト認証(インセキュアー、無効化済み)
, , "RhostsRSAAuthentication" RSAホストキーと組み合わせの、".rhosts"に基づくホスト認証(無効化済み)
, , "ChallengeResponseAuthentication" RSAチャレンジ応答認証
, , "PasswordAuthentication" パスワードを用いる認証
SSH-2 "PubkeyAuthentication" 公開鍵を用いるユーザー認証
, , "HostbasedAuthentication" 公開キークライアントホスト認証と組み合わせの、"~/.rhosts"か"/etc/hosts.equiv"に基づくホスト認証(無効化済み)
, , "ChallengeResponseAuthentication" チャレンジ応答認証
, , "PasswordAuthentication" パスワードを用いる認証

[注意] 注意

非Debianシステムを使う際にはこれらの相違点に注意します。

詳細は、"/usr/share/doc/ssh/README.Debian.gz"とssh(1)とsshd(8)とssh-agent(1)とssh-keygen(1)を参照下さい。

次に示すのがキーとなる設定ファイルです。

表6.15 SSH設定ファイルのリスト

設定ファイル 設定ファイルの説明
/etc/ssh/ssh_config SSHクライアントのデフォールト、ssh_config(5)参照
/etc/ssh/sshd_config SSHサーバーのデフォールト、sshd_config(5)参照
~/.ssh/authorized_keys 当該SSHサーバーの当該アカウント接続用にクライアントが使用するデフォールト公開SSHキー
~/.ssh/identity ユーザーの秘密SSH-1 RSAキー
~/.ssh/id_rsa ユーザーの秘密SSH-2 RSAキー
~/.ssh/id_dsa ユーザーの秘密SSH-2 DSAキー

[ティップ] ティップ

公開と秘密のSSHキーをどう使うかに関しては、ssh-keygen(1)とssh-add(1)とssh-agent(1)を参照下さい。

[ティップ] ティップ

接続をテストして設定を確認します。何らかの問題がある際には、"ssh -v"を使います。

[ティップ] ティップ

ローカルの秘密SSHキーを暗号化するパスフレーズは"ssh-keygen -p"として後から変更できます。

[ティップ] ティップ

ホストを制限したり特定コマンドを実行するように"~/.ssh/authorized_keys"中に記載してオプションを追加できます。詳細は、sshd(8)を参照下さい。

次に示す内容は、クライアントからssh(1)接続をスタートします。

表6.16 SSHクライアント起動例のリスト

コマンド 説明
ssh username@hostname.domain.ext デフォールトモードで接続します。
ssh -v username@hostname.domain.ext デバグメッセージを有効にしてデフォールトモードで接続します。
ssh -1 username@hostname.domain.ext SSH version 1での接続を強制します。
ssh -1 -o RSAAuthentication=no -l username hostname.domain.ext SSH version 1でパスワードを使うことを強制します。
ssh -o PreferredAuthentications=password -l username hostname.domain.ext SSH version 2でパスワードを使うことを強制します。

もしローカルとリモートで同一ユーザー名を使う際には、"username@"とタイプするのを省略できます。たとえローカルとリモートで異なるユーザー名を使う際にでも、"~/.ssh/config"とタイプするのを省略できます。例えばDebian Aliothサービスでのユーザー名が"foo-guest"という場合には、"~/.ssh/config"が次を含むように設定します。

Host alioth.debian.org svn.debian.org git.debian.org
    User foo-guest

ssh(1)はユーザーにとってより賢明でよりセキュアーなtelnet(1)として機能します。telnetコマンドと異なり、sshコマンドはtelnetエスケープ文字(初期デフォールト CTRL-])に出会うことで中断される事がありません。

6.9.2. SMTP/POP3トンネルをするためのポートフォワーディング

sshを通してlocalhostのポート4025からremote-serverのポート25へと、localhostのポート4110からremote-serverのポート110へと接続するパイプを設定するには、ローカルホスト上で次のように実行します。

# ssh -q -L 4025:remote-server:25 4110:remote-server:110 username@remote-server

このようにするとインターネット経由でSMTP/POP3サーバーへとセキュアーに接続できます。リモートホストの"/etc/ssh/sshd_config"中の"AllowTcpForwarding"エントリーを"yes"と設定します。

6.9.3. リモートパスワード無しでの接続

"RSAAuthentication" (SSH-1プロトコル)もしくは"PubkeyAuthentication" (SSH-2プロトコル)を使うと、リモートシステムのパスワードを覚える必要が無くなります。

リモートシステム上の"/etc/ssh/sshd_config"中に"RSAAuthentication yes"か"PubkeyAuthentication yes"という対応する設定をします。

次に示すように、ローカルで認証キーを生成しリモートシステム上に公開キーをインストールします。

  • "RSAAuthentication": SSH-1のRSAキー(置き換えられたので非推奨。)
$ ssh-keygen
$ cat .ssh/identity.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"
  • "PubkeyAuthentication": SSH-2のRSAキー
$ ssh-keygen -t rsa
$ cat .ssh/id_rsa.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"
  • "PubkeyAuthentication": SSH-2のDSAキー(遅いので非推奨。)
$ ssh-keygen -t dsa
$ cat .ssh/id_dsa.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"
[ティップ] ティップ

SSH-2のDSAキーを使うことは、キーが小さく遅いので非推奨です。特許が期限切れとなったのでDSAを使ってRSA特許を回避する理由はありません。DSAはデジタル署名アルゴリズムで遅いです。またDSA-1571-1も参照下さい。

[注記] 注記

SSH-2で"HostbasedAuthentication"が機能するには、サーバーホストの"/etc/ssh/sshd_config"と、クライアントホストの"/etc/ssh/ssh_config"か"~/.ssh/config"という両方のホスト設定で"HostbasedAuthentication"を"yes"と調節する必要があります。

6.9.4. 外部SSHクライアントへの対処法

他のプラットフォーム上で使えるフリーなSSHクライアントがいくつかあります。

表6.17 他のプラットフォーム上で使えるフリーなSSHクライアントのリスト

環境 フリーのSSHプログラム
Windows puTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/) (GPL)
Windows (cygwin) cygwin中のSSH (http://www.cygwin.com/) (GPL)
古典的Macintosh macSSH (http://www.macssh.com/) (GPL)
Mac OS X OpenSSH; ターミナルアプリケーションのsshを使用しましょう(GPL)

6.9.5. ssh-agentの設定

SSHの認証キーをパスフレーズで保護する方がより安全です。もしパスフレーズが設定されていない場合には"ssh-keygen -p"で設定できます。

上記のようにパスワードを使って接続したリモートホスト上の"~/.ssh/authorized_keys"中にあなたの公開SSHキー(例えば"~/.ssh/id_rsa.pub")を設定します。

$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/<username>/.ssh/id_rsa:
Identity added: /home/<username>/.ssh/id_rsa (/home/<username>/.ssh/id_rsa)

次に示すように、今後リモートパスワードは必要ありません。

$ scp foo <username>@remote.host:foo

ssh-agentのセッションを終了するのに^Dを押します。

Xサーバーの場合、通常のDebianの起動スクリプトは親プロセスとしてssh-agentを実行します。だからssh-addは1回だけ実行される必要しかありません。詳細はssh-agent(1)and ssh-add(1)を参照下さい。

6.9.6. SSH上のリモートシステムをシャットダウンする方法

You need to protect the process doing "shutdown -h now"(「システムをシャットダウンする方法」参照)を実行しているプロセスをat(1)コマンド(「タスク1回実行のスケジュール」参照)を使って次のようにしてSSHが終了することから守る必要がある。

# echo "shutdown -h now" | at now

"shutdown -h now"をscreen(1)(「screenプログラム」参照)セッション中で実行しても同様のことができます。

6.9.7. SSHのトラブルシュート

問題に出会ったら、設定ファイルのパーミッションを確認し、sshを"-v"オプションとともに実行します。

rootでファイアーウォールと問題を起こした場合には、"-P"オプションを使いましょう; こうするとサーバーポートの 1 — 1023 を使うのを回避します。

リモートサイトへのssh接続が急に動作し無くなった際は、システム管理者による変更、特に可能性が高いのはシステムメンテナンス中に"host_key"が変更された結果かもしれません。実際にこういう状況で誰も洒落たハックでリモートホストとしてなりすまそうとしていないことを確認した後に、"host_key"エントリーをローカルホストの"~/.ssh/known_hosts"から削除すると再び接続できるようになります。

6.10. 他のネットワークアプリケーションサーバー

他のネットワークアプリケーションサーバーを次に示します。

表6.18 他のネットワークアプリケーションサーバー

パッケージ ポプコン サイズ プロトコル 説明
telnetd * V:0.4, I:1.2 156 TELNET TELNETサーバー
telnetd-ssl * V:0.13, I:0.3 152 , , , , (SSLサポート)
nfs-kernel-server * V:13, I:22 328 NFS Unix式ファイル共有
samba * V:20, I:32 18140 SMB Windowsのファイルとプリンター共有
netatalk * V:5, I:10 3232 ATP Apple/Macのファイルとプリンター共有(AppleTalk)
proftpd-basic * V:6, I:7 2044 FTP 汎用ファイルダウンロード
wu-ftpd * V:0.5, I:0.6 820 , , , ,
apache2-mpm-prefork * V:38, I:42 68 HTTP 汎用ウェッブサーバー
apache2-mpm-worker * V:6, I:7 68 , , , ,
squid * V:6, I:7 1956 , , 汎用ウェッブプロキシサーバー
squid3 * V:1.4, I:1.7 3716 , , , ,
slpd * V:0.19, I:0.3 228 SLP LDAP サーバーとしてのOpenSLP サーバー
bind9 * V:10, I:17 1064 DNS 他のホストのIPアドレス
dhcp3-server * V:5, I:10 804 DHCP クライアント自身のIPアドレス

コモンインターネットファイルシステムプロトコル(CIFS)はサーバーメッセージブロック(SMB)と同じプロトコルでMicrosoft Windowsで広く使われています。

[ティップ] ティップ

Debianアーカイブの全内容のローカルのミラーサーバーを使うより、squid等のプロキシサーバーを使う方がはるかにバンド幅を節約上ではるかに効率的です。

6.11. 他のネットワークアプリケーションクライアント

他のネットワークアプリケーションクライアントを次に示します。

表6.19 他のネットワークアプリケーションクライアント

パッケージ ポプコン サイズ プロトコル 説明
netcat * I:34 36 TCP/IP TCP/IP用万能ツール(スイス陸軍ナイフ)
openssl * V:43, I:91 2376 SSL セキュアソケットレイヤー(SSL)のバイナリーと関連する暗号化ツール
stunnel4 * V:0.5, I:2 512 , , 万能SSLラッパー
telnet * V:14, I:89 200 TELNET TELNETクライアント
telnet-ssl * V:0.3, I:1.2 208 , , , , (SSLサポート)
nfs-common * V:50, I:81 560 NFS Unix式ファイル共有
smbclient * V:6, I:37 35316 SMB MS Windowsのファイルとプリンター共有
smbfs * V:5, I:25 56 , , リモートのMS Windowsファイルをマウントやアンマウントするコマンド
ftp * V:9, I:85 168 FTP FTPクライアント
lftp * V:1.4, I:6 1864 , , , ,
ncftp * V:1.5, I:7 1276 , , フルスクリーンのFTPクライアント
wget * V:28, I:99 2360 HTTPFTP ウェッブダウンローダー
curl * V:6, I:22 336 , , , ,
bind9-host * V:42, I:91 184 DNS bind9由来のhost(1)コマンド、"Priority: standard"
dnsutils * V:13, I:90 404 , , bind由来のdig(1)コマンド、"Priority: standard"
dhcp3-client * V:47, I:94 608 DHCP IPアドレス獲得
ldap-utils * V:1.7, I:7 648 LDAP LDAPサーバーからデーター獲得

6.12. システムデーモンの診断

telnetプログラムを使うとシステムデーモンへの手動接続とその診断ができます。

例えば、次を試してみて下さい:

$ telnet mail.ispname.net pop3

次のRFCは各システムデーモンに関する必要な知見を提供します。

表6.20 よく使われるRFCのリスト

RFC 説明
rfc1939rfc2449 POP3サービス
rfc3501 IMAP4サービス
rfc2821 (rfc821) SMTPサービス
rfc2822 (rfc822) メールファイルフォーマット
rfc2045 Multipurpose Internet Mail Extensions (MIME)
rfc819 DNSサービス
rfc2616 HTTPサービス
rfc2396 URI定義

"/etc/services"の中にポートの使用され方が記載されています。

[注記] 注記

HTTPS等のTLS/SSLサービスをテストするには、TLS/SSLを有効にしたtelnetプログラムが必要です。