FreeBSD QandA 2000年12月7日 更新分

QandA
QandA Project
登録・更新 QandA 一覧

管理番号 221 (更新) 更新履歴
Q. NOTE-PC (ラップトップパソコン) に FreeBSD をインストール出来ますか?

A. できます。PAO が組み込まれたインストールフロッピー、または 4.0-RELEASE 
   からはそのままで、インストールする時から PC Card (PCMCIA) が使えます。
   どのような PC Card が使用できるかは、各リリースに付属するリリースノート
   を参照するか、PAO については以下の動作報告を参考にしてください。

     PAO for 2.2.8-RELEASE (cvs tag=pao228)
     <URL:http://home.jp.FreeBSD.org/~toshi/PAO/SUPPORTED.CARDS.jp>

     PAO3 for 3.x-RELEASE
     <URL:http://home.jp.FreeBSD.org/~toshi/PAO3/SUPPORTED.CARDS.jp>

   一般的には、PCMCIA ネットワークカードを使った FTP インストールや、
   PCMCIA 接続の CD-ROM インストールが便利でしょう。

   PAO インストールフロッピー (PAO boot.flp) に関しては [管理番号 222] を
   参考にしてください。バージョンに関する注意事項もあります。
   <URL:http://www.jp.FreeBSD.org/PAO/> もご覧ください。


管理番号 745 (更新) 更新履歴
Q. FreeBSDで音楽CDの曲データ(CD-DA)をCD-ROMドライブまたはPDドライブを
   用いて取り出せますか?

A. 全てのドライブで可能というわけではありませんが、次の樣な方法が考えられ
   ます。

    1. SCSI CD-ROMの場合
       tosha を使います。tosha は ports/packages にもあります。(audio/tosha)

    2. SCSI PDの場合(松下LF-1000)
       以下のパッチをあてた tosha を使います。tosha については 1. を
       参考にしてください。

   ここから --

   --- tosha.c~    Wed May 21 09:11:49 1997
   +++ tosha.c     Wed Mar 25 21:50:55 1998
   @@ -541,6 +541,11 @@
                   readcmd = 0xd8;
           }
           else
   +       if (!strncmp(vendor, "MATSHITA", 8) &&
   +           !strncmp(product, "PD-1 LF-1000", 11)) {
   +               modechange = FALSE;
   +               readcmd = 0xd8;
   +       }
           if (!strncmp(vendor, "YAMAHA", 6) ||
               !strncmp(vendor, "MATSHITA", 8)) {
                   ;

   ここまで ---

    3. IDE CD-ROMの場合
       a. dagrab を使います。dagrab は ports/packages にもあります。(audio/dagrab)
          <URL:http://web.tiscalinet.it/marcellou/dagrab.html>
          ただし、一部のCD-ROMドライブにおいて dagrab を用いて取り出しを
          行うと、出力にノイズが混じるという事例が報告されています。
          その場合は、b. の方法を試してみて下さい。

       b. cdda2wav を使います。cdda2wav は ports/packages にもあります。(sysutils/cdrecord)
          <URL:http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html>


管理番号 1729 (新規) 更新履歴
Q. 2000.10.22 ごろ取得した FreeBSD 4.1.1-STABLE を使っていますが、
   CF-3.7Wpl2 を使って作成した sendmail.cf ファイルを使うと、local な
   宛先の mail について次のようなエラーが発生します。FreeBSD 付属の
   sendmail.cf ではうまくいくのですが。

     Oct 27 19:19:31 host1 sendmail[12196]: e9RAJVC12196: from=user1, size=30, class=0, nrcpts=1, msgid=<200010271019.e9RAJVC12196@host1.my.domain>, relay=user1@localhost
     Oct 27 19:20:02 host1 mail.local: lockmailbox /var/mail/user2 failed; error code 75
     Oct 27 19:20:02 host1 sendmail[12198]: e9RAJVC12196: to=user2, ctladdr=user1 (1000/1000), delay=00:00:31, xdelay=00:00:31, mailer=local, pri=30030, dsn=4.0.0, stat=Deferred

A. /usr/libexec/mail.local コマンドの suid bit が設定されなくなったた
   めです。CURRENT への変更は 2000.10.10, RELENG_4 への変更は
   2000.10.19 にされています。 

     <URL:http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/libexec/mail.local/Makefile>

   このため、これら日付以降の 5-current, 4-stable を使用する場合に CF
   を使って sendmail.cf ファイルを作成する場合は、 

     LOCAL_MAILER_FLAG_ADD='S' 

   を .def ファイルに追加して下さい。

   参考: 次の記事から続くスレッド

     <URL:http://home.jp.FreeBSD.org/cgi-bin/showmail/FreeBSD-users-jp/56465>
     <URL:http://home.jp.FreeBSD.org/cgi-bin/showmail/FreeBSD-tech-jp/2957>


管理番号 1703 (更新) 更新履歴
Q. 富士通(fujitsu)製パソコン FMV の製品情報 (カタログスペック) は
   どこかにありませんか?

A. 公式のものでは、以下の場所でチップ情報を公開しているようです。
        <URL:http://www.fmworld.net/annc/linux/chip_info.html>

   また、非公式なものとして個人でまとめたものがあります。
        <URL:http://village.infoweb.ne.jp/~gump/fmvkisyu/>
   現在は出荷されていない機種の情報まで分かります。
   グラフィックアクセラレータチップの確認などに使えます。


管理番号 18 (更新) 更新履歴
Q. 「X ウインドウズ」なんて存在しないと言われました。どうして?

A. 実際、「X ウインドウズ」というものは存在しません。しかし「X」という 
   window system が存在して、FreeBSD でも使うことができます。X(1) によれば、
   X Consortium では以下のどれかを名称として使うよう求めています。固有名詞
   は正しく表記しなければ大変失礼になります。一般的には 「X11」「X」と略す
   か、「X Window System」と表記するのをお薦めします。

          The X Consortium requests that the following names be used
          when referring to this software:

                                      X
                               X Window System
                                 X Version 11
                         X Window System, Version 11
                                     X11

          X Window System is a trademark of X Consortium, Inc.


管理番号 303 (更新) 更新履歴
Q. fetchmail が
    reading message 1 (xxxx bytes) .fetchmail: SMTP connect failed
    fetchmail: SMTP transaction error while fetching from xxx.xxx.xxx
   というエラーを表示して、メールを持ってきてくれません。

A. fetchmail は、POP や IMAP で取得してきたメールを、標準では SMTP を使っ
   て配送しようとします。sendmail.cf を正しく設定した上で、sendmail(8) を
   deamon モードで動作させてやれば一応問題は解決するのですが、ローカルメー
   ル配送のためだけに sendmail を動かしておく意味は無いばかりか、セキュリ
   ティの面でもあまりお薦めできません。

   その代り、~/.fetchmailrc に mda 指定を追加する方が良いでしょう。以下に
   例を示します。なお、username は各自のローカルユーザ名に置き換えてくだ
   さい。

   1)      mda "/usr/libexec/mail.local username"

     ローカルメーラを指定する方法です。今までは一般的な方法でしたが、
   4.2-RELEASE からは、/usr/libexec/mail.local が set-user-id バイナリと
   してインストールされなくなった影響で、そのままでは使えなくなった方法で
   す。しかし、他の方法に比べ万一なにか問題があった場合でも、外部への被害
   を与える心配が無いという意味では安全です。

   2)      mda "/usr/sbin/sendmail -oem username"

     4.2-RELEASE からは、sendmail を指定することになります。もちろんそれ
   以前のリリースでも有効な方法ではあります。

   3)      mda "/usr/local/bin/procmail -d username"

     メールの振り分けのために procmail を指定する方法です。上記の二つは単
   純にローカルのメールスプールに転送するだけでしたが、独自のスクリプト等
   を指定する事で柔軟な処理が行えます。


管理番号 471 (更新) 更新履歴
Q. キーボード無し、CRT 無しのマシンで、シリアルポート (COM1) を使用し
   てコンソール操作をしたいのですが、どうしたら良いのでしょう。

A. FreeBSD ハンドブックの「14.6 シリアルコンソールの設定」を読んでください。
   ほとんどの場合、「14.6.2 シリアルコンソールを設定するための 6 ステップ」
   を読めばまず成功すると思います。

   <URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/ja/handbook/serialconsole-setup.html>


管理番号 1579 (更新) 更新履歴
Q. ssh(1) の便利な使い方を教えて下さい。

A. 「rsh(1) に比べて安全である」という他にも、以下の利点があります。

   1. データの圧縮

      オプション   : -C
      設定ファイル : Compression {yes|no}    圧縮{する|しない}
                     CompressionLevel {1〜9} 圧縮レベル{低〜高}

      % ssh -C remote.hoge.ac.jp

        -C オプションを使うと、データが圧縮されて転送されます。slogin(1)scp(1) でも有効です。ユーザごとの設定ファイル ~/.ssh/config に
          Compression yes
      と記述しておけば、毎回 -C オプションを使う必要はありません。
      ダイアルアップ接続など、通信路が細い場合には特に有効です。さらに
          CompressionLevel 9
      などと、圧縮のレベルも設定できます。

   2. X プロトコルの転送

      ユーザが X(1) を使用していれば (環境変数 DISPLAY が設定されていれば)、
      ssh で接続したリモートシェルから実行した X アプリケーションは、自動
      的にローカルの X サーバに表示されます。このとき X プロトコルは暗号
      化された通信路を経由して送られます。また、ユーザは DISPLAY 環境変数
      の設定や xauth(1) コマンドの実行を手動で行なう必要はありません。
      なお、この機能を使用するためには、コマンドライン及び設定ファイルで
      有効化されてなければなりません。

      リモートホスト側の sshd(8) の設定ファイル:
          X11Forwarding {yes|no}      X11 の転送を {許可|禁止}
          X11DisplayOffset number     ディスプレイ番号 (デフォルト:10)

      ローカル側の ssh(1) の設定ファイル:
          ForwardX11 {yes|no}         X11 の転送を {する|しない}
      コマンドラインオプション: -x    X11 の転送をしない
                                -X    X11 の転送をする

      具体的には、ssh で ホスト remote にログインすると、環境変数
      DISPLAY が remote:10.0 などと設定されます。ここで xclock などの
      X アプリケーションを実行すると、環境変数 DISPLAY が参照され、
      ディスプレイ番号 10、つまりポート 6010 (X サーバのポート番号 6000+10) に
      接続し、X プロトコルをしゃべります。remote の sshd は ポート 6010 への
      データを local の ssh に転送し、ssh がローカルの X サーバに中継します。

        local                                               remote
                 ssh (xxx)<================>(22) sshd (6010)
                  ↓      暗号化された通信路            ↑
        X server (6000)                               xclock
                                                   (環境変数 DISPLAY 参照)

   3. TCP ポートフォワーディング

      オプション   : -L port:host:hostport
                     -L port/host/hostport   (IPv6)
      設定ファイル : LocalForward port host:hostport

        TCP/IP ポート host:hostport を、リモート側から暗号化された通信路
      を経由してローカルの port に転送します。通常 host は ssh の接続先ホ
      ストですが、それ以外のホストを指定してもかまいません。この場合、接
      続先ホストと host 間の通信は暗号化されませんので、注意してください。
      なお、host は接続先ホストから見た名称となります。

      オプション   : -R port:host:hostport
                     -R port/host/hostport   (IPv6)
      設定ファイル : RemoteForward port host:hostport

        TCP/IP ポート host:hostport を、ローカル側から暗号化された通信路
      を経由してリモートの port に転送します。これを見てピンときた人もい
      るでしょうが、これを使えば X11 forwarding をエミュレートできます。

      どの指定方法も必要なら複数指定することができます。

   4. POP over ssh

      例えば、ホスト remote.hoge.ac.jp の POP3 サーバとのデータのやりとりを
      telnet(1) で行うと、
         % telnet remote.hoge.ac.jp 110
         ...
         USER username (ユーザ認証)
         PASS password
         ....
         RETR 1 (メール番号 1番を取得)
         ....   (メールの内容が送られてくる)
         QUIT
      となります。これではパスワードやメールの内容が全て平文でネットワーク
      上を流れてしまいます。

      リモート (remote.hoge.ac.jp) に sshd(8) が上がっている場合は、この代わりに
         % ssh -L 8000:remote.hoge.ac.jp:110 remote.hoge.ac.jp
      とします。そして、ローカルのポート 8000 にアクセスすると、
         % telnet localhost 8000
         ...
         USER username (ユーザ認証)
         PASS password
         ....
         RETR 1 (メール番号 1番を取得)
         ....   (メールの内容が送られてくる)
         QUIT
      と、remote.hoge.ac.jp:110 の代わりに localhost:8000 に接続して、
      同じ POP3 プロトコルをしゃべればメールが取得できるわけです。

      ssh(1) が自動的にリモートのポート 110 宛に転送してくれます。
      流れるデータは全て暗号化されており、-C で圧縮することもできます。

    a) Netscape

      Netscape Messenger では、サーバ名を指定する所に
         「ホスト名:ポート番号」 (例 localhost:8000)
      と記述します。なお、メールを取り込む前に
         % ssh -L 8000:remote.hoge.ac.jp:110 remote.hoge.ac.jp
      を実行しなくてはいけません。

    b) fetchmail(1)

      POP over ssh の例は、fetchmail のオンラインマニュアルにも載っています。
      以下の ~/.fetchmailrc はその一例です。この例では pophost には直接 
      ssh で接続できないので、shellhost を経由しなければならないと仮定し
      ています。 

   ---[~/.fetchmailrc の例]---
   defaults proto apop timeout 120
           mda "/usr/local/bin/procmail -d localuser"
           username popuser password poppass
           postconnect "/usr/sbin/sendmail -q";

   poll pophost.domain via localhost port 10110 with proto pop3:
           preconnect "ssh -f -L 10110:pophost.domain:110 shellhost.domain
                       -l popuser sleep 20 </dev/null >/dev/null 2>&1";
   ---
        local                                   shellhost
          (10110) ssh (xxx)<================>(22) sshd
           ↑↓            暗号化された通信路     ↓↑  LAN
        fetchmail                                 (110)
                                               POP3 server
                                                 pophost

   5. IMAP over ssh

   6. SMTP over ssh

    a) sendmail(8) + CF

      まず、sendmail.cf を作りなおします。CF の .def ファイルを編集して、
      未使用のメーラを SMTP over ssh 用に設定します。

        ESMTP_MAILER_ARGS='IPC $h 10025'
        ESMTP_MAILER_FLAG_BASE="$SMTP_MAILER_FLAG_BASE"

      上の例では esmtp メーラを使い、ssh による TCP forwarding にポート番
      号 10025 を割り当てます。つぎに配送方法の指定ですが、基本的に全ての
      メールを暗号化して送るのなら以下のような指定になるでしょう。

        DIRECT_DELIVER_DOMAINS='local.domain'
        DIRECT_DELIVER_MAILER=smtp
        DEFAULT_RELAY='esmtp:[localhost]'
        DELIVERY_MODE='queue'

      または、逆に一部のドメイン宛のみ暗号化するのなら、STATIC_ROUTE_FILE 
      か MAILERTABLE を使用すれば良いでしょう。

      [mailertable の例]
        myoffice.domain    esmtp:[localhost]

      % ssh -f -C -L 10025:localhost:25 host.myoffice.domain sleep 60
      % sendmail -q

   7. NNTP over ssh

    a) leafnode(8)

      ports から入れたのなら /usr/local/share/doc/leafnode+/config.example
      に例があります。

   8. rsync(1)

      オプション : -e ssh または --rsh=ssh
      環境変数   : RSYNC_RSH

      % rsync -avz --delete --rsh=ssh . user@remote:dir/

      カレントディレクトリ配下のツリー全体を remote の ~user/dir/ ディレ
      クトリへ反映させます。その際 remote との接続に ssh を使用します。
      なお、ssh 側で既に Compression yes になっている場合は、rsync の -z 
      オプションは無意味でしょう。

      $ export RSYNC_RSH=ssh   (sh 系)
      % setenv RSYNC_RSH ssh   (csh 系)

      環境変数を設定しておけば、オプション指定は省くことができます。

   9. cvs(1)

      環境変数 : CVS_RSH

      $ export CVS_RSH=ssh   (sh 系)
      % setenv CVS_RSH ssh   (csh 系)

      % cvs -d freefall.FreeBSD.org:/home/ncvs checkout src/sys

      CVS リポジトリのあるサーバへの接続に ssh を使います。

   10. VPN using ssh

      例えば、出先からプロバイダ経由で社内のサーバを利用するような場合、
      通信路を暗号化したトンネルを構築すればデータを安全に利用できます。
      まず、手元のクライアント及びサーバとなるマシンの /etc/ppp/ppp.conf 
      に以下の設定を追加します。ssh コマンドはクライアントの root 権限で
      動かしますので、ssh -l user officeserver でログインできる事を確認し
      てください。また、user が root 以外の場合は、サーバの /etc/group の 
      network グループに user を登録する事を忘れないで下さい。

   ---[ppp.conf の例]---
   sloop:
    set timeout 0
    set log phase chat connect lcp ipcp command
    set openmode passive
    set device "!ssh -l user officeserver exec /usr/sbin/ppp -direct loop-in"
    set dial
    set login
    set ifaddr 127.0.0.2 127.0.0.3
    set server /var/tmp/loop "" 0177

   loop-in:
    set timeout 0
    set log phase lcp ipcp command
    allow mode direct
   ---

      以下はクライアントでのオペレーション例です。この例では、最初の ppp(8) 
      でプロバイダへ接続していますが、専用線を使う環境では省くことができ
      るでしょうし、ipfw(8) を利用してゲートウェイとして動作させることも
      できます。

      % su
      # ppp -quiet -auto provider
      # eval `ssh-agent -c`
      # ssh-add
      # ppp -background sloop
      # suspend
      % execute your network application...
      % %
      # pppctl /var/tmp/loop close
      # eval `ssh-agent -k -c`
      # pppctl /var/tmp/provider 'close; quit all'


QandA
QandA Project
登録・更新 QandA 一覧