トップページへ

 セットアップ
Debian化
カーネル再構築
Debian化仕上げ
HDDの初期化
フローチャート

 サーバ構築
ルータの設定
無料ドメイン収得
Webサーバ
メールサーバ
FTPサーバ
ファイルサーバ
プリンタサーバ
DNSサーバ
データベースサーバ

 運 用
基本的なコマンド
テキストエディタ
シェルスクリプト
運用に必要な物
ファイアウォール
ログの管理
バックアップ
データ復旧
VMware

 監 視
Webアクセス解析
システム監視
ログ解析
不正アクセス監視

 その他
リンク

sponsored link

【 更新履歴 】


2009年7月25日
 サイトデザインを一新

2009年3月31日
 Debian化仕上のページを更新

2008年09月15日
 新サイト開設



サーバ運用



 このページでは玄箱サーバを運用するにあたって、こまごまとした設定や便利な機能を紹介します。 役に立つかどうかはわかりませんが何かの参考になっていただければ幸いです。


時刻の自動補正
 やっぱりサーバーを管理する上では時間に厳しくないといけません(アクセスログとかの時間情報はとても大事だと思います)。 毎回、手動で誤差を修正していくのもいいのですが大変なので自動で時計を合わせてくれるように「ntpdate」をインストールして「Cron」に登録します。

コマンド:ntpdateのインストール

ntpdateのインストール

# apt-get install ntp ntpdate
# ntpdate clock.nc.fukuoka-u.ac.jp ←このコマンドでntpサーバーに接続して時計を合わせます

時刻あわせをcronで自動化

# vi /etc/crontab
 5 4 * * * root ntpdate clock.nc.fukuoka-u.ac.jp ←を追加

 この設定で毎日12時5分に「ntpdate clock.nc.fukuoka-u.ac.jp」のサーバーに問い合わせて時間を修正してくれます。 12時ちょうどではなくて「4時5分」としたのは、他のサーバー管理者とアクセス時間をずらすためです(あんまり意味がない?)。



tcpdumpでネットワークデータの監視
 サーバへアクセスしてくるデータをリアルタイムにチェックします。アクセスランプが点滅しっぱなしのときは Dos攻撃の可能性があるので一度チェックして、不正なアクセスを遮断する情報を入手しましょう

コマンド:ネットワーク監視

# tcpdump not port ssh

tcpdumpをインストールしていないときはatp-getでインストールしましょう
オプションをつけずにtcpdumpを実行するとリモートアクセスしているsshのデータが鬼のように表示されるので 「not port ssh」でsshのポート接続は監視しない設定をします

例えば複数のポートを除外するとき

# tcpdump not port ssh and not port www




データの圧縮、解凍
 データのバックアップのために複数のファイル・フォルダをひとつの圧縮ファイルにまとめます。下記は玄箱のデータを丸ごとバックアップする方法です。
 私はフルバックアップした圧縮ファイルをSamba共有ディレクトリに作成してWindowsから取り出して保存していますが、 外付けHDDを持っていればシェルスクリプトで定期的にCronに実行させて玄箱に接続した外付けHDDにバックアップをとるのがベストでしょう。

コマンド:ファイルの圧縮

# tar -zcvf 圧縮後のファイル名 圧縮したいファイル

例:玄箱のフルバックアップ(必要のないディレクトリは排除)を/mnt/backup.tarの名前で作成
--excludeオプションで/mnt以下と/proc以下のフォルダを除外します。

# tar -zcvf /mnt/backup.tar / --exclude /mnt --exclude /proc (/以下の全フォルダを圧縮)

コマンド:ファイルの解凍

# tar -zxvf 圧縮ファイル名 解凍したい場所




chkrootkitでrootkit検出
 rootkitとは簡単に説明すると、不正にサーバーにアクセスしたクラッカーが後に再侵入するためのプログラムや、 コマンド改ざんプログラムといった不正プログラムの総称です。そのようなrootkitを検出するプログラムがchkrootkitです。 実際はこのchkrootkitが使用するコマンドですら改ざんされる恐れがあるため、chkrootkitは書換えの出来ないCD-ROMなどから実行するものらしいです。

コマンド:chkrootkitのインストール

# apt-get install chkrootkit

コマンド:chkrootkitの検索

検索コマンド

# chkrootkit

実際はずらずらと多くのメッセージが表示されるため一行ずつ確認していきます

# chkrootkit | less

もしくはgrepを使用してINFECTEDの文字がある行だけを表示する

# chkrootkit | grep INFECTED

not foundやnot infectedなら問題なし。INFECTEDならコマンドの改ざんを受けた可能性があるのですぐに対応すべきです。



ログインの必要のないユーザーの作成
 メールユーザーを追加する場合、Linux上でのユーザーを追加しなければいけませんが、実際のユーザーはWindowsやMac でメールを受信するのでLinuxにログインする必要はありません。その場合、余計な権限を持ったLinuxユーザーを追加するのは セキュリティ上好ましくありませんのでログインの権限のないユーザーとして作成する必要があります。

ファイル編集:/etc/shells

/etc/shellsに下記の文字を追加します。これでユーザ登録の際に、シェルを/bin/falseと指定されたユーザは 一般シェルの操作はできずに余計な操作をされるのを防ぎます

/bin/false

コマンド:Login権限無しユーザの追加

# useradd -s /bin/false ユーザ名

すでに作成されているユーザーをログイン出来なくする方法

コマンド:Login権限変更コマンド

# usermod -s /bin/false ユーザ名




起動プログラムの制御
 サーバの起動時にデフォルトでいくつかプログラムが自動起動されますが、不要なプログラムはセキュリティのため起動させないほうがいいです。 「sysv-rc-conf」を用いて不要なプログラムを自動起動させないように設定しましょう。

コマンド

現在インストールされているプログラムの一覧を表示

# dpkg -l

一覧から、インストールされている目的のプログラムを表示

# dpkg -l |grep プログラム名

sysv-rc-confのインストール

# apt-get install sysv-rc-conf # sysv-rc-conf

起動させたくないプログラムのチェックをはずします
玄箱起動時にプログラムを起動させるには「2」「3」「4」「5」にチェックを入れる。起動させたくないプログラムはチェックを全てはずす。「q」で終了





ログイン履歴のチェック
過去に不正にログインされていないか履歴をチェックします

コマンド:ログイン履歴チェック

# lastlog

一度もログインしていないユーザーは「Never logged in」と表示される





HDDの温度測定
 ハードディスクの温度を測定します。温度が一定に達したらファンの回転数を早くするなどの設定もあるようですが 今のところは設定していません。温度を把握すれば何かと安心するでしょう。

コマンド:hddtempのインストール

# apt-get install hddtemp

質問はデフォルトで答えた


# hddtemp /dev/hda

温度測定(ハードディスクが/dev/hdaとして認識されている場合


お使いのハードディスクがhddtempで認識されれば温度が表示されますが認識されない場合はHDDが対応していません。
私のの場合(玄箱ノーマル)、夏で平均40℃、冬で平均30℃くらいです(HDDの回転数やメーカーによって平均温度が違うようです)。



aptでパッケージ検索
 aptのコマンドでインストール可能なパッケージを検索します。また、通常の検索だとパッケージの説明文まで検索されますので オプションをつけてパッケージ名のみの検索を行います。

コマンド:パッケージ検索

# apt-cache search --names-only パッケージ名

--names-only オプションをつけないとパッケージの説明文も検索するので閲覧数が多くなります





他のsambaサーバと接続
 他のLAN内のサーバーで動いているsambaに接続して共有フォルダにアクセスします

コマンド:共有フォルダにアクセ

# apt-get install smbfs
# smbmount //192.168.0.xxx/sambaの共有フォルダ名 /mnt/samba -o username="アクセスユーザー名",password="パスワード"

192.168.0.xxxにあるsambaフォルダを/mnt/samba以下にマウントします。パスワード制御していない場合は-oオプション以下は必要ありません。





システムのバックアップ
 玄箱をセットアップしたあと、何らかの障害で再インストールをしたいときにパッケージのインストールやらカーネルの再構築を始めから行うのはうんざりします。 そこで適当な時にシステムの全バックアップをとっておき、再インストールを楽にしましょう。

コマンド:tarによるバックアップ

# tar -zcvf /root/HG_full_backup.tgz /bin/ /home/ /lost+found/ /var/ /boot/ /etc/ /initrd/ /root/ /tmp/ /lib/ /opt/ /sbin/ /usr/ --exclude /root/HG_full_backup_20061021.tgz

以下のフォルダとバックアップファイル自体はバックアップを取っていない。特に/proc/はバックアップしてはいけない /cdrom/ /mnt/ /proc/ /dev/ /floppy/ /sys/





システムのリストア
 何らかの障害もしくは設定ミスでどうにもならなくなった時、システムをすべて削除して再インストールをしたいとき(事前に上記バックアップが必要です)。

コマンド:システムの削除

# rm -rf /

禁断のコマンドです。通常作業では絶対に打ってはいけないコマンドで、システムファイルやデータすべてを無に帰します。
なにやらメッセージが出た後、コマンドを受け付けなくなるので強制的に電源を引き抜き再度電源を入れます。 その後、電源を入れてしばらくすると赤いランプが点滅して再度電源が落ちるのでもう一度電源を入れ直します。


Debian化玄箱の再インストール

Debian化したKuroBoxSetup.exeを実行してインストール

1.インストール後、電源ボタンを長押ししてシャットダウンし、もう一度電源ボタンを押して起動

2.ブラウザでftp:192.168.0.100にアクセス(ちょっと時間がかかります)。ユーザ:tmp-kun、パス:tmp-kun

3.システムのバックアップで作成したHG_full_backup.tgzをブラウザ上のFTPにコピーする。


Debian化玄箱のリストア

telnetでtmp-kunにアクセスし、rootになる
(ユーザ:tmp-kun、パス:tmp-kun)
(ユーザ:root、パス:root)

# mv HG_full_backup.tgz / (ファイルをルートディレクトリへ移動)
# cd / (作業場所をルートディレクトリに移動)
# tar -zxvf HG_full_backu.tgz (ファイルを解凍)
# reboot

うまくリストアされていることを祈りましょう。ここで失敗して起動しなければ何かが悪いのでしょうか?(責任転嫁)。





FTPサーバへの接続

コマンド:tarによるバックアップ

#cd /root

まずはFTPで転送したいファイルのあるディレクトリに移動してから下記のコマンドを実行する

#ftp 192.168.0.xxx FTPサーバのアドレスを入力
  Connected to 192.168.0.xxx.
  220 Welcome to FTP service.
Name (192.168.0.xxx:tmp-kun): xxxxxxx FTPサーバのユーザ名を入力
  331 Please specify the password.
Password:xxxxxx FTPサーバのパスワードを入力
  230 Login successful.
  Remote system type is UNIX.
  Using binary mode to transfer files.
ftp> put HG_full_backup.tgz 転送したいファイルを指定
  local: HG_full_backup_20061021.tgz remote: HG_full_backup_20061021.tgz
  200 PORT command successful. Consider using PASV.
  150 Ok to send data.
  226 File receive OK.
  195858441 bytes sent in 57.21 secs (3343.4 kB/s)
ftp> bye FTP接続を終了する
  421 Timeout.




ファイルの検索

ファイルの検索

# find [ディレクトリ] -name [検索文字]