2008年8月31日日曜日

EeeBOX

EeePC のデスクトップ版がついに発売ですね。結構スタイリッシュです。

自宅サーバには最適のような気がします。ここまで格好は気にしないので、もっと安くしてもらえると・・・


 ASUS 【予約受付中】【9月13日発売】 モニタレスデスクトップパソコン EEEBOXB202-W EEEBOXB202W

2008年8月22日金曜日

Faith -est 100 (Intel Atom)

ATOM 搭載デスクトップの登場です。

-est 100 - Faith Internet shop

-est 100 ですが、Intel Atom 搭載で、自宅サーバとして使用する場合、消費電力の低減が期待できるかもしれませんね。

Intel Atom も、CPU は省電力ですが、その他が揃ってないとの情報もありますし、果たして実力の程は・・・

2008年8月18日月曜日

RARファイルの圧縮・解凍

RAR というファイルがありますが、作成するには WinRAR が必要です。

圧縮ファイルは、*.rar *.r01 *.r02 ・・・という分割形式で保存されます。WinRAR でないと作成できないようですし、おまけにシェアウェアです。圧縮においては、それほどメリットがあるのか・・・です。

ただし、解凍については、世の中には RAR 形式で圧縮されたファイルが提供されている場合があります。当然、WinRAR でも解凍できるのですが、他のツールでも解凍できます。Lhaplus でも可能ですし、Linux では、unrar といったツールもあります。

2008年8月15日金曜日

PuTTY No.002(Pageant)

PuTTY を使っているのであれば、Pageant を使わない手はありません。何をしてくれるツールかというと、鍵認証のパスワード入力を行ってくれるエージェントです。

使い方ですが、PuTTY をインストールすると一緒にインストールされるので、それを前提に説明します。

  1. Pageant を起動します。
    起動すると、タスクトレイに、ターミナルが帽子をかぶったアイコンが表示されます。
    やっぱり、‘エージェント’なので、それ風にしてあるということでしょうか・・・
    また、常に使うのであれば、[スタートアップ]に放り込んでおくといいでしょう。
  2. 鍵認証で使う鍵を Pagent へ登録します。
    この作業は、起動毎に毎回必要です。鍵が多いと面倒ですね。
    • タスクトレイの Pagent を右クリックし、[Add Key] を選択します。
    • 鍵ファイルを要求されるので、拡張子が ppk の PuTTY Private Key Files形式のファイルを選択します。(例:id_rsa.ppk)
    • [Pagent: Enter Passphrase] 画面で、選択した ppk ファイルのパスフレーズ(パスワード)を求められるので、パスワードを入力し、[OK] をクリックします。
    これで、とりあえずの準備は完了です。
  3. PuTTY でセッションを開くと、Pagent に鍵ファイルが登録済みであれば、パスワード(パスフレーズ)を入力する必要はありません。
これで、パスワード入力が軽減されました。Pagent は再起動毎に、鍵ファイルを選んで、パスワードを入力して、準備する必要があります。面倒なのですが、これが、一度登録されたら恒久的に使われるようでは、逆にセキュリティが低下してしまうので、現状の方法がいいと思います。

おまけといってはなんですが、Pagent への鍵の登録は、上記の方法でも可能えすが、PuTTY の鍵ファイル( .PPK )をダブルクリックしても、[Pagent: Enter Passphrase] 画面が表示され、パスフレーズを入力できます。(わざわざ、Pagent を起動してメニューから [Add-Key] を選択する必要はありません。)まあ、鍵ファイルが奥深いところにあったりすると、Pagent を起動してから鍵ファイルを登録したほうが早いような気もしますが。

また、これもおまけですが、Pagent 起動後は、右クリックで出てくるメニューで、Saved Session を開くと設定保存済みのセッション情報を選択し、起動できます。

PuTTY もパーフェクトというわけではないですが、環境を整えていくと結構使えます。PuTTY 自体は軽くて便利です。また、Tera Term 等に比べても安定しているように感じます。

更に余談ですが、‘ぷてぃ’と読むのではなく、‘ぱてぃ’と読むようですね。

PuTTY - Wikipedia
> PuTTY(パティ)は、Simon Tathamが開発・公開しているターミナル
>エミュレータである。 MIT Licenseのオープンソースソフトウェアである。

2008年8月8日金曜日

自宅サーバ構築 No.011(kernel update & grub)

yum の設定が終わっているので、頻繁に‘yum update’として、インストール済のパッケージをアップデートするわけですが、たまに kernel のアップデートが発生します。

kernel のアップデートは結構頻度が高いです。重要なコンポーネントですから当然と言えば当然でしょう。一般的に以下の様に grub の設定も同時に変更され、過去の kernel とアップデートされた kernel を選んで起動できるようになっています。(当然、標準は新しい kernel です。)

# pwd
/boot/grub

# cat menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda2
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.1.10.el5)
      root (hd0,0)
      kernel /vmlinuz-2.6.18-92.1.10.el5 ro root=LABEL=/
      initrd /initrd-2.6.18-92.1.10.el5.img
title CentOS (2.6.18-92.1.6.el5)
      root (hd0,0)
      kernel /vmlinuz-2.6.18-92.1.6.el5 ro root=LABEL=/
      initrd /initrd-2.6.18-92.1.6.el5.img
title CentOS (2.6.18-92.el5)
      root (hd0,0)
      kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/
      initrd /initrd-2.6.18-92.el5.img

2008年8月3日日曜日

自宅サーバ構築 No.010(TCP Wrapper)

何も設定されていない TCP Wrapper ですが、まずはお決まりの設定だけ実施しておきます。hosts.deny で ALL:ALL を指定しておきます。

ここで、hosts.allow に何も指定していないと、すべて拒否することになってしまいます。ですので、ssh での接続だけは許す為に、ローカルネットワークからの ssh だけ許可するために、hosts.allow に ssh:10.0.0. とローカルネットワークアドレスを指定ておきます。

#/etc/hosts.allow
sshd: 10.0.0.

#/etc/hosts.deny
ALL:ALL
設定は、ファイル編集後、即時反映されます。ゆるやかに設定するのであれば、許可(hosts.allow)を設定し、拒否(hosts.deny)を設定するという順で設定したほうがいいでしょう。

誤って、hosts.allow の記述を削除しただけで、sshd:10.0.0. と追加し忘れると、ssh による接続すらできなくなるので、hosts.allow / hosts.deny を編集する場合、ssh セッションを残したままで、狙い通りの設定になっているか確認したほうがいいでしょう。

xinetd は、セッション開設時のチェックになるので、接続済のセッションは影響されません。

(もう少し設定を続けます・・・)

2008年8月1日金曜日

Firefox No.010(FoxSaver)

一見、何の意味もなさそうな Add-ons ですが、名前の通り、Firefox で使う Screen Saver です。しかも、Firefox のブラウジング画面を隠してくれる機能で、はっきり言って、スクリーンセーバー(画面を守る)ではありません。

FoxSaver :: Firefox Add-ons

あえていうと、自身のプライバシーを守ってくれるでしょうか。閲覧していたページを隠してくれますから・・・

標準で付いている写真群もなかなか面白いものが多く、特に画像等を準備しなくても結構楽しめます。

一つだけ戸惑ったことがあります。インストール後、Firefox を使っていると、突然 Google が表示されるようになったことです。丁度、FoxSaver インストールと同じ時期に Google ツールバー(Toolbar)の設定を変更したので、それが影響していると思いましたが、全く関係ありませんでした。

結局、以下の様に、[フォト選択]タブで、‘ウェブページURL’をチェックして、Google の URL が指定してあったためでした。FoxSaver が一定時間が経過するとウェブページ(WebPage)を表示していたのです。なるほどね・・・



この設定に気付くのに3日程掛ってしまいました。

2008年7月24日木曜日

自宅サーバ構築 No.009(パケットフィルタ )

順番が逆ですが、公開する前にいわゆるパケットフィルタ系の設定をしておく必要があります。基本は TCP Wrapper と xinetd による対策と、iptables(Netfilter) による対策です。

それぞれの関係ですが、TCP Wrapper で判定された通信が、xinetd に渡されます。また、TCP Wrapper に渡る前に、iptables で判定されるようになっています。

外から入ってくるパケットは、iptables → TCP Wrapper → xinetd というルートで目的のアプリケーション(ssh/telnet/ftp 等)と通信します。

初期状態で、CentOS 5.2 の iptables は以下の状態です。

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain RH-Firewall-1-INPUT (2 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere icmp any
ACCEPT esp -- anywhere anywhere
ACCEPT ah -- anywhere anywhere
ACCEPT udp -- anywhere 224.0.0.251 udp dpt:mdns
ACCEPT udp -- anywhere anywhere udp dpt:ipp
ACCEPT tcp -- anywhere anywhere tcp dpt:ipp
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
REJECT は、reject-with icmp-host-prohibited の1行だけで、適切なエラーだけです。また、RH-Firewall-1-INPUT は、INPUT と FORWARD で使用されています。極々最低限の定義で、ほとんど許した後に、それ以外を拒否としているルールなので、iptables を適用していない状態と、ほとんど変わりません。

TCP Wrapper の初期設定は以下の状態です。
# cat /etc/hosts.allow
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#

# cat /etc/hosts.deny
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!

何も定義されていません。

iptables や TCP Wrapper は、例を元に、だいたいで設定をすることが多いのですが、ちょっと時間を掛けて、設定をじっくりやります。

2008年7月21日月曜日

自宅サーバ構築 No.008(ClamAVインストール)

Linux でも、アンチウイルスソフトは必要ということで、ClamAV(Clam AntiVirus) をインストールします。

既に、yum のリポジトリを追加してあるので、追加したリポジトリからインストールします。今回は DAG(RPMForge) を使用します。DAG 以外のリポジでは、clamav という名前で提供されているのですが、DAG では、clamd という名前で、複数パッケージがセットになっています。

いろんなサイトでも、clamd でのインストール例が掲載されていますので、そちらに合せてインストールします。

  1. インストール
    # yum --enablerepo=rpmforge install clamd
    * clamd/clamav/clamav-db がインストールされます。
  2. ClamAV起動
    # service clamd start
    Starting Clam AntiVirus Daemon: [ OK ]
    ちなみに、chkconfig はインストール直後で、以下の設定(on)になっています。
    # chkconfig --list clamd
    clamd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
  3. ウイルスパターンアップデート
    # freshclam
  4. その他

2008年7月20日日曜日

自宅サーバ構築 No.007(yumリポジトリ設定)

yum の初期設定では、当たり前ですが、標準のリポジトリしか設定されていません。なので、いくつかのリポジトリは予め追加しておきます。

参考:Computer - CentOSのリポジトリを増やす

EPEL - FedoraProject
* How can I install the packages from the EPEL software repository?

# su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm'
:
# su -c 'yum -y install foo'

以下の通り、リポジトリが追加されます。
# ls -l epel*
-rw-r--r-- 1 root root 1054 4月 26 03:08 epel-testing.repo
-rw-r--r-- 1 root root 954 4月 26 03:08 epel.repo
DAG: RPM packages for Red Hat, RHEL, CentOS and Fedora
# rpm -Uvh http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm --import http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

上記のようにしてもエラーが発生してしまいます。HTTP で失敗しているようです。wget してからrpm コマンドを実行します。

# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
# rpm --import RPM-GPG-KEY.dag.txt

以下の通り、リポジトリが追加されます。
# ls -l *rpmforge*
-rw-r--r-- 1 root root 684 3月 9 2007 mirrors-rpmforge
-rw-r--r-- 1 root root 428 3月 9 2007 rpmforge.repo

一般的に DAG/RPMforge は、disable(enable=0)にしておくようなので、変更します。

# vi rpmforge.repo
:
#enabled = 1
enabled = 0
:

Safari for Windows

Safari って、Windowsでは、まだ第三勢力にも満たないと思うのですが、iTune をインストールした際に、同時にインストールされた Apple Software Update によって、Safari のインストールが促されたので、インストールしてみました。

アップル - Safari - ダウンロード

そもそもインストールしていないソフトウェアのアナウンスをするのはおかしいと思うのですが・・・

まあ、それはさておき、「それなりに使えます。」というのが感想です。

とりあえず、プロキシを頻繁に変更する使い方をする私にとって、IE のプロキシ設定をそのまま引き継いでいるのは、いい仕様です。これで、使用するための敷居が低くなったので、ちょくちょく使ってみようと思います。

ただ、Apple のコマーシャルページは、かなりいい加減です。ある意味、これが Apple の素晴らしさなのかも・・・

  1. 圧倒的なパフォーマンス
    SafariはMacとWindows PCで動作する最速Webブラウザです
    最速は言いすぎでしょう。

2008年7月19日土曜日

自宅サーバ構築 No.006(必要なツールの導入)

準備作業が多いですが、必要なツールのインストールはやってしまいます。

  1. screen
    • インストール可能か確認
      # yum info | grep -i ^name | grep -i screen
      Name : gnome-screensaver
      Name : screen
      Name : xfce4-screenshooter-plugin
      Name : xscreensaver
      Name : xscreensaver-base
      Name : xscreensaver-extras
      Name : xscreensaver-extras-gss
      Name : xscreensaver-gl-base
      Name : xscreensaver-gl-extras
      Name : xscreensaver-gl-extras-gss
    • インストール
      # yum install screen
  2. compress
    # yum install ncompress
  3. ntp
    # yum install ntp

    # vi /etc/ntp.conf
    :
    #server 0.centos.pool.ntp.org
    #server 1.centos.pool.ntp.org
    #server 2.centos.pool.ntp.org
    ntp.jst.mfeed.ad.jp
    :

    # ntpdate ntp.jst.mfeed.ad.jp

    # chkconfig --list ntpd
    ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
    # chkconfig ntpd on
    # chkconfig --list ntpd
    ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    # /sbin/service ntpd start
    ntpd を起動中: [ OK ]
  4. その他

自宅サーバ構築 No.005(SELinux無効)

SELinuxは、Red Hat Enterprise Linux、Fedora、CentOS 等では、標準でインストールされます。ファイルシステムもそれ用になっています。本来なら、インストールするかどうかを選択できるといいのですが、インストールされてしまいます。

でも、使いたくありません。随分こなれてきましたが、使わないといけない必然性はありません。

とりあえず、以下の手順で、無効にしておきます。

  1. SELinux の状態を確認
    # cat /etc/sysconfig/selinux | grep ^SELINUX=
    SELINUX=enforcing ← enforcing であれば有効状態です。
    # getenforce ← コマンドでも確認可能です。
    Enforcing
  2. /etc/sysconfig/selinux を編集
    # vi /etc/sysconfig/selinux
    :
    SELINUX=disabled ← enforcing を disabled に変更
    :
    以下の方法で、
    # sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
  3. システム再起動
    # shutdown -r now
  4. SELinux の状態を確認(システム再起動後)
    # cat /etc/sysconfig/selinux | grep ^SELINUX=
    SELINUX=disabled ← disabled であれば無効状態です。
    # getenforce ← コマンドでも確認可能です。
    Disabled

自宅サーバ構築 No.004(yum設定)

とりあえず一休みというわけではないのですが、最少構成のため、これから必要なパッケージは全てインストールしていくことになります。ということで、yum の設定を済ませておきます。

  1. yum の キャッシュディレクトリを掃除
    # yum clean all
    Cleaning up Everything
  2. yum-fastestmirror をインストール
    fastestmirror で最もアクセスしやすいミラーサイトを自動選択してくれるようになります。
    # yum install yum-fastestmirror
  3. アップデート可能なパッケージをすべて更新
    最少構成でも結構時間が掛かります。
    # yum update
まずは、このくらいでいいでしょう。標準のリポジトリにないパッケージをインストールしたりする場合、リポジトリを変更したりする必要がありますが、それは後程ということで。

2008年7月18日金曜日

自宅サーバ構築 No.003(Wheel設定)

SSHでのログインを、root ログイン禁止、パスワード認証禁止、公開鍵認証のみ許可設定しましたが、もうひと工夫必要です。

一般ユーザで、root になれるユーザを制限することで、悪意をもった一般ユーザが root に昇格することを避けるため、指定したユーザのみ root になれるようにします。一般的にいう Wheel 設定です。

  1. wheel グループへ一般ユーザ(hoge)を追加
    # cat /etc/group | grep wheel
    wheel:x:10:root
    # usermod -G wheel hoge
    # cat /etc/group | grep wheel
    wheel:x:10:root,hoge
  2. PAM設定
    /lib/security/pam_wheel.so が存在することを確認します。
    存在しない場合、インストールが必要です。
    # vi /etc/pam.d/su
    :
    #auth required pam_wheel.so use_uid
    auth required pam_wheel.so use_uid ← コメントを外す
    :
    特にシステム再起動などを行わなくても、設定は反映されます。
これで、特定のユーザ以外は root になれません。Linux は標準状態で多くのユーザが追加されており、パスワード設定などされていないので、原則使えないので問題は少ないのですが、それらのユーザがクラックされて、そこから root に昇格なんてことは最小限にできます。

弱点と言えば、/etc/group を眺めると root になれるユーザがわかってしまうということでしょうか。

2008年7月17日木曜日

TeraTerm No.001(自動的に終了しない)

TeraTerm の初期設定は、セッションが切断されると TeraTerm のウインドウが終了してしまいます。ログイン時のちょっとした間違い(IPアドレス、パスワードなど・・・)でも終了されてしまうのですが、再度、ログインしたい場合は、非常に不便です。その場合、以下の設定をしておくことで、セッション切断時にウインドウを終了しないようになります。

  • TeraTerm で、[設定]-[TCP/IP]を選択します。
  • [Tera Term: TCP/IP設定]画面で、‘自動的にウィンドウを閉じる’のチェックを外し、[OK]をクリックします。
  • 設定した内容を次回以降も継続して使いたい場合は、[設定]-[設定の保存]を選択し、設定を保存しておきます。(通常は TERATERM.INI を上書きします。)

2008年7月16日水曜日

自宅サーバ構築 No.002(SSH設定)

とりあえずCentOSをインストールし終わりましたが、当然、このままでは公開できません。まずは、いくつかセキュリティ面で設定する必要があります。

まずは、SSHに必要な設定を行います。

  • rootでのログインを禁止する
  • パスワード認証を禁止する
  • 公開鍵認証のみ許可する
まず、インストール直後は、SSHがインストールされており、リモートからrootでログイン可能な状態なので、リモートからrootでログインします。

※以下、PuTTYで操作しています。

以下の通り、最初は警告が表示されますが、そのまま[はい]をクリックします。


  1. root 以外のユーザーを作成
    rootでのログインを禁止するわけですから、root以外のユーザーを作成する必要があります。
    # useradd -d /home/hoge -c HOGE -u 1001 hoge
    # passwd hoge
    Changing password for user hoge.
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.
  2. root でのログインを禁止
    以下の設定を実施し、rootでログインできないこと、作成したユーザーでログインできることを確認します。
    # vi /etc/ssh/sshd_config
    :
    #PermitRootLogin yes ← 標準はデフォルトがyes
    PermitRootLogin no
    :

    # service sshd restart ← 設定反映
    sshd を停止中: [ OK ]
    sshd を起動中: [ OK ]
  3. 公開鍵作成
    パスワード認証を禁止する前に公開鍵認証を設定します。公開鍵認証前にパスワード認証を禁止するとログインできなくなっていまいますから・・・ :-)
    $ ssh-keygen -b 2048 -t rsa -C hogehoge
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/hoge/.ssh/id_rsa):
    Created directory '/home/hoge/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/hoge/.ssh/id_rsa.
    Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.
    The key fingerprint is:
    xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx hogehoge
  4. 公開鍵を authorized_keys へ追加
    $ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
    $ chmod 600 authorized_keys ← パーミッションを600に変更
    $ ls -l authorized_keys
    -rw------- 1 centuser centuser 398 7月 17 09:20 authorized_keys
    $ rm id_rsa.pub ← 不要なので削除
  5. id_rsa を保存
    id_rsa をターミナルソフトを起動するクライアントへ保存します。これがなくなってしまうと公開鍵の作成からやり直しになるので要注意です。
  6. id_rsa の変換(PuTTY の場合)
    TeraTerm 等では、id_rsa がそのまま使えるので、変換は特に必要ありません。PuTTY の場合は必要になるので、以下の通り変換しておきます。
    • PuTTYgen を起動します。
    • [PuTTY Key Generator]画面で、[Conversions]-[Import key]で保存した id_rsa を開きます。
    • [PuTTYgen: Enter Passphrase for key]画面で、パスフレーズを入力します。
    • [PuTTY Key Generator]画面で、[Save private key]をクリックし、id_rsa.ppk を作成します。
  7. ターミナルソフトで公開鍵認証で接続
    ターミナルソフトで公開鍵認証で接続できることを確認します。
  8. パスワード認証を禁止
    公開鍵認証での接続が成功することを確認して、パスワード認証を禁止します。
    設定後、パスワード認証できないことを確認します。
    # vi /etc/ssh/sshd_config
    :
    #PasswordAuthentication yes ← 初期設定では yes なのでコメントアウト
    PasswordAuthentication no
    :

    # service sshd restart ← 設定反映
    sshd を停止中: [ OK ]
    sshd を起動中: [ OK ]
これで、リモートからは、root 以外のユーザーで、公開鍵認証の設定可能なターミナルからのみログインできるようになりました。

ひとつ気になるのは、PuTTY でパスワード認証をチャレンジすると
No supported authentication methods available
と表示されて、拒否されます。動作は満たしていますが、パスワード認証を禁止しているということがわかってしまいます。これはできれば隠匿したいですね。パスワード認証時のエラーを返すほうがいいと思いますが、そういう動作をさせると問題あるんでしょうかね。

PuTTY No.001(できるだけマウスを使わない)

PuTTYを使っていると不便なことがいくつかあります。ターミナルソフトとしての基本はできているのですが、シンプル故に何とやらです。

標準の設定のままではマウスを多用しなければいけません。なので、以下が、できるだけマウスを使わないようにするための設定です。

  • システムメニューの表示
    システムメニューは頻繁じゃないですが、‘新しいセッション’、‘セッションの複製’、‘フルスクリーン’そして、‘設定の変更’と使うメニューは多いです。しかし、このシステムメニューは、ウインドウの左上をマウスでクリックしなければなりません。そこで、システムメニューを[Alt]+[Space]で表示できるようにします。
    1. PuTTY起動時に表示される[PuTTY Configuration]画面で設定します。
    2. [カテゴリ]-[ウインドウ]-[動作]で、以下の項目をチェックします。
      ■ALT-Space でシステムメニューを表示する
      ■Alt-Enter でフルスクリーンにする
  • ペースト(貼り付け)
    この手のターミナルソフトは、マウスの右クリックで、クリップボードの内容を貼り付けることができます。そして、同様の操作が[Alt]+[v]等のショートカットでペーストできますが、PuTTYでは、それができません。かつ、いわゆるメニューがないので、ショートカットが明示されていないので、分かりづらいのですが、[Shift]+[Ins]でペースト可能です。一応、ヘルプにも以下の通り記述があります。
    A.6.6 How do I copy and paste between PuTTY and other Windows applications?

    Copy and paste works similarly to the X Window System. You use the left mouse button to select text in the PuTTY window. The act of selection automatically copies the text to the clipboard: there is no need to press Ctrl-Ins or Ctrl-C or anything else. In fact, pressing Ctrl-C will send a Ctrl-C character to the other end of your connection (just like it does the rest of the time), which may have unpleasant effects. The only thing you need to do, to copy text to the clipboard, is to select it.

    To paste the clipboard contents into a PuTTY window, by default you click the right mouse button. If you have a three-button mouse and are used to X applications, you can configure pasting to be done by the middle button instead, but this is not the default because most Windows users don't have a middle button at all.

    You can also paste by pressing Shift-Ins.

2008年7月15日火曜日

自宅サーバ構築 No.001(CentOSインストール)

特に何をするわけでもないのですが、自宅サーバを構築してみたいと思います。

あまったPCが1台あるので、構築してみます。電気代が思った以上に掛かるようなら運用しないかもしれません。その程度の意気込みです。 :-)

サーバ用途なので、まずは最少インストールです。以下のページを参考にしました。

CentOS5 インストール方法

以下、netinstall版のCDを使用しています。

  1. boot: で [Enter] を押します。
  2. [Choose a Language]画面で、‘Japanese’を選択し、[OK]を押します。
  3. [Language Unavailable]画面で、[OK]を押します。
  4. [Keyboard Type]画面で、‘jp106’を選択し、[OK]を押します。
  5. [Installation Method]画面で、‘FTP’を選択し、[OK]を押します。
  6. [Networking Device]画面で、使用するNICを選択し、[OK]を押します。
  7. [Configure TCP/IP]画面で、以下の通り設定し、[OK]を押します。
    [*] Enable IPv4 support
    (*) Manual configuration
  8. [Manual TCP/IP Configuration]画面で、IPv4 address、Gateway、Name Serverを設定し、[OK]を押します。
  9. [FTP Setup]画面で、以下の通り設定し、[OK]を押します。
    FTP site name: ftp.riken.jp
    CentOS directory: /Linux/centos/5/os/i386
  10. [次]をクリックします。
  11. パーティション設定で、‘カスタムレイアウトを作成します。’を選択し、[次]をクリックします。
  12. 適当にパーティションを設定し、[次]をクリックします。
  13. ブートローダ設定で、‘GRUBブートローダは、/dev/hda 上にインストールされます。’を選択し、[次]をクリックします。
  14. ネットワークの設定で、FTPサイトを指定した時の設定が引き継がれているので、ホスト名以外は、そのままで、[次]をクリックします。ホスト名は、適当に設定します。
  15. 時刻設定で、‘アジア/東京’を選択し、‘システムクロックでUTCを使用’をチェックし、[次]をクリックします。
  16. パスワード設定で、適当なパスワードを指定し、[次]をクリックします。
  17. パッケージ選択画面で、すべてのチェックを外し、‘今すぐカスタマイズする’を選択し、[次]をクリックします。
  18. パッケージ選択画面で、以下の通りパッケージを選択し、[次]をクリックします。
    • アプリケーション
      ■エディタ
    • 開発
      ■開発ツール
    • ベースシステム
      ■ベース (firstboot-tuiを明示的に外す)
      ※firstboot-tuiは、最初にCentOSのセットアップをするためのパッケージ
    • 言語
      ■イギリス語のサポート
      ■日本語のサポート
  19. [次]をクリックします。
  20. [再起動]をクリックします。
インストールとしては、以上です。パッケージの内容等は精査できていないので、インストール後の設定で、追加設定をしながら確認します。

2008年7月13日日曜日

Windows仮想デスクトップ No.002(VirtuaWin)

VirtuaWinのオプション設定ですが、ホットキーの設定だけは、標準では足りないので、追加で設定が必要だと思います。

以下、設定例です。


Move to next
Move to previous
Move to desktop 1
Move to desktop 2
Move to desktop 3
Move to desktop 4

上の4つを追加しています。標準だと、ワークスペースの切り替えが、Left、Right、Up、Downしかりませんが、ここが足りません。(desktop # の指定は、ワークスペース分必要です。)

VirtuaWin - Virtual Desktops for Windows

Windows仮想デスクトップ No.001(VirtuaWin)

Windowsのデスクトップは使えば使う程、狭く使いにくくなるわけですが、そういった場合、仮想デスクトップを使うとデスクトップの整頓がしやすくなります。そこで、おすすめは、VirtuaWinです。

VirtuaWin - Virtual Desktops for Windows

軽いですし、動作も問題ないです。プラグインも多数あるようです。

とりあえず、以下の設定はしておいたほうがいいと思います。

  • [General]-[Enable desktop wrapping] Check
    この設定をしないと、ホットキーによる切り替えがサイクリックに行われないので不便です。
    この設定をしておくと、左端まで切り替えて、更に左へ切り替えると右端に戻るようになります。

2008年7月11日金曜日

ssh鍵認証 No.001(Linuxで鍵作成)

sshで鍵認証する場合の一例です。

  1. ssh-keygen で id_rsa と id_rsa.pub を作成します。
    適当なパスフレーズを入力して作成します。
    ssh-keygen -t rsa -b 2048
  2. id_rsa.pub を authorized_keys に追加します。
    cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
  3. id_rsa を 接続するターミナルソフト側で読み込みます。
    • PuTTYでは、id_rsa を PuTTYgen で private key として保存します。
  4. ターミナルソフトで接続時に id_rsa を指定して接続します。
    • PuTTYでは、private key として保存した、id_rsa.ppk 等を指定します。
    • TeraTermでは、id_rsa をそのまま鍵として指定します。
ちなみに、鍵認証を利用するメリットは、何でしょうか。まあ、「鍵を持ってないと認証を受けられない」という当たり前のことに加え、パスワードがネットワーク上を流れないことでしょうか。パスワードがネットワーク上を流れないことについては、sshを使っている時点で、暗号化されている為、個人的には必要十分だと思いますが、それよりもセキュリティ的には堅牢です。(解読対象がネットワークを流れないわけですから。)

といってしまうと、確かに鍵認証は、パスワード認証に比べて、より強固なセキュリティを提供してくれるわけですが、大きな落とし穴があります。それは、パスワード認証と併用していると、鍵認証よりも低いセキュリティレベルの認証ができてしまい、パスワード認証可能な環境であれば、「鍵を持っていなくても認証ができる」→「誰でもアタックできる」状態となってしまいます。

以下の様に、sshd_config で、パスワード認証を禁止しておかないとメリットは半減です。
PasswordAuthentication no

2008年7月6日日曜日

Firefox No.009(Stylish)

Y's Weblog B-Site: Firefox No.007(Gmailを固定ピッチで表示する)であったようなスタイルシートの編集には、Stylishが便利です。

Stylish :: Firefox Add-ons

このアドオンで、わざわざ深い階層のファイルを探して、作って、編集しなくても、URL毎(mail.google.comなど)に簡単にスタイルシートを設定できます。

また、‘このページのスタイルを検索’を使うと、表示中のページのスタイルシートで投稿されたものが参照できます。ほとんどが海外の情報なので、固定ピッチ、等幅なんてのは出てきません。たとえば、楽天なんかを表示して、検索してもNot styles found.です。

2008年7月4日金曜日

Thunderibird No.031(添付ファイルのアイコンを小さくする)

Thunderbirdで添付ファイルがアイコンで表示されますが、標準では大きめです。これを小さくする方法は以下の通りです。

  1. [ツール]-[オプション]を選択します。
  2. [オプション]画面-[詳細]-[一般]タブで、[設定エディタ]をクリックします。
  3. [about:config]画面で、‘フィルタ’に‘mailnews.attachments.display.largeView’を入力します。
  4. 表示された‘mailnews.attachments.display.largeView’をダブルクリックし、設定を以下の通り変更します。
    ‘true’→‘false’

家庭用UPSの選択

まず、家庭でUPSがいるのかどうかという点からして?ではありますが、あるに越したことはないです。

実際、これから雷の季節ですし、突然、瞬断も増えると思います。そんな時は、UPSがあれば・・・です。ノートブックパソコンなら関係ないわけですが。

OMRON BX35F 無停電電源装置(UPS)
OMRON BX35F 無停電電源装置(UPS)

この製品は、価格もそこそこ、容量もそこそこ、使い勝手もそこそこと及第点です。10,000円程度ですが、バッテリモジュールのホットスワップにも対応していますし、ユーティリティソフトもPowerAct Proが付属しています。PowerAct ProはLinuxにも対応しています。

BX50Fという上位モデルもありますが、バッテリは何れへたるもんですから、必要な容量からして、BX35Fで十分だと思います。

2008年7月2日水曜日

forを一行で書く

シェルでfor文を一行で書くと結構便利です。

基本は以下のように書くわけです。何らかの連続した動作をさせる時に重宝します。

for i in 1 2 3 4; do date; echo $i; done
例えば、そのままですが、決められたことを順番に動作させる場合、こんな感じです。
  • abc def ghi と順に表示
    $ for i in abc def ghi; do echo $i; done
    abc
    def
    ghi
  • host01 から host10 まで ping を発行
    $ for i in `seq -f "host%02.0f" 1 10`; do ping -c 1 $i; done
セミコロンの位置がややこしいですが、do と done の前にセミコロンと覚えておくとわかりやすいです。

2008年6月25日水曜日

Thunderbird No.030(Quicktextでルーラー機能)

ルーラー機能がないという致命的な欠陥(といえばいい過ぎ・・・)を抱えているThunderbirdですが、Thunderbird 用拡張機能にあるRulerrrrrでルーラー機能を使えるのですが、ライセンス上はビジネスユースでは使えない・・・のです。

ユーザは、非営利かつ個人的な目的に限り、本製品を対応製品にインストールし、無償でご利用いただくことができます。
といった一文が掲載されています。会社では使えないですよね・・・

やはり、ルーラー機能は必要です。ないと日本人としてメールが書けません。日本語メールは桁揃えが重要ですし、受ける人も結構意識しているもんです。

ですから、ルーラー機能は必要なんです。というわけで、ルーラー機能を備えたアドオンを探していましたが、ありませんねぇ・・・

まあ、ルーラーがない状態でも、以下の通り、‘プレーンテキストメッセージを○文字で改行する’を適当な文字数に設定することで、ルーラーがなくても何とかなっていました。



しかし、改行文字数の設定が簡単に切り替えられないThunderbirdの場合、どうしても改行したくないメールを書くことを想定すると、「改行しない」設定で使うほうがいいので、改行を‘0’文字と設定して、改行しないよう設定し、手動で必要に応じて改行するようにしました。



となると、自分で改行していかないといけないので、ルーラーが必要になってきました。

でも、適当なアドオンはないので、QuickTextで桁数の目安となるテキストを挿入することで、ルーラー機能を代替しています。

やり方は以下のスケールとなる以下のようなテキストを設定し、必要に応じて、QuickTextのショートカットでテキストを表示し、改行位置を確認し、確認が終わったら、[Ctrl]+[z]で表示されたテキスト行を削除するという方法です。
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

2008年6月24日火曜日

シェルで配列を使う No.003

シェルで配列を使う際、要素でソートする場合、以下のようにするのですが、

HOGE2=(`echo ${HOGE[*]} | sed 's/\s/\n/g' | sort`)
これだと、確かにソートされるのですが、数字としては、うまく処理されません。そこで、以下の通り、一旦、ゼロ付数字に変換してやることで、正常にソートされます。
  • 正常にソートされない
    要素が 1 5 11 2 3 21 31 22 だとすると、以下のようになってしまいます。
    1 11 2 21 22 3 31 5
  • ゼロ付数字に変換してソートする
    要素を 01 05 11 02 03 21 31 22 に変換してソートします。
    # ゼロ付でソート
    HOGE2=(`printf "%02.0f\n" ${HOGE[*]} | sort | sed 's/\n/ /g' | sed 's/\s+$//g'`)
    # ゼロを取り除く
    HOGE3=(`printf "%.0f " ${HOGE2[*]}`)
    1 2 3 5 11 21 22 31
余談ですが、sed で 半角スペースを扱う時は、"\s" と表現しますが、場合によっては、"\ " としないといけない場合があります。なぜかは理解できていません。

2008年6月21日土曜日

Firefox No.008(You were denied acces)

Firefoxを3にバージョンアップして、最初の接続時に以下のメッセージが出力されるようになりました。

Forbidden
You were denied access because:

Access denied by access control list.

いろいろ調べてみると、以下のMicrosoftとGoogleのページが引っ掛かりました。

"403 Forbidden - access denied " というエラーが表示されるのはなぜですか。 - Picasa と Picasa ウェブ アルバム ヘルプ

Web ページを開くときに "Access Denied By Access Control List" というエラー メッセージが表示される

どちらも、「プロバイダ(ISP)のせいで、そうなることがあるから、もう一度アクセスしなおしてください。影響ないです。」といった回答になっています。まあ、確かにそうなんですが。

IEならそうはならないのと、Firefoxを3にしてから発生しているので、PC側になんらかの問題があるはずですが・・・原因はわかりません。とりあえず、そのままもう一度、リロードすると問題ないので、深くは追求していません。

Firefox No.007(Gmailを固定ピッチで表示する)

Gmailですが、非常に便利で重宝します。モバイルでチェックできますし、容量も5GBちかく使えます。ただ、メール本文などが、プロポーショナルフォントで表示されるようになっており、メーラーとしては少々使いづらいです。

そこで、Firefoxで固定ピッチフォントに切り替える方法です。(※ローカルのスタイルシート情報を編集する方法で、環境毎に設定が必要です。)

以下、手順です。

  1. C:\Documents and Settings\%USERNAME%\Application Data\Mozilla\Firefox\Profiles\abcdefg.default\chrome にある、userContent-example.cssをコピーし、userContent.cssを作成します。(Customizing Mozzila
  2. 以下の内容を追記します。
    @-moz-document domain(mail.google.com) {

        .ArwC7c {
            font-size: small !important;
            font-family: monospace !important;
            line-height: 1.2 !important;
        }
        textarea {
            font-family: monospace !important;
        }

    }