Last Update 2004.12.14 

  •  Fedora Core 3による自宅サーバー構築(CUIベース)
    •  ソフトウエア編(インストール)
      • 私見ですが完璧なセキュリティ設定は存在しないんじゃないか?と思っています。
        ウイルスの定義ファイルが日々更新されるように、ハッカーなどの悪意のある人達も新しい攻撃方法を探しています。
        その攻撃のネタのひとつでもある見つかっていないソフトウエアの脆弱な部分も沢山あるでしょう。
        日々、他のサイトも参考にするなど最新の情報にアンテナを高くして対策を実施して下さい。
        なお、この構築の記録は我が家の環境での記録であり、皆さんの環境で全く同様に再現できる保証はありません。
        留意願います(無保証です)

      •  smtp/pop3(mail)サーバー(Postfix,Dovecot)のインストールと設定
        •  Postfixのインストール -2004年12月14日
          これはこれからインストールするウイルス対策ソフトやLinux自体が問題発
          生時に管理者宛てに警告メールを送ります。 そのメールを送るための仕込です。
          前節では外部からの接続を考慮しないセキュリティ設定をポリシーとしています
          が、ここではある程度仕込んでしまって後節では変わった方法でセキュリティ対
          策を考えています。
          また、警告メール受信は普段使いのWindowsPCを想定しています。
          (じゃなくても良いけど...)
          PCからメールを見るためのPOP3サーバー(Dovecot)もあわせてインストール
          します。

          では、Postfixをインストールします。
          [root@station ~]# yum -y install postfix
          Setting up Install Process
          Setting up Repo:  crash-hat
          repomd.xml                100% |=========================|  951 B    00:00
          Setting up Repo:  base
          repomd.xml                100% |=========================| 1.1 kB    00:00
          Setting up Repo:  updates-released
          repomd.xml                100% |=========================|  951 B    00:00
          Reading repository metadata in from local files
          crash-hat : ################################################## 65/65
          base      : ################################################## 2622/2622
          updates-re: ################################################## 355/355
          Resolving Dependencies
          --> Populating transaction set with selected packages. Please wait.
          ---> Downloading header for postfix to pack into transaction set.
          postfix-2.1.5-2.4.FC3.i38 100% |=========================|  39 kB    00:00
          ---> Package postfix.i386 2:2.1.5-2.4.FC3 set to be installed
          --> Running transaction check
          
          Dependencies Resolved
          Transaction Listing:
            Install: postfix.i386 2:2.1.5-2.4.FC3
          Downloading Packages:
          postfix-2.1.5-2.4.FC3.i38 100% |=========================| 2.7 MB    00:03
          Running Transaction Test
          Finished Transaction Test
          Transaction Test Succeeded
          Running Transaction
          Installing: postfix 100 % done 1/1
          
          Installed: postfix.i386 2:2.1.5-2.4.FC3
          Complete!
          [root@station ~]#
          

           設定ファイルの変更 -2004年12月14日
          [root@station ~]# vi /etc/postfix/main.cf
          
          68〜69行目
          #myhostname = host.domain.tld
          #myhostname = virtual.domain.tld
           
          myhostname = station.localdomain ← (ホスト名を「station」とした時で環境によって異なる)
          #myhostname = virtual.domain.tld
          
          76行目
          #mydomain = domain.tld
           
          mydomain = localdomain
          
          
          106〜109行目
          #inet_interfaces = all
          #inet_interfaces = $myhostname
          #inet_interfaces = $myhostname, localhost
          inet_interfaces = localhost
           
          inet_interfaces = all
          #inet_interfaces = $myhostname
          #inet_interfaces = $myhostname, localhost
          #inet_interfaces = localhost
          
          
          154〜157行目
          mydestination = $myhostname, localhost.$mydomain, localhost
          #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
          #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
          #       mail.$mydomain, www.$mydomain, ftp.$mydomain
           
          #mydestination = $myhostname, localhost.$mydomain, localhost
          mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
          #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
          #       mail.$mydomain, www.$mydomain, ftp.$mydomain
          
          
          239〜241行目
          #mynetworks_style = class
          #mynetworks_style = subnet
          #mynetworks_style = host
           
          #mynetworks_style = class
          mynetworks_style = subnet
          #mynetworks_style = host
          
          
          254〜256行目
          #mynetworks = 168.100.189.0/28, 127.0.0.0/8
          #mynetworks = $config_directory/mynetworks
          #mynetworks = hash:/etc/postfix/network_table
           
          mynetworks = 192.168.1.0/24, 127.0.0.0/8 ← (自宅のアドレスに合わせて)
          #mynetworks = $config_directory/mynetworks
          #mynetworks = hash:/etc/postfix/network_table
          
          
          286行目
          #relay_domains = $mydestination
           
          relay_domains = $mydestination
          
          
          408〜409行目
          #home_mailbox = Mailbox
          #home_mailbox = Maildir/
           
          #home_mailbox = Mailbox
          home_mailbox = Maildir/
          
          539行目
          #smtpd_banner = $myhostname ESMTP $mail_name
           
          smtpd_banner = $myhostname ESMTP
          
          以下末尾に追加
          smtpd_sasl_auth_enable = yes
          smtpd_sasl_local_domain = $myhostname
          smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
          以下、2行はスパムメール除けです 予期せねメール未達もありえます。
          設定の際は各DBサイトへのリンク先を参照しポリシーを確認して下さい。
          maps_rbl_domains = relays.ordb.org, all.rbl.jp
          smtpd_client_restrictions = permit_mynetworks, reject_maps_rbl ,permit
          

           メール管理ユーザーの登録 -2004年12月14日
          警告メールを受け取る管理ユーザーを登録します。
          このユーザーはメールを閲覧のみでサーバーに対しての管理者権限はありません
          し、コンソールにもログインをさせません。(/sbin/nologin)
          [root@station ~]# useradd -s /sbin/nologin mailadmin ← 「mailadmin」は任意の名前で
          [root@station ~]#
          

          パスワードを設定
          [root@station ~]# passwd mailadmin ← 「mailadmin」は上記設定と同じ名前で
          Changing password for user mailadmin.
          New UNIX password: ← パスワード入力(表示はされない)
          Retype new UNIX password: ← 同じパスワードを再入力
          passwd: all authentication tokens updated successfully.
          [root@station ~]#
          

          パスワードが簡単だと...
          [root@station ~]# passwd mailadmin
          Changing password for user mailadmin.
          New UNIX password:
          BAD PASSWORD: it does not contain enough DIFFERENT characters
          Retype new UNIX password:
          passwd: all authentication tokens updated successfully.
          [root@station ~]#
          
          文句を言われますが、無視すればそのまま設定が完了します(笑)

           メール管理ユーザーへメール転送設定 -2004年12月14日
          真の管理者(root)宛てのメールをメール管理ユーザーへ転送する設定をします。
          直接管理者(root)で閲覧すれば良さそうなものですが、このように転送するのが
          一般的なようです。 理由は判りません(涙) 最終行(100行目)を変えます。
          [root@station ~]# vi /etc/aliases
          #root:          marc
          
           
          root:          mailadmin ← 先ほど作ったユーザー名と同じで

          設定の反映
          [root@station ~]# postalias /etc/aliases
          [root@station ~]#
          

           使わないメール・サーバーサービス(sendmail)を消してしまおう -2004年12月14日
          「Postfix」をインストールして、使わない「sendmail」を消します。
          [root@station ~]# yum -y remove sendmail
          Setting up Remove Process
          Resolving Dependencies
          --> Populating transaction set with selected packages. Please wait.
          ---> Package sendmail.i386 0:8.13.1-2 set to be erased
          --> Running transaction check
          
          Dependencies Resolved
          Transaction Listing:
            Remove: sendmail.i386 0:8.13.1-2
          Downloading Packages:
          Running Transaction Test
          Finished Transaction Test
          Transaction Test Succeeded
          Running Transaction
          Erasing: sendmail 1/1
          
          Removed: sendmail.i386 0:8.13.1-2
          Complete!
          [root@station ~]#
          
          スッキリ♪

           sasl認証サービスの起動と設定 -2004年12月14日
          saslによるパスワード認証のサービスの起動とその設定です
          [root@station ~]# /etc/init.d/saslauthd start ← sasl認証サービス起動
          saslauthd を起動中:                                        [  OK  ]
          [root@station ~]# chkconfig saslauthd on ← sasl認証サービス自動起動設定
          [root@station ~]# chkconfig --list saslauthd ← 設定の確認
          saslauthd       0:off   1:off   2:on    3:on    4:on    5:on    6:off ← run level 2〜5の「on」を確認
          [root@station ~]#
          

           Postfix(smtp)サービスの起動と設定 -2004年12月14日
          Postfix(smtp)サービスの起動とその設定です
          [root@station ~]# /etc/init.d/postfix start ← Postfix(smtp)サービス起動
          Starting postfix:                                          [  OK  ]
          [root@station ~]# chkconfig postfix on ← Postfix(smtp)サービス自動起動設定
          [root@station ~]# chkconfig --list postfix ← 設定の確認
          postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off ← run level 2〜5の「on」を確認
          [root@station ~]#
          

           Dovecotのインストール -2004年12月14日
          続いて、Dovecotをインストールします。
          [root@station ~]# yum -y install dovecot
          Setting up Install Process
          Setting up Repo:  crash-hat
          repomd.xml                100% |=========================|  951 B    00:00
          Setting up Repo:  base
          repomd.xml                100% |=========================| 1.1 kB    00:00
          Setting up Repo:  updates-released
          repomd.xml                100% |=========================|  951 B    00:00
          Reading repository metadata in from local files
          primary.xml.gz            100% |=========================|  15 kB    00:00
          MD Read   : ################################################## 65/65
          crash-hat : ################################################## 65/65
          base      : ################################################## 2622/2622
          updates-re: ################################################## 355/355
          Resolving Dependencies
          --> Populating transaction set with selected packages. Please wait.
          ---> Downloading header for dovecot to pack into transaction set.
          dovecot-0.99.11-1.FC3.4.i 100% |=========================|  13 kB    00:00
          ---> Package dovecot.i386 0:0.99.11-1.FC3.4 set to be installed
          --> Running transaction check
          --> Processing Dependency: libmysqlclient.so.10 for package: dovecot
          --> Processing Dependency: libpq.so.3 for package: dovecot
          --> Restarting Dependency Resolution with new changes.
          --> Populating transaction set with selected packages. Please wait.
          ---> Downloading header for mysql to pack into transaction set.
          mysql-3.23.58-13.i386.rpm 100% |=========================|  35 kB    00:00
          ---> Package mysql.i386 0:3.23.58-13 set to be installed
          ---> Downloading header for postgresql-libs to pack into transaction set.
          postgresql-libs-7.4.6-1.F 100% |=========================| 9.3 kB    00:00
          ---> Package postgresql-libs.i386 0:7.4.6-1.FC3.2 set to be installed
          --> Running transaction check
          --> Processing Dependency: perl-DBD-MySQL for package: mysql
          --> Processing Dependency: perl(DBI) for package: mysql
          --> Processing Dependency: perl-DBI for package: mysql
          --> Restarting Dependency Resolution with new changes.
          --> Populating transaction set with selected packages. Please wait.
          ---> Downloading header for perl-DBD-MySQL to pack into transaction set.
          perl-DBD-MySQL-2.9003-5.i 100% |=========================| 5.3 kB    00:00
          ---> Package perl-DBD-MySQL.i386 0:2.9003-5 set to be installed
          ---> Downloading header for perl-DBI to pack into transaction set.
          perl-DBI-1.40-5.i386.rpm  100% |=========================|  11 kB    00:00
          ---> Package perl-DBI.i386 0:1.40-5 set to be installed
          --> Running transaction check
          
          Dependencies Resolved
          Transaction Listing:
            Install: dovecot.i386 0:0.99.11-1.FC3.4
          
          Performing the following to resolve dependencies:
            Install: mysql.i386 0:3.23.58-13
            Install: perl-DBD-MySQL.i386 0:2.9003-5
            Install: perl-DBI.i386 0:1.40-5
            Install: postgresql-libs.i386 0:7.4.6-1.FC3.2
          Downloading Packages:
          dovecot-0.99.11-1.FC3.4.i 100% |=========================| 601 kB    00:00
          mysql-3.23.58-13.i386.rpm 100% |=========================| 3.2 MB    00:03
          postgresql-libs-7.4.6-1.F 100% |=========================| 140 kB    00:00
          perl-DBD-MySQL-2.9003-5.i 100% |=========================| 111 kB    00:00
          perl-DBI-1.40-5.i386.rpm  100% |=========================| 467 kB    00:00
          Running Transaction Test
          Finished Transaction Test
          Transaction Test Succeeded
          Running Transaction
          Installing: perl-DBI 100 % done 1/5
          Installing: postgresql-libs 100 % done 2/5
          Installing: mysql 100 % done 3/5
          Installing: dovecot 100 % done 4/5
          Installing: perl-DBD-MySQL 100 % done 5/5
          
          Installed: dovecot.i386 0:0.99.11-1.FC3.4
          Dependency Installed: mysql.i386 0:3.23.58-13 perl-DBD-MySQL.i386 0:2.9003-5 per
          l-DBI.i386 0:1.40-5 postgresql-libs.i386 0:7.4.6-1.FC3.2
          Complete!
          [root@station ~]#
          

           設定ファイルの変更 -2004年12月14日
          [root@station ~]# vi /etc/dovecot.conf
          
          14行目
          #protocols = imap imaps
          
           
          protocols = pop3
          
          77行目
          #login_chroot = yes
           
          login_chroot = yes
          
          
          174行目
          #valid_chroot_dirs =
           
          valid_chroot_dirs = /home
          
          
          197行目
          #default_mail_env =
           
          default_mail_env = maildir:%h/Maildir
          

           Dovecot(pop3)サービスの起動と設定 -2004年12月14日
          Dovecot(pop3)サービスの起動とその設定です
          [root@station ~]# /etc/init.d/dovecot start ← Dovecot(pop3)サービス起動
          Dovecot Imap を起動中:                                     [  OK  ]
          [root@station ~]# chkconfig dovecot on ← Dovecot(pop3)サービス自動起動設定
          [root@station ~]# chkconfig --list dovecot ← 設定の確認
          dovecot         0:off   1:off   2:on    3:on    4:on    5:on    6:off ← run level 2〜5の「on」を確認
          [root@station ~]#
          

           「yum」がダウンロードした残骸を消します -2004年12月14日
          「yum」がダウンロードしたファイルがディスクに溜まっているので消します。
          [root@station ~]# yum clean packages
          Cleaning up Packages
          9 packages removed
          [root@station ~]#
          
          すっきり♪

           メールの送受信テスト -2004年12月14日
          Outlook Expressでの設定例です。
          メールアドレスはメール管理ユーザーを「mailadmin」で作った場合は「mailadm
          in@station.localdomain」になります。
          送受信のサーバーはサーバーのIPアドレスを指定して下さい。
          メーラーの設定が出来たら「root@station.localdomain」宛てにメールを送信し
          て下さい。
          「メール管理ユーザーへメール転送設定」で設定した「root」の転送先が「mail
          admin」になっていれば送ったメールがこのアカウントで受信出来るはずです。



          なお、念のためお断りしておきますが、この設定で外部にサーバーを向けないで
          下さい。 やったことはありませんが、メールサーバー自身のドメイン名を「lo
          caldomain」としているので外部から「localdomain」を名乗って繋がれるとどん
          なメール(スパム)でもリレーしてしまうかもしれません。
          (大丈夫なような気もしますが、この状態で外にに向ける意味はないです)


      • 以上、ftpなどでウイルスを拾って来てしまうなど内部から外部へのアクセスを前提としたセキュリティを意識しています。
        サーバーPCを直接操作してローカル環境での使用を前提としています。


      • 以下、外部から内部(家サーバー)へアクセスが発生します。
        ルーターに穴あけの設定も必要となります。 外部からの不正アクセスを十分意識して作業を進めて下さい。