セキュリティ対策

インストールしたばかりの PC (LINUX) には数多くのセキュリティホール (脆弱性) を 含んでいます. インストール後は定期的にインストールパッケージの更新を 行うようにしてください. 本日の講習内容は 1) VINE LINUX 2.5 から新たに採用された "apt-get" コマンドを用いた パッケージのアップデートの方法, 2) プロセス管理 の方法, 3) システムログ (記録) の取り方, 4) コンピュータ (サーバ) へのアクセス制限の方法 についての 4 項目です.

memo

本日の内容
  1. emacs の練習
  2. apt-get を使ったパッケージのアップデート
    emacs を利用して /etc/apt/sources.list を編集する.
    1. /etc/apt に移動する (cd /etc/apt)
    2. sources.list のバックアップをとる (cp sources.list sources.list.org0)
    3. sources.list を emacs に読み込む (emacs & sources.list)
    4. sources.list の内容をすべて消去する (マウス反転 + del)
    5. HP から設定をコピーする (マウス反転 + 左ボタンで貼り付け)
    6. 上書き保存 (Save As)し emacs の終了
    7. sources.list の変更を確認 (cat sources.list)
  3. パッケージのアップデート.
    1. Kterm (「あ漢」のアイコン) を開く
    2. スーパーユーザになる (su コマンド)
    3. ftp.cc にアクセス (apt-get updata)
    4. rpm ファイルのダウンロードとインストール (apt-get upgrade)
          パッケージ名 #################### <-- 画面に表示される
    5. PC の再起動 (reboot)
      (注) 再起動の途中で診断システム ( kudzu ) が何か言っても 「だまって」待つこと !
    RPM (Redhat Package Manager) パッケージのインストール.
     rpm コマンド (p61) を利用してパッケージ (ソフトウェア) のインストールを行う.
    1. HPから iplogger-1.2-1.i386.rpm をダウンロードする
    2. Kterm を開き, ルートになる ( su )
    3. iplogger-1.2-1 をインストールする (rpm -ivh iplogger-1.2-1.i386.rpm)
          iplogger-1.2-1 #################### <-- 画面に表示される

  4. 起動プロセスの管理
    Run レベルは /etc/rc.d/rc*.d/ 以下のスクリプトと /etc/inittab により制御, 規定 される.
    今回は Run レベル 3 の場合 (/etc/rc.d/rc3.d) について説明した.
    1. Kterm を開き, /etc に移動 (cd /etc)
    2. inittab の内容を見てみる (less /etc/inittab) ** p100 例 1) 参照
      (参)
          ・・・
          id:3:initdefault <-- 起動時の Run レベルの設定 (昨日, 杉谷先生が 3 <--> 5 と書き換えたところ)
          ・・・
    3. /etc/rc.d/rc3.d/ に移動 (cd /etc/rc.d/rc3.d)
    4. プロセスを見る (ps aux) p324, 325
    5. ルートになる ( su )
    6. http デーモンを止める (./S85 httpd stop)
          センターから苦情 がきたらこうやってプロセスを停止してくださいね (笑)
    7. プロセス停止の確認 (ps aux)
    このようにして停止させたプロセスは PC を再起動させるとすべてもとの状態 (httpd が起動したまま) にもどる.
    それを回避する (Run レベル 3 の起動プロセスから httpd を除外する) ためには次のコマンドを入力してください.
        /sbin/chkconfig --level3 httpd off ( p105, 106 )
    逆に,PC 起動時に httpd を起動させる場合
        /sbin/chkconfig --level3 httpd on
    (参)
    /sbin/chkconfig --level3 httpd off 実行後に ls /etc/rc.d/rc3.d/ を実行すると, S85 httpd はなくなり, 代わりに K15 httpd が できている.
    つまり,chkconfig は S85 httpd の名前の変更 (mv S85 httpd K15 httpd) を実行したと考えて良い.


  5. システムログをとる
    syslog デーモン (syslogd) は各プログラムが作成したログを収集しファイル (/var/log/messages) に記録する.
    ここでは,先ほどインストールした「 iplog 」を用いて ICMP, TCP, UDP ログをとる ことにする.
    なお, syslog の設定は /etc/syslog.conf に書かれている ( p334, 335)
    1. Kterm を開き, ルートになり, /etc/rc.d/rc3.d/ へ移動 (cd /etc/rc.d/rc3.d)
    2. /etc/rc.d/rc3.d/ 中の iplog の名前を確認する (ls コマンド)
    3. Run レベル 3 で iplog を起動する (S50 iplog start)
    4. iplog と入力
    5. /var/log/ に移動する (cd /var/log)
    6. シスログが書き込まれている messages ファイルをよむ
          less messages (静的に読む)
          tail -f messages (リアルタイムで読む)

    7. /var/log/ 中のその他のログファイルも見ておきましょう!

    (おまけ) 自分の PC のネットワークの設定情報を見るコマンド ( p219 )
          /sbin/ifconfig -a

  6. アクセス制御
    「telnet」アクセスが可能な PC を制限する設定を行うことにする.
    1. inetd を利用する. ( p238 )
      inetd はスーパーデーモンと呼ばれ, 常時, 多数のネットワークデーモンを 起動しておく代わりに, inetd に登録しておくことで,
      ネットワーククライアントから要求のあった時点で inetd が必要なデーモンを 起動させることができるようになる.
      inetd の設定は /etc/inetd.conf で行う.
      emacs を利用して /etc/initd.conf を編集する.
         (注) ファイル中の # はコメント文 (コメントアウト) を示すものなので, 設定を有効にしたい場合は # を消去してください.
      1. emacs & /etc/inetd.conf と入力
      2. telnet のコメントアウト ( # ) をはずす.
      3. inetd の再起動 (/etc/rc.d/init.d/inet reload )
         (注1) VINE LINUX では"telnet" はデフォルトで ON となっている.
         (注2) 特に, サーバとして必要がない場合には, セキュリティの観点から inetd は起動しない方がよい
    2. tcp wrappers を利用する. ( p306 )
      VINE LINUX では inetd.conf で tcp wrappers (/usr/sbin/tcpd) を呼び出すように設定されている.
      アクセス制御に関する設定 (クライアントの設定) は /etc/hosts.deny と /etc/hosts.allow で行う.
      emacs を利用して /etc/hosts.deny と /etc/hosts.allow を編集する.
      1. emacs で /etc/hosts.deny を開き,
           ALL : ALL と記述し上書き保存する.
      2. emacs で /etc/hosts.allow を開き以下のような形式で記述する:
           ALL    : 127.0.0.1            : allow
           in.telnetd : 133.95.30.0/255.255.255.0 : allow <-- 133.95.30.*** のサブネットからの telnet アクセスを許可する
           in.telnetd : .cc.kumamoto-u.ac.jp    : allow <-- cc.kumamoto-u.ac.jp ドメインからの telnet アクセスを許可する
           ALL    : ALL               : deny
    (注) telnet ではログインパスワードが 平文でネットワーク上を流れるために, セキュリティ上の問題がある.
    リモートアクセスには明日述べる ssh を 利用するように心がけた方がよい. ssh ではパスワードは暗号化されている.

目次  次へ  前へ

Copyright (c) 2002 Center for Multimedia and Information Technologies, Kumamoto University
musashi@cc.kumamoto-u.ac.jp