Fedora Core6をPAE対応にする

DELL PowerEdge840のメモリをメーカー出荷時の512MB×2を取り外し、トラセンド・ジャパン TS256MLQ72V6U 2GB×2に変更し、Fedora Core6を起動したところ、BIOS上では4GB認識していたが、3.6GBしか認識しなかった。
そこで以下の手順を使ってkernelを入れ替えて、無事4GB認識できた。
1.kernel-PAE-2.6.18-1.2798.fc6.i686.rpmをダウンロード
2.rpm -ivh kernel-PAE-2.6.18-1.2798.fc6.i686.rpm でインストール
3.再起動し、GNOMEで起動するkernelが2つ選べるようになっているので、PAEを選択
4.yum remove kernel.i586 で既に入っているカーネルをアンインストール
5.再起動を行う
@ITではi686のカーネルに入れ替える方法の中でPAE版を一時的に利用しているので、作業手順としては参考になる。

MediaWikiを10分でインストールする

WikipediaのエンジンになっているMediaWikiをインストールしてみました。
まずはMediaWikiの特徴から・・・
MediaWikiの優れているところ
・マルチユーザーによるコンテンツ管理が可能(バージョン管理も出来るし、無制限に戻すこともできる)なので会社のナレッジベースにも最適。
・エディタのインターフェイスが優れているので、pukiwikiのようにコマンドを覚える必要もない。もちろん、コマンドを覚えれば拡張が使えて余計にハッピーになれる。
・データベース管理なので、同時に編集したりしてもロックがかかったりすることもない。
MediaWikiのよくない点
・データベースが必要なので、pukiwikiのようなファイル管理システムに比べて敷居が少し高い
・リンク先は明示的に示す必要がある(pukiwikiの場合、文字列と同じ内容のタイトルがあれば自動的にリンクされる)
まず、インストールガイドはこちらから。
必要なRPM(Fedora Coreの場合)は以下のとおり。
yumコマンドでインストールしておくとよいかもしれない。
httpd
php
mysql-server
php-mysql
ApacheとMysqlの知識さえあれば、Webベースのインストールウィザードがあるので、ビルドには10分もかからない。ウィザードの遷移を見る限りでは、データベースにはPostgreSQLも選べるっぽい。
あっという間にWikipediaと同じインターフェイスが手に入るとなると、使わない手はありませんね。

vsftpdでユーザー制限とディレクトリ制限をする

vsftpdでユーザー制限とディレクトリ制限をするには以下の方法をとる。いずれも/etc/vsftpd/vsftpd.conf を編集する。
ユーザー制限
ユーザー制限を行う場合(許可するユーザーが少ない場合)
userlist_enable=YES
userlist_deny=NO
を登録し、
/etc/vsftpd/user_list
にログインを許可ユーザーを記録する。
ユーザー制限を行う場合(拒否するユーザーが少ない場合)
userlist_enable=YES
userlist_deny=YES
を登録し、
/etc/vsftpd/user_list
にログインを拒否したいユーザーを記録する。
ディレクトリ制限
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
を登録し、
/etc/vsftpd/chroot_list
に制限したいユーザーを記録する。なお、vsftpdの場合には、特定のユーザーを特定のディレクトリに制限すると言った細かい制限ではなく、ログインディレクトリをルートディレクトリとするかどうかと言う設定になる。

Adobe Flex2の導入

Flex2が実際に利用可能なものなのか技術検証してみました。
Flex2について
Adobeのサイトをご覧いただければわかりますが、FlexはFlashをプログラマの立場から構築できるソフトウエアのことです。
EclipseプラグインもしくはGUIベースのFlex Builder2(30日間限定で無償体験できる/64,900円)、Flex Builder2にチャートの機能を追加した?Flex Builder2 with Charting(97,900円)、無償で開発できるCUIベースのFlex2 SDKがあります。
ダウンロードはこちらからでき、ダウンロードにあたりアカウントの登録(無料)が必要となります。
Flex Builder2とSDKの両方で作成する方法が紹介されているページがあります。これを見ながら、サンプルプログラムを作ってみるとよいと思います。
Flex Builder2の導入ガイド
Flex2 SDKの導入ガイド(FlashとFlexの関係についてもうまくまとめられています)
Flex2 SDKでゲームを作ってみる
実は、ダウンロードの際にホップアップブロッカーによってブロックされていてダウンロードが始まらないというオチがついてました。
Flex2でできることとその利点
ところでFlex2でなにができるのでしょうか?それはこのサンプルを見ていただくと良くわかります。まぁFlashだから当然という見方もありますが、HTML言語では出来ない限界を超えて、ほぼクライアントソフトと同等の表現が出来る可能性を見て取ることが出来ます。(Flash9でなければ背景色だけが表示されていて、何も表示されません。Ver.9へのアップグレードが必要なのですが、ダウンロードページに行ってもアップグレードできないという問題があるようです)
2004年にリリースされたJ2EEアプリケーションサーバの上で動作するため、既存のJ2EE環境の上に導入することができ、Flex Builderを使用することでVBやDelphiなどと同じようにRAD開発が可能となりそうです。
SDKとMXML
詳しくはこちらを見ると良くわかりますが、asファイルからswfを生成することはFlex2 SDKを利用して行うことができます。
Flexはただ単純にFlashファイル(SWF)を作成するものなので、動的にFlexを吐き出してユーザーに見せるといったことが出来ません。対して、Flex Data Services 2ではmxmlファイルからswfを動的に生成して見せることができます。(内部的には、XXX.mxmlがあるとするとXXX.mxml.swfというFlashファイルを呼び出すような仕組みになっていますが、キャッシュとして保持してクライアントに返すため、ファイルの実態としてswfが存在するわけではないようです)
Expressバージョンは無料で利用できるので、こちらでチェックすることが出来ます。
Ajaxのような非同期通信といえるのかどうか良くわかりませんが、Action Script3を利用してイベント発生時に通信を行うことでAjaxのような非同期ぽい通信を実現できるようです。
ところで、MXMLとは何のことでしょうか?
globe.toのサイトによれば

Macromedia Flex Markup Language. Macromedia Flexのプレゼンテーションを記述するためのXML言語。 対抗するものとして、サーバサイド製品LaszloのLZX、リッチメディアクライアントとしてはMicrosoft AvalonのXAMLがある。MXMLはSWFにプリコンパイルしてソースコードの保護を図ることができる。

とあります。つまり、Adobeに統合された今でもここに統合前の名残がのこっているようです。
Flex Data Services 2 Express
Windowsで先ほどのダウンロードページからFlex Data Services 2 Expressをダウンロードして使ってみよう。
インストールしたあと、スタート→プログラム→Adobe→Flex Data Services 2→Start Integrated Flex Server を実行するとWebサーバーが立ちあがります。
http://localhost:8700/samples/
ドキュメントルートはインストール先をC:\fds2にするとC:\fds2\jrun4\servers\defaultに設定されている。なぜかこの直下においてもプログラムを実行できませんでした。設定ファイルを見ていけばいいのかもしれませんが、実行する際には、samplesにおけばとりあえず実行できることを確認しました。

その他参考サイト
Flex User Group

Fedora Core6 + Postfix + Mailmanではまる

Fedora Core6からIPv6のサポートが正式に始まった。これによってIPv6の環境下でもインストールを行うことが出来るようになった。がしかし、ソフトウエアがまだ完全に対応していないために思わぬところではまってしまった。
PostfixはIPv6に対応しているもののデフォルトはIPv4対応になっている。
inet_protocols = all
main.cfに設定して再起動しなければ、IPv6用に待ち受けしないので、
telnet 127.0.01 25
とやると問題ないのに
telnet localhost 25 もしくは
telnet ::1 25 とやると

Trying ::1…
telnet: connect to address ::1: Connection refused
telnet: Unable to connect to remote host: Connection refused

のメッセージが出てしまう。Mailmanはデフォルトでlocalhostに配送しようとするので、この問題で配送されない状態が続くということになる。

“Fedora Core6 + Postfix + Mailmanではまる” の続きを読む

sshで指定されたグループのみを許可する

AllowGroupsパラメータでグループ名を指定すると指定されていないグループに所属するログインユーザーを拒否することが出来る。パラメータはDenyUsers, AllowUsers, DenyGroups, AllowGroupsの順に処理されるらしい。

Postfix + DovecotでPOP before SMTP

もう認証方式としてはあまり使われなくなっているらしいPOP before SMTP方式ですが、SMTP認証方式は多少なりとも初心者ユーザーへのハードルが高いことは事実。PostfixとDovecotを使ってPOP before SMTPを実装する方法がTAKEDA Hiroyukiさんのページで紹介されていました。僕の環境の場合、BerkeleyDBのCPANインストール時に
db.h: No such file or directory
で躓きましたが、db4-develパッケージをインストールすることで解決しました。

postfixの設定

postfixでMaildir形式での運用をするときには、/etc/postfix/main.cfを以下のように変更する。
#home_mailbox = Maildir/
#mail_spool_directory = /var/spool/mail

home_mailbox = Maildir/
mail_spool_directory = /var/spool/mail
また、Fedora CoreやRedhatではローカルのみメールを配送するように設定されているために、
telnet localhost 25とすると

Trying ::1…
telnet: connect to address ::1: Connection refused
telnet: Unable to connect to remote host: Connection refused

というエラーに悩まされるかもしれない。
そこで、以下のように設定を変更する。
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost

inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
それから、Fedora Core6の環境で悩まされた問題だが、inet.dの再起動に失敗して
postfix[XXXX]: fatal: parameter inet_interfaces: no local interface found for XXX.XXX.XXX.XX
というエラーが/var/log/maillogに記載されることがあるかもしれない。そのときは、
/etc/hosts
ファイルを見直すとよい。

mailmanをバーチャルホストで運用する

mailmanを日本語化するには
[/etc/mailman/mm_cfg.py]
MTA = ‘Postfix’ # メールサーバーの種別を指定
DEFAULT_SERVER_LANGUAGE = ‘ja’ # 管理画面を日本語化
OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes # 登録メンバー以外は、メーリングリストの使用を不可にする
DEFAULT_REPLY_GOES_TO_LIST = 1 # メーリングリスト一覧を非公開にする
DEFAULT_GENERIC_NONMEMBER_ACTION = 2 # 件名のフォーマット(記事№を付加)
DEFAULT_REPLY_GOES_TO_LIST = 1 # 返信先を投稿者ではなくメーリングリストにする(Reply-Toの書き換えを行う
を加える(Naoki Hirataさんのサイトを引用)
また、個人的には以下のものをオススメしたい。
DEFAULT_REQUIRE_EXPLICIT_DESTINATION = No #バーチャルドメインで運用する場合にエイリアスを張ったMLに送信すると保留されるのを防ぐ
DEFAULT_MSG_FOOTER = ” #フッターの署名をつけない
もしexample.comとvirtual.comをバーチャルホストで運用するには以下の2行も追加する。
add_virtualhost(‘www.example.com’,’example.com’)
add_virtualhost(‘www.virtual.com’,’virtual.com’)
POSTFIX_STYLE_VIRTUAL_DOMAINS = [‘example.net’, ‘virtual.com’]
そして以下のコマンドを実行し、
# touch /etc/mailman/virtual-mailman
# chown apache:mailman /etc/mailman/virtual-mailman
[/etc/postfix/main.cf]
virtual_alias_maps = hash:/etc/postfix/virtual, hash:/etc/mailman/virtual-mailman
とする。(引用:NTTPCの特集)
変更後は、
/usr/lib/mailman/bin/genaliases
でデータベースを反映させる。
なお、ルートパスワードは
/usr/lib/mailman/bin/mmsitepass
で変更できる。

“mailmanをバーチャルホストで運用する” の続きを読む

sshへの断続的なログインを防止する方法

rootユーザーで何度もsshでログインを試みようとしているものがログに残されているケースはかなり多い。総当り攻撃されれば、いつかはログインできてしまう可能性があるので、これを防ぐ方法がITMediaに掲載されていたので、紹介する。

# vi /etc/ssh/sshd_config
MaxStartups 2:80:5 #2つまでの接続要求を受け付け、3つを超えるそれ以降の要求を80%の割合で拒否し、さらに要求が増え続けて5つを超えると以降すべてを拒否する.