メールサーバの構築その3

メールサーバの構築その3 ○トラブル 1.送信できないトラブル 最近プロバイダや、フリーのwebメールのメールサーバでは、迷惑メール防止のためメジャーなプロバイダーのメールサーバからのメールのみ中継し、得体の知れないメー … “メールサーバの構築その3” の続きを読む

メールサーバの構築その3
○トラブル
1.送信できないトラブル
最近プロバイダや、フリーのwebメールのメールサーバでは、迷惑メール防止のためメジャーなプロバイダーのメールサーバからのメールのみ中継し、得体の知れないメールサーバ(特にダイナミックにふられるIP)からのメールを拒否するところが多い。この場合、加入しているプロバイダーによっては、メールサーバを公開しているところもあるので、そこを経由させてもらい。相手方メールサーバではねられないようにする。
main.cfの設定で、

relayhost = [xxx.yyy.zzz]

ここに、加入プロバイダーのメールサーバを書く。
その他の回避方法としては、メール中継の禁止設定は、ダイナミックなIPアドレスからを禁止しているところが多いので固定IPサービスに加入すると良い。また、送信時の問題なので、メーラ側で、送信時には、加入プロバイダの正式なメールサーバを使い送信すると良い。リターンのメールアドレスに、自サーバのメールアドレスを設定しておけば、返信はそこへ来る。

2.受信できないトラブル
ルータのポート中継を間違っていないかチェックする。
MXレコードの設定が適切でない場合もあるので、チェックする。

3.セキュリティ
不正中継に利用されないために、/etc/postfix/main.cfの中の設定
最初設定した状態では、中継はLAN内のみとしている。不正中継が出来る状態かどうか
確認すると良い。
また、存在しないアドレスにはエラーコードを返す設定も有効

unknown_local_recipient_reject_code = 550

これは、設定済のはず。
送受信できるメールの最大サイズを指定する

message_size_limit=1000000

という一行を追加
ディスククォータの機能を使って、maildirディレクトリのサイズを制限するなど。

Fedora8でSpins

Fedora7からSpinsという自前Fedoraが作成できるようになったが、これは、ユーザーが独自のSpinを作るためのツール「pungi」や「livecd-tools」などを使うとできるらしい。 日経Linuxの8月 … “Fedora8でSpins” の続きを読む

Fedora7からSpinsという自前Fedoraが作成できるようになったが、これは、ユーザーが独自のSpinを作るためのツール「pungi」や「livecd-tools」などを使うとできるらしい。
日経Linuxの8月号に書いてあった。そのうちやってみようと思いつつ、次のFedra8が出てしまった。なにしろFedoraは半年ごとに新ディストレビューションを出すので、なにかやろうとしているともう次のが出るという具合だ。USBメモリー起動Fedoraなんぞも面白そうだ。
このサーバも以前はFedora(RedHatからスタートしたが)で運用していたが、FedoraCore2あたりから、肥大化したのでVineLinuxの軽量さに引かれ変えていたが、このSpinsを作成し、軽量化すれば、古いハードのサーバでもOKのような...。移行しようかな。
Celeron533でのファイルサーバがFedora7でMPEG動画も結構いけて、十分運用できているので、 これは面白そうな気もする。

LVM管理

1.物理ボリュームの管理 1:HDを追加した場合等のLVMパーティションの作成 まず、fdiskで領域確保。 HDは/dev/sdcと認識されているとすると、 [root@localhost ~]# fdisk /dev … “LVM管理” の続きを読む

1.物理ボリュームの管理

1:HDを追加した場合等のLVMパーティションの作成
まず、fdiskで領域確保。
HDは/dev/sdcと認識されているとすると、

[root@localhost ~]# fdisk /dev/sdc
このディスクのシリンダ数は 20023 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): n  << nコマンドで新しい領域確保
コマンドアクション
e 拡張
p 基本領域 (1-4)
p                << 基本領域指定
領域番号 (1-4): 1      << 領域番号1を指定
最初 シリンダ (1-20023, default 1):   << Enterで最初のシリンダから
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-20023, default 20023):
Using default value 20023  << Enter最後のシリンダまで

コマンド (m でヘルプ): t    << タイプの変更
領域番号 (1-4): 1       << 領域は1
Hex code (type L to list codes): 8e  << Linux LVM 番号指定

コマンド (m でヘルプ): w    << 情報をHDに書く
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。

2:物理ボリュームの作成

物理ボリューム作成を作成します。
fdisk終了後/dev/sdc1 で領域が取れていることとします。

[root@localhost ~]# pvcreate /dev/sdc1

容量指定するときは以下のようになります。

[root@localhost ~]# pvcreate –setphysicalvolumesize 100G /dev/sdc1

3:物理ボリュームの状態表示

[root@localhost ~]# pvdisplay /dev/sdb1

4:物理ボリュームのサイズ変更

[root@localhost ~]# pvresize –setphysicalvolumesize 120G /dev/sdc1

5:物理ボリュームの削除

[root@localhost ~]# pvremove /dev/sdc1

2.ボリュームグループの管理

1:ボリュームグループの作成

[root@localhost ~]# vgcreate VZ /dev/sdc1

複数デバイスを指定して、実際のHDDを複数つなげて大きな領域とすることも出来ます。

[root@localhost ~]# vgcreate VZ /dev/sdc1 /dev/sdd1

2:ボリュームグループの名前変更

インストール時に使われているような名前にしてみました。

[root@localhost ~]# vgrename VZ VolGroup01

3:ボリュームグループの拡張

VolGroup01 に sdd1 の領域を追加

[root@localhost ~]# vgextend VolGroup01 /dev/sdd1

4:ボリュームグループの縮小

VolGroup01 から sdd1 の領域を削除

[root@localhost ~]# vgreduce VolGroup01 /dev/sdd1

5:ボリュームグループの削除

まずは状態を無効にする

[root@localhost ~]# vgchange -a n VolGroup01

VolGroup01 を削除 

[root@localhost ~]# vgremove VolGroup01 

3.論理ボリュームの管理

1:論理ボリュームの作成

論理ボリューム LogVol01 を ボリュームグループ VolGroup01 に100Gの容量で作成

[root@localhost ~]# lvcreate -L 100G -n LogVol01 VolGroup01

2:論理ボリュームの表示

[root@localhost ~]# lvdisplay

3:論理ボリュームの拡張

120Gに拡張

[root@localhost ~]# lvextend -L 120G /dev/VolGroup01/LogVol01
[root@localhost ~]# resize2fs /dev/VolGroup01/LogVol01

4:論理ボリュームの削除
マウントしている場合はマウントを解除して行います。

[root@localhost ~]# lvremove /dev/VolGroup01/LogVol01

4.フォーマットとマウント

1:フォーマット

フォーマットは通常の領域の様に、ext3 ReiserFS XFS JFSなどやswapが使えます。

[root@localhost ~]# mkfs -t ext3 /dev/VolGroup01/LogVol01

2:マウント
/home2にマウントてみます。まず、マウントポイント作成

[root@localhost ~]# mkdir /home2
[root@localhost ~]# mount -t ext3 /dev/VolGroup01/LogVol01 /home2

マウントできたら最後に/etc/fstabに追加しましょう。これで次回起動時も利用できるようになります。

/dev/VolGroup01/LogVol01 /home2 ext3 defaults 1 2

5.LVMのコマンド一覧

普段良く利用するコマンドのうち主要なものを以下に一覧しました。

操作内容     PV用     VG用    LV用
属性変更     pvchange  vgchange  lvchange
変換(特殊用途)        vgconvert  lvconvert
作成        pvcreate  vgcreate   lvcreate
情報表示(詳細) pvdisplay  vgdisplay   lvdisplay
拡張                vgextend  lvextend
統合                vgmerge
(一部)解放           vgreduce   lvreduce
移動        pvmove
削除        pvremove  vgremove  lvremove
名前変更             vgrename  lvrename
容量変更     pvresize           lvresize
情報表示(一覧) pvs      vgs      lvs
検索        pvscan    vgscan    lvscan
分割                vgsplit 

昔のマザーにSATAのHDDをつなぐ

相当昔のマザーASUS MEBをFedora7でファイルサーバにしているのだが、SATAのHDDが1台余ったので、増設しようと考えた。当然古いので、SATAのインターフェイスなどついていない。そこで、玄人志向のSATAR … “昔のマザーにSATAのHDDをつなぐ” の続きを読む

相当昔のマザーASUS MEBをFedora7でファイルサーバにしているのだが、SATAのHDDが1台余ったので、増設しようと考えた。当然古いので、SATAのインターフェイスなどついていない。そこで、玄人志向のSATARAID-PCIを使おうと考えた。こうすれば、BIOSによるHDD容量の壁の問題も回避できる。一応BIOSのアップデートは行って120GBまでのHDDはOKにはなっているが。1999年頃の物でBIOSは、2002年にMEB Beta BIOS 1014.003となりBIOSのバグが修正され、120GBまではつなげるようになった。Betaで終わってしまったというところが悲しいところだが。

MEBは、440BXチップセットで、Socket370仕様でPPGA Celeronに対応している。CPUはCeleron533をつんで動かしている。対応CPUはCeleron300AからCeleron533まで。

取り付けは、簡単に終了

まりということで、まあいたし方のないところか。

さて、設定が結構大変かなあ。

まず起動してみる。Fedora7の豊富なドライバーでSATARAID-PCIは問題なく認識。
fdiskで認識状況を取ってみる。

fdisk -l

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

中略

Disk /dev/sdb: 122.9 GB, 122942324736 bytes
16 heads, 63 sectors/track, 238216 cylinders
Units = シリンダ数 of 1008 * 512 = 516096 bytes

中略

Disk /dev/sdc: 164.6 GB, 164696555520 bytes
255 heads, 63 sectors/track, 20023 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

/dev/sdcで認識されている。WindowsXPで使用していたので、そのパーティションが見えている。
そこで、こいつを削除して、新しいLinuxのパーティションを作成。

fdisk /dev/sdc

pコマンドでどう認識されているか確認

コマンド (m でヘルプ): p

Disk /dev/sdc: 164.6 GB, 164696555520 bytes
255 heads, 63 sectors/track, 20023 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

中略

dコマンドで領域の削除

コマンド (m でヘルプ): d

沢山あったので、繰り返して削除。全部消し終わったところで、次に、nコマンドで新しい領域を作成。

コマンド (m でヘルプ): n

コマンドアクション
e 拡張
p 基本領域 (1-4) p

     ↑-基本領域を作成

領域番号 (1-4): 1

最初 シリンダ (1-20023, default 1):   

    ↑- Enterで最初から
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-20023, default 20023):  

    ↑- Enterで最後まで
Using default value 20023

うまく取れたかpコマンドで確認

コマンド (m でヘルプ): p

Disk /dev/sdc: 164.6 GB, 164696555520 bytes
255 heads, 63 sectors/track, 20023 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sdc1 1 20023 160834716 83 Linux

wコマンドでHDDに領域情報を書く

コマンド (m でヘルプ): w
領域テーブルは交換されました!

領域は取れたので、フォーマット。今回は、LVMは使わず直にマウントするつもり。

mkfs -t ext3 /dev/sdc1

つづいて、home3のディレクトリにマウントするつもりなので、ディレクトリを作成。

mkdir /home3

そして、マウント

mount -t ext3 /dev/sdc1 /home3

これでめでたく、ディスクの増設終了。玄人志向のカードはRAID機能もあるが、今のところ使用していない。もったいないかなあ。

以外に、簡単にできてしまった。古いマザーもこれで、最新のSATAディスクが増設できるようになった。
ただ、残念なことに、SATA2にするにはPCI-Expressを要求するカードが多い。またそのくらいでないと速度的に意味のないところなのだろう。

一発時刻合わせ

ntpdateを使い、一発で、時刻を合わせる。ntpと違う所は、ntpがすこしずつ合わせていくので時間が合ってくるまで時間がかかるが、ntpdateは実行したその瞬間に合う。アクセスが激しいサーバでは、時刻が飛ぶのでよろ … “一発時刻合わせ” の続きを読む

ntpdateを使い、一発で、時刻を合わせる。ntpと違う所は、ntpがすこしずつ合わせていくので時間が合ってくるまで時間がかかるが、ntpdateは実行したその瞬間に合う。アクセスが激しいサーバでは、時刻が飛ぶのでよろしくないが、そうでもないサーバならいいかな。

# /usr/sbin/ntpdate ntp2.jst.mfeed.ad.jp
Looking for host ntp2.jst.mfeed.ad.jp and service ntp
host found : ntp2.jst.mfeed.ad.jp
28 Oct 08:52:08 ntpdate[11282]: adjust time server 210.173.160.57 offset -0.177626 sec

日に数回cronで実行するようにしておくと良い。
下記設定は3時間ごとの実行。

# crontab -l
# DO NOT EDIT THIS FILE – edit the master and reinstall.
# (/tmp/crontab.30669 installed on Wed Oct 10 18:26:50 2007)
# (Cron version — $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
55 */3 * * * /usr/sbin/ntpdate ntp1.jst.mfeed.ad.jp
15 0,6,12,18 * * * webalizer

注意、ntpdは止めておかないと、ポートが空いてないと怒られる。

phpやnucleusで文字化けがひどい時の、mysqlの設定

MySQL設定ファイル編集 [root@fedora ~]# vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock … “phpやnucleusで文字化けがひどい時の、mysqlの設定” の続きを読む

MySQL設定ファイル編集

[root@fedora ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

#追加(MySQLサーバーの文字コードをUTF-8にする
default-character-set = utf8
#追加(MySQLクライアントの文字コードをUTF-8にする)
[mysql]
default-character-set = utf8

vsftpの設定

Fedoraシリーズは、ftpがvsftpなので、その設定法。 proftpもインストール出来るようだが。 confファイルはここ /etc/vsftpd/vsftpd.conf にある。 以下設定箇所 ~中略~ #as … “vsftpの設定” の続きを読む

Fedoraシリーズは、ftpがvsftpなので、その設定法。
proftpもインストール出来るようだが。
confファイルはここ
/etc/vsftpd/vsftpd.conf
にある。
以下設定箇所

~中略~

#ascii転送を許可する
ascii_upload_enable=YES
ascii_download_enable=YES

~中略~

上記の2行で、asciiモードでファイルを上書きできるので、プログラムが実行できるようになる。
これをしておかないと、cgiが動かないトラブルに悩まされることとなる。

~中略~

#匿名ユーザーのログイン禁止
anonymous_enable=NO

~中略~

#ホームディレクトリより、上位に移動させない設定は、以下の2行を有効にする。
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

~中略~

そして、chroot_listにユーザーIDを記述すれば、そのユーザーは上位ディレクトリに移動できなくなる。

以下の2行ここはまあどうでもよいかなあ。ファイルの最終行追加。

~中略~

#所有者が数字でなくて、ユーザー名で表示される
text_userdb_names=YES
#ファイルの上書き時間が、日本時間になる
use_localtime=YES

ただ、chroot_list_enable=YESの設定をしていると、この設定が効かない。
上位ディレクトリに接続できない設定にしたので、
/etc にあるパスワードファイルと時間ファイルに接続できなくなったのです。
FFFTPなどでは、この設定なしでも、サーバの時刻をGMTとすると、日本時間で表示してくれる。

その他、時刻・名前の解決法は、時刻ファイルをコピーする方法もある。
user1にetc ディレクトリを作成
# mkdir /home/user1/etc

ローカルタイムのコピー
# cp /etc/localtime /home/user1/etc/
パスワードファイルからuser1だけコピー
# cat /etc/passwd | grep user1 > /home/user1/etc/passwd

読み書きできないようにする
#chmod 711 /home/user1/etc/

RSS
Follow by Email