Hatena::Groupmylinux

今日も元気にlinux

2009-04-29

[][]postfixでメール送信 10:13 postfixでメール送信 - 今日も元気にlinux を含むブックマーク はてなブックマーク - postfixでメール送信 - 今日も元気にlinux postfixでメール送信 - 今日も元気にlinux のブックマークコメント

postfixは去年の12月17日に設定に挑戦したのだが上手く動かなかった。特に使う予定もなかったので分からないまま放置していたが、今回自鯖からメールを送信したかったため、再挑戦してみた。

去年も今回も参考にしたのはこのサイト。

メールサーバー構築(Postfix+Dovecot) - Fedoraで自宅サーバー構築

OP25B(Outbound Port 25 Blocking)対策 - Fedoraで自宅サーバー構築

最初のページから順番に設定を見直すも、間違っているところが分からない…。ので、マニュアルから外れて試行錯誤した結果、一つ目の間違いが分かった。

1.プロバイダSMTPアドレスが間違っていた。

僕はbbexciteを利用しているので、relayhostに設定するSMTPアドレスは

smtp.star.bbexcite.jp

これを

smtp.star.bbexcite.co.jp

としていたため、正しくメールリレーされていなかったのだ…。がっかりした所で改めてメールを送って成功!しなかった。

553 sorry, that domain isn't in my list of allowed rcpthosts 

メーラーデーモンからこんなメッセージ付きのエラーメール着信。どうやらSMTP認証ができていない時に出るらしいので、IDやパスワードを見直したが特に間違っている所もなし。ここでまたマニュアルから外れて試行錯誤した結果、間違いが分かりました。

2.そもそもSMTP認証が有効になっていなかった。

OP25B対策(Outbound Port 25 Blocking対策)

特に最初の「smtp_sasl_auth_enable = yes」は、自分がサーバとしてSMTP-AUTHをサポートするときの「smtpd_sasl_auth_enable = yes」と勘違いしやすいが全く別なので必ず設定が必要である。

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
    permit_auth_destination,
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination

<strong>smtp_sasl_auth_enable = yes</strong>
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = LOGIN, CRAM-MD5, PLAIN

いや、分かりづれーから!

てことで、太字の部分を追加した結果、無事gmailにメールを送れました。

前回も今回も、酒飲みながらやったのがまずかったかな。うん。

EdnaEdna2012/02/25 20:30Just what the dtoocr ordered, thankity you!

niysirniysir2012/02/27 03:16kmTUqx <a href="http://sfbnjtbdczdu.com/">sfbnjtbdczdu</a>

skhemzzctskhemzzct2012/02/28 00:55eOBtkx , [url=http://gqqiwsmozmtd.com/]gqqiwsmozmtd[/url], [link=http://omkhwfhyjbmb.com/]omkhwfhyjbmb[/link], http://tvulzeainiqg.com/

detiyduzmwdetiyduzmw2012/03/01 20:14nugR7u <a href="http://nxxglizgukkv.com/">nxxglizgukkv</a>

yetmwftlyetmwftl2012/03/14 04:45UvnsJE , [url=http://ytnoccquygzq.com/]ytnoccquygzq[/url], [link=http://hvtwwhvcdnri.com/]hvtwwhvcdnri[/link], http://gbeqjonpwhis.com/

2008-12-18

[][][]メールサーバを立ててみる 23:19 メールサーバを立ててみる - 今日も元気にlinux を含むブックマーク はてなブックマーク - メールサーバを立ててみる - 今日も元気にlinux メールサーバを立ててみる - 今日も元気にlinux のブックマークコメント

WebサーバSambaFTPサーバときたらメールサーバを構築しよう。

メールサーバー構築(Postfix+Dovecot) - CentOSで自宅サーバー構築

PostfixによるSMTPサーバの構築(CentOS標準版編)

設定については以上の2サイトが分かりやすすぎるのでここでは気になった所だけメモ。

これで内部<->内部へは簡単にメールが送れる。問題は外に出るとき。

安斎先生、外に出たいです…。

スパムメールが横行するこのご時世、どこの馬の骨とも分からんサーバには簡単にメールを送らせない、ということで各プロバイダOP25B対策を実施中。僕はプロバイダにBBExciteを使っているのだが、BBExciteではOP25Bのために別料金でメールを契約しないといけないらしい。

??3271 BB.exciteについて - Web Patio - Fedoraで自宅サーバー構築

…といろいろ手順がややこしくなってきたのでまた今度。

メモ

OP25B対策(Outbound Port 25 Blocking対策)

OP25B(Outbound Port 25 Blocking)対策 - CentOSで自宅サーバー構築

2008-12-08

[][]crontabで設定したタスク実行時に、メールを送信しないようにする。 09:39 crontabで設定したタスク実行時に、メールを送信しないようにする。 - 今日も元気にlinux を含むブックマーク はてなブックマーク - crontabで設定したタスク実行時に、メールを送信しないようにする。 - 今日も元気にlinux crontabで設定したタスク実行時に、メールを送信しないようにする。 - 今日も元気にlinux のブックマークコメント

crontab -e で30分に1回タスクを動かしてるんだが、30分に1回メールが飛んできてウザい!cronの設定でメールを飛ばさないようにしたい!と思い、/etc/crontabファイルを編集。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#MAILTO=root
MAILTO=""
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

cronは1分に1回設定ファイルを見ているらしいから、これでメール来なくなるよね…と思いきや引き続き来る。念のため service crond restart したけれどそれでも来る。こりゃおかしいと思いいろいろ調べると/etc/anacrontabというファイルがあり、そっちの設定を変更しなければいけない様子。

no title

上記サイトの説明では、結局cronからanacronが呼ばれるので、anacronの設定ファイルを編集しないといけないみたい。

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""

1       65      cron.daily              run-parts /etc/cron.daily
7       70      cron.weekly             run-parts /etc/cron.weekly
30      75      cron.monthly            run-parts /etc/cron.monthly

上記のようにMAILTOを編集したところ、めでたくメールが来なくなりました…と言いたい所だけどまだ来る!なんで!?

実はcrontab -e で設定するのでした。

どうやらcronには2つの動かし方があるらしく。

1./etc/crontabに記載されている以下のディレクトリスクリプトを設置し、時次、日次、週次、月次タスクとして動かす。この場合は/etc/crontabのMAILTOオプションが有効になる。

  • /etc/cron.hourly
  • /etc/cron.daily
  • /etc/cron.weekly
  • /etc/cron.monthly

2.crontab -eで設定ファイルを呼び出し、自分の好きな時間にcronを実行するようにする。この場合、スクリプトの標準出力がcrontabを設定したユーザーにメール送信される。そしてcrontab -eの設定ファイルは**/var/spool/cron/user**にある。なんと分かりにくい…。

ということで、以下のように標準出力をブラックホールに投げてやればメールは来なくなる。

crontabコマンドの使い方: UNIX/Linuxの部屋

# 標準出力のみメールしない場合
* * * * * command 1> /dev/null

# 標準エラーもメールしない場合
* * * * * command >/dev/null 2>&1

[][][][]パッケージ管理システムまとめ 11:31 パッケージ管理システムまとめ - 今日も元気にlinux を含むブックマーク はてなブックマーク - パッケージ管理システムまとめ - 今日も元気にlinux パッケージ管理システムまとめ - 今日も元気にlinux のブックマークコメント

LinuxではWindowsでいうWindowsUpdateみたいなパッケージ自動更新システムがあります。ただWindowsと違ってOSのコアモジュールからサードパーティ(?)製のアプリまで一緒くたに管理されてるのが特徴。なので、メールソフトも音楽再生ソフトも全部同じコマンドで管理できます。

ディストリによる管理コマンドの違い。

Redhat系ではyum、Debiun系ではaptというコマンドを使って管理します。ちなみにディストリによってはsynaptic(Ubuntu)、YaST2(OpenSUSE)などのGUIが用意され、それこそWindowsUpdate的な感覚でパッケージを管理できます。

yumの主なコマンド

パッケージアップデート
アップデート可能なパッケージを一覧表示する
yum check-update
アップデート可能な全てのパッケージをアップデートする
yum update
指定したパッケージをアップデートする
yum update [パッケージ名]

OSインストール後に、まずyum updateするのが常套手段。-yをつけると自動応答モードとなる。

パッケージ検索/情報表示
リポジトリに問い合わせを行い、パッケージの検索を行う
yum search [パッケージ名]
リポジトリに問い合わせを行い、利用可能なパッケージを一覧表示する
yum list
インストールされている/アップデート可能なパッケージを一覧表示する
yum list [installed/updates]
利用可能なパッケージの情報を表示(パッケージ指定可能)
yum info (パッケージ名)

yum list installedはローカルを検索するので早い。インストール/アップデート前に検索するとよい。

yum check-updateとyum list updatesは同じである。

パッケージインストール/アンインストール
指定したパッケージをインストール/アンインストール
yum [install/remove] [パッケージ名]
不要ファイル削除
ダウンロードしたパッケージと古いヘッダを削除する。
yum clean
古いヘッダ/パッケージのみ、削除する
yum clean [oldheaders/packages]

aptの主なコマンド

パッケージアップデート
ソフトウェアダウンロードできるサイトのリストの更新
apt-get update
インストール済みのソフトウェアの更新
apt-get upgrade
パッケージ検索/情報表示
パッケージ情報を収集・更新する
apt-cache gencaches
パッケージを検索する
apt-cache search [検索キーワード]
パッケージの情報を開示する
apt-cache show [パッケージ名]

apt-cache showでは、指定したパッケージのインストール情報も表示される。

パッケージインストール/アンインストール
指定したパッケージをインストール/アンインストール
apt-get [install/remove] [パッケージ名]

apt-getなのに、removeが続くのが違和感。

不要ファイル削除

???

aptはこのほかにもいろんなコマンドがあるみたいなので、公式ページを参考にするといいかもしれない。

APT HOWTO (Obsolete Documentation)

HappyHappy2011/10/18 12:32With all these silly wsebites, such a great page keeps my internet hope alive.

jfebneptjfebnept2011/10/19 02:32atANJv <a href="http://xyolhhpmxqxp.com/">xyolhhpmxqxp</a>

yyxgssmbajtyyxgssmbajt2011/10/20 23:48Eq5Orf , [url=http://jbiviyjgtyqg.com/]jbiviyjgtyqg[/url], [link=http://hfqppleurjoo.com/]hfqppleurjoo[/link], http://mbakfxwtkrxp.com/

DanylloDanyllo2012/08/24 17:30I rcoekn you are quite dead on with that.

hpzvijhpzvij2012/08/27 00:04uWzk4f <a href="http://rgxaozfhlnhn.com/">rgxaozfhlnhn</a>

eymppwloxeymppwlox2012/08/27 22:21G5QhMn , [url=http://cdnwloxejnvq.com/]cdnwloxejnvq[/url], [link=http://oywytudxzawt.com/]oywytudxzawt[/link], http://iyaefsvminzy.com/

2008-12-03

[][]vsftpdの基本設定 12:09 vsftpdの基本設定 - 今日も元気にlinux を含むブックマーク はてなブックマーク - vsftpdの基本設定 - 今日も元気にlinux vsftpdの基本設定 - 今日も元気にlinux のブックマークコメント

vsftpdでFTPサーバを動作させたのでメモ。

# vsftpd -v
vsftpd: version 2.0.5

基本設定は/etc/vsftpd/vsftpd.confで行う。以下主要な部分だけを抜粋。後日追加するかもしれん。

# cat vsftpd.conf
# Example config file /etc/vsftpd/vsftpd.conf
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
# 匿名ログインを許可しない
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
# ローカルユーザーのログインを許可する
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
# FTPの書き込みコマンドを許可する
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
# デフォルトのumaskを022とする
local_umask=022

# /etc/vsftpd/user_listを有効にする
userlist_enable=YES
# /etc/vsftpd/user_listをホワイトリストとして動作させる
userlist_deny=NO

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# 以下の3つの設定で、chroot_list_fileに書かれているユーザーはlocal_rootより上のディレクトリに移動できないようになる。
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/user_list
#
local_root=/var/www

vsftpd: version 2.0.5には/etc/vsftpd/ftpusersというファイルがあり、ここに書かれているユーザーはftpログインできない。つまりuser_listに名前がある、かつftpusersに名前がないユーザーのみ、/var/www以下のディレクトリftpログインできる。

なんでこんな仕様になっているかは分からないが、デフォルトではシステムアカウントがuser_listとftpusers両方に記載されており、自分のログインアカウントのみuser_listに記載されていた。つまり何も設定しなくても

service start vsftpd

と打てば自分のアカウントftpログインできる。

もちろんこれは危険なので

ftpログイン専用のアカウントを作成する。

usreadd user01_www
passwd user01_www
usermod -s /sbin/nologin user01_www

useradd -s /sbin/nologinとすれば、システムへのログインを禁止できる。

んで、user_listから自分のログインアカウントを削除し、user01_wwwを追記すればOK。

kazukazu2010/10/01 12:42usreadd じゃなくて useradd ですね。
とても参考になりました。
ありがとうございます。

2008-11-24

[][][]XWindowSystemについて 11:56 XWindowSystemについて - 今日も元気にlinux を含むブックマーク はてなブックマーク - XWindowSystemについて - 今日も元気にlinux XWindowSystemについて - 今日も元気にlinux のブックマークコメント

2種類のXWindow起動方法がある。

1.ランレベル5によるGUIログイン

これは普通。

2.ランレベル3→startx

Redhat系の場合、inittab内のランレベルを変更する、Debian系の場合、update-rc.d -f gdm removeなど、/etc/init.d/gdmを起動させないようにすればCUIログインになる。

startxによって起動された場合、Xクライアントは~/.xinitrc、なければ/etc/X11/xinit/xinitrcを読み込む。どっちがあるかはパッケージによって違うのでlocate xinitrcなどすれば分かる。xinitrcはただのラッパーで本スクリプトはxsessionやXclientsなどになる。どれを呼び出しているかはxinitrcの中に書いてあるので参照する。

同じくXサーバは~/.xserverrc、なければ/etc/X11/xinit/xserverrcを読み込む。

[][][][]XDMの設定について 11:56 XDMの設定について - 今日も元気にlinux を含むブックマーク はてなブックマーク - XDMの設定について - 今日も元気にlinux XDMの設定について - 今日も元気にlinux のブックマークコメント

XDMとはgnomeKDEなど、Windowsでいうエクスプローラのことである。

XDMの設定ファイルの場所について

各種教本では、「XDMの設定ファイルは/etc/X11/gdm(kdm)以下にあるよ」と書いてあるのだが、Ubuntu8.10もCentOS5もそんな所にはファイルを置いていなく、/etc/gdm/以下にパスが変更された。まぁ変更されたってより他のアプリと同じパスに修正されたと言うべきか。

★CentOS5
[user01@eeco gdm]$ ls -al
合計 84
drwxr-xr-x  7 root root  4096  6月 25 05:46 .
drwxr-xr-x 98 root root 12288 11月 24 04:03 ..
drwxr-xr-x  2 root root  4096 11月  5 14:11 Init
drwxr-xr-x  2 root root  4096  6月 25 05:46 PostLogin
drwxr-xr-x  2 root root  4096  6月 25 05:46 PostSession
drwxr-xr-x  2 root root  4096  6月 25 05:46 PreSession
-rwxr-xr-x  1 root root  5536  5月 29 02:19 XKeepsCrashing
lrwxrwxrwx  1 root root    21  6月 25 05:46 Xsession -> ../X11/xinit/Xsession
-rw-r--r--  1 root root  2597  5月 29 02:19 custom.conf
-rw-r--r--  1 root root  4048  5月 29 02:19 locale.alias
drwxr-xr-x  2 root root  4096  6月 25 05:46 modules
-rw-r--r--  1 root root    71  5月 29 02:19 securitytokens.conf

★Ubuntu8.10
user01@ubuntu-ice:/etc/gdm$ ls -al
合計 132
drwxr-xr-x   7 root root  4096 2008-11-23 23:36 .
drwxr-xr-x 124 root root  4096 2008-11-24 09:50 ..
drwxr-xr-x   2 root root  4096 2008-11-24 09:24 Init
drwxr-xr-x   2 root root  4096 2008-10-30 08:07 PostLogin
drwxr-xr-x   2 root root  4096 2008-11-24 09:23 PostSession
drwxr-xr-x   2 root root  4096 2008-11-24 09:22 PreSession
-rwxr-xr-x   1 root root  4182 2008-10-15 18:56 XKeepsCrashing
-rwxr-xr-x   1 root root  6259 2008-10-15 18:53 Xsession
-rw-r--r--   1 root root   132 2008-10-23 22:40 failsafeBlacklist
-rwxr-xr-x   1 root root  8504 2008-10-23 22:40 failsafeDexconf
-rwxr-xr-x   1 root root  4582 2008-10-23 22:40 failsafeXServer
-rwxr-xr-x   1 root root  7443 2008-10-23 22:40 failsafeXinit
-rw-r--r--   1 root root 34161 2008-11-23 23:36 gdm.conf
-rw-r--r--   1 root root  2142 2008-10-15 18:56 gdm.conf-custom
-rw-r--r--   1 root root  3601 2008-10-15 18:56 gdmprefetchlist
-rw-r--r--   1 root root 10871 2008-10-15 18:53 locale.conf
drwxr-xr-x   2 root root  4096 2008-10-30 08:07 modules

CentOSに至ってはgdm.confというファイル名も廃止され、custom.confに変更されている。

CentOS5のgdmの設定 - CreNanの日記

これじゃどの設定ファイルか分かったもんじゃない。このgdm.conf(custom.conf)を編集するといろんな事ができそうなんだが、追っていくときりがないので省略。

[][][]Xサーバの設定 15:57 Xサーバの設定 - 今日も元気にlinux を含むブックマーク はてなブックマーク - Xサーバの設定 - 今日も元気にlinux Xサーバの設定 - 今日も元気にlinux のブックマークコメント

xdmやgnomeKDEはXクライアントでした。Xサーバの設定については

/etc/X11/xorg.conf

で行う。これはX.org X11の場合で、XFree86を導入しているディストリでは/etc/X11/XF86Configというファイルになる。

といってもメジャーなディストリはほぼ全てX.org X11みたいだが。

これも設定を一つずつ見ていくと大変なのでパス。

[][][]コンピューター名の変更 15:57 コンピューター名の変更 - 今日も元気にlinux を含むブックマーク はてなブックマーク - コンピューター名の変更 - 今日も元気にlinux コンピューター名の変更 - 今日も元気にlinux のブックマークコメント

hostnameコマンドでコンピューター名の表示、hostname [コンピューター名]でコンピューター名の変更ができる。コンピューター名の変更には管理者権限が必要である。

ちなみにコンピューター名は

  • /etc/hostnameファイル (Debian)
  • /etc/sysconfig/networkファイル (Redhat)

に記載されており、PC起動時にこのファイルを読み込んでホスト名を決定しているようである。が、hostnameコマンドでコンピューター名を変更しhostnameコマンドで新しいコンピューター名を確認できるが、このファイルに即時反映されない。おそらく内部的に値をキャッシュし次回再起動時に反映するのだろう。が、その影響は再起動前から及んでおり、コンピューター名を変更した後sudoするとエラーメッセ−ジが表示される。

user01@ubuntu-ice:/etc$ sudo -i
sudo: unable to resolve host ubuntu-ice3
root@ubuntu-ice3:~# exit

Windowsでもコンピューター名を変更した後は再起動を求められるように、コンピューター名を変更すると各所に影響が出る。やはりコンピューター名の変更というのは簡単なものではなく、むやみに変えるものではない。変えたとしてもすぐに再起動するべきだ。

[][][]ネットワーク設定 15:58 ネットワーク設定 - 今日も元気にlinux を含むブックマーク はてなブックマーク - ネットワーク設定 - 今日も元気にlinux ネットワーク設定 - 今日も元気にlinux のブックマークコメント

ネットワーク設定は以下のファイル。

★Debian
/etc/network/interfaces

auto lo
iface lo inet loopback


★Redhat
/etc/sysconfig/network-scripts/ifcfg-eth0

# Intel Corporation 82557/8/9 [Ethernet Pro 100]
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:10:A4:A6:E5:4C
ONBOOT=yes
TYPE=Ethernet

上記はどちらもDHCP設定のもの。固定IPの場合は、その旨を設定ファイルに記載する。

Ubuntuはなぜかループバックアドレス・インターフェイスの設定しか記載されていないが、記載されていないデバイスはデフォルトでDHCPにでもなってくれるんだろう。

[][][]Linuxにおけるssh 15:58 Linuxにおけるssh - 今日も元気にlinux を含むブックマーク はてなブックマーク - Linuxにおけるssh - 今日も元気にlinux Linuxにおけるssh - 今日も元気にlinux のブックマークコメント

Linuxは特別な設定をしなくても、最初からssh使えて便利ですよ、というお話。

sshの設定ファイル

・sshサーバ
/etc/ssh/sshd_config

・sshクライアント
/etc/ssh/ssh_config

例えばsshd/configを設定することで、パスワード認証じゃなく鍵認証じゃなきゃだめ!とかに設定できます。

SSHの接続方法

ssh ユーザー名@接続先サーバ