Linuxの最近のブログ記事

OSXのMailではアカウントを変更してFromを書き換えた場合、
503 not your domain

エラーが返って来てしまい、上手くメールのFromを変更できなかった。

WindowsのBeckyだとFromの変更が出来たので、どのように違うかを見てみるために、telnetでテストをしてみた。

telnet メールサーバ 587
EHLO メールサーバ

を入力すると、

250 AUTH LOGIN PLAIN CRAM-MD5
が返ってくる。

perl -MMIME::Base64 -e 'print encode_base64("ユーザ名\0ユーザ名\0パスワード");'

で、パスワードを作成し、

AUTH PLAIN 作成したパスワード

を入力すると、

235 ok, go ahead (#2.0.0)
が返ってくる。

MAIL FROM: 送信元アドレス(認証に使ったアドレス)
RCPT TO: 送信先アドレス

を入力すると、
ともに、250 okが返ってくる。

メール内容の入力は、
DATA
を入力し、
Subject: 本文
From: 変更したいFromアドレス

本文
.
で、Fromは変更したアドレスで送信される。

DATA以下でFromが設定可能なら、メールが送信される。
OSXのMailではこれが出来ないのかな・・・

参考
http://www.aconus.com/~oyaji/mail2/smtp-auth-tst.htm

※.htaccessで設定したいため、httpd.confで、AllowOverride AuthConfigを設定

・Basic認証
1)パスワードファイルの作成
htpasswd -c /var/www/basicpass user

2).htaccessの設定
AuthType Basic
AuthName "xxxxxxx"
AuthUserFile /var/www/basicpass
Require valid-user

●Digest認証
1)モジュールの確認
mod_auth_digest.soがhttpdに組み込まれているか確認
2)パスワードファイルの作成
htdigest -c /var/www/digest/digestpass "レルム名" user
3).htaccessの設定
AuthType Digest
AuthName "レルム名"
AuthUserFile /var/www/digest/digestpass
Require valid-user

※ AuthDigestFileで、パスワードファイルを設定するのは、apache2。2.2からはAuthUserFileで設定

------
設定すると、サーバからのレスポンスヘッダで、
●Basic認証
HTTP/1.x 401 Authorization Required
Date: Fri, 27 Mar 2009 08:20:24 GMT
Server: Apache
WWW-Authenticate: Basic realm="xxxxxxx"

●Digest認証
HTTP/1.x 401 Authorization Required
Date: Fri, 27 Mar 2009 08:13:25 GMT
Server: Apache
WWW-Authenticate: Digest realm="レルム名", nonce="5TCQThVmBAA=2325888f403cfd706f83155535552c0d23c9b99b", algorithm=MD5, qop="auth"

を受け取る。

パスワードを入力し、送信すると、

●Basic認証
Authorization: Basic aGllOmxvb2s=

※Base64エンコードされているだけなので、Base64エンコードをすると、
「ユーザ名:パスワード」を取得可能

●Digest認証
Authorization: Digest username="ユーザ名", realm="レルム名", nonce="5TCQThVmBAA=2325888f403cfd706f83155535552c0d23c9b99b", uri="/", algorithm=MD5, response="6cafs106a85edg878s49a7d00f4b3244", qop=auth, nc=00000001, cnonce="01b6730aae57c007"

が送信される。

nmapというソフトで簡単に分かる。

CentOSにはデフォルトでインストールされていないので、

# yum install nmap

インストール後に、

# nmap localhost
で自分のサーバの空いているポートが分かる。

ポートの一覧は、このサイトを参考にした。
http://library.station.ez-net.jp/references/code-tables/network/port.asp

ありがとうございます。

FTPソフトはクライアントで見た時に、日本だと9時間ずれている。
これは、時間のローカライズがされていないから。

/etc/vsftpd/vsftpd.conf
に、
use_localtime=YES

を追加する事によって、FTPソフトで日本の時間で確認出来る。

apache+phpを利用している場合、適切な設定をしていないと、それぞれのバージョンが分かってしまう。

レスポンスヘッダに、

Server: Apache/2.0.52 (CentOS)
X-Powered-By: PHP/4.3.9

のように表示される。

ServerのApacheのバージョンを見えなくしたい場合、
httpd.confの
ServerTokens OS

ServerTokens ProductOnly
に変更

X-Powerd-Byを見えなくしたい場合、
php.iniの
expose_php = On

expose_php = Off
に変更

変更後httpdの再起動が必要。

変更後確認すると、

Server: Apache

しか表示されなくなる。

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
を実行すると、

/etc/mail/sendmail.mc:10: m4: Cannot open /usr/share/sendmail-cf/m4/cf.m4: そのようなファイルやディレクトリはありません

と出る場合、sendmail-cfがインストールされていない可能性がある。

yum install sendmail-cf
でインストール後、再度m4で作成する。

CentOSの4.5はデフォルトでインストールされていませんでした。

who コマンドで可能。

サーバをシャットダウンする時や、何か確認をする時、他の人が操作していないかをチェック出来る。

コマンドラインから、sshで外部サーバに接続し、レポジトリよりデータをエクスポートする場合。

環境変数を設定
export CVS_RSH=ssh

接続
cvs -d ユーザ名@サーバ:CVSレポジトリ export -r タグ名 レポジトリ名

例)
cvs -d user@example.com:/home/cvsroot export -r project_start project

mod_rewriteの設定方法
RewriteCond %{REQUEST_FILENAME} !-f
は、RewriteRuleのファイルが無かった場合。(!が否定 -fがファイルがあった場合)

RewriteRule /test/([0-9a-z]+)\.html index.php?url=$1

は/test/aaa.html
にアクセスがあった場合、 index.php?url=
にaaaを渡す。

.htaccessを利用するため、デフォルトの

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>


AllowOverride ALL
としたが上手く動作しない。

すぐ下に、
<Directory "/var/www/html">
Options FollowSymLinks
AllowOverride None
</Directory>

となっていたから。

http://httpd.apache.org/docs/2.0/ja/mod/core.html#directory

設定は、順番に上から(パス的に)読み込んで行き、一番近いDirectoryの値に上書きされていく。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちLinuxカテゴリに属しているものが含まれています。

前のカテゴリはJavaScriptです。

次のカテゴリはMac OSXです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。