目次
ネットワーク接続を確立した(5章ネットワークの設定参照)あとで、各種のネットワークアプリケーションを実行できます。
多くのウェッブブラウザーパッケージがハイパーテキストトランスファープロトコル(HTTP)を使って遠隔コンテントにアクセスするために存在します。
表6.1 ウェッブブラウザーのリスト
| パッケージ | ポプコン | サイズ | タイプ | ウェッブブラウザーの説明 |
|---|---|---|---|---|
iceweasel *
|
V:32, I:50 | 3820 | X | ブランドを外した Mozilla Firefox |
iceape-browser *
|
V:1.6, I:2 | 36440 | , , | 非商標化されたMozilla、bug#505565というセキュリティー問題で削除済 |
epiphany-browser *
|
V:13, I:35 | 1001 | , , | GNOME HIG準拠、Epiphany |
galeon *
|
V:1.0, I:1.6 | 1776 | , , | GNOME、GaleonはEpiphanyが継承 |
konqueror *
|
V:9, I:17 | 3328 | , , | KDE、Konqueror |
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を使わないコンソールグラフィクス) |
次に示す特別のURL文字列を使うと一部のブラウザーでその設定値を確認する事ができます。
about:"
about:config"
about:plugins"
Debianは、Java (ソフトウエアープラットフォーム)やFlashのみならず、MPEGやMPEG2やMPEG4やDivXやWindows 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"をプラグインディレクトリー(例えば" |
ウェッブサイトによっては使っているブラウザーのユーザーエージェント文字列によって接続を拒否します。こういう状況はユーザーエージェント文字列を偽装することで回避できます。例えば、これは次の内容を
"~/.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に対して良からぬ副次効果を引き起こすかもしれません。 |
![]() |
注意 |
|---|---|
もしインターネットと直接メール交換するメールサーバーを設定するなら、このような初歩的文書が不要なぐらいシステムを熟知しているべきです。 |
![]() |
注記 |
|---|---|
以下の設定例は消費者用インターネット接続上の典型的モービルワークステーションにのみ有効です。 |
スパム(望みも頼みもしないemail)問題を封じ込めるために、多くの消費者用インターネット接続を提供するISPは対抗措置を実施しています。
メールシステムを設定したりメール配達問題を解決する際には、こうした新たな制約に配慮しなければいけません。
このような敵意のあるインターネットの状況と制約を考慮して、Yahoo.comやGmail.com等の独立インターネットメールISPはトランスポートレイヤーセキュリティー(TLS)やその前駆者であるセキュアーソケットレイヤー(SSL)を使ってインターネット上のどこからでも接続できるセキュアーなメールサービスを提供しています。
![]() |
注意 |
|---|---|
リモートホストに確実にメールを直接送るために、消費者用インターネット接続上でSMTPサーバーを実行するのは現実的ではありません。メールは拒否されるでしょう。あなたの接続ISPもしくは独立メールISPが提供する何らかのスマートホストサービスを使わなければいけません。次の文章では簡単のために、そのスマートホストが" |
最も簡単なメール設定は、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を設定したいかもしれません。 |
普通のワークステーションでは、メールトランスポートエージェント(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のサーバーシステムはexim4もpostfixも使っています。目立つ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互換性拡張)
|
スマートホスト経由のインターネットメールに関しては、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クエリの数を最小限に留めますか(ダイヤルオンデマンド)?"に次の内のひとつの返答をします。
"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がきっと動きます。
![]() |
注意 |
|---|---|
" |
![]() |
注意 |
|---|---|
"DNSクエリの数を最小限に留めますか(ダイヤルオンデマンド)?"というdebconfの質問に"No"
(デフォールト値)が選ばれシステムがブート時にインターネットに繋がっていない場合、 |
![]() |
注記 |
|---|---|
次に示す正式のガイドを読んで下さい:
" |
![]() |
ティップ |
|---|---|
ローカルのカスタム化ファイル" |
![]() |
ティップ |
|---|---|
あなたのラップトップPC用に" |
スマートホスト経由のインターネットメールに関してはpostfix文書と重要マニュアルページを読むことから始めるべきです。
表6.5 重要postfixマニュアルページのリスト
| コマンド | 機能 |
|---|---|
postfix(1)
|
Postfixコントロールプログラム |
postconf(1)
|
Postfixの設定ユーティリティー |
postconf(5)
|
Postfix設定パラメーター |
postmap(1)
|
Postfix検索テーブルのメンテナンス |
postalias(1)
|
Postfixエリアスデーターベースのメンテナンス |
postfixとsasl2-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.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の両方に有効な安全な選択肢です。)
![]() |
ティップ |
|---|---|
" |
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は |
基本的な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
|
全メッセージを削除 |
![]() |
ティップ |
|---|---|
" |
Debian関連のメーリングリストを購読する場合、参加者のデファクトスタンダードで期待通り挙動をするmuttやgnus等の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の下でキャラクターターミナルプログラム
|
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クライアントやメールボックス様式変換機として使えます。メッセージを" |
fetchmail(1)はGNU/Linux上のリモートメールの取得のデファクト標準でしたが、著者は現在getmail(1)が気に入っています。もしバンド幅を節約するためにメールをダウンロードする前に拒否したいなら、mailfilterかmpopが役に立つかもしれません。どのメールの取得ユーティリティーを使おうとも、取得したメールをパイプ経由で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、フィルター機能付き |
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へのアクセス問題は |
postfixやexim4等のほとんどの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 |
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(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/
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サポート) |
旧来の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では、lprはcups-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/" に向けることで設定できます。 |
セキュアーシェル(SSH)はインターネット経由で接続するセキュアーな方法です。Debianでは、OpenSSHと呼ばれるSSHのフリーバージョンがopenssh-clientとopenssh-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がインターネットからアクセスできる場合には、「インターネットのためのセキュリティー強化策」を参照下さい。 |
![]() |
ティップ |
|---|---|
リモートのシェルプロセスが回線接続の中断の際にも継続するようにするために |
![]() |
警告 |
|---|---|
OpenSSHサーバーを実行したい場合には、" |
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キーを暗号化するパスフレーズは" |
![]() |
ティップ |
|---|---|
ホストを制限したり特定コマンドを実行するように" |
次に示す内容は、クライアントから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-])に出会うことで中断される事がありません。
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"と設定します。
"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で" |
他のプラットフォーム上で使えるフリーな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)
|
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)を参照下さい。
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プログラム」参照)セッション中で実行しても同様のことができます。
問題に出会ったら、設定ファイルのパーミッションを確認し、sshを"-v"オプションとともに実行します。
rootでファイアーウォールと問題を起こした場合には、"-P"オプションを使いましょう;
こうするとサーバーポートの 1 — 1023 を使うのを回避します。
リモートサイトへのssh接続が急に動作し無くなった際は、システム管理者による変更、特に可能性が高いのはシステムメンテナンス中に"host_key"が変更された結果かもしれません。実際にこういう状況で誰も洒落たハックでリモートホストとしてなりすまそうとしていないことを確認した後に、"host_key"エントリーをローカルホストの"~/.ssh/known_hosts"から削除すると再び接続できるようになります。
他のネットワークアプリケーションサーバーを次に示します。
表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アーカイブの全内容のローカルのミラーサーバーを使うより、 |
他のネットワークアプリケーションクライアントを次に示します。
表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 | HTTPとFTP | ウェッブダウンローダー |
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サーバーからデーター獲得 |
telnetプログラムを使うとシステムデーモンへの手動接続とその診断ができます。
例えば、次を試してみて下さい:
$ telnet mail.ispname.net pop3
次のRFCは各システムデーモンに関する必要な知見を提供します。
"/etc/services"の中にポートの使用され方が記載されています。