Spoonwep用WEP-KEYをASCIIで表示させるスクリプト

Posted by: admin at 3 月 9th, 2009

FreeBSDネタでは無いのですが、ちょっと前から話題になっているWEPの脆弱性を試すためにBackTrackというLinuxを試してみました。

Aircrack-ng が早くて高確率なのですが、複数のコンソールを立ち上げないといけなかったり、ちょっとスマートさに欠けます。
クライアントの前で実演をする際に
「誰にでも出来るわけじゃなさそうだね」
と片付けられてしまい、セキュリティ意識を高める事に失敗しそうなので、SpoonwepというGUIアプリケーションを試してみました。

Aircrack-ngに比べると若干時間がかかりますが、モード切替・AP検索・パケットキャプチャ・解析等を全自動で処理してくれるのが良いところです。
残念なことに、最後の処理である解析(aircrack-ng)部分にオプションを指定できないため結果がHEX表示となってしまいます。
[ XX:XX:XX:XX:XX:XX ]
これをスマートに変換するために、簡単なperlスクリプトを組みましたので公開します。

hex-asc.pl
#!/usr/bin/perl

## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## WEP-KEY BIN Viewer for Spoonwep
## (ASCII to BINARY Changer for Spoonwep / Spoonwep2)
##
##           http://freebsd.ai-line.com/  by sio (Japan)
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

## How to use. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  1.Permission change to 0700.
#  2.When Spoonwep is finished, this running.
#  3.Executes this.
#  4.After that, Please give me a mail(sio<at>ai-line.com).
#    Girl or Japanese limitation ;-)
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

## configure
$output_dir = '/root/Desktop/CrackedWEP';

## Spoonwep default setting
$lastattack_dir = '/usr/local/bin/wifispoonfeeder/spoonwep/lastattack';
$key_file = 'key.txt';
$essid_file = 'wscapture-01.txt';

## wepkey
$readfile = "$lastattack_dir/$key_file";
open(IN, $readfile);
  $wepkey = <IN>;
close(IN);
$wepkey =~ s/\[|\]|\ |\:|\n//g;  # [ ww:xx:yy:zz ] => wwxxyyzz
$wepkey =~ s/([a-fA-F0-9][a-fA-F0-9])/pack("H2",$1)/eg; # ASCII to BINARY

## essid
$readfile = "$lastattack_dir/$essid_file";
open(IN, $readfile);
  @essid = <IN>;
close(IN);
$essid = $essid[2];
@essid = split(/,/, $essid);
$essid = $essid[13];
$essid =~ s/^\s*//;
$essid =~ s/\s*$//;

## Write
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900;
$mon += 1;
$filename = "$year$mon$mday$hour$min$sec";
unless (-d $output_dir) {
  mkdir $output_dir;
}
open(FILE, "> $output_dir/$filename");
  print FILE "ESSID  = $essid\n";
  print FILE "WEPKEY = $wepkey";
close (FILE);

Filed under その他 |

No Comments »

sysinstallでFdisk・Labelが失敗する

Posted by: admin at 1 月 30th, 2009

[w]を押しても以下のメッセージが表示されてしまい、更新されない
You've already written out your changes - if you wish to overwrite them, you'll have to restart sysinstall first.
すでに変更が書き込まれています。もしこれを上書きしたい場合は、まずsysinstallを再起動する必要があります。
という事ですので、sysinstallを再起動します。
LiveFS CDからFixitモードで利用している場合には、システムを再起動する必要があります。

アンマウントできない
sysinstallでFdisk・Labelメニューを実行すると、スライス・パーティションを作成するだけで無く、マウントポイントに自動的にマウントされます。
Fixitモードでアンマウントしようとすると以下のようなエラーメッセージが表示される場合があります。
Fixit# umount /mnt
umount: umount of /mnt failed: Device busy
以下を確認してください。
・現在いるディレクトリが、アンマウントしようとしているディレクトリ内でないか?
Fixit# pwd
/mnt
この場合には、他のディレクトリへ移動します。
Fixit# cd /

・アンマウントしようとしているディレクトリ以下に、別のマウントがされていないか?
Fixit# ls /mnt
.snap/  dev/    home/   usr/    var/
この場合には、以下の順でアンマウントします。
Fixit# umount /mnt/var
Fixit# umount /mnt/usr
Fixit# umount /mnt/home
Fixit# umount /mnt/dev
Fixit# umount /mnt

何だか変・・・
以下の手順をおこなってみてください。
  1. sysinstallを終了(LiveFS CDから起動している場合にはFixitモードを起動)して、作成したパーティションがマウントされていたら、全てアンマウントします。
    Fixit# ls /mnt
    .snap/  dev/    home/   usr/    var/
    
    Fixit# cd /
    Fixit# umount /mnt/var
    Fixit# umount /mnt/usr
    Fixit# umount /mnt/home
    Fixit# umount /mnt/dev
    Fixit# umount /mnt
    

  2. スワップパーティションを確認します。
    Fixit# swapinfo
    Device          1K-blocks      Used     Avail Capacity
    /dev/ad0s1b       1048576         0   1048576     0%
    
    デバイス名が表示された場合には、スワップパーティションが使用されている状態ですので停止します。
    Fixit# swapoff /dev/ad0s1b
    
    (下線部分はswapinfoで表示されたデバイス名)

  3. sysinstallを起動(LiveFS CDから起動している場合には再起動)します。

Filed under 基本設定 |

1 Comment »

バックアップ&復元(dump & restore)

Posted by: admin at 1 月 29th, 2009

FreeBSD 7.1で検証した確実なバックアップ手順を公開します。
特に重要視したのは以下の点です。
  • バックアップは短時間でできなければならない
    確実なバックアップを取るにはシングルユーザモードにする必要があり、ブランクタイムをなるべく短くする必要があるからです。
  • バックアップは簡単にできなければならない
    面倒な作業は継続しません。
  • リストアは手順に沿っておこなえば、他人(数ヶ月後の自分も含めて)でも確実にできなければならない
    この状態になればきっと理解できます。
私はFreeBSD4.8の時代からサーバを立てていますが、当時はテープデバイスに行っていたバックアップも、最近はHDDへおこなった方が良いという見解です。
テープへのバックアップは、時間もかかるうえに、経験上メディアの信頼性も薄く、何よりも容量の大きいHDDを毎日バックアップを取るにはテープ媒体の寿命を考えると膨大なテープが必要となり、現実的では無くなりつつあります。
過去に一度、RAID5構成のHDDが2台同時にクラッシュをした際に、バックアップは数ヶ月前のもの…という事態を引き起こしてしまった事もあり、毎日バックアップを取れるような最善の方法を考えていましたが、現在はこの方法に落ち着いています。

バックアップ (dump)

バックアップ元となるサーバは以下のような状態です。
ns# df
Filesystem  1K-blocks    Used   Avail Capacity  Mounted on
/dev/ad0s1a   1012974  153114  778824    16%    /
devfs               1       1       0   100%    /dev
/dev/ad0s1f   2025860    9122 1854570     0%    /home
/dev/ad0s1d   6090094 2420298 3182590    43%    /usr
/dev/ad0s1e   1012974   34662  897276     4%    /var

バックアップデータを保存するデバイスをマウントします

USBメモリーでもSCSIハードディスクでも可能ですが、今回はIDE-HDDをプライマリ-slaveに繋ぎました。
接続したい機器のデバイス名をdmesgで確認します。
ns# dmesg
.....
ad0: 11264MB <VMware Virtual IDE Hard Drive 00000001> at ata0-master UDMA33
ad1: 13312MB <VMware Virtual IDE Hard Drive 00000001> at ata0-slave UDMA33
.....
スクロールが早くて見れない!という場合には
ns# dmesg|more
として、[j]または[↓]で下へスクロール、[k]または[↑]で上へスクロールします。
[q]で表示が終了します。(詳しくはman more

バックアップ先を初期化・マウントします

初めて接続した機器の場合だけ必要な作業です。
2回目以降は不要です。
ns# sysinstall
sysinstallを使うのはとても久しぶりで、昔の記憶に頼って
ns# /stand/sysinstall
としたところ、以下のようなエラーがでました。
/stand/sysinstall: Command not found.

ns# which sysinstall
/usr/sbin/sysinstall
と、最近のFreeBSDではなっているようです。
通常、/usr/sbinへパスが通っているはずなので、sysinstallだけで良いという訳です。

[Configure]を選択して[Enter]を押します。


[Fdisk]を選択して[Enter]を押します。


バックアップ先のデバイスを選択して[Enter]を押します。(今回はad1)


[c]を押して[Enter]を押します。


[165]のままで[Enter]を押します。


[w]を押します。
確認ダイアログが表示されるので[Yes]を選択して[Enter]を押します。


[None]を選択して[Enter]を押します。


[q]を押します。


[Cancel]を選択して[Enter]を押します。


[Label]を選択して[Enter]を押します。


[c]を押して[Enter]を押します。


[FS]が選択されている状態のまま[Enter]を押します。


マウント名を入力します。(今回は/backup)
自動的にディレクトリが作成されて、マウントされます。


[w]を押します。


[Yes]を選択して[Enter]を押します。


[q]を押してメニューに戻り、[Cancel]を押します。


[Exit]または[Cancel]を押します。


[Exit Install]を選択して[Enter]を押します。

dump実行

以下のパーティションをそれぞれバックアップします。
Filesystem  1K-blocks    Used   Avail Capacity  Mounted on
/dev/ad0s1a   1012974  153114  778824    16%    /           <=== /backup/root.dump
devfs               1       1       0   100%    /dev        <=== バックアップ不要
/dev/ad0s1f   2025860    9122 1854570     0%    /home       <=== /backup/home.dump
/dev/ad0s1d   6090094 2420298 3182590    43%    /usr        <=== /backup/usr.dump
/dev/ad0s1e   1012974   34662  897276     4%    /var        <=== /backup/var.dump

ns# dump -0uaLC 32 -f /backup/root.dump / 

オプション説明

0   ダンプレベル0(フルバックアップ)
u   ダンプが成功した後で、 /etc/dumpdates ファイルを更新します。
a   メディアの終了を検知します。(テープじゃないので不要かも…)
L   FreeBSD5.0から搭載されたスナップショット機能を使います。
    この機能を使えば、シングルユーザモードに落とす必要がありません。
C   キャッシュサイズを8~32(単位:MB)の間で指定することにより、性能が劇的に向上します。
    ただし、Lオプションを付けない場合には、Cオプションも外した方が良さそうです。
    (詳細はこちら
f   バックアップ出力先のファイルを指定します。
同様に、他の3つも行います。(容量の多い/usr等は少し時間がかかります)
ns# dump -0uaLC 32 -f /backup/var.dump /var 
ns# dump -0uaLC 32 -f /backup/usr.dump /usr 
ns# dump -0uaLC 32 -f /backup/home.dump /home 
以上でバックアップは完了です。

ns# ls -al /backup
total 2662822
drwxr-xr-x   3 root  wheel            512 Jan 27 17:26 .
drwxr-xr-x  23 root  wheel            512 Jan 27 17:02 ..
drwxrwxr-x   2 root  operator         512 Jan 27 17:02 .snap
-rw-r--r--   1 root  wheel        9646080 Jan 27 17:26 home.dump
-rw-r--r--   1 root  wheel      155197440 Jan 27 17:16 root.dump
-rw-r--r--   1 root  wheel     2524764160 Jan 27 17:36 usr.dump
-rw-r--r--   1 root  wheel       35655680 Jan 27 17:26 var.dump
さらに安全性を高めたい場合には、作成されたdumpファイルは一時保存ファイル扱いとして、別のメディアにコピーすれば良いでしょう。

いざ!という時のために、今のうちにftpサイトから同じバージョンのlivefs.isoをダウンロードしてLiveFS CDを作成しておきましょう。
そして「FreeBSD X.X 緊急用起動ディスク」と書いて、サーバの近く(目に付く場所)に置いておきましょう。

復元(restore)

以下のような構成で検証しました。
  • 新しいサーバ(要は起動ディスクにOSがインストールされていない状態のサーバ)
  • 上記サーバのプライマリ-slaveにバックアップデータが入ったIDE-HDDを接続
起動HDD ・・・・・・・・・・・・・・・・・・・・・・・・ ad0
バックアップデータが保存されているHDD ・・・・・・・・・ ad1
他に必要なもの・・・・・・・・・・・・・・・・・・・・・ LiveFS CD

LiveFS CDで起動

まず、LiveFS CDを入れてサーバを起動します。
(CDから起動しない場合には落ち着いてBIOSを見直してみましょう)

日本語が得意な方は[110 Japan]を選択して[Enter]を押します。
[PageUp]7回、[↓]4回とすると早いです)

[Japanese 106 keymap]が選択されていると思いますので、そのまま[Enter]を押します。


起動HDDの初期化(スライス・パーティション作成)

[Configure]を選択して[Enter]を押します。


[Fdisk]を選択して[Enter]を押します。


起動デバイスを選択して[Enter]を押します。(ここではad0)
決してバックアップデータが保存されているデバイスを指定しないでください。


[c]を押して表示された数字のまま[Enter]を押します。


[165]のままで[Enter]を押します。


[q]を押します。


[Standard]を選択して[Enter]を押します。


[Cancel]を押してメニューに戻ります。


[Label]を選択して[Enter]を押します。


[c]を押します。


ルート( / )パーティションに割り当てる容量を指定します。(ここでは1GB)
旧サーバ(バックアップ元)よりも少ないと問題が起こる可能性があります。ddとは違って多い分には問題ありません。


[FS]が選択されている状態のまま[Enter]を押します。


マウント名を入力して( / )、[Enter]を押します。


同様に、[c]を押してスワップ領域を設定します。
これは、新サーバに搭載されているメモリ容量の2倍程度が良いです。(ここでは1GB)


[Swap]を選択して[Enter]を押します。


同様に、[c]を押して /var に割り当てる容量を指定します。(ここでは1GB)
旧サーバ(バックアップ元)よりも少ないと問題が起こる可能性があります。ddとは違って多い分には問題ありません。


[FS]が選択されている状態のまま[Enter]を押します。


マウント名を入力して( /var )、[Enter]を押します。


同様に、[c]を押して /usr に割り当てる容量を指定します。(ここでは4GB)
旧サーバ(バックアップ元)よりも少ないと問題が起こる可能性があります。ddとは違って多い分には問題ありません。
/home パーティション等を作成しない構成で /usr へ残り全ての容量を割り当てたい場合には、容量を指定しないで表示された数字のまま[Enter]を押します。


[FS]が選択されている状態のまま[Enter]を押します。


マウント名を入力して( /usr )、[Enter]を押します。


同様に、[c]を押して残り容量を全て /home に割り当てます。
表示された数字を変更しないで[Enter]を押します。
/homeパーティションが不要な場合には、この作業は不要です。


[FS]が選択されている状態のまま[Enter]を押します。


マウント名を入力して( /home )、[Enter]を押します。


こんな感じになります。
気に入らなければ、パーティションを選択して[d]を押せば削除できるので、設定しなおしてください。
よければ[w]を押します。


確認ダイアログが表示されるので[Yes]を選択して[Enter]を押します。


[q]を押してメニューに戻り、[Cancel]を選択して[Enter]を押します。


Fixtを起動

[Fixit]を選択して[Enter]を押します。


[CDROM/DVD]を選択して[Enter]を押します。


Fixit が起動します。


デバイスに先ほど作成したパーティション(ad0s1a~ad0s1f)が登録されているか確認します。
Fixit# ls /dev


先ほど作成したパーティションは /mnt以下に配置されています。
Fixit# ls /mnt
.snap/  dev/   home/   usr/   var/

バックアップデータの入ったHDDをマウント

バックアップデータの入ったHDDをマウントするために/mntbkというディレクトリを作成します。
Fixit# mkdir /mntbk
Fixit# _
今回はIDE-HDDをマスター-Slave接続しているため「ad1s1」というデバイス名になっています。
ad1s1cのcについてはこちらを参照してください。
Fixit# mount /dev/ad1s1c /mntbk
Fixit# _

restore開始

ルート( / )をrestore
Fixit# cd /mnt
Fixit# restore -rf /mntbk/root.dump

/varをrestore
Fixit# cd /mnt/var
Fixit# restore -rf /mntbk/var.dump

/usrをrestore
Fixit# cd /mnt/usr
Fixit# restore -rf /mntbk/usr.dump

/homeをrestore
Fixit# cd /mnt/home
Fixit# restore -rf /mntbk/home.dump

多くの場合、容量の大きなusr等をrestore中に以下のようなエラーが表示されます。
Fixit# cd /mnt/usr
Fixit# restore -rf /mntbk/usr.dump

/: write failed, filesystem is full
restore: /tmp//rstdir1233044785: cannot write directory database: No space left on device
Try making space in /tmp/, or set environment variable TMPDIR
to an alternate location with more disk space.
Fixit# _
これは、restore作業に必要な一時ファイルが容量不足のために発生します。
その場合には、以下の方法でTMPディレクトリを変更してから再度restoreをしてください。
Fixit# mkdir /mntbk/tmp
Fixit# TMPDIR=/mntbk/tmp
Fixit# export TMPDIR
/mntbk はバックアップデータが入ったHDDの事です。
ここにTMPディレクトリを作成して、そちらを利用するという意味です。
この作業後に、何らかの必要性にせまられて/mntbk/tmpディレクトリを削除した場合、ほぼ全てのコマンドが実行できなくなってしまいます。
その場合には、以下のようにしてTMPディレクトリを元に戻します。
Fixit# TMPDIR=/tmp
Fixit# export TMPDIR

fstabの書き換え

書き換え作業が不要の場合でも、必ず確認をしましょう。
パーティションの作成順序の違いにより、起動しないという事態に陥り、2日間もはまってしまいました…

現在のマウント状況を確認します。
Fixit# df
Filesystem      1K-blocks    Used   Avail Capacity  Mounted on
/dev/md0             4175    2449    1726    59%    /
devfs                   1       1       0   100%    /dev
/dev/ad0s1a       1012974  153114  778524    16%    /mnt
devfs                   1       1       0   100%    /mnt/dev
/mnt/dev/ad0s1f   8122034    9426 7462846     0%    /mnt/home
/mnt/dev/ad0s1e   4058062 2434140 1299278    65%    /mnt/usr
/mnt/dev/ad0s1d   1012974   34750  897180     4%    /mnt/var
/dev/acd0          226150  226150       0   100%    /dist
/dev/ad1s1c      13198878 2662822 9480146    22%    /mntbk

続いてfstabを開きます。
Fixit# vi /mnt/etc/fstab
# Device          Mountpoint         FStype   Options         Dump     Pass#
/dev/ad0s1b       none               swap     sw              0        0
/dev/ad0s1a       /                  ufs      rw              1        1
/dev/ad0s1f       /home              ufs      rw              2        2
/dev/ad0s1d       /usr               ufs      rw              2        2
/dev/ad0s1e       /var               ufs      rw              2        2
/dev/acd0         /cdrom             cd9660   ro,noauto       0        0

下線部分の違いにお気付きでしょうか。
デバイス名「ad0s1e」と「ad0s1d」のマウント名が逆になってしまっています。
このような場合には、「/mnt/etc/fstab」をエディタで開き、修正・上書き保存してください。

以上で完了です!
LiveFS CDを抜き、再起動すれば立ち上がります。

後処理

restoreを実行すると、各パーティションのカレントディレクトリにrestoresymtableというファイルが作成されます。
これは増分バックアップを復元する際に必要になるものですので、restore作業が完了したら削除しておきましょう。
ns# ls /
.cshrc        boot          entropy          mnt             sys
.profile      cdrom         etc              proc            tmp
.snap         compat        home             rescue          usr
COPYRIGHT     dev           lib              restoresymtable var
backup        disk2         libexec          root
bin           dist          media            sbin

ns# rm /restoresymtable
ns# rm /var/restoresymtable
ns# rm /usr/restoresymtable
ns# rm /home/restoresymtable

こんな時は・・・

復元したサーバを起動しようとすると以下のメッセージで長時間止まる。
Configuring syscons: keymap blanktime
「Configuring syscons: keymap blanktime」という表示でタイムアウト待ちを参照してください。

以下のメッセージが出てパーティション設定ができない
Unable to find device node for /dev/ad0s1b in /dev!
The creation of filesystems will be aborted.
Fdiskでスライス作成後に[w]を押していませんか?
Fdiskメニューでは[w]は押さずに、[q]だけを押し、Label設定が終わってから、最後にLabelメニュー内で[w]を押します。

sysinstallでFdisk・Labelが失敗する
私も検証中に何度も経験しました。
sysinstallでFdisk・Labelが失敗するをご参照ください。

ネットワークで接続された別のサーバにリモートバックアップを行いたい
昔書いた記事ですが、「テープドライブへのバックアップ&リストア」こちらを参考にしてみてください。

「Configuring syscons: keymap blanktime」という表示でタイムアウト待ち

Posted by: admin at 1 月 27th, 2009

Configuring syscons: keymap blanktime
という表示が出て、長い時間止まってしまうのは、次に起動されるsendmailが正常に起動できずにタイムアウトを待っているのが原因です。
DNS等、ネットワーク周辺を見直しましょう。

私の場合は、dump&restoreのテストをVMware上で行っている最中にこの問題に遭遇し、ネットワークアダプタ設定を間違えていたのが原因でしたが…

Filed under 一般設定 |

1 Comment »

パーティション(スライス)の最後につくアルファベットについて

Posted by: admin at 1 月 25th, 2009

a —- ルートパーティション( / )です。起動ディスクのみに作成されます。
b —- スワップパーティションです。
c —- ディスク全体
d —- 汎用
e —- 汎用
f —- 汎用
g —- 汎用
h —- 汎用

具体的には、一般的なIDEハードディスクをプライマリ・マスタに繋いだのであれば、以下のようになります。
ad0s1a — /
ad0s1b — スワップ
ad0s1d — /var
ad0s1e — /usr
ad0s1f — /home

inetdを有効にする

Posted by: admin at 11 月 8th, 2008

FreeBSD 5.0以降のバージョンでは、デフォルトでinetdが無効になっています。
以下の方法で、有効になります。
/etc/rc.conf
inetd_enable="YES"

必要に応じて/etc/inetd.confを書き替えてから再起動します。
# shutdown -r now

sshdの設定(DSA認証)

Posted by: admin at 11 月 8th, 2008

FreeBSDはデフォルトでsshdが起動するようになっています。
# which sshd
/usr/sbin/sshd
ですので、あとは/etc/ssh/sshd_configAllowUsers USERNAMEとするだけですが、ブルートフォースアタック(総当たり攻撃)対策としてDSA認証にしておくべきです。
アクセスログを見ればわかりますが、どこぞの国のクラッカーorボットか分りませんが、非常に多くのアタック痕跡が見つかるはずです。

設定ファイルの書き換え

/etc/ssh/sshd_config
Protocol 2
SSH2 プロトコルの使用
PermitRootLogin no
root でのログインの不可
PubkeyAuthentication yes
DSA 認証の使用
PasswordAuthentication no
PermitEmptyPasswords no
パスワード認証の不可とパスワード無しの不可
ChallengeResponseAuthentication no
これをnoにしておかないと、パスワード認証が行われてしまう。

書き換えが終わったらsshdを再起動します。
# /etc/rc.d/sshd restart
または、以前のバージョンではエラーになる場合もあるので、その場合は以下の方法が確実です。
# ps aux | grep sshd
# kill -HUP PID

秘密鍵(id_dsa)と公開鍵(id_dsa.pub)を生成

sshアクセスを有効にしたいユーザでログインします。(root以外)
下記コマンドを入力します。
$ ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/home/USERNAME/.ssh/id_dsa):   [Enter]
Created directory '/home/USERNAME/.ssh'.
Enter passphrase (empty for no passphrase):                     [PASSWORD][Enter]
Enter same passphrase again:                                    [Re PASSWORD][Enter]
Your identification has been saved in /home/USERNAME/.ssh/id_dsa.
Your public key has been saved in /home/USERNAME/.ssh/id_dsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx USERNAME@HOST.DOMAIN.NAME

公開鍵(id_dsa.pub)をリネームする

$ cd /home/USERNAME/.ssh
$ mv id_dsa.pub authorized_keys
$ chmod 0600 authorized_keys

秘密鍵(id_dsa)をクライアントマシンへ移動する

ssh接続をしたいクライアントマシンに/home/USERNAME/.ssh/id_dsaを移動します。セキュリティを考慮する場合、FTP等では無くUSBメモリーやフロッピーディスクでおこなうと良いですが、使用したメディアの処理にはご注意を。
id_dsaファイルの保存先は、クライアントマシンのターミナルソフトウェアによって異なりますので、そちらのマニュアルを参照してください。
個人的にはオープンソースのTera Termがお勧めです。

Apacheの自動起動

Posted by: admin at 11 月 8th, 2008

サーバ起動・再起動と同時にApacheを自動的に起動させる設定です。
以前設定したサーバでは以下のようにしていました。
# cd /usr/local/etc/rc.d
# cp /usr/local/apache2/bin/apachectl /usr/local/etc/rc.d/apache.sh
# chmod 0755 /usr/local/etc/rc.d/apache.sh
ですが、apachectl startで起動するので最近では以下のようにしています。
/etc/rc.local
# Start Apache
/usr/local/apache2/bin/apachectl start
apachectl はバージョンやインストール方法によってパスが異なりますので分らない場合には以下の方法で調べます。
# which apachectl

METAタグでcharsetを指定しても文字化けしてしまう

Posted by: admin at 11 月 5th, 2008

少し前のバージョンのApacheではデフォルトで AddDefaultCharsetディレクティブに「ISO-8859-1(ラテン系欧州語、フランス語、ドイツ語)」が指定されています。
Apache2.2以降は、AddDefaultCharsetディレクティブのデフォルト設定はされていません。
httpd.conf の修正を行います。
httpd.conf は通常、下記の場所にあります。
/usr/local/apache2/conf
または
/usr/local/etc/apache2

httpd.conf
AddDefaultCharset off
ただし、この場合は全てのページに下記のようなcharsetを指定しておく必要があります。
<META http-equiv=Content-Type content="text/html; charset=Shift_JIS">

全てのコンテンツが同じ文字コード(charset)の場合には、下記のような指定もできます。
httpd.conf
AddDefaultCharset EUC-JP

修正が終わりましたら、Apacheを再起動します。
# /usr/local/apache2/bin/apachectl restart
apachectl はバージョンやインストール方法によってパスが異なりますので分らない場合には以下の方法で調べます。
# which apachectl

ディレクトリの内容を表示させない

Posted by: admin at 11 月 5th, 2008

ブラウザのアドレス欄にディレクトリ名までを入力した場合、index.html / index.php / index.cgi 等が見つからない場合に、ファイル一覧が表示されてしまうのを防ぐ方法。
Google等で「index of」で検索をすれば、どのようなものかお分りになると思います。
httpd.conf の修正を行います。
httpd.conf は通常、下記の場所にあります。
/usr/local/apache2/conf
または
/usr/local/etc/apache2

httpd.conf
Options Indexes FollowSymLinks
↓ Indexes を削除
Options FollowSymLinks

修正が終わりましたら、Apacheを再起動します。
# /usr/local/apache2/bin/apachectl restart
apachectl はバージョンやインストール方法によってパスが異なりますので分らない場合には以下の方法で調べます。
# which apachectl