ネット上のアクセスボリュームをUPさせ効率の良い集客をご提案します。

カテゴリー「Linux Tips」の記事

Python MySQLデータベース操作その2(更新、トランザクション) mysqlclientモジュール

 / Linux Tips, Python Bottle Framework, Security Tips, テクニカル, トピックス, ノウハウ


今回はアップデート処理を行いトランザクション処理としてロールバック機能等を入れてみる。ついでにSQLインジェクション対策のパラメータ挿入の仕方で記述します。パラメータの入れ方は多くの人がハマってしまうPython特有のぶら下がりカンマをあえて使います。入れる型に合わせて記述を考慮しなければいけませんがPython独特な書き方だと中々気づきにくいものです。他の言語では複数のリストやarrayを記述する場合は最後のパラメータの後方にはカンマを入れないのですがpythonは必要となるケースがありますのでご注意ください。


更新、トランザクション処理を入れたプログラム。SQLインジェクション対策の書き方にもなっている。

更新前と更新後を実行

CentOS7:SSL自己発行局の設置から俺々証明書の作成と承認まで

 / Linux Tips, Security Tips, テクニカル, トピックス


CentOS7で時々作成する自己発行局の作成から発行手順までを解説する。できるだけ簡単に完結にまとめようと思います。

一般的にスクリプトを使って生成するやり方もあるのですが、応用が効くのは素の手順で行うこちらの方法なので参考にしてください。openssl.cnfのファイルは/etc/pki/openssl.cnfの位置にありこれは場所やファイル名を変更しないほうが良いです。そのままにしたほうが簡単。自己発行局はオリジナルで/etc/pkiの配下に適当なフォルダーを作成してそこで作業を行います。別の場所に作業場所を作った場合も/etc/pkiにソフトリンクを貼っておけば問題なく発行が行なえます。


SSL証明書自己発行局構築(自己発行局の場所:/etc/pki/myCA)

最終的にca.crtとca.keyが生成されています。発行局とサーバ証明書は対になっているためDNS.xで指定したサーバ証明書用のドメインが変わる度に再作成とブラウザへのインストールが必要です。発行局自体にDNSのスコープ(利用範囲)があることを理解してください。

/etc/pki/tls/openssl.cnfのサンプルダウンロード

opensslのサンプルダウンロード

下記は標準の設定ファイルから修正した箇所です。追加や挿入する箇所です。参考にしてください。

SSLサーバ証明書発行依頼(CSRファイルの作成)

自己発行局へサーバ証明書の承認処理とSSLサーバ証明書の生成(server.crtの生成)

あとはWEBサーバに証明書を設置するのとca.crtを自分の使っているブラウザーへインポートしてください。

  • サーバ証明書 /etc/pki/myCA/server.crt
  • サーバ秘密鍵 /etc/pki/myCA/private/server.key
  • CAルート鍵 /etc/pki/myCA/ca.crt

備忘録:cakephp2.xでSSLした場合のトラブル「The request has been black-holed」の対処

 / Linux Tips, テクニカル, トピックス, ノウハウ


今年は7月からGoogle Chromeブラウザの非httpsなサイトをSSL化するための仕事で大忙し。 よくある問題は何かと言うと、表題の「The request has been black-holed」がcakephpで作られた環境でSSL化すると頻発するアクシデントに見舞われる。 この問題はよくある既知の問題なのでネット上にも対処方法はそこそこ見つけることができる。


しかし、人それぞれ、独特の作りかたをしているため、他人のソースコードを読み取って適材適所にコードを埋め込んだり修正するのは大変。 もう、cakephp絡みで今月に入ってから5件の案件で遭遇した。短い時間で修正すべきソースコードとその箇所を見つけるのはなかなかしんどい。

ということで、また遭遇するだろうからメモを残しておく。

対象Controllerを修正する

概ね以下のようなコードを挿入する。システムの作り方によるが修正箇所は大抵「app/Controller/」「app/Plugin/Admin」の下にあるメインコントローラか、機能単位のコントローラに入れることになるだろう。

cakephpのSSL化でインターナルサーバエラーの場合の回避策の一つapp/Config/core.phpの編集でエラーレベルを抑制

php.iniで既にエラーレベルが「E_ALL & ~E_DEPRECATED & ~E_STRICT」に設定されてれば問題ないが、サーバ上にある特定のアプリのみ制御するならcakephpであれば下記を修正します。

CentOS7 Grub2 カーネルの起動エントリーを減らし/bootの空き容量を確保。

 / Linux Tips, テクニカル, トピックス, ノウハウ


最近のLinuxはセキュリティ対策なためかupdateが盛んなため、直ぐにほっておくとカーネルの起動エントリーがGrubメニューにどんどん溜まってしまう。

といっても、調べてみるとデフォルトで5つまでアップデートエントリーが蓄積されそれ以上は増えないようだ。

このカーネルの蓄積に関するアップデートは/etc/yum.confのなかの「installonly_limit」を編集することで制限ができる。実際のところ3つまであれば十分だと思う


書き換え前

書き換え後

ついでに/boot配下の余計なカーネルを掃除

知らないうちにやはり圧迫されてた。/boot 95%はやばいでしょう。

お掃除は簡単package-cleanupで消去します。

再度確認してやっとディスク領域が65%に回復しました。インストールの時についついデフォルトで容量を小さくしすぎるのでアップデートが多いと圧迫されますね。でもこれを実行すれば問題ありません。

WEBコンテンツホルダーを/var/www以外の場所にするとエラー

 / Linux Tips, Security Tips, テクニカル, トピックス, ノウハウ


もうご存知の方は沢山いると思いますが、Linuxのインストール直後はSELinuxが有効になっており、デフォルト以外のフォルダーを使用するとエラーが生じたりします。



SELinux 実行中のシステム上では、すべてのプロセスとファイルにセキュリティー関連の情報を表示するラベルが付けられようにできています。尚この情報は、SELinux コンテキストと呼ばれており使用するプロセス(アプリケーション)により様々なものが用意されています。ファイルに関しては、ls -Z コマンドでこれを確認表示することができます。



一番多い例は、WEBのドキュメントフォルダーを変更して使う場合が多いと思います。例えば/var/wwwがデフォルトではWEB基準フォルダーですが、/opt/wwwにしようとしたら エラーが発生して起動できないという事が起こります。



ここでよくある対処方法はSELinuxをOFFにするというケースです。確かにOFFにすることでエラーが出なくなりますが折角のSELinuxによるセキュリティ強化がこれでは台無しですのでこの投稿記事では 正規の変更の仕方について説明していきたいと思います。

現在のコンテキストのステートを確認する

以上のコンテキストが付与されている事がわかりましたね。では移動先の/opt/wwwはコンテキストがどうなっているか確認してみましょう。

それではどうやって同じフラグにしたらよいかという話ですが、これは単純で/var/wwwのコンテキストを真似して新しいフォルダーへ付与するだけの事です。コンテキストを変更するのは”chcon”というコマンドを使用します。

※-Rは再帰的処理でコンテキストを付与することを意味します。

これで共通のコンテキストになりました。コンテンツを配置してWEBサーバの再起動を行うとエラーがもう出ないはずです。

TOPへ戻る