アトム-サイト
[ アトム-サイト ] - 管理人さんのページです。
feed-icon RSS2.0   feed-icon Atom
SMTP
管理人さんのブログ 2016-04-06 12:03:21
SMTP

CentOSを使っているのですが、標準のSMTPは『sendmail』ですね。
# yum list installed | grep sendmail
sendmail.x86_64 8.13.8-2.el5 installed
sendmail-cf.x86_64 8.13.8-2.el5 installed
# yum list installed | grep postfix
(何も出ません)

セキュリティ&設定の面で有利なので、『sendmail』から『postfix』へ切り替えてみましょう。

『sendmail』サービス停止
# /etc/init.d/sendmail stop
sm-client を停止中: [OK]
sendmail を停止中: [OK]
スタートさせない設定にしておきます。
# chkconfig sendmail off
# chkconfig --list | grep send
sendmail 0:off 1:off 2:off 3:off 4:off 5:off 6:off

『postfix』インストール
# yum install postfix
/etc/postfix に色々ファイルが入っているのが確認できます。

『sendmail』から『postfix』への切り替え
普段使うメールサーバを『sendmail』から『postfix』への切り替えます。
# alternatives --config mta
2 プログラムがあり 'mta' を提供します。
選択 コマンド
-------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail
2 /usr/sbin/sendmail.postfix
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

『postfix』に切り替わったか確認
# alternatives --config mta
2 プログラムがあり 'mta' を提供します。
選択 コマンド
-------------------------------------------
* 1 /usr/sbin/sendmail.sendmail
+ 2 /usr/sbin/sendmail.postfix
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
[+]がpostfix側に移動しているのが確認できます。

設定ファイルの編集
main.cfを編集します。
項目的には
『inet_interfacesをallにする』
『mydomainを記載』
『mydestinationに受け入れるドメイン追加』
『mynetworksは許可するSMTPクライアント』
ですね。
編集結果は以下参照。
inet_interfaces = all
mydomain = e-onlineservice.com
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.1.0/24, 127.0.0.0/8
『mynetworks』『mydestination』の指定以外からはメール中継しないので、これで不正中継は防げています(後は、送信時のSMTP-Authで認証させればスパム対策はOKです:後述)。

後は、POPサーバ設定と同じ様に、Maildir形式にする設定等をする必要があります(main.cf を編集)。
#home_mailbox = Mailbox
home_mailbox = Maildir/
※コメントの#を外す。
で、受信容量を100Mにする記載追加。
mailbox_size_limit = 100000000
message_size_limit = 100000000

『postfix』の起動
# /etc/init.d/postfix start
postfix を起動中:[OK]
# chkconfig postfix on
# chkconfig --list postfix
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off

メールアカウントを追加した場合は、
/etc/postfix/virtual ファイルに対応を書き、
# postmap virtual
を実行。

ポートを空ける
smtp用のポート(25番)を開きます。
#iptables -I INPUT -p tcp --dport 25 -j ACCEPT
#/etc/rc.d/init.d/iptables save
#/etc/rc.d/init.d/iptables restart

メールが届いたかどうかは、ユーザのホームディレクトリにMaildirができたかどうかでわかります(初メールが届くとMaildirフォルダができます)。

『sendmail』のアンインストール
# yum remove sendmail

SMTP-Auth
それから、前述のスパムメール対策をする必要があります(SMTP-Authですね)。
まずは、ポート番号(通常25番)に587番も追加。
/etc/postfix/master.cf
を編集。
smtp inet n - n - - smtpd
submission inet n - n - - smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
と、submissionの方を有効にしたら、postfix reload 。
『smtpd_sasl_auth_enable』『permit_sasl_authenticated』で、SMTP-Authも有効になってます。

認証サービスをスタート。
# /etc/init.d/saslauthd start
初期状態もONにしておきます。
# chkconfig saslauthd on

サーバ準備が出来たので、メールクライアントで送信できるかチェックします。
[ツール]-[アカウント]-[プロパティ]の変更2箇所。
『サーバー』に、送信メールサーバーの『このサーバーは認証が必要』があるので、チェック。
『詳細設定』に、ポート番号設定があるので、『25』から『587』に変更。
これで送信できれば、OKです。

…が、実はココまでだと、外部から繋げた場合のメール送信が出来ません(ローカル内からの送信は出来ます)。
結局、main.cf の mynetworks 外からは、弾かれるという事です(『554.5.7.1 Relay access denied』というエラーメッセージが出ます)。
外部から繋げてのメール送信が出来ないなんて、『OP25B』の為にSMTP-Authを用意した意味が無いですよね。
この解決は、同じmain.cf内に、SMTP-Authの記述をしてあげるとOKです。
=====
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
=====
postfix を reload して、送信できるかチェックしましょう。

複数ドメイン
いくつかのドメインを、一つのpostfixサーバーで受け取れる設定です。

main.cfファイル内に、下記を1行追加します。
virtual_alias_maps = hash:/etc/postfix/virtual
※myhostname、mydomain、mydestination等に追加ドメインを記述する必要はありません。

virtualファイルは以下
first.com anything
info@first.com info
hogehoge@first.com hoge
second.com anything
info@second.com info
※info@first.comもinfo@second.comも、infoユーザが受けるという設定(もちろん、他の転送設定にもできます)。
info2@second.com trance@test.com,trance@test2.com
※こんな書き方をすれば、単純に転送になります。
最後に、変更を反映させて終わりです。
# postmap /etc/postfix/virtual


S.M.A.R.T.
管理人さんのブログ 2015-05-07 08:03:36
S.M.A.R.T.

通常のHDD交換
構築したサーバから、以下の2通の警告メールが届いています。

タイトル:『SMART error (OfflineUncorrectableSector) detected on host: ****』
内容:Device: /dev/sdc, 9 Offline uncorrectable sectors

タイトル:『SMART error (CurrentPendingSector) detected on host: ****』
内容:Device: /dev/sdc, 12 Currently unreadable (pending) sectors

sdcなので、RAIDではない通常のHDDのエラーです。
# smartctl -a /dev/sdc
で、調べなおすと、確かにその値が出てますね。
買って1年しか経ってないHDDなのに…。

試しに、一度フォーマットしてみたんですが…。
# mkfs -t ext3 /dev/sdc1
『Currently unreadable (pending) sectors』が12から10に減っただけでした。

ちなみに、フォーマット形式を調べるには、
# cat /etc/fstab
ですね。
/dev/md0 / ext3 defaults 1 1
/dev/sdc1 /mnt/sdc ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/md1 swap swap defaults 0 0
『ext3』とかになってます。
それと、最後の第6列の数字は、システム起動時のfsckチェック(『0』:チェックを行わない)。
後述しますが、/dev/sdc1は『2』→『0』に変更しました。

余っているHDDもあるので、交換してみる事にします。
まずは、/etc/fstabファイルを編集して、起動時にmountしない様にして、shutdown。
システム起動時のfsckチェックを行わない『0』にすればOK。
電源落としたら、HDDを交換します。
電源入れたら、
# dmesg | grep sdc
で、HDDが繋がっている事を確認します(SATAで3台HDDを繋げている場合)。
# fdisk /dev/sdc
で、パーティションを作ります(n->p->1->wとコマンドを打っていくだけです)。
作ったパーティションをフォーマット。
# mkfs -t ext3 /dev/sdc1
フォーマット終了したら、マウントして使います。
# mount /dev/sdc1 /mnt/sdc
最後に、/etc/fstabファイルを編集して起動時にマウントする様に戻します。

HDD交換後、警告メールは無くなりました(めでたしめでたし)。

RAID1 HDD交換
組んで半年なのに、警告メール到着。
タイトル:『SMART error (CurrentPendingSector) detected on host:****』
タイトル:『Fail event on /dev/md0:****』
こんな感じのメールが数通。
昨日、HDDのアクセスランプの挙動がおかしかったので「変だな?」とは思っていたんですが…。
メール内容を見ると、どうやらRAID1で組んでる一方(sda)が壊れているっぽいです。

# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[1]
3959936 blocks [2/1] [_U]
md0 : active raid1 sdb1[1]
972799872 blocks [2/1] [_U]
mdstatファイル見ても、ダメなのが確認できます。

# mdadm --detail /dev/md0
この表示の最後、
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 17 1 active sync /dev/sdb1
ココでも、一方がremovedされているのが確認できます。

# smartctl -a /dev/sda
# fdisk -l /dev/sda
これらのコマンドで、sdaのHDDの情報が見れません(sdbとかは見れます)。
壊れてますね、sda。

以前、一方がNGでも立ち上がる様にしていたので、壊れているHDDを外して再起動。
あれれ?「メンテナンスしろ!」と出ます(手持ちの予備HDDは無いので、今はとりあえず起動させたいんですが…)。
後で気付いたんですが…。
よくよく見ると、sdcですね、エラー。
抜いた事により、RAIDと関係ないHDDのfsckチェックが引っかかる模様。
/etc/fstab の最後の値をチェックしない『0』にすれば解決です。

仕方ない、また壊れてるHDDを付けて再起動です。
おや?ブートローダーに処理が移ってしまいました。
とりあえずもう一度電源入れ直すと、片方のHDDだけで起動してくれましたね(いくつもエラー表示が出て、時間かかりましたが…)。

新しいHDDがきたら、交換作業ですね。
HDD来ました、ネットで購入(TUKUMO)。

まずは、正常なsdbのパーティションを表示させます。
# fdisk -l /dev/sdb
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sdb1 * 1 121108 972799978+ fd Linux raid 自動検出
/dev/sdb2 121109 121601 3960022+ fd Linux raid 自動検出

新しいHDDに入れ替えて再起動(新しくしたら、普通に再起動できました)。
参考までに、bootさせる為に、新しい方をsdbにするという手もあります(自分はgrubを両方に入れているので、どちらでもOK)。
# hdparm -I /dev/sda
# hdparm -I /dev/sdb
# hdparm -I /dev/sdc
# fdisk -l /dev/sda
# fdisk -l /dev/sdb
# fdisk -l /dev/sdc
↑これらで、念のため入れ替えたHDDを含めて、どう接続しているかの確認をします(新しいHDDが実はつながれてなかったりすると、sdaが想定していないHDDだったりします)。
# fdisk /dev/sda
でsdbと同じパーティションを作ります。
コマンド的には、以下です。
n (新規パーティション作成) → p (基本パーティション)
 → 1 → 1 (開始シリンダ) → 121108 (終了シリンダ)
n (新規パーティション作成) → p (基本パーティション)
 → 2 → 121109 (開始シリンダ) → 121601 (終了シリンダ)
t (パーティションID変更) → 1 (パーティション番号) → fd (Software RAID用ID)
t (パーティションID変更) → 2 (パーティション番号) → fd (Software RAID用ID)
a (起動フラグ設定) → 1 (パーティション番号)
w (ディスクに書き込んでfdiskを終了)

作成したパーティションをRAIDに参加させます。
# mdadm /dev/md0 --add /dev/sda1
# mdadm /dev/md1 --add /dev/sda2
このコマンドで、同期が始まります。

同期には時間かかりますね(同期終了かどうかは下記コマンド)。
# mdadm --detail /dev/md0
最後のstateに注目してください。『active sync』で同期完了。『spare rebuilding』は同期中。

ちなみに、壊れたHDDを無理やりRAIDに参加させても
# mdadm --detail /dev/md0
の最後の表示のstateに『faulty spare』の/dev/sda1が追加されるだけですね。

後は、ブートローダをsda1に入れるだけです。
sda1は、/bootパーティションです。
まずは確認してみます。
# df /boot
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/md0 942335500 6545500 887150008 1% /
マウントが『/』となっている事に注目(『/boot』となっている場合(後述)は、grubインストール時にbootディレクトリ指定はいらない)。
/bootパーティションがmd0なので、md0が何で構成されてるかを見ます。
# grep md0 /proc/mdstat
md0 : active raid1 sda1[0] sdb1[1]
sda1とsdb1でmd0が構成されています。
# grub
Probing devices to guess BIOS drives. This may take a long time.
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
grub> device (hd0) /dev/sda (sdaを指定する)
device (hd0) /dev/sda
grub> root (hd0,0) (最後の0が1番目のsda1という事で、1つずつズレた番号を指定します)
root (hd0,0)
Filesystem type is ext2fs, partition type 0xfd
grub> install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/grub.conf
install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/grub.conf
dfが/bootの場合:grub> install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf
grub> quit
quit

再交換
あれから2年。
また、HDD不調のメールが届きました。
『SMART error (CurrentPendingSector) detected on host:******』
前回換えたsdaですね(2年は早い気がするなぁ)。
今回は、いきなり壊れるのではなく、Current_Pending_Sector のエラーが時間ごとに増えていってます。
# smartctl -a /dev/sda
197 Current_Pending_Sector ←この値
最初は1だったのが、2日後には329。
Current_Pending_SectorのHDDをフォーマットし直してもダメなのは以前の実験で分かってるので、素直に交換ですね。
RAID組んでいるので、今のところサーバ運営には問題無し(1つがダメでももう一つがあるし、バックアップとして3重にしてある)。
不安定な状態でありながらも、RAID自体には問題ないみたい。
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[1] sda2[0]
3959936 blocks [2/2] [UU]
md0 : active raid1 sdb1[1] sda1[0]
972799872 blocks [2/2] [UU]
unused devices: <none>
HDD来たので、交換開始!
基本的には前と同じ。RAIDとしてまだ認識しているので、切り離す作業が最初にあるくらいです。
# mdadm --manage /dev/md0 --fail /dev/sda1
# mdadm --manage /dev/md1 --fail /dev/sda2
# cat /proc/mdstat
# mdadm --manage /dev/md0 --remove /dev/sda1
# mdadm --manage /dev/md1 --remove /dev/sda2
# cat /proc/mdstat



POP
管理人さんのブログ 2015-04-21 11:33:37

ローカルなPCに溜まってるLinuxメールをLAN越しに読む

まずは、POPサーバをインストール
#yum -y install dovecot
設定ファイルを編集。
#vi /etc/dovecot.conf
protocols = pop3
mail_location = maildir:~/Maildir
first_valid_uid = 100 <-メールを読むユーザIDの最小値

rootのメールは読めないので、ユーザに転送する。
# vi /etc/aliases
の最後にrootのメールを転送する指定があるので書き換えて、
# Person who should get root's mail
root: hogehoge
※info等、いくつかは既に登録されているので、それらも転送させない場合は書き換えます。
newaliasesコマンドで設定をDBに反映させる。
# newaliases

サービスをスタートさせて、クライアントで取れるか確認。
# /etc/init.d/dovecot start

後は、起動時ON設定。
# chkconfig dovecot on

iptables のポート開放はしてあげてください。
# iptables -I INPUT -p tcp --dport 110 -j ACCEPT
# /etc/init.d/iptables save

LAN越しだけなので、これでヨシ。


インターネット経由でメールを受け取る
インターネット越しなのでパスワードは暗号化。
dovecot.confの差
# diff dovecot.conf.bak dovecot.conf
< mechanisms = plain
> mechanisms = cram-md5
< #passdb passwd-file {
> passdb passwd-file {
> args = /etc/dovecot-passwd
< #}
> }
< passdb pam {
> #passdb pam {
< }
> #}
cram-md5で、passwd-fileを使うという事(pamはコメントアウトする)。

/etc/dovecot-passwdを作ります。
# dovecotpw
Enter new password: (暗号化するパスワード)
Retype new password: (暗号化するパスワード)
{HMAC-MD5}c02...............................
コピーしておいて、
# vi /etc/dovecot-passwd
hogehoge:{HMAC-MD5}c02...............................
# /etc/init.d/dovecot restart して、
クライアント側で暗号化したパスワード認証が通ればOK。


Linuxコマンド
管理人さんのブログ 2015-04-21 11:03:04
Linuxコマンド

■サービス
/etc/init.d/mysqld start (サービス開始:例mysql)
/etc/init.d/mysqld stop (サービス停止:例mysql)
chkconfig --list (システム起動時のサービス設定リスト)
chkconfig mysqld on (システム起動時にサービスを開始する設定)
chkconfig mysqld off (システム起動時にサービスを開始しない設定)

■時刻
date
システム時計の時刻

hwclock --show
ハードウェアクロックの時刻
hwclock --systohc
システム時刻をハードウェアクロックに書き込む
hwclock --hctosys
ハードウェアクロックの時刻をシステム時計に書き込む

■圧縮・展開
tar -cz compdir/ > compdir.tar.gz
tar zxvf compdir.tar.gz(オプションpを入れるとパーミッション保持展開)
unzip compfile.zip(zip形式)
gunzip compfile.gz(gzip形式)

■ディレクトリまるごとコピー
cp -r directory/ newdirctory
上書き確認を強制的に無しにしたい場合は -f を入れます(alias cp で、alias cp='cp -i'と出る時は、-i オプションが付いてるので、cp の前にバックスラッシュをつけて元のcpコマンドを実行させます \cp -f )。

■ディレクトリまるごとchmod
chmod -R 777 directory/

■ディレクトリまるごと削除
rm -r directory/

■遠隔コピー
scp senddata user@host:.
逆だと、
scp user@host:recvdata .
(ここでパスワードを聞かれる)

■パスワード生成
mkpasswd -s 0 -l 8
↑特殊文字を省いて8文字にするには、こんな感じ。

■SLコマンド
sl
こんなのが走り抜けます。

■ユーザ
ユーザ追加
#useradd hogehoge -u 123 -g 456 -s /bin/bash -m -d /home/hogehoge
※メールアカウント等のログインしないユーザを作る場合は、/bin/bash を /bin/false にします。
※ホームディレクトリを必要としない時は -m を -M としますが、その場合アカウント自体作る必要ないかも…。
パスワード設定
#passwd hogehoge
ユーザ削除(ホームディレクトリごと削除)
#userdel -r hogehoge
ホームディレクトリ変更
#usermod -d rehomedir hogehoge

■グループ
グループ作成
#groupadd -g 4000 groupname
グループ削除
#groupdel groupname

■ファイル検索
ルートから探す場合
find / -name hogehoge.txt

■grep
AND検索はパイプで繋げて限定していく。
cat hogehoge.txt | grep searchstr1 | grep searchstr2
OR検索は-e
cat hogehoge.txt | grep -e "searchstr1" -e "searchstr2"

■テストメール送信
echo "To:*****@***.***" | /usr/sbin/sendmail -t

■空き容量確認
df
単位はキロバイトです。

■空きメモリ確認
free
実メモリ総量はMem:のtotal項目で、2行目の buffers/cache: のfree項目が、実際の空きメモリです。

■負荷
実際に動いている状態で、topコマンド。
Shift + p でCPU負荷順に並び替えできます。

■リモートログイン
ssh hostname
IPアドレスでもOKです。

■ファイル取得
HTTPやFTP経由でファイルを取得します。
wget ftp://hogehoge.com/hogehoge


HDD不調
管理人さんのブログ 2012-10-19 22:28:44

HDD不調メールが飛んできました。

# cat /var/log/messages
で、確認すると…。
smartd[3112]: Device: /dev/sdc, 16 Currently unreadable (pending) sectors
確かに、セクターが読めないと表示されています。
このエラーは、一度データを書き込んでやると再マッピングされ、不安定な状態から立ち直る事があるみたいですね。
…という訳で、チャレンジ!

# smartctl -a /dev/sdc
を見ると、
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 16
と、最後の値が『16』。
HDDを交換してもいいんですが、今回はバックアップ用のHDDでメインとしては使っていないので、不良セクタの解消に挑戦してみます。
まず、現状を把握する為に、セルフテスト。
197のちょっと前に、
Extended self-test routine
recommended polling time: ( 230) minutes.
とある通り、セルフテストすると4時間近くかかります。
気長にやりましょう(-t longを付けます)。
# smartctl -a -t long /dev/sdc
テスト開始。
Testing has begun.
Please wait 230 minutes for test to complete.
Test will complete after Tue Oct 2 14:36:46 2012
4時間後なので、他の事をやって時間を潰します。
…………
…………
…………
4時間後。
# smartctl -l selftest /dev/sdc
smartctl version 5.38 [x86_64-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 22225 210770294
不良ブロックのLBA番号が210770294だと分かります。

# smartctl -a /dev/sdc して 197を見ると、以前と同じ16セクタでした。

不良ブロックがどのパーティションにあるのか確認。
# fdisk -lu /dev/sdc
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = セクタ数 of 1 * 512 = 512 bytes
デバイス Boot Start End Blocks Id System
/dev/sdc1 63 1953520064 976760001 83 Linux
一つしかないパーティションに不良ブロックがあります(まぁ当たり前ですが…)。
開始LBA位置は、63。

ブロックサイズの確認。
# tune2fs -l /dev/sdc1 | grep Block
Block count: 244190000
Block size: 4096
Blocks per group: 32768
4096ですね。

これで、上書きするブロックが計算できます。
(不良ブロックLBA番号 - 開始LBA位置) * 512 / ブロックサイズ
= (210770294 - 63) * 512 / 4096
= 26346278

# dd if=/dev/zero of=/dev/sdc1 bs=4096 count=1 seek=26346278
16+0 records in
16+0 records out
65536 bytes (66 kB) copied, 8.3e-05 seconds, 790 MB/s

# smartctl -a -t long /dev/sdc
で、数時間待って、
# smartctl -a -l selftest /dev/sdc で、再度確認すると、197が0になってくれ…ません!
countを1から増やしたところ、16->8にはなったんですが、いくら数値をあげてもそこから減らないですね…。
ん~、null書き込んでも、ダメな物はダメという事でしょうか?
あきらめて、HDD交換します。


ネットコマンド
管理人さんのブログ 2010-04-06 12:28:21

チェック
まずはネット設定確認。
ifconfig (Windowsはipconfig)

名前解決ができてpingが届くのかどうか。
nslookup www.example.com
ping www.example.com

pingが届かないなら、どこまで届いているかのチェック。
tracert www.example.com

ポートで待ち受けているかどうかのチェック。
例えば、587番ポート。
# netstat -an | grep 587
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN

pingが届いているようなら、実際にサーバソフトに繋げてみる。
telnet www.example.com 80
ちなみにこの80番ポートはWebサーバ。
何かキー入力をして改行した後の反応を見る(エラーメッセージを返すか)。

メールチェックはポート番号110。
# telnet mail.example.com 110
Trying ...
Connected to mail.example.com.
Escape character is '^]'.
+OK Welcome.
USER ******** <- ユーザID
+OK
PASS ******** <- パスワード
+OK Logged in.
STAT
+OK 0 0
QUIT
+OK Logging out.
Connection closed by foreign host.


FTP
$ftp www.example.com
Name:
Password:
ftp>bin
ftp>passive
ftp>put hogehoge.tar.gz
ftp>bye


WebサーバのSSL化
管理人さんのブログ 2009-11-30 16:26:44

まずはランダムなファイルを生成
現存するファイルを元に生成。
# openssl md5 * > rand.dat
*: No such file or directory
# openssl md5 * > rand.dat
ディレクトリに何も無いと怒られますが、2度目で1度目のrand.datを元にランダムファイルが作られます。

# ls
rand.dat
# cat rand.dat
MD5(rand.dat)= d41d8cd98f00b204e9800998ecf8427e

このランダムなファイルを元に、パスフレーズ付き秘密鍵を生成
# openssl genrsa -rand rand.dat -des3 1024 > ca.key
48 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
...................................++++++
.............................................++++++
e is 65537 (0x10001)
Enter pass phrase:(パスワード入力)
Verifying - Enter pass phrase:(再パスワード入力)

秘密鍵ができました。
# cat ca.key
-----BEGIN RSA PRIVATE KEY-
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,1422EC9B7CFF1AF9

L7JNy0g6eW9Mo9hbJiXxeRxoNb19QI9NR7++qExKEHbL3tg9MA9xkbEcLERY4TNo





8uXtS0Li0LcBMD1mfQ7SdLG/MWXEGl4eaFqMHEglIfvxCnxLakSYKPFKgM9UQ9ZW
HSG34E0wp40GhtQTRzYh4wQCvSBfPlPXuusLmj75EqWhqAJgQzuIGw==
-----END RSA PRIVATE KEY-
この秘密鍵は、Webサーバの設定で使います。

秘密鍵を元にCSR(証明書要求)を作成
# openssl req -new -key ca.key -out ca.csr
Enter pass phrase for ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Shizuoka
Locality Name (eg, city) [Newbury]:Kosai-shi
Organization Name (eg, company) [My-Company-Ltd]:Test Co., Ltd.
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:test.com
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

できました、CSR(証明書要求)。
# ls
ca.csr ca.key rand.dat

# cat ca.csr
-----BEGIN CERTIFICATE REQUEST-
MIIBoDCCAQkCAQAwYDELMAkGA1UEBhMCSlAxETAPBgNVBAgTCFNoaXp1b2thMRIw





4iSZ4RZlMJ4UOJPHz2IUkOLhTc3JAIHGxZ1gWeMJuPmYhrHyvxZTD6CLclw5v9ne
ceOdnl5ABBMd1EwNNGeDvkqhIQ+Q+4ehRR+6gaSaI+3rn9zQ
-----END CERTIFICATE REQUEST-

認証局から、署名付きの証明書を貰う
できたCSR(証明書要求)を認証局に送ると、証明書が送られてきます。
この証明書もWebサーバの設定で使います。
無料でSSL証明書を発行してくれるサイトはそんなには無いようです。
・CAcert
・startssl

ちなみに、CSRの作成を飛ばして、いきなりサーバ証明書を作るのは以下。
# openssl req -new -x509 -days 3653 -text -key ca.key -out ca.crt

Webサーバ設定
『ports.conf』
Listenを80から443に変更。
『ssl.conf』
SSLPassPhraseDialog を builtin から exec:/usr/local/sbin/pass.sh に変更してパス入力自動化。
『pass.sh』はこんな感じ。
# cat pass.sh
#!/bin/sh
host=`echo $1 | cut -d: -f1`
if [ "$host" = "test.com" ]; then <-注)全角[]は本来半角です
echo testpasswordabc;
fi
"$host" = "****" の、****が間違っていたり変なホストが混じっているとapache の起動に失敗します。
しっかりapacheのServerName設定と合わせる必要があります。

後は、オリジナルのssl.confをそのまま利用して「秘密鍵」と「証明書」を指定してあげれば、httpsでアクセスできる。
SSLCertificateFile /etc/httpd/conf/ssl/ssl.key/ca.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/ssl.key/ca.key


IP aliasingとバーチャルホスト
管理人さんのブログ 2009-05-20 15:45:50
IP aliasingとバーチャルホスト

IP aliasingの仕方

  ひとつのNICに複数のIP addressの割り当てる。
  /etc/network/interfaces に
   ==
   auto eth0:0
   iface eth0:0 inet static
   address 192.168.1.93
   netmask 255.255.255.0
   ==

  CentOSは、/etc/sysconfig/network-scripts/ ←この辺り
  Turbolinuxは「turbonetcfg」コマンド。



バーチャルホスト設定

  /etc/apache2/ports.conf
   ==
   Listen 192.168.1.93:80
   ==

  /etc/apache2/sites-available
  に、それぞれのcontents.confを置く。

  /etc/apache2/sites-enabled
  で、リンク作成。
  ln -s /etc/apache2/sites-available/contents.conf contents

  CentOSは、/etc/httpd/conf.d/ ←この辺り
  Turbolinuxは、この辺り全部httpd.conf内。


後は、ネットワークとapacheの再起動。

# /etc/init.d/networking restart
# /etc/init.d/apache2 restart



Turbolinux 10 Server
管理人さんのブログ 2009-01-22 10:48:38
Turbolinux 10 Server

■Turbolinux 10 Server の インストール

まずは↓ここから登録。
https://service.turbolinux.co.jp/tech/form/download_10s-starterkit.php
メールでインストールディスクイメージのリンクがもらえる(CD2枚)。

ROM焼きしたら、BIOSでCD-ROMブートの優先を上げて、インストールディスクからboot。
サーバ運用なので、最初に「text」を選ぶ。
後は、「Xを設定しない」にするくらいで、標準的な項目を選んでいけばOK。

パッケージディスクから「turbolinux server Developer Edition 10」をインストールした場合、最初にturbo+はない。
turbopkgでアップデートする。バグフィックスのアップデートをすると、turbo+が使える状態になる(逆にturbopkgは無くなる)。
ココからは、下記のturbolicensecfgの作業。

ちなみに、このパッケージは
・ユーザ作成削除はできない。
・パスワード変更不可
・開発用テストユーザーがtest0-test9(パスワードも同じ)

インストール完了したら、まずはライセンス登録。
#turbolicensecfg
メールに書かれているシリアルとメールアドレスを入れて「Send」。

次に最新にアップデート。
#turbo+ --cui
「Update」を選ぶだけで更新してくれます。

#adduser hogehoge
#passwd hogehoge
で、ユーザー登録すれば、そのユーザーでリモートログインできる様になる(rootでは入れない)。

ちなみに、ユーザ削除は
#userdel -r hogehoge


#turboservice
で動かすサービスを決めます。
インストールされて無いサービスは
#turbo+ --cui
の「Install」で持ってくる。
(入れたのはmysql-serverとphp4-mysqlとmysql-client)

httpdを起動させれば、PHPもMysqlも動いている(phpinfo();で確認)。

ネットワーク系の設定は、
# turbonetcfg
で、やります。

確認は、普通に
# ifconfig
# ping
等。

追記
試用期間が過ぎると、↓こんな感じでupdateできなくなる。


SUSE アクティベーションコード
管理人さんのブログ 2007-07-05 17:57:38
SUSE アクティベーションコード

かなり分かりにくいのでメモ。

Novellのページで普通にアカウントを作成。
アカウントの管理画面は↓(ここ)の「ノベルカスタマーセンター」
で、カウントされたりします。

アクティベーションコードは、Novellサイト、LinuxOSページの
「Linuxサーバ」の中「今すぐダウンロード」のリンク先
バージョンやプラットフォームでリンクされたページに書いてある。
URLはここです。→http://www.novell.com/ja-jp/products/server/eval.html

実際のアクティベーションコードを入力する所は、YaST2の[ソフトウェア]-[オンラインアップデートの設定]で[登録コード]をチェックするとブラウザを開く様な仕組みになっていて、そこからログインして書き込む。


パーティション削除
管理人さんのブログ 2007-07-04 09:15:54

fdiskを使う

#fdisk /dev/hda
Command:m ヘルプ
Command:p パーティション表示

参考
表示したパーティションIDの一覧は
Command:l で、一覧表示できる。

Command:d 削除したいパーティション番号を入れると消える。
Command:w で書き込んだ時点で有効になる(Command:q で抜ければ無効)。


logrotate
管理人さんのブログ 2007-07-03 13:32:38

設定ファイルは
/etc/logrotate.conf
で、中身を見ると
include /etc/logrotate.d
とあるので、実際はlogrotate.dディレクトリ内の変更でいける。

いろいろなサービスがあるが、例えばapacheなら
/etc/logrotate.d/apache2のファイルに
/var/log/apache2/test.co.jp-error_log {
compress
monthly
maxage 365
rotate 99
missingok
create 644 root root
postrotate
/etc/init.d/apache2 reload
endscript
}
こんな感じ(例はerrorですが、accessも)のを追加してあげて、
/etc/init.d/apache2 reload すればOK。


crontab
管理人さんのブログ 2007-07-03 11:07:02

編集は
crontab -e

内容は
分 時 日 月 曜日 コマンド
の順。

実際には
/var/spool/cron/crontabs
↑ここにユーザ毎に保存されている。

登録されているcrontabを表示するだけなら
crontab -l


<< 2017年12月
2017年12月14日(木)
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

 最近の書き込み

SMTP
  <2016-04-06 12:03:21>
S.M.A.R.T.
  <2015-05-07 08:03:36>
POP
  <2015-04-21 11:33:37>
Linuxコマンド
  <2015-04-21 11:03:04>
アルバートオデッセイ
  <2014-08-04 23:12:12>
トイレ
  <2014-01-31 08:58:16>
(*)調光スイッチ
  <2013-09-30 10:46:11>
(*)調光スイッチ
  <2013-09-20 01:26:34>
(*)調光スイッチ
  <2013-09-17 12:21:11>
(*)調光スイッチ
  <2013-09-15 20:13:59>


 カテゴリー

おでかけ(83)
サッカー(45)
旅(45)
DIY(43)
食べ物(39)
映画(36)
家(35)
季節(34)
健康(32)
地元(29)
本(29)
家族(29)
モバイル(23)
生物(23)
学校(22)
家電(21)
ドラマ(21)
風景(18)
Web(18)
PCハード(17)
通勤(16)
ゲーム(16)
Winアプリ(15)
ブログ(14)
Linux(13)
 ・ SMTP
 ・ S.M.A.R.T.
 ・ POP
 ・ Linuxコマンド
 ・ HDD不調
 ・ ネットコマンド
 ・ WebサーバのSSL化
 ・ IP aliasingとバーチャルホスト
 ・ Turbolinux 10 Server
 ・ SUSE アクティベーションコード
 ・ パーティション削除
 ・ logrotate
 ・ crontab
飲み物(13)
自転車(13)
ゴルフ(11)
ブラウザ(11)
ネットワーク(10)
javascript(10)
足技(9)
php(9)
会社(8)
感銘映像(8)
税金(6)
空想(5)
VMware(5)
Ruby(4)
データベース(3)
perl(1)