Linux」カテゴリーアーカイブ

sSMTPのAuthPath

先日Googleアカウントからセキュリティ警告があったので何気に設定したらThunderBirdでメール受信できなくなるわ、パスワードを強制変更させられたりして大変だった。まあ、真意を知らずに設定した自分が悪いのですけど。

パスワードを変更したらsSMTPのパスワードも直さないとと思っていつも通り直したのはいいのですが、サーバからのメールが転送されないことに気づきました。まあ、原因はパスワードエラーなのですけど、AuthPathに指定できない文字がまだ存在してたとは。過去、Googleアカウントで使える文字のうち、一部sSMTPで使えない文字があると気づいてましたけど、久々パスワード変更だったので忘れてました。しかも未だに直ってないという。

現状では、AuthPathにシャープ記号やイコール記号は使えないです。独自のエンコード処理をしており、それらが特別な意味でつかわれているらしいです。数年前にこの事実を知ってたのですけど、すっかり忘れてた。未来永劫使えないっぽいので、ダメな記号はパスワードに加えないようにしないと。

VOSプログラミングの基礎

VOSでプログラミングを行う時の基礎を。コンパイラはPL/I、COBOL、Pascal、Fortran、BASIC、VOS Cと使えますが、COBOL、Pascal、Fortran、BASICは別途パッケージ購入が必要なので入ってないケースが大半だと思います。VOS CはTCP/IPでのソケットプログラミングで必須言語なので、導入されてるケースが多いです。PL/Iは入ってないと話にならない必須言語なので、PL/Iで記述するのが無難です。Emacsなどのエディタでソースを入力して書き込み、コンパイル、バインド(リンク)してプログラムモジュール(.pm)を作成して実行します。ソースをWindowsで作成した場合は、FTPのテキストモードで転送すればシーケンシャルファイルになると思います。(ストリームファイルでもコンパイル可能ですが、あまりお勧めしません)
また、UNIXなどのシェルスクリプトに相当するコマンドマクロもソース同様シーケンシャルファイルで作成します。オープンソース系ソフトを入れていれば、Perlなども使える可能性があります。これらのソースもシーケンシャルファイルで作ります。

PHP5.6

PHP関係が動かなくて調べるのに時間かかった。
設定が大きく変わったのかと思って調べたのを反映させたら余計わけがわからなくなって、こまめに設定を戻しつつ、よく見ればコンパイルオプションという。USEフラグに間違いがあってPHPが思ったようにコンパイルされてなかった。リコンパイルしたらモジュール名がlibphp5.soとなっていて、confの設定をmod_php.soにするか、シンボリックリンクを張りなおせば問題なさそうです。

それにしてもオープンソース物はバージョンが上がると細かいところで苦労します。これをよく業務で使うなぁって思う。そういうところは問題があれば呼び出されて手直しして対処で済むんだろうね。ミッションクリティカルなところで使うのは自殺行為だね。もうIT系の仕事じゃないから他人事だけど。

apache2.4

マージしたら入ったらしい。何気にconfを前のものの変更分を反映させてたら、えらいことになりました。
まず引っかかったのがコンパイル時に指定しておくAPACHE_MODULESの指定。たくさん増えてすべてを理解できてませんが、最低限コンパイル後の警告に出る推奨されるオプションは指定しておかないと前の設定が使えなくなる場合があるみたい。
あと、接続許可のallowなどの指定がRequireに置き換わっていて、こもれ何気に古いのを使おうとしたらSyntax Errorになりました。この辺りはセキュリティ的にもしっかり見直さないとアクセスできなくなったり、予期しないアクセスがあったりしそうです。また、各ディレクトリに置かれる.htaccessの書き方も変わってるので要注意です。
まあ、アップデートしてログとにらめっこしながら試行錯誤する必要がありそうです。これってこれらで飯を食ってる人は大変そう。自前サーバなら設定エラーなどはトライ&チェックで直せばいいけど、業務の本番サーバでは試せないだろうしね。でも最近は違うのか?昔はテスト機でしっかり実演してから本番機で一発勝負でダメだと保障問題にまで発展しそうな時代だったから。いろいろなWebサービスを見てると障害があっても詫び文掲載して終わりってケースも多いからゆるそうな気もする。自分がやってた時代とはだいぶ違うと痛感したこともあったり。自分なら数分でもサービス利用できなかったらクレームだと思うけどな。

Samba 4.x

久々に更新したらSamba 4.xとntdbがぶつかってemerge出来ず。解決策として一番簡単そうなのはSamba 3.xをunmergeしてreserved_rebuidかSamba 4.xをmergeすればいいらしい。こういう問題がローリングリリースだと小まめに発生するので自分で解決できないと使いこなせないと思った。まあ、USEフラグの問題じゃなくてよかったさ。

Linux Games関係

games-action内の追加分を書き加えました。かなりの数が入れ替わっていて、新規に作ってる感が結構します。市販ゲームのサポートが結構増えていて、$10程度で遊べるのでコンシューマ機や携帯だと不満な人はいいかも。Windowsでも動くものが多いので、今のご時世、わざわざLinuxでなくてもって方はWinで楽しめます。ブラウザ上で動くゲームもOSを選ばないのでいい世の中になったのか?

以前、まとめた時も思いましたが、Linux対応のゲームもかなり充実していて、十分暇つぶしが出来るようになったものだと思いましたが、今回も増えてる分を見る限り、充実してると思いました。

Linuxでジョイパッド接続

久々にLinux Gamesページを更新しようと思ってゲーム環境を整備してましたが、USB接続のPS/2コントローラが使えるやつを繋いでみたら認識はしてるけどゲームパッドとしてのドライバとかロードされてので/dev/input/js0が作られなくて小一時間悩みました。いろいろ調べたけど、何が悪いか不明なので、以前購入したRAP隼を引っ張り出して繋いでみたら難なく認識して使える状態になった。素直にコントローラを直結した方が吉なんだね。本格的ゲームをするならメガドラの6ボタンパッドの互換の奴が欲しいかも。PS/2のコントローラも慣れてるのもあるので、USB直結タイプの互換コントローラを探してみようと思う。
まあ、ゲームパッドを繋いだからと言って、多くのゲームはマウス操作が多いからパッドが使えるかどうかの確認だけなのですよね。

落ち着いたかな

スパムメールの送信踏み台にされてた問題は解消されたと思われます。
WordPressの更新とかでパーミッションが必要だったので変更したのが問題だったみたい。書き込み可能なディレクトリがあるとphpのスクリプトを送り込まれてそこから実行されて送信していたみたいです。必要に応じてパーミッションを変更し、対応が終わったら戻すということをやらないとダメって事ですね。テーマのカスタマイズもある意味やばいということですね。これも必要に応じてパーミッションを変更しようと思います。
有名すぎるソフトは攻撃対象になりやすいのも問題かも。別のCMSを試すのも時間を食われるし微妙なところ。

踏み台にされとる

数日前、大量のリターンメールを受信し、Return-Pathを使った罠だと思ってたのですけど、メール送信で最大送信数を超えての送信不能という現象が起きていて、自分のサーバから大量にメール送信されてるのに気づきました。諸悪の根源はこのWordPressらしい。オリジナルを展開して核となるファイルを比較し、余計なファイルは削除しましたが、まだまだメール送信が止まらないので、ssmtpのパーミッションを変更して実行不能にして対処しました。
ssmtpを使おうとしてる犯人を特定しようとgetppid()を呼び出して親のプロセスIDをログするプログラムを書いてssmtpと置き換えてみたら、apacheだったり。これでは意味がなかった。ssmtpを呼び出してるCGI/phpスクリプトが分かれば何とかなりそうなのですけど、プログラムがexecされた状態からは何もわからないのでお手上げかも。
このままではメール送信できないのと気持ち悪いのでウィルススキャンソフトをインストールして探し出すことにします。

トリガーが何なのかわかればもう少し調べられるのですけどね。常駐物が悪さしてるというものでもなく、Apacheも何かに連動して動いてる訳で。落ち着いたらtripwireで定期的に改ざんチェックするしかないかも?

サーバのsystemd化

だいぶ放置してたのでsystemd化しました。
genkernelを使ってるのですが、genkernel-nextでないとダメらしいのでgenkernelを消してパッケージを追加。sys-fs/udevもコンフリクトするので消す。この状態でリブートがかかるとシステムが起動しなくなるので要注意です。
カーネルが4.1.15-r1が来てたので展開してカーネルを作りました。必須、推奨の設定を行い、オプショナルの設定は確認のみ。大抵設定されてるので、必須設定のみ行えば行けると思われます。カーネルを作り終えたら、systemdフラグを有効にしてemerge -uDN world(通称うどんワールド)を実行。これでsystemdフラグに関連するパッケージがリコンパイルされるので、エラーがない事を確認すればOK。grub2のコマンドラインを設定。これを行わないとOpenRCが動くので必須です。一応preserved-rebuildを行ってライブラリのリンク切れがないか確認したらリブートです。
再起動すると最低限のサービスしか立ち上がってないので、ネットワーク設定、各種サーバの登録と起動していきます。大抵はsystemctlコマンドでサービスを追加(enable)して起動(start)させれば行けます。うちではapache2、mysqld、ntpd、xinetd、smbdを追加起動させました。

問題があった点は、RTCが有効になってなくてhwclockコマンドが停止してしまった点と、モニターを閉じてスリープに入ってしまう問題点があったくらいかな。前者はカーネル設定の問題で、時々RTC関係はOFFになっていて気づき難いポイントかな。後者は一応カーネルのハイバネートをOFFにしておいて、/etc/systemd/logind.confのHandleLidSwitch=ignoreを有効にしたらスリープしなくなりました。