Fedora10の最近のブログ記事

サーバー構築中に不正アクセスされるのは嫌なので、アクセス制限を掛けておきます。

①GNOME端末を立ち上げ

 1. # su -   と  root管理者権限のパスワード を入力

 2. # gedit /etc/hosts.deny を入力しエディターにて

    ALL: ALL

   を最後の行に追加し保存します。

 3. GNOME端末に戻り

   # gedit /etc/hosts.allow を入力しエディターにて

    ALL : 127.0.0.1
    ALL : 192.168.0.*

   を最後の行に追加し保存します。

②再起動

   サーバーを再起動します。

これで一先ず安心です。(取り敢えず安心)

インターネット公開の準備としてDynamic DNSに利用の申請をします。
このサービスを扱っている中から、ここでは no-ip.com をご紹介します。

登録は、公開するサーバーのWEBブラウザから行います。(アドレスを自動で登録するため)

ロゴマークもだいぶ以前の駐車禁止のような色合いと違って、
今では落ち着いた色合いとなり好感の持てるデザインのサイトになっています。

英語のサイトなので、「おっ!!」となりますが、登録内容も少ないので、使い易くなっています。
初期の登録も簡単ですので、オススメです。

①登録はno-ip.com に移り

  No-Ip FREEを選びます。(他に有料のサービスも扱っています)

   登録の時、メールアドレスが必要になります。
   登録すると、このメールアドレスに返信が帰ってきます。

  返信されたメールの中に登録確認のアドレスがありますので、
  登録時のユーザー名とパスワードとメールアドレスでログインします。

   ホスト名とドメインを決定します。

②登録が完了したら

   システム → 管理 → ネットワーク → DNS  のホスト名を変更

     → ホスト(タブ) → 新規 → アドレス(127.0.0.1)とホスト名(ホスト名のみ) → OK
       → 新規 → アドレス(127.0.0.1)とホスト名(ホスト名+ドメイン名) → OK
         → 保存 → 終了

    * アドレス(127.0.0.1) : ループバックアドレス
      この行を追加することにより、外部からの呼び出しに応えるようになります。
      (別の表現をすると、「私はココに居るんだよー」と言っていることになります。)
      複数のドメインを持っている場合は、複数記述します。

    * 念のために etc ディレクトリにある hosts ファイルに登録されているか
      確認しておきましょう。(最初からエディタで書けばこんな手間は要りません。)
      まだFedoraのGUIにはバグがあり、上手く書き込まれていないことがありますので。
      ここがおかしくなるとサーバーが立ち上がりません。
      うまく書き込めていない場合は、直に書き込んでしまいましょう。

    * hosts ファイルを変更するときに、一番初めにある、
      127.0.0.1 localhost.localdomain の行は絶対に削除しないように。
    * ::1 はIPv6対応の事を指しています。
        (IPv6対応のサーバーにするときに必要なので、今回は削除してもOKです。)

③再起動

  登録を反映するためにサーバーを再起動します。

④Dynamic DNSに自動でIPアドレスを送信する

  ここでは、DiCE を使います。

  ダウンロードしたファイルを GNOME端末 により

   # su (root管理者権限+パスワード)

   # cd /usr/local/

   # tar zxvf /tmp/diced01914.tar.gz

     * 例は tmp ディレクトリにダウンロードした場合です。

  として解凍します。

   # /usr/local/DiCE/diced を入力し起動します。


     * DiCEを実行しても応答がない場合は
        『バッファオーバーフロー対策(Exec-Shield)』が有効になっています。

       -- 確認 --

        # cat /proc/sys/kernel/exec-shield
         2

        --- 数値の意味 ---

         0:常に無効
         1:マークされたバイナリを有効にし、以外は無効
         2:マークされたバイナリを無効にし、以外は有効
         3:常に有効

       有効( 2 または 3 )になっている場合は、一時的 1 にレベルを下げます。

        # echo 1 > /proc/sys/kernel/exec-shield  →  1 にします。
        # cat /proc/sys/kernel/exec-shield  →  確認します。
         1

          * DiCE の設定が終了したら、上記の操作により、また元に戻します。

       -----------------------------


   : と現れたら ? を入力 (:?)

     DiCEのヘルプが表示されます。

     ****** 起動オプション ******

     diced [-s|-d|-h|-e] [-b] [-l]

     -s 起動と同時に開始します
     -d 起動と同時にバックグラウンドで開始します
     -h コマンドオプションを表示します
     -b イベント実行時にビープ音を鳴らします
     -l ログを作成します
     -e 指定のイベントを実行して終了します

     ****** コマンド一覧 ******

     exit   DiCEを終了します
     start   DiCEを開始します
     startd  DiCEをバックグラウンドで開始します
     setup  DiCEの環境設定を行います
     list    登録済のイベント一覧を表示します
     add   イベントを追加します
     edit < 番号>  イベントを編集します
     del < 番号> イベントを削除します
     enable < 番号> イベントを有効にします
     disable < 番号> イベントを無効にします
     event < 番号> イベントの情報を表示します
     exec < 番号>  イベントを今すぐ実行します
     logcr    ログをクリアします

    ***************************************

   : と現れたら add を入力 (:add)

  暫く画面の指示に従い登録します。

    * ログインユーザ名 : no-ip の場合メールアドレスになります。

  イベントの登録保存が終わると、

   : と再度表示されますので setup を入力 (:setup)

  暫く画面の指示に従い登録します。
  設定完了すると、

   : と再度表示されますので exec 0 を入力 (:ex 0)し動作確認をします。
     もしエラーが出るようであれば edit コマンドで修正し再度確認をします。

  確認が上手く行ったら、

   : exit で終了です。 (:exit)

⑤自動起動の登録

  ④の最後より更に続けて

   # /usr/local/DiCE/diced -d -l

   # echo "/usr/local/DiCE/diced -d -l" >> /etc/rc.local

  と入力し登録完了です。


ここまでくると、ワクワクしますね。

WEBに公開するためにルーターの設定を行います。

ポートフォアーディング機能によりインターネットに直接サーバーを接続している状態にします。
この機能を使用することにより、ルーターに割り当てられたグローバルIPアドレス宛のリクエストが
自宅のLAN内にあるサーバーに転送され、インターネットからのリクエストに応えることが可能になります。
ポートフォアーディング機能は、
ポート転送・静的NAPT・静的NAT・静的IPマスカレード・ポートマッピングなどの名で呼ばれています。

ルーターの設定

 ①機種の設定方法(各メーカーの仕様に準ずる)により、WAN側とLAN側に、
   使用する各サーバーのポートを登録します。

 ②WAN側からの不正なアクセスを防止するために、
   ステルス(TCP/UDP/ICMP)機能を設定します。

 ③Windows共有フィルタ機能を設定します。
   これは、LAN側から不必要な情報の流出を防ぎます。

 ④SPI機能を設定します。
   この機能はWAN側からの不正アクセスを防止します。

 ⑤無線LANの機種を使用の場合にも同様に、
   不正なアクセスを防止する設定を必ず行います。

SMTPサーバー(送信)には Postfix を使用します。
(sendmail互換に開発されたSMTPサーバーです。)
POP/IMAPサーバー(受信)には dovecot を使用します。

メールを格納する形式にはMaildir形式を採用しました。
データの保守性(ファイルの破損など)やセキュリティ的にもMaildir形式がオススメです。

さーいよいよ構築作業に入ります。
メールサーバーはサーバーの中でも大物中の大物です。
設定ミスが無き様、心を引き締めて取り掛かりましょう。


-------- メール格納形式を簡単におさらい --------

  共有ディレクトリ形式

      /var/spool/mail/ユーザ名の一つのファイルに全てのメールを蓄積します。

  ホームMailbox形式

      /home/ユーザ名/Mailbox名の一つのファイルに全てのメールを蓄積します。

  Maildir形式は

      新着メール  : /home/ユーザ名/Maildir/new
      既読メール  : /home/ユーザ名/Maildir/cur
      配送中メール : /home/ユーザ名/Maildir/tmp

    と分割され各ディレクトリ内でメール1通を1ファイルとして格納します。
----------------------------------------


①Postfixのインストール(送信メールサーバー)

   GNOME端末より

     1. # su   と root管理者権限のパスワード を入力

     2. # yum install postfix cyrus-sasl system-switch-mail-gnome を入力

     3. y     でリポジトリへの接続とインストール開始。

     4. 暫くすると Complete! でインストール完了です。

②dovecotのインストール(受信メールサーバー)

   GNOME端末より

     1. # su   と root管理者権限のパスワード を入力

     2. # yum install dovecot を入力

     3. y     でリポジトリへの接続とインストール開始。

     4. 暫くすると Complete! でインストール完了です。

③ファイアーウォールの設定

   システム → 管理 → ファイアーウォールの設定 → 信頼したサービス

     一覧の中から メール(SMTP) にチェックを入れる

   システム → 管理 → ファイアーウォールの設定 → その他のポート

    一覧の中から  110 tcp
               110 udp
               143 tcp
               143 udp
               993 tcp
               993 udp
               995 tcp
               995 udp   を選ぶ → 適用 → 終了

④メールサービスの有効化および各種設定など


   --------- これより以降の設定は他の構築が済んでから再開しました。     ---------  
   --------- サーバーの中でもメールサーバーは大物級(難易度が高い)なので --------- 
   --------- 他に立ち上げるサーバーがあるのであれば               --------- 
   --------- 他を優先して立ち上げる事をオススメします。              ---------


⑤Postfixの設定(main.cfの編集)

   GNOME端末より

      # vi /etc/postfix/main.cf

        # INTERNET HOST AND DOMAIN NAMES
           (略)
        #myhostname = host.domain.tld
        #myhostname = virtual.domain.tld

        myhostname = mail.abc.xyz.com  →  メールサーバー名を追加(ホスト名ドメイン名)


        # The mydomain parameter specifies the local internet domain name.
           (略)
        #mydomain = domain.tld
        mydomain = abc.xyz.com  →  追加(ホスト名ドメイン名)


        # SENDING MAIL
           (略)
        #myorigin = $myhostname
        #myorigin = $mydomain
        myorigin = $myhostname
              →  追加(メール送信時に送信元メールアドレスの@以降にドメイン名を付加します)


        # RECEIVING MAIL
           (略)
        #inet_interfaces = $myhostname, localhost
        #inet_interfaces = localhost
        inet_interfaces = all  → 追加(外部からのメール受信を許可)


        # See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
           (略)
        mydestination = $myhostname, localhost.$mydomain, localhost

            →  コメントアウトします(# mydestination = $myhostname, localhost.$mydomain, localhost)

        mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

            →  追加(メールが受信できるようになります)

        # Alternatively, you can specify the mynetworks list by hand, in
           (略)
        #mynetworks = 168.100.189.0/28, 127.0.0.0/8        
        mynetworks = 192.168.0.0/24, 127.0.0.0/8
                     →  LANのアドレスとローカルホストアドレスを設定


        # TRUST AND RELAY CONTROL
           (略)
        # mynetworks_style = subnet  →  コメントアウトを外します(mynetworks_style = subnet)
           (略)
        # relay_domains = $mydestination  →  コメントアウトを外します(relay_domains = $mydestination)


        # REJECTING MAIL FOR UNKNOWN LOCAL USERS
           (略)
        #local_recipient_maps = unix:passwd.byname $alias_maps
          →  サーバーに登録されたユーザーのみ受信する場合はコメントアウトを外します(#を取る)

           * 教育用などのサーバー構築に有効です。
           * 今回のサーバーの構築ではデフォルトの設定(#は付けたまま)にしました。


        # DELIVERY TO MAILBOX
           (略)
        #home_mailbox = Mailbox
        #home_mailbox = Maildir/
        home_mailbox = Maildir/  →  追加(メールボックス形式をMaildir形式にします)

           * メールボックス(Maildir)を各ユーザのホームディレクトリに配置します。


        # For details, see "man header_checks".
        #
        #header_checks = regexp:/etc/postfix/header_checks

            →  コメントアウトを外します(header_checks = regexp:/etc/postfix/header_checks)


        # SHOW SOFTWARE VERSION OR NOT
           (略)
        #smtpd_banner = $myhostname ESMTP $mail_name
        #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
        smtpd_banner = $myhostname ESMTP unknown
                   →  追加(メールサーバ情報の隠蔽化)


        # INSTALL - TIME CONFIGURATION INFORMATION
           (略)
        sendmail_path = /usr/sbin/sendmail.postfix


    ---- 以下を最終行へ追加(SMTP-Authを有効にします。*印の付記は追加しません。) ----

           * メール送信時にユーザ名とパスワードで認証を行ない、
             迷惑メールの不正中継に利用されないようにします。

        # Enable SMTP Auth

         allow_percent_hack = yes  →  "user%domain" から "user@domain" への書き換えを有効にします。
         disable_vrfy_command = yes
             →  アカウント流出の防止(ローカルユーザの洗い出しを不可能にします)
         smtpd_sasl_auth_enable = yes  →  SMTP認証を有効にします。
         smtpd_sasl_local_domain = $myhostname
             →  SMTP認証するローカルドメインの指定
                 (上段にあるmyoriginの値と同じにします。
                     同じにしないとメーラーの認証でエラーが発生します。)

           * メールアドレスを user@abc.xyz.comにする場合は
             $mydomainを指定します。(myoriginの値も$mydomainにします。)

         smtpd_sasl_security_options = noanonymous, noplaintext

           * noanonymous : 匿名は許可しない
           * noplaintext    : 暗号化されていないパスワードは許可しない

         smtpd_recipient_restrictions =
                    permit_mynetworks,
                    permit_sasl_authenticated,
                    permit_auth_destination,
                    reject_unauth_destination

                       →  SMTP認証内容の設定(実際の記述は一行にします。
                            多い時には , と 半角ブランク で繋ぎます。)

           * permit_mynetworks : mynetworksで指定されたネットワークからを許可
           * permit_sasl_authenticated : SMTP認証を通過したものを許可
           * permit_auth_destination : 自サーバ宛のメールを許可
           * reject_unauth_destination : 上記設定以外は全て拒否

         broken_sasl_auth_clients = yes
         smtpd_client_restrictions = permit_mynetworks, reject_unknown_client, permit

             →  Authコマンドのサポートを認識できない
                    (Outlook Express 4 、 Exchange 5等)クライアント対応

         smtpd_sender_restrictions = reject_unknown_sender_domain

             →  送信者アドレスを制限

         message_size_limit = 10485760
            →  (受信メールサイズを10MB=10*1024*1024に制限)

      # postfix check  →  エラーをチェックします。

      # postfix reload  →  上記のチェックでエラーがなければリロードします。

           * エラーが出た場合は先達たちの意見を参考にします。
                             (エラーをコピペして目いっぱいググリます。)

        ---------------- エラー時のお助けコマンド ----------------

    # postconf  : 現在の設定ファイル( main.cf )の設定事項のみが表示されます。
    # postconf -n  : 設定ファイル( main.cf )で変更した設定のみを表示することができます。
    # postconf -d  : 設定ファイル( main.cf ) のデフォルト値を確認することができます。

    # vi /var/log/maillog  : メールメッセージの送受信によるエラーログを見ることができます。


⑥転送設定

   GNOME端末より

     # vi /etc/aliases

       # Person who should get root's mail
       #root: marc
       root: abc  →  ユーザー名abcを追加(ユーザ abc に転送)

     # newaliases  →  aliasesの読み込み(修正した内容を反映します)

⑦header_checksの設定(main.cfに対応)

   GNOME端末より

     # vi /etc/postfix/header_checks

        ---- 以下を最終行へ追加します ----

         /^Received:.*192.168..*/ IGNORE
         /^Received:.*127.0.0.1.*/ IGNORE

           * メールのヘッダー部(Received行)に
                  ローカルIPアドレスが表示されないように設定を変更します。

⑧認証プログラムの設定(Cyrus SASL)

   GNOME端末より

     # vi /usr/lib/sasl2/smtpd.conf

         pwcheck_method: saslauthd  →  コメントアウトします
         pwcheck_method: auxprop  →  追加(/etc/sasldb2を参照に行きます)
         mech_list: plain login  →  コメントアウトします
         mech_list: plain login cram-md5 digest-md5  →  追加

     # vi /etc/sysconfig/saslauthd

         MECH=pam  →  コメントアウトします。(システムアカウントを利用した認証は使用しません。)

         FLAGS=  →  FLAGS=sasldb

           * SMTP認証にはシステムアカウントを利用する方法と、
             sasldb2を利用する方法があります。
             sasldb2では、システムアカウントとは異なるパスワードが設定できるので、
             sasldb2を利用した方がセキュリティを向上させます。


⑨SASLDBの作成とユーザー登録など

   GNOME端末より

     # saslpasswd2 -u mail.abc.xyz.com -c def
              →  ユーザ def を登録(ホスト名abcドメイン名xyz)

         Password:  →  パスワード
         Again (for verification):  →  パスワード(確認)

           * SASLのデータベースが /etc/sasldb2 として作成されます。

          ---------------- 変更処理 ----------------

           * パスワード変更

              # saslpasswd2 -u mail.abc.xyz.com def  →  ユーザ def のパスワードを変更
                Password:  →  パスワード
                Again (for verification):  →  パスワード(確認)

           * ユーザ削除

              # saslpasswd2 -u mail.abc.xyz.com -d def  →  ユーザ def を削除

           * ユーザ確認

              # sasldblistusers2

          ------------------------------------------------

     # chmod 600 /etc/sasldb2  →  パーミッションを変更
     # chown postfix:postfix /etc/sasldb2  →  権限の変更

           * SALSのデータベースをPostfixから参照できるようにしました。
           * root でも変更したい場合は、

              # chown root /etc/sasldb2
              # chmod 640 /etc/sasldb2
              # chgrp postfix /etc/sasldb2  のように設定します。

    (メールサーバ構築後はセキュリティ面で postfix:postfix(600) を推奨します。
       メールサーバ構築中は構築作業がし易い root:postfix(640) をオススメします。)

⑩Postfixの起動(sendmailからPostfixが標準MTAへ切り替え)

   GNOME端末より

     # /etc/rc.d/init.d/sendmail stop  →  sendmail の停止

     # chkconfig sendmail off  →  サーバー起動時にsendmailの自動起動設定解除。

     # chkconfig --list sendmail  →  sendmailの自動起動設定解除を確認

     # alternatives --config mta  →  システムで使用するメールサーバーを切替えます

           2 プログラムがあり 'mta'を提供します。

            選択 コマンド
           -----------------------------------------------
           *+ 1 /usr/sbin/sendmail.sendmail
            2 /usr/sbin/sendmail.postfix

           Enterを押して現在の選択[+]を保持するか、選択番号を入力します:2  →  2を入力しEnter

     # /etc/rc.d/init.d/postfix start  →  Postfixを起動

     # chkconfig postfix on  →  Postfixをサーバー起動時に自動で立ち上げます。

     # chkconfig --list postfix  →  Postfixの自動起動設定を確認

⑪Dovecotの設定(dovecot.confの編集)

   GNOME端末より

     # vi /etc/dovecot.conf

         # Protocols we want to be serving: imap imaps pop3 pop3s
         # If you only want to use dovecot-auth, you can set this to "none".
         #protocols = imap imaps pop3 pop3s
         protocols = imap imaps pop3 pop3s  →  追加

           (略)

         #
         #
         #mail_location =
         mail_location = maildir:~/Maildir  →  追加(メールボックスをMaildir形式にする)

⑫Dovecotの起動

   GNOME端末より

     # /etc/rc.d/init.d/dovecot start  →  Dovecotの起動

     # chkconfig dovecot on  →  Dovecotの自動起動設定

     # chkconfig --list dovecot  →  Dovecotの自動起動設定を確認


 ------------  ⑫までの構築を完了するとメールサーバーが受信したメールは、 ------------
 ------------  共有ディレクトリ /var/spool/mail/ユーザ名 というファイルに    ------------
 ------------  全てのメールが蓄積(格納)されるようになります。          ------------
 ------------  メーラーでtestメールを発信して「/var/spool/mail/ユーザ名」に  ------------
 ------------  受信メールの内容が有るのを確認してみましょう。          ------------


 ========  いよいよ、Maildir/ 形式への移行です。 ========


①Postfix を停止

   GNOME端末より

     # postfix stop

           * サーバーを再起動するとPostfix が自動起動し
                 メールを受信してしまうので注意しましょう。

②メールボックス作成

   GNOME端末より

     # mkdir -p /etc/skel/Maildir/{new,cur,tmp}

            →  新規ユーザ追加時に自動でMaildir形式メールボックス作成

     # chmod -R 700 /etc/skel/Maildir/

            →  メールボックスのパーミッションを700に設定

           * 新規ユーザ追加時に自動で home(ホームディレクトリ)に
                         Maildir形式のメールボックスが作成されます。

③rpm管理ツールのインストール

   GNOME端末より

     # yum -y install cpan2rpm

           →  PerlモジュールをRPMパッケージでインストール出来るようにします。

④Maildir変換ツールのインストール

   GNOME端末より

     # wget http://perfectmaildir.home-dn.net/perfect_maildir/perfect_maildir.pl -O /usr/local/bin/perfect_maildir.pl

        →  Maildir変換ツールのダウンロード

     # chmod +x /usr/local/bin/perfect_maildir.pl  →  Maildir変換ツールへ実行権限付与

⑤TimeDateモジュールのインストール(Maildir変換に必要です)

   GNOME端末より

     # yum install perl-TimeDate

⑥Maildir一括変換スクリプト作成

   GNOME端末より

     # vi migrate-maildir.sh

   ------------- 新規作成ファイル内容 --------------------------------

#!/bin/bash

#
#Maildir一括変換スクリプト
#

#メールボックス=>Maildir形式変換スクリプト
#http://perfectmaildir.home-dn.net/
FOLDERCONVERT=/usr/local/bin/perfect_maildir.pl

#一般ユーザリスト
USERLIST=`ls /home/`

#ログ
MIGRATELOG=/tmp/migrate-maildir.log
rm -f $MIGRATELOG

#引数(変換元メールボックス形式)チェック
if [ "$1" != "mbox" ] && [ "$1" != "Mailbox" ]; then
echo "Usage: migrate-maildir.sh {mbox|Mailbox}"
exit
fi

#一般ユーザメールボックス移行
for user in $USERLIST;
do
if [ "$1" = "mbox" ]; then
inbox="/var/spool/mail/${user}"
else
inbox="/home/${user}/Mailbox"
fi
if [ -f "${inbox}" ]; then
newdir="/home/${user}/Maildir/"
mkdir -p "$newdir"
mkdir -p "$newdir"/cur
mkdir -p "$newdir"/new
mkdir -p "$newdir"/tmp
chmod -R 700 "${newdir}"
$FOLDERCONVERT "$newdir" < "${inbox}" >> $MIGRATELOG 2>&1
chown -R ${user}. "$newdir"
find "$newdir" -type f -exec chmod 600 {} ;
fi
done

#rootユーザメールボックス移行
user="root"
if [ "$1" = "mbox" ]; then
inbox="/var/spool/mail/${user}"
else
inbox="/${user}/Mailbox"
fi
if [ -f "${inbox}" ]; then
newdir="/${user}/Maildir/"
mkdir -p "$newdir"
mkdir -p "$newdir"/cur
mkdir -p "$newdir"/new
mkdir -p "$newdir"/tmp
chmod -R 700 "${newdir}"
$FOLDERCONVERT "$newdir" < "${inbox}" >> $MIGRATELOG 2>&1
chown -R ${user}. "$newdir"
find "$newdir" -type f -exec chmod 600 {} ;
fi
[ -a $MIGRATELOG ] && cat $MIGRATELOG;rm -f $MIGRATELOG

   ---------------------------------------------------------------- 以上 -------

⑦メールデータ移行(共有ディレクトリ形式→Maildir形式)

   GNOME端末より

     # sh migrate-maildir.sh mbox  →  Maildir一括変換スクリプト実行

⑧Maildir移行スクリプト削除

   GNOME端末より

     # rm -f migrate-maildir.sh  →  Maildir一括変換スクリプト削除
     # rm -f /usr/local/bin/perfect_maildir.pl  →  Maildir変換ツール削除

⑨Postfix を起動

   GNOME端末より

     # postfix start

⑩動作確認

   お使いのメーラーを立ち上げ、送受信を確認します。

⑪mailサーバへのユーザー追加・ユーザー削除・転送方法

   --- ユーザー追加

     # useradd -s /sbin/nologin ユーザー名

   --- パスワード変更

     # passwd ユーザー名  
      New password: ********  →  パスワード入力
      Retype password:********  →  パスワード再入力

      passwd: all authentication tokens updated successfully

   --- ユーザー削除

     # userdel -r ユーザー名

   --- mail転送

     # vi .forword

       /home/ユーザー名
       xxxx@abcdef.com  →  転送先アドレス

     :wq


お疲れ様です。

まだまだ、機能などは他にも搭載しなければならないものもありますが、
送受信のベースが出来上がりました。

ココまでは順調(ではないか)にサーバーの導入が進んできたのですが、
本日大量にシステムのアップデータがありインストールしました。

ところが、あちらこちらのGUIが動作不能に陥ったではありませんか。
頼みのGUIもこれでは頼れません。
テキストモードではなんら問題ないので、
GUIを通して必要なファイルに書き込むインターフェースの部分が
クラッシュしてしまったのでしょう。
今のところ、立ち上げには問題も無さそうで、探す時間も無いので、
このまま暫くは放任放置ということで頭の片隅へ。

インストールが終わればリモート処理でのテキストモードになるので、
コマンドラインを覚える事にしましょう。

システム自体は動いているので、
コマンドラインを利用してインストール作業を進めることにしました。
(GUIでのGNOME端末は動いています。)

そこで、今必要な部分をチョコットお勉強。

①ランレベル---Fedoraの動作モード

 現在のランレベルの確認 : # runlevel または # who -r

  0  シャットダウン                             システムの停止
  1  シングルユーザーモード(rootのみ)               緊急時などに使用
  2  NFSを使わないマルチユーザーモード(テキストログイン)   場合により使用
  3  通常のマルチユーザーモード(テキストログイン)        使用
  4  未使用                                未使用
  5  グラフィカルログインによるマルチユーザーモード        使用
  6  再起動                                システムの再起動

 一時的にランレベルを変更(root管理者権限で)

   # init 3 : 番号を変更する。

②サービスの確認・起動・停止方法

  1. 起動しているサービスの確認

      # /sbin/chkconfig --list

    リストの一番左がサービス名で

     数字(ランレベル):on・off

    の順となり状態を表示しています。

  2. サービスの起動・停止

     例)
      # /sbin/chkconfig --level 2345 vsftpd on  (ランレベル サービス名 オプション)

       オプション : 起動:on /停止:off

まずはこんなところで、GNOME端末を使います。

FTPはWEBサーバーにコンテンツをアップロードするのに利用します。

早速インストールしましょう。

①GNOME端末 により(root管理者権限に移り)

  # yum install vsftpd  と入力します。

   Is this ok [y/n] で y と入力。

  暫くするとインストールが始まります。

  完了すると、 Complete! と表示されます。

②FTPサービスを有効にする。

  システム → 管理 → サービス → サービスの設定

    一覧の中から vsftpd にチェックを入れ → 起動 → 保存 → 終了

③ファイアーウォールの設定

   システム → 管理 → ファイアーウォールの設定 → 信頼したサービス

     一覧の中から FTP にチェックを入れ → 適用 → 終了

④Anonymous FTP の設定(機能の無効化)

   GNOME端末 により

    # su vi /etc/vsftpd/vsftpd.conf

     aonymous_enable=YES  →  NOに変更(利用する時にはYESに戻す)

⑤WindowsクライアントPCからのアクセス確認

   Filezilla などのソフトで、ホストの設定を行い接続を確認します。
    (UTF-8に対応していないソフトでは文字化けします)

    参考 2008-12-02 - FileZilla Client 3.1.6 released

おおっ、繋がりました。

以上でFTPサーバーの出来上がりです。
ここまで来ると、イッチョ前のサーバーになってきました。

SSHサーバーは既にインストール済みになっています。
これを使用することで、サーバーをリモートで操作出来るようになります。

まず端末で確認してみましょう。

①GNOME端末 により

  # rpm -qa | grep openssh と入力します。

    openssh-clients-5.1p1-3.fc10.i386
    openssh-server-5.1p1-3.fc10.i386
    openssh-askpass-5.1p1-3.fc10.i386
    openssh-5.1p1-3.fc10.i386

  と有ればOKです。

②SSHサービスを有効にする。
  通常はデフォルトで開始(稼動)している。

  システム → 管理 → サービス → サービスの設定

     一覧の中から sshd にチェックを入れ → 開始 → 終了

③SSHサービスにログインしてみる。

   GNOME端末 により

    # slogin localhost と入力します。 → yes → ログインパスワード

   Last login ・・・ と表示されれば使用可能です。

④rootログインを不許可にする。

  サーバーを侵入者から守る設定を施します。(乗っ取りの防止)

   GNOME端末 により root(# su -) ログインし

     # gedit /etc/ssh/sshd_config と入力します。

        (省略)

       #PermitRootLogin yes → PermitRootLogin no (root でのログインを禁止)

        (省略)

       #PasswordAuthentication yes → PasswordAuthentication no (通常パスワードの禁止)
       #PermitEmptyPasswords no → PermitEmptyPasswords no (空パスワードの禁止)

    へ修正し保存する。

⑤再起動

   システム → 管理 → サービス → サービスの設定

     サービス一覧から sshd を選び 再開始する。

 以上の作業により、root でのリモートログインが出来なくなります。
 これで、乗っ取りの脅威から、チョットだけ安心できます。

 SSHサーバーの設定は完全には完了していません。
 暗号化の設定などを、別途追記します。


プリンタサーバーは既にインストール済みになっています。
プリンタ共有には CUPS を使用します。

 システム → 管理 → 印刷

となっていれば登録されていますが、更に端末で確認してみましょう。

①GNOME端末 により

  # rpm -qa | grep cups と入力します。
   
    libgnomecups-0.2.3-4.fc10.i386
    cups-libs-1.3.9-2.fc10.i386
    cups-1.3.9-2.fc10.i386
    bluez-cups-4.17-2.fc10.i386
    cupsddk-drivers-1.2.3-5.fc10.i386
    hal-cups-utils-0.6.17-4.fc10.i386

  となっていればOKです。

②プリンタの登録

  今回は既にプリンタサーバーがLAN上に設置してある事を前提に、
  プリンタサーバーとしては使用せずに、共有プリンターが使用できる設定を行います。

     システム → 管理 → 印刷 → プリンター設定 → 新規

       LPD/LPR Host or Printer を選び
       ホスト にプリンタサーバーの ipアドレス を入れます。

     進む → プリンタードライバーを選択 → 画面の指示に従います。

      あとは、Windowsの設定とほぼ同じです。

  試しに、テストプリントを印刷してみましょう。

ファイルサーバーの準備です。いよいよサーバーの仲間入り。

①Samba を導入

  システム → 管理 に Samba の項目が無い事を確認し、
  システム → 管理 → ソフトウェアの追加/削除 を選び、

   検索窓に Samba と入れ検索します。

  検索結果の中から、

   system-config-samba-1.2.67-1.fc10(noarch)

  を選びインストールします。

②GNOME端末 に移り

  # rpm -qa | grep samba と入力し、

   samba-winbid-3.2.5-0.23.fc10.i386
   samba-client-3.2.5-0.23.fc10.i386
   samba-common-3.2.5-0.23.fc10.i386
   samba-3.2.5-0.23.fc10.i386          → 追加
   system-config-samba-1.2.67-1.fc10.noarch  → 追加

  がインストールされている事を確認する。

③再起動

  システム → 管理 に Samba の項目が追加されています。

④Samba の設定

  システム → 管理 → Samba → プレファレンス → サーバーの設定

   ワークグループを設定(他のクライアントと同じにします) → OK

  システム → 管理 → Samba → プレファレンス → Sambaのユーザー

   1. ユーザーの追加をします。(Fedoraのインストールの時に登録したユーザーを選択)
   2. Windowsユーザー名は上記のユーザー名にします。
       (ユーザー名追加による追加変更可能です)
   3. パスワードを設定します。(クライアントからアクセスする時のパスワードになります)
   4. OKで保存します。

  システム → 管理 → Samba → 共有を追加 → 基本
   
   1. 公開可能なディレクトリを選択します。
   2. 共有名を必要に応じ書き換えます。
   3. 書き込み可能と可視にチェックを入れます。
   4. OKで保存

  システム → 管理 → Samba → 共有を追加 → アクセス

   1. アクセスを許可するユーザーを選びます。
   2. OKで保存

⑤Samba のサービスを有効にします

   システム → 管理 → サービス → サービスの設定

     一覧の中から smb + nmb を選びシステムを有効にします。

      * smb + nmb になったのはFC7からです。

⑥ファイアーウォールの設定

   システム → 管理 → ファイアーウォールの設定 → 信頼したサービス

     一覧の中から Samba にチェックを入れ → 適用 → 終了

⑦再起動

⑧確認作業

   GNOME端末により

     1. ifconfig コマンドでサーバーのアドレス(inet addr)の確認をします。

     2. firefoxブラウザのアドレスに上記のipアドレスを入力
          ¥¥ipアドレス と入力する(¥は2つとも半角で)

   ユーザー名とパスワードを入力し、
   接続されると画面にサーバーの共有名が表示され、
   続けて選択するとディレクトリが表示されます。

上記の設定は接続の確認用ですので、本番使用時には、
ユーザーが共有できるディレクトリを別に作成し開放します。

これで、ファイルサーバーが出来上がりました。

まだまだ、設定などを行わないと本格的なファイルサーバーにはなりませんが、
ベースが完成です。

いよいよパソコンからサーバーへ変身の始まりです。
ネットワークの設定はDHCPを使用しています。
(必要により固定ipアドレスの設定をします。)

①NetworkManager(ネットワークマネージャー)設定

   ネットワークを突然にオフラインにしたりなど、
   悪さをする駄々っ子なので使用方法の変更をします。

     システム → 管理 → ネットワーク → ネットワーク設定 → デバイス(タブ)

      1. 使用中のデバイスが起動中になっていることを確認。
      2. 編集を選びます。
      3. 全般(タブ)の中の

           NetworkManager で管理する。
           コンピューターの起動時にデバイスを起動

        にチェックを入れる。 → OK で保存

     システム → 管理 → サービス → サービスの設定

      1. NetworkManager

         サービスを無効 + サービスを停止   にする。

      2. network

         サービスを有効 + サービスを実行中  にする。

   これは初期設定というよりは、バグの回避処理ですねー。

②SELinuxの無効化

   セキュリティの確認には大変に有効なのでしょうが、インストール中に煩いので停止します。

     # vi /etc/sysconfig/selinux

   を実行し(root権限)、リストの途中にある

     SELINUX=enforcing  →  disabled  に修正し保存(:w:q)。


最後に再起動して再度サーバーの赤ちゃんを立ち上げましょう。

 確認作業

   GNOME端末により

     ifconfig コマンドでサーバーのアドレス(inet addr)の確認をします。有ればOK。
     ping コマンドで別のクライアント(パソコン)に繋がっているか確認しましょう。