カテゴリー
FreeBSD Software

FreeBSD (imap-uwのSSL化)

/usr/ports/mail/cclient

/usr/ports/mail/imap-uw

/usr/local/etc/pkgtools.conf に WITH_SSL_AND_PLAINTEXT=yes を追記。

# cd /usr/ports/mail/cclient
# portupgrade -f
# cd /usr/ports/mail/imap-uw
# portupgrade -f
# make cert (全部エンターで済ませる)

/usr/local/certs に imapd.pem ipop3d.pemが出来ていればOK。
あとは /etc/inetd.conf をいじる。

pop3s   stream  tcp     nowait  root    /usr/local/libexec/ipop3d       ipop3d
imaps   stream  tcp     nowait  root    /usr/local/libexec/lmapd        imapd

を追記して inetd を kill -HUP する。

参考URL: http://hiiro-sou.hp.infoseek.co.jp/unix/tips/imap.html

カテゴリー
FreeBSD

FreeBSD (消せないファイル名)

ファイルの日付を変えようとして、

% touch ファイル名 -t 202012312359

などと間違うと “-t” と ”202012312359″ などというファイルができてしまう。
(ちなみに正解は “touch -t 202012312359 ファイル名”)
そうすると “-t”というファイルを消したいのだがなかなか消せないという羽目に陥る。

% rm ‘-t’

とか

% rm ‘\-t’

とかやってみるんだけど駄目。
結局、マイナス記号が先頭のファイル名をどうやって表現していいかというと、

% rm ./-t

が正解。

カテゴリー
FreeBSD MySQL Software

FreeBSD (phpMyAdmin: PMA Database … OK ではありません。)

phpMyAdminを使っていて「PMA Database … OK ではありません。」というエラーが出る。調べてみるとここが一番分かりやすかった。mysql5.1でそのままOKでした。感謝。

 

以下、そのままメモとしてコピペしてます。

phpMyAdminで’phpmyadmin’という名のDBを作成。そのDBに対して以下のSQL文を実行。

CREATE TABLE `pma_bookmark` (
`id` int(11) NOT NULL auto_increment,
`dbase` varchar(255) NOT NULL default ‘’,
`user` varchar(255) NOT NULL default ‘’,
`label` varchar(255) NOT NULL default ‘’,
`query` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM COMMENT=’Bookmarks’;

CREATE TABLE `pma_column_info` (
`id` int(5) unsigned NOT NULL auto_increment,
`db_name` varchar(64) NOT NULL default ‘’,
`table_name` varchar(64) NOT NULL default ‘’,
`column_name` varchar(64) NOT NULL default ‘’,
`comment` varchar(255) NOT NULL default ‘’,
`mimetype` varchar(255) NOT NULL default ‘’,
`transformation` varchar(255) NOT NULL default ‘’,
`transformation_options` varchar(255) NOT NULL default ‘’,
PRIMARY KEY (`id`),
UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)
) TYPE=MyISAM COMMENT=’Column information for phpMyAdmin’;

CREATE TABLE `pma_history` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`username` varchar(64) NOT NULL default ‘’,
`db` varchar(64) NOT NULL default ‘’,
`table` varchar(64) NOT NULL default ‘’,
`timevalue` timestamp(14) NOT NULL,
`sqlquery` text NOT NULL,
PRIMARY KEY (`id`),
KEY `username` (`username`,`db`,`table`,`timevalue`)
) TYPE=MyISAM COMMENT=’SQL history for phpMyAdmin’;

CREATE TABLE `pma_pdf_pages` (
`db_name` varchar(64) NOT NULL default ‘’,
`page_nr` int(10) unsigned NOT NULL auto_increment,
`page_descr` varchar(50) NOT NULL default ‘’,
PRIMARY KEY (`page_nr`),
KEY `db_name` (`db_name`)
) TYPE=MyISAM COMMENT=’PDF relation pages for phpMyAdmin’;

CREATE TABLE `pma_relation` (
`master_db` varchar(64) NOT NULL default ‘’,
`master_table` varchar(64) NOT NULL default ‘’,
`master_field` varchar(64) NOT NULL default ‘’,
`foreign_db` varchar(64) NOT NULL default ‘’,
`foreign_table` varchar(64) NOT NULL default ‘’,
`foreign_field` varchar(64) NOT NULL default ‘’,
PRIMARY KEY (`master_db`,`master_table`,`master_field`),
KEY `foreign_field` (`foreign_db`,`foreign_table`)
) TYPE=MyISAM COMMENT=’Relation table‘;

CREATE TABLE `pma_table_coords` (
`db_name` varchar(64) NOT NULL default ‘’,
`table_name` varchar(64) NOT NULL default ‘’,
`pdf_page_number` int(11) NOT NULL default ‘0′,
`x` float unsigned NOT NULL default ‘0′,
`y` float unsigned NOT NULL default ‘0′,
PRIMARY KEY (`db_name`,`table_name`,`pdf_page_number`)
) TYPE=MyISAM COMMENT=’Table coordinates for phpMyAdmin PDF output’;

CREATE TABLE `pma_table_info` (
`db_name` varchar(64) NOT NULL default ‘’,
`table_name` varchar(64) NOT NULL default ‘’,
`display_field` varchar(64) NOT NULL default ‘’,
PRIMARY KEY (`db_name`,`table_name`)
) TYPE=MyISAM COMMENT=’Table information for phpMyAdmin’;

その後、 /usr/local/www/phpMyAdmin/config.inc.php を下記のように編集。

$cfg[‘Servers’][$i][‘pmadb’] = ‘phpmyadmin’; // Database used for Relation, Bookmark and PDF Features
// (see scripts/create_tables.sql)
// - leave blank for no support
// DEFAULT: ‘phpmyadmin’
$cfg[‘Servers’][$i][‘bookmarktable‘] = ‘pma_bookmark’; // Bookmark table
// - leave blank for no bookmark support
// DEFAULT: ‘pma_bookmark’
$cfg[‘Servers’][$i][‘relation’] = ‘pma_relation’; // table to describe the relation between links (see doc)
// - leave blank for no relation-links support
// DEFAULT: ‘pma_relation’
$cfg[‘Servers’][$i][‘table_info’] = ‘pma_table_info’; // table to describe the display fields
// - leave blank for no display fields support
// DEFAULT: ‘pma_table_info’
$cfg[‘Servers’][$i][‘table_coords’] = ‘pma_table_coords’; // table to describe the tables position for the PDF schema
// - leave blank for no PDF schema support
// DEFAULT: ‘pma_table_coords’
$cfg[‘Servers’][$i][‘pdf_pages’] = ‘pma_pdf_pages’; // table to describe pages of relationpdf
// - leave blank if you don’t want to use this
// DEFAULT: ‘pma_pdf_pages’
$cfg[‘Servers’][$i][‘column_info’] = ‘pma_column_info’; // table to store column information
// - leave blank for no column comments/mime types
// DEFAULT: ‘pma_column_info’
$cfg[‘Servers’][$i][‘history’] = ‘pma_history’; // table to store SQL history
// - leave blank for no SQL query history
// DEFAULT: ‘pma_history’
カテゴリー
FreeBSD Software

FreeBSD (makeworld/buildkernel)

リモートでFreeBSDのアップデートをする。

個人で立ててるサーバーなのでシングルユーザーモードに入ってとかは気にしないことにしてます。

# cd /usr/src
# make -j 4 buildworld
# make buildkernel KERNCONF=GENERIC
# make installkernel KERNCONF=GENERIC
# reboot
:
# cd /usr/src
# mergemaster -p
# make installworld
# mergemaster
# reboot

しかし、毎度のことながらリブートしてからsshでつながるまでの間の緊張感はたまりません。昔、某プロバイダのデータセンターにサーバーを置かせ てもらっていた時がありましたが、その時/etc/rc.confの編集をミスってリブートしてしまい再起動できなくなって現場まで出かけざるを得なく なってかなり焦った経験があります。今のサーバーもかなり距離が離れているので現場に行くのはかなり面倒です。ネットワーク的には同じプロバイダ内で閉じ ているので近いんですけどね。

カテゴリー
FreeBSD Squirrelmail

FreeBSD (Squirrelmail: ヘッダの細工)

Squirrelmailでヘッダの発信元を隠すように細工。
変更箇所は一箇所。同じサーバーのプロキシ経由での発信に見える、はず。

# cd /usr/local/www/squirrelmail/class/deliver
# diff Deliver.class.php.org Deliver.class.php
400,405c400,406
<              if (isset($encode_header_key) && trim($encode_header_key)!='') {
<             // use encrypted form of remote address
<             $message_id.= OneTimePadEncrypt($this->ip2hex($REMOTE_ADDR),base64_encode($encode_header_key));
<         } else {
<             $message_id.= $REMOTE_ADDR;
<         }
---
> //        if (isset($encode_header_key) && trim($encode_header_key)!='') {
> //            // use encrypted form of remote address
> //            $message_id.= OneTimePadEncrypt($this->ip2hex($REMOTE_ADDR),base64_encode($encode_header_key));
> //        } else {
> //            $message_id.= $REMOTE_ADDR;
> //        }
>         $message_id.= 'ほげほげ(IPアドレス)';
418a420
>         $received_from = "ほげほげ(IPアドレス)";

これで発信したメールヘッダはこんな感じになります。

Received: from www.ほげほげドメイン (localhost.ほげほげドメイン [127.0.0.1])
by ほげほげドメイン (Postfix)
with ESMTP id 50F9B5066FF for < 宛先メールアドレス>;
Thu, 21 Dec 2006 13:47:53 +0900 (JST)
Received: from ほげほげ(IPアドレス) (SquirrelMail authenticated user hogehoge)
by ほげほげドメイン
with HTTP;
Thu, 21 Dec 2006 13:47:53 +0900 (JST)
Message-ID: <2933.ほげほげ(IPアドレス).1166676473.squirrel@www.ほげほげドメイン>