More from: linux

bashの脆弱性対策

9/24にbashの脆弱性が発見されたと公表されてから一部では騒ぎになっている。
bashをインストールしていないシステムでは無関係だけど、使い勝手の良いshellなので各ディストリビューションではデフォルトのshellになっているものもあり、その場合は対処が必要となる。
まずは自システムにbashがインストールされているかどうかをチェックし、入っていたなら下記を実行して結果を見る。
$ env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”
実行結果として
vulnerable
this is a test
と表示されたらこの脆弱性の影響を受ける可能性があるので、bashにパッチを適用する必要がある。
RedHat系でyumが使えるなら
# yum uodate bash
でbashパッケージをアップデートすればOK。

再度テスト用の上記コマンドを実行して
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x’
this is a test
と表示されれば一応は対策出来たことになる(今回のパッチでも脆弱性が残ると報告されているので、再度のパッチの適用が必要になる)。

yumが使えない古いシステムならup2dateを使うか、bashパッケージをダウンロードして自分でインストールする必要がある。

私の場合は古いシステムで1台だけbashの2系が入っていて、さらにyumもup2dateも使えないサーバがあり、結局その1台だけはソースパッケージを探し出してrpmパッケージをビルドしてインストールすることで対処した。
ソースパッケージはOlacle Linuxの配布サイトから
https://oss.oracle.com/el4/SRPMS-updates/bash-3.0-27.0.1.el4.src.rpm
をダウンロードし、
# rpmbuild –rebuild bash-3.0-27.0.1.el4.src.rpm
でrpmパッケージをビルドして
# rpm -Uvh bash-3.0-27.0.1.i386.rpm
でインストールした。

←クリックしてくれると嬉しいです。

またやっちゃった・・・orz

先週サーバーにfetchmailを使ってメールサーバからメールを取り込むように設定した。
今朝になってそのサーバーからスプールが満杯で配信出来ないと警告のメールが来たので調べてみると、取り込んだメールをメールサーバ側に残すようにしていたために同じメールを何度も取り込んでしまい、その結果スプールが満杯になっていた。
あれ?何で何回も同じメールを取り込むかなぁ?と思って調べてみると、.fetchmailrcファイルにはkeepオプションを記述してあるのに、実際の取り込み時にはallオプションを付けていたorz
これじゃメールサーバに残したメールを毎回取り込んでしまうのも当たり前だ・・・
早速allオプションを外したので、今後は一度取り込んだメールは取り込まなくなる筈。
滅多にやらない設定なので油断したなぁ・・・

←クリックしてくれると嬉しいです。

grepでマッチしたファイル名のみ出力

unix系OSのマシンで作業していて、特定の文字列を含むファイルのみを編集したいときがある。
そんな時に便利なのがgrepコマンドの”-l”オプション。
このオプションを使うとgrepはパターンマッチしたファイル名のみを出力するので、そのファイル名をエディターに渡せば良い。
例えばエディターにvi(vim)を使う場合は
$vi(vim) `grep -l “検索文字列” 対象とするファイルを含むpath/*`
とすれば指定したpathに存在する全てのファイルから検索したい文字列を含むファイルだけを編集することが出来る。
ファイル名の指定は好きなようにすれば良いのでいろいろ応用が利いて便利だ。

←クリックしてくれると嬉しいです。

sambaで繋がらなくて焦った

現場のPCからファイルサーバにsambaでアクセスしようとしてサーバー側に設定を追加しておいた。
今日になって実際に現場に試験用のPCを持って行って接続を試したら何故か繋がらない・・・
sambaのlogを見ると試験用PCからのアクセスを拒否していると出ている(あれ?)。
smb.confを見ても接続させたいセクションのhosts.allowにはちゃんと現場のネットワークアドレスの記述が追加してある。
ここでしばらく悩んでしまったが、原因は[global]セクションのhosts.allowに繋ぎたいIPアドレス(今回は現場のネットワークアドレス)の記述が無かったため。
ここにネットワークアドレスを追加してsmbdをrestartしたらすんなりと接続できた。
今回は試験的な接続だったので大きな問題にはならなかったけど、今後は実運用で必要になるので忘れずに書いておかないとなぁ(汗)。

←クリックしてくれると嬉しいです。

フォルダを見れなくして欲しい。

職場でファイルサーバ上にある特定のフォルダを特定のユーザーだけが見れて、その他のユーザーからは見れなくして欲しいと依頼された。
ファイルサーバはLinuxでsambaを使って構築しているので、当初はsmb.confでvalid userの設定を見直して対応しようかと思ったが、依頼者の言う「特定のフォルダ」が全部のユーザーに対して公開しているディレクトリの中にあるので、その方法は取れなかった・・・
仕方が無いのでディレクトリのパーミッションを特定のユーザーのみに対してrwxにして対応した(要は700にした)。
最初はフォルダにパスワードを掛けるとか出来ないかと言われたけど、アクセス可能なユーザーは面倒くさいことは嫌いなちょっとエライさんなので、いちいちパスワードを入力する方法はいかがなものかと言って諦めて貰った。
実際にはパスワードを掛ける方が面倒だからだったんだけどね(汗)。
パーミッションを変更した直後に「全員が見るファイルがその中にあって見れなくなった」と言われたけど、そりゃ当たり前でしょー。
その辺の準備をしてから言ってきてよね。

←クリックしてくれると嬉しいです。

fetchmailで意味の無い設定をしてしまった(汗)

新規のメールユーザーが増えたのでサーバにユーザーを追加して受信用のデーモン代わりのfetchmailの設定も追加した。
当初は本来のサーバにメールを残すためにkeepオプションを付けて.fetchmailrcを書いた。
で、実際に受信動作をさせてみると取得済みのメールを何度も取得してしまい、メールボックス内に同じメールが複数取り込まれてしまう。
しかもユーザーのホームディレクトリに作られるはずの.fetchids(取得済みのメッセージIDを記録するファイル)ファイルが出来ていない。
おかしいな?と思って調べて見ると、keepオプションを付けているにもかかわらず、受信時にはa(All)オプションを付けて”fetchmail -a”としていた(汗)。
このaオプションは取得済みでも全て取得してしまうので、同じメールを何度も取り込んでしまっていたと言う訳だ。

焦って作業してはいけないということだね(爆)。

←クリックしてくれると嬉しいです。

コストコ

今日は友人誘われてコストコに行く予定。
だったんだけど、トラブルが舞い込んできて急遽仕事場へ。
約束の時間が迫る中なんとか解決して、これから急いで帰宅するつもり。
あー、なんとかなって良かった~(汗)。

←クリックしてくれると嬉しいです。

メールアドレスに使える文字の話

「メールが送れない」
と連絡が来た。
「送ろうとするとなんかエラーとなる。」
と言うのでエラーメッセージを読んで貰ったところ、
「501 Bad recipient address syntax」
というようなエラーが出ている模様だ。
このエラーは読んだ通り「宛先アドレスの書き方に問題がある」状態なので、送ろうとした相手先アドレスを見ると先頭と@の直前に「-(ハイフン)」が使われている。
メールアドレスに使える文字はRFC 2822内の”Internet Message Format”セクションで規定されていて、「-(ハイフン)」を先頭に使うことは特に禁止はされていない。
ところが、先頭に「-(ハイフン)」があるとUNIX系OSのコマンドに文字列を渡す際にオプションと混同される危険性があるので、UNIX系OS上で動作するMTAによっては先頭に「-(ハイフン)」を使うことを禁じているものがある(Postfix等)。
今回のエラーはまさにこれに引っかかった様で、現在のところはこの宛先にメールを送る手段が存在しない(Postfixを使っている場合はオプションで許可することも出来る様だ)ので、送るのを諦めて貰うことになった(汗)。

プロバイダによってはユーザーが希望するアドレスを使うことが出来るが、先頭の文字を英小文字に限定しているところがある(ソフトバンクとかOCNとか)。
反対に制限を設けていない(もしくは過去に設けていなかった)プロバイダやキャリアもあるが、そのようなアドレスを持っている人は受け取れないメールもあるということになるので、出来れば先頭には英小文字を使うようにしたほうが良さそうだ。

参考までに携帯電話各キャリアでの使用文字の制限は以下の通り(2013年10月10日現在)
au
・Eメールネーム文字数が、30文字まで利用可能です。
・半角英数字、小文字、「- (ハイフン)」、「. (ピリオド/ドット)」、「_ (アンダーバー)」が使用できます。
・「.」をアドレス内での連続使用や「.」をEメールネームの最初/最後に使用することはできません。また最初に数字の「0」を使用することもできません。

docomo
・半角英数字および「_」(アンダーバー)、「.」(ピリオド)、「-」(ハイフン)の記号にて、3字以上30字まで設定することができます。
ただし、「.」は「..」などのように連続で使用することや@マークの直前で使用することはできません。
・「スペース(空白)」は使用できません。
・英字を入力する場合、大文字小文字の区別はありません。すべて小文字で表示されます。(注:大文字の使用は不可ということ)
・先頭文字は英文字にしてください。

ソフトバンク
・文字数 半角文字 3字~30字
・文字の種類 半角英数字 「-」(ハイフン)、「.」(ドット)、「_ 」(アンダーバー)
・ひとつ目の文字は英文字のみ 「1abc@i.softbank.jp」などは、設定できません。
・英文字については、小文字のみ使用できます。
・「-」(ハイフン)、「.」(ドット)、「_ 」(アンダーバー)以外の記号は、ご利用いただけません。
 例 : 「a bc@i.softbank.jp」 など
・「@」直前の「.」(ドット) は設定できません。
 例 : 「abc.@i.softbank.jp」 など
・「.」(ドット)の連続使用は設定できません。
 例 :  「a..bc@i.softbank.jp」 など
・携帯電話の社名、および、サービス名に関わる文字は、設定できません。
 例 : 「softbank.abc@i.softbank.jp」など

これを見ると各社で細かい違いはあるが、文字数(30字まで)や文字種(英小文字と数字の他は「-」「.」「_」のみ)は共通だというのが判る。
面白いのはソフトバンクの「携帯電話の社名、および、サービス名に関わる文字は、設定できません。」と言う項目で、例では”softbank”という文字列は駄目となっているが、”docomo”とか”ezweb”とかも駄目なのかな?(笑)

←クリックしてくれると嬉しいです。

←クリックしてくれると嬉しいです。

この大量のログはいったい???

職場のメールサーバでメールの配信が出来ないと連絡が来た。
調べてみるとディスク(/varを含むパーティション)がほぼ満杯になっている。
メールを溜める/var/の下には/var/logがあるので、その中のファイルで大きなものを探すとmessagesがかなり大きくなっていて、しかも4週間分残っている。
中身を見るとnamedのエラーが多くなっている(というか殆どがnamedのエラーで占められている)。
これはネットワーク環境を大きく変更した際にDNSのポートを閉じて外部のネームサーバへのアクセスを制限したために、以前は接続できた外部サーバへ接続できなくなったためだ。
問題のサーバは職場内だけのメールサーバで外部への配信はしていないので外部の名前解決のためにnamedを動かす必要は無いのだが、メールサーバ構築時はnamedが必須だと思っていて試行錯誤しながらbindの設定をしてなんとか動作させた。
ところが後に/etc/nsswitch.confで名前解決をfile(/etc/hosts)優先にしたのでnamedを止めても問題無くメールの配信が出来るようになっている。
試しに/etc/rc.d/init.d/named stopでnamedを止めてからメールの送信をしてみたが、職場内のどのルートでもメールの配信が出来たので今後はnamedを止めておくことにした。
なのでchkconfig –level 3 named offでサーバの起動時にもnamedを起動しないようにしておいた。

これで不要なログが出力されることも無くなる・・・・・・・・筈。

←クリックしてくれると嬉しいです。