2023/10/24 (火)

2023-10-24:su: PAM unable to resolve symbol: pam_sm_acct_mgmt

仲間から「アップデート掛けたら su ができなくなったマシンがあるんでみてほしい」とへぷる要望あり。

一般ユーザーでログインして、そこで sudo コマンドは効く。
のだけど、たとえば sudo su – とかしようとすると、できなくて、/var/log/secure には

Oct 24 08:12:34 devmachine su: PAM unable to resolve symbol: pam_sm_acct_mgmt

というログが出る。
pam_sm_acct_mgmt は /usr/lib64/security/pam_unix.so のなかにあり、なんというか、こいつが解決できないってどういうこと?という。。。
ちなみにマシンは CentOS Linux release 7.9.2009 (Core)
CentOS 7 なんてヤメレ、という意見もあろうけど、現用系とのことでしょうがない。

いろいろググってみるも、pam RPM のバージョンを変えて入れてみろとかあまり役に立つものなし。
そういえば、別で CentOS 7 のマシンあったな、と思い出したのでログインして確認してみる。
そっちの CentOS7 は、長らく yum update してないものの、redhat-release ファイルは同じく CentOS Linux release 7.9.2009 (Core)

で、こっちでは sudo su – に成功する。おお!
入ってる pam RPM のバージョンは同じ、pam_unix.so の sha1sum も同じ。

んー、じゃあ、pam の設定ファイルか?、と /etc/pam.d/su を見てみる。
すると、できるマシンとできないマシンで差分があることを発見。
出来ない方では冒頭に

# Added by Google Compute Engine OS Login.
account    [success=bad ignore=ignore] pam_oslogin_login.so

というのがいる。
どうも、この子(pam_oslogin_login.so)がアレらしい。

乱暴だけど、この account 行をコメントに。
したら su ができるようになった。

ちなみに、もともとできたマシンの方には pam_oslogin_login.so がいない。オンプレマシンでした。
できなくなった子は Google Cloud なマシンだったそうで。
とりあえず、su ができるようになったと喜んでいたので、僕はこれ以上は手を出さず^^;

github にレポジトリあって、ここに issue 報告したらいいのかもだけど、CentOS7 の話をするのも、ねぇ。

comment

2021/10/13 (水)

2021-10-13:vault.centos.org と letsencrypt ca 証明書問題

無料の証明書発行サービス Let’s Encrypt の使用していたルート証明書 DST Root CA X3 が9月末に切れた問題が vault.centos.org に波及していることに気付く。

昨年11月30日にサポートが終了した CentOS6 だけども、いまでもけっこうな数が現地運用されていて、レポジトリ URL を mirrorlist.centos.org から vault.centos.org に書き換えれば yum コマンドを使い続けられるよ、というのはよく知られたハック。
ただし、yum コマンドはその中で指定された URL から wget で rpm ファイル取得しようとするので、↑の DST Root CA X3 期限切れに伴い、

vault.centos.org が信頼できんわ

を処理に失敗してしまう。

クライアント側に有効な CA 証明書がないから検証できないという問題なので、解決のためには有効な CA 証明書があればいい。
vault.centos.org には更新用の ca-certificates RPM があり、これを取得して更新インストールする。
yum だと証明書エラーでコケるので、手動で(証明書エラーを無視して)wget で RPM を取得して rpm -Uvh で入れる。
依存関係から p11-kit, p11-kit-trust も要求されるので、これらも wget の上、先に rpm -Uvh しておく。

# wget --no-check-certificate https://vault.centos.org/centos/6/updates/x86_64/Packages/ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm
# wget --no-check-certificate https://vault.centos.org/centos/6/os/x86_64/Packages/p11-kit-0.18.5-2.el6_5.2.x86_64.rpm
# wget --no-check-certificate https://vault.centos.org/centos/6/os/x86_64/Packages/p11-kit-trust-0.18.5-2.el6_5.2.x86_64.rpm
# rpm -Uvh p11-kit-0.18.5-2.el6_5.2.x86_64.rpm p11-kit-trust-0.18.5-2.el6_5.2.x86_64.rpm
# rpm -Uvh ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm

これで wget で vault.centos.org から証明書エラーなく rpm ファイルが取得できるようになり、yum コマンドが復活。

comment

2016/12/05 (月)

2016-12-05:Windows7 で sshd を動かす

要望あって、Windows マシンに sshd 立てて sftp でファイルをやりとりするサーバに、という案件。
いまって Windows 版の OpenSSH なんてあるのねー。
というわけで、セットアップ.

GitHub : PowerShell/Win32-OpenSSH
https://github.com/PowerShell/Win32-OpenSSH/releases

ここから zip ファイルをダウンロードし、C:\ 直下に展開。
自分の場合、C:\OpenSSH-Win64\ になる。これを環境変数 Path にいれる。「マイコンピュータを右クリックのプロパティ」→「システムの詳細設定」→「環境変数」→「システム環境変数の Path の編集」で、末尾に「;C:\OpenSSH-Win64」を追記。

22番ポート以外で動かしたかったので sshd_config を編集。鍵認証の指定もついでに。

Port 22222
PubkeyAuthentication yes

次に、その 22222 のポートを Firewall 的に開ける。
自分は ESET Smart Security なので、そっちで設定。Windows 標準の Firewall だったり、違うセキュリティソフトの方は、適宜それぞれの設定で。

あとは PowerShell で作業。
管理者権限で PowerShell 起動して、

> cd C:\OpenSSH-Win64
> ssh-keygen.exe -A
C:\OpenSSH-Win64\ssh-keygen.exe: generating new host keys: RSA DSA ECDSA ED25519
> Set-ExecutionPolicy Unrestricted
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"):
> .\install-sshlsa.ps1
> .\install-sshd.ps1
[SC] SetServiceObjectSecurity SUCCESS
[SC] ChangeServiceConfig SUCCESS
 Granting SeAssignPrimaryTokenPrivilege to NT SERVICE\SSHD   ... successful
sshd and ssh-agent services successfully installed
> Set-ExecutionPolicy RemoteSigned
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"):
>

一時的にセキュリティを落としてからセットアップをして、終わったら戻す、という感じ。
以上で設定終了で、あとは起動するだけ。
自動起動の設定もしておこう。

> net start sshd
sshd サービスを開始します.
sshd サービスは正常に開始されました。
> Set-Service sshd -StartupType Automatic
>

サーバの C:\Users\{ユーザー名}\.ssh\ 以下に authorized_keys を置いておけば、鍵認証で ssh のログインができる。
scp でファイルのやりとりも可能。
すばらしい。


以下は個人的にはまったネタ。解決に1時間以上かかった。
この Windows 版の OpenSSH、実は

Compression に対応していない!

ので、つなぎにいくクライアントサイドで Enable Compression とか、.ssh/config に Compression yes とか書いてると、接続できない。
もし自分以外にも接続できずに困っている方がいらっしゃいましたら、圧縮設定を見てみていただきたく。

この問題、接続できないならできないでその理由を吐けばいいものを、

% ssh -p 22222 192.168.0.101
buffer_get_ret: trying to get more bytes 1 than in buffer 0
buffer_get_char_ret: buffer_get_ret failed
buffer_get_char: buffer error

これしか言われない。
-v をつけても大して得られる情報なし。これじゃエラー内容分かんないよ!!!

試行錯誤の過程で、サーバ側の .ssh/authorized_keys をどかしてパスワード認証にしたりするも

% ssh -p 22222 192.168.0.101
waasuke@192.168.0.101's password: 
Permission denied, please try again.
waasuke@192.168.0.101's password: 
buffer_get_ret: trying to get more bytes 1 than in buffer 0
buffer_get_char_ret: buffer_get_ret failed
buffer_get_char: buffer error

エラーは同じ。
なお、↑の最初のパスワード入力はわざと間違えてて、サーバが正しくパスワード認証をしてることはまではこれで把握。

サーバ側にログないのかな、と探すと、インストール直下に sshd.log がある。
しかし開いてみても、、、

2888 23:03:20 455 Failed password for waasuke from 192.168.0.62 port 45020 ssh2
2888 23:03:22 341 Accepted password for waasuke from 192.168.0.62 port 45020 ssh2

これだけ。
やっぱり役に立たNEEEEE!!!

で、ウンウン唸ってたら、仲間が「別のクライアントならどうだ?」とアドバイスをくれた。
Windows クライアントの PuTTY を試す。なんとログイン成功!
えーーー
これまでハマってた CentOS の ssh クライアントと何が違うんだ。。。
文字コード?改行コード?

しばらくして、さらに「.ssh/config じゃね?」とコメントをもらう。
いったんどかしてみたら、CentOS の ssh クライアントからもログインできた。
ここまできたらかなりの絞り込めたね。
あとは .ssh/config の設定をコメントアウトしたりひとつひとつ試し、結果、Compression yes がガンであることが判明。
ついでに Enable Compression にチェックを入れた PuTTY でのログイン失敗も確認。
やれやれ。。。

ちなみに、sshd_config には #Compression delayed とデフォルトでコメントアウトで入っているのだけど、これをコメントはずして値を yes にして sshd を再起動しても、圧縮ありにしたクライアントからの接続はできず。
sshd 自体に実装が入ってないのかー。
と思って project ページをよく見ると、

https://github.com/PowerShell/Win32-OpenSSH/wiki/Project-Scope
Intent of this project is to get to a state that can converge to and integrate into OpenSSH’s main repo. To simplify this integration, following features have been scoped out and will not work on Windows yet:

– VerifyHostKeyDNS
– Client ControlMaster

– Compression
– ProxyCommand (Windows specific feature/work items)

ちゃんと書いてはありましたね。。。

(Compression を実装していないことを責めてるわけじゃもちろんないです。むしろポ―ティングには感謝。
(ただ、分からないエラーメッセージには文句言いたい。サーバサイドもクライアントサイドも。

comment

2015/12/16 (水)

2015-12-16:ELECOM Bluetoothマウス CAPCLIP 3ボタン IRLED搭載 充電式

日常のデスクワークで Bluetooth のマウスを使ってるんだけど、ちょいちょい反応しなくてイライラすることがある。
で、今週は段取り失敗やら自分のミスやらがつのっててそもそも機嫌が悪く、そこに急遽反応しなくなるマウスにかなり苛立ってしまい、「あーもうっ!」と床に向かって投げつけたところ、お陰様できちんと壊れてくれました。ちーん。。。

しばらくレッツノートの静電タッチパッドでのポインティング入力。ただ、やっぱり使いづらい。
しょうがないので(って、自業自得なんだけど)、新しいのを買ってきた。
それがこの ELECOM の CAPCLIP というマウスで、見た目おもちゃ。
が、これがなかなかどうして買い物でした。

IMG_2421IMG_2422

本体とキャップからなるこの製品、使うときはキャップを本体のおしり側にはめる。
大きさはかなり小さいのだけど、キャップとあわせると長さがあるので持ちづらいということはない。分解能も1200あるのでそれなりにカーロスが大きく動いて嬉しい(自分の仕事場は20インチモニタ2枚含めて4画面構成)。
使わないときは電源おとしてキャップをかぶせる。これまで使ってたマウスは移動時にむき出しで鞄に放り込んでいたのでホイールボタンのところがおかしくなりがちだったり、不用意にスイッチが入ってたりということがあったんだけど、それがないのは嬉しい。いや、前のも商品パッケージとしては収納ポーチがついてたんだけど、

そんなものはすぐに失くす

IMG_2423のよね。今回の場合、使用時も使用してないときも常に一緒にいさせるデザインなのが安心。
あと、今回のは本体にリチウムイオン電池搭載の充電式。おしりのカバーを開けると microUSB 端子がある。いままでのは単4電池2本だったので、eneloop 使ってたんだけど、これの充電からも解放されるな。
というわけで、期せずして(?)新しいマウスに変えたけど、いい結果になりました、というポストでした。
ちなみにいままでのより値段は安い。。。

参考に、いままでのはこちら(←)です。
別にこれも悪い商品というわけじゃない。これまで2年くらい使ってた気がするし。

comment

2015/11/16 (月)

2015-11-16:KB3081320 で VirtualBox が rc=-22919

Windows Update をして再起動したら、Virtual Box が起動しなくなった。
Oracle VirtualBox 4.3.28 on Windows 8.1。

WinVerifyTrust faild on stub executable: WinVefiryTrust failed with hrc=Unknown Status -x8009200D on ‘\Device\HarddiskVolume4\Program Files\Oracle\VirtualBox\VirtualBox.exe’ (rc=-22929)
virtualbox_rc22919

で、ググるとお仲間がいて、KB2081320 をアンインストールしたらいいよ、とあったので、その通りにして再起動して、復帰。
コントロールパネル→プログラムと機能→インストールされた更新プログラムを表示→KB2081320 を選択してアンインストール。

KB3081320 (10Nov15) breaks VirtualBox 4.3.30 (WinVerifyTrust
https://forums.virtualbox.org/viewtopic.php?f=6&t=74536

とりあえずは起動するようになってよかったね、なんだけど、今後どうしたらいいんだろう、これ。

comment

2015/10/15 (木)

2015-10-15:OpenBlocks AX3 with SSD

OpenBlocks AX3 に 16G の SSD を搭載したのを入手。
ruby 環境を rbenv で入れようとして、いきなりはまった。/tmp の容量不足!
SSD 搭載の場合、/etc とか /usr とかもろもろは /dev/sda1 な SSD を ext4 フォーマットで /.rw とマウントされたとこの下に aufs でマウントされているんだけど、それでも /tmp は本体 RAM 上なのね。

$ mount
/dev/root on / type ext2 (rw,relatime,errors=continue,user_xattr,acl)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=103444k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev type tmpfs (rw,relatime,size=10240k,mode=755)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=206880k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
/dev/sda1 on /.rw type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered,discard)
aufs on /etc type aufs (rw,relatime,si=8baef055)
aufs on /bin type aufs (rw,relatime,si=88e78055)
aufs on /home type aufs (rw,relatime,si=976ea055)
aufs on /lib type aufs (rw,relatime,si=82ec9855)
aufs on /sbin type aufs (rw,relatime,si=b8e83855)
aufs on /usr type aufs (rw,relatime,si=82ec9055)
aufs on /var type aufs (rw,relatime,si=b8e83055)
aufs on /root type aufs (rw,relatime,si=86e5a855)
aufs on /opt type aufs (rw,relatime,si=86e5a055)
aufs on /srv type aufs (rw,relatime,si=82ebd855)
aufs on /media type aufs (rw,relatime,si=82ebd055)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)

ここらのマウントは /etc/init.d/openblocks-setup の中でやっているみたいで、

        # if using DEBIAN storage, /tmp directory mount under storage.
        #if [ -n "$rwdev" ] ; then
        #        UNIONFS_DIRS="$UNIONFS_DIRS tmp"
        #fi

という部分があったので、この下三行のコメントを外して再起動。。。してみたが、うまくいかない。残念。
いいや、手動でやっちゃえ、と

mount -n -t aufs -o xino=/.aufs.xino.tmp,dirs=/.rw:/tmp=ro aufs /tmp

を実行。これで /tmp が SSD 上になった。

で、rbenv install 2.2.1 みたいにビルドができるようになったけど、、、さすがに1時間コースだな。けっこう重い。^^;
ちなみに、ruby 環境を作った後、rails 入れて、Gemfile 書いて bundle install しようとしたら、therubyracer でこける。
ググッたら github の作者のとこにスレを発見。

unable to build therubyracer/libv8 on arm A10 #255
https://github.com/cowboyd/therubyracer/issues/255

ここの2013年8月24日の投稿のやり方で therubyracer のインストールに自分も成功。
事前に sudo gem uninstall libv8 しておいて、git clone してから、の手順。

bundle install で必要な gem が一通り入り、手製の rails アプリが動くことまで確認。
ちょっと重いけど、使えなくはなさそうだ。

comment

2015/10/14 (水)

2015-10-14:WindowsUpdate で勝手に Windows10 にされかける(回避方法追記)

Windows7 を入れてるデスクトップ機で ESET SmartSecurity が「お使いの Windows が最新じゃないです」言うので Windows Update の更新プログラムの確認をしたら、「Windows10 にアップグレードしろ」の表示。
なんだそりゃ。
windowsupdate_to_win10
利用可能な更新プログラムを確認すると、ご丁寧にオプションの中の「Windows10Proにアップグレード」があらかじめチェックされているという始末。
update_to_win10_checked
これで、気づかずにOKしちゃうと、アップグレードされちゃうわけよね。。。
どうなんだ、こういう姿勢って。

デフォルトでチェックされるのを外せないかと、いくつか調べたんだけど、

How to Block Windows 10 Upgrade Downloads If You’re Not Ready For Them
http://lifehacker.com/how-to-block-windows-10-upgrade-downloads-if-youre-not-1730024570

このやり方では勝手なダウンロードを防ぐだけで、今回の勝手にチェックには効果ない模様。

[企業ユーザー向け] Windows Update からの Windows 10 への無償アップグレードを管理する方法
http://blogs.technet.com/b/askcorejp/archive/2015/07/23/windows-update-windows-10-1.aspx

ここに抑止する方法が書かれているけど、該当するレジストリキーが見つからない。。。

うーん、なにかやり方ないのかな。
どなたかへぷる~

[10/15 10:00追記]
「(レジストリの)キーがなければ作ればいいじゃない」と twitter で教えていただきました。
cmd.exe を管理者権限で起動して、

reg add HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate /v "DisableOSUpgrade" /t REG_DWORD /d 00000001 /f

を実行。
そのあとの Windows Update で、無事にオプションの中から「Windows10Proにアップグレード」が消えました!
ご指摘に感謝♪

comment

2015/10/01 (木)

2015-10-01:HTTPSなサーバのサーバ証明書とその署名中間CA

Cybertrust でサーバ証明書を作って最近更新したサーバが、PC のブラウザからは問題なく閲覧できるも、Android スマホや iPhone からだと証明書エラーの警告言われるよ、と指摘されてあわてる。
今回のサーバ証明書は Cybertrust Japan Public CA G3 という中間CA証明書で署名されたもので、これは Baltimore CyberTrust Root というルート証明書で署名されている。Baltimore CyberTrust Root は各端末に入っているのよね。なんでだー、と。

サーバは nginx。
で、設定ファイルで証明書を指定するのは ssl_certificate のなんだけど、これ、Cybertrust からもらったサーバ証明書だけじゃなく、中間CA証明書も Cat でつなげたファイルにする必要があったというのがオチ。
PC でしか確認してなかったのは失敗だった。。。

comment

2015/09/17 (木)

2015-09-17:curl: (58) Unable to load client cert -8018.

例によって年イチくらいでハマる PKI まわり。
クライアント証明書を使って WebAPI を叩くサービスで、クライアント証明書を SHA-2 に移行しましょうね、というテストをしていて、タイトルのエラー。

$ /usr/bin/curl -E ./client.pem:xxxx -X POST -H 'Content-type: text/xml' -d 'aho' https://dokkano/api
curl: (58) Unable to load client cert -8018.

ちなみにクライアント機は CentOS6。
エラーメッセージをぐぐると、NSS に絡んだエラーらしい。CentOS6 の curl な NSS を組み込んだものなのね。

$ curl -V
curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp 
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz 

でもって、ググってでてきたページたちを参考にクライアント証明書を /etc/pki/nssdb/ 以下に突っ込んでみたりと半日ほど試行錯誤するも、、、うまくいかず。
NSS よく分からん、なんなのこれーーーー、と詰まったので、

もういい、野良ビルドしたる!

と、ソースもってきて、/usr/local/src 以下でビルド。
で、できた /usr/local/bin/curl を使うようにしたら、あっさり動いた。
うーん。。。

$ /usr/local/bin/curl -V
curl 7.44.0 (x86_64-unknown-linux-gnu) libcurl/7.44.0 OpenSSL/1.0.1e zlib/1.2.3 libidn/1.18
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets 
comment

2015/08/20 (木)

2015-08-20:LoadError: libMagickCore.so.2: cannot open shared object file

とある rails のプロジェクトを更新するときに rake assets:precompile RAILS_ENV=production しようとして

rake aborted!
LoadError: libMagickCore.so.2: cannot open shared object file: No such file or directory - /usr/local/rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/rmagick-2.14.0/lib/RMagick2.so
/xxxx/config/application.rb:17:in `'
/xxxx/Rakefile:4:in `'
(See full trace by running task with --trace)

というエラーを喰らった。

けど、No such file or directory 言われたファイルはちゃんとあるのよね。
gem でいれた rmagick をリコンパイルすればいいのよ、ってのをググって見つけたので、

$ sudo gem pristine rmagick

したら、無事解決。

comment

2015/08/17 (月)

2015-08-17:wordpress の「無効な投稿タイプ」と nginx 設定

実はしばらく前から wordpress のダッシュボードで新規投稿をしようとすると「無効な投稿タイプ」と言われて何もできない、という状況に陥っていた。
いい加減なんとかしようと調べたら、原因は nginx の設定がよろしくなかったね、というオチ。
nginx + php5-fpm + wordpress という構成で、さらには wordpress をサブディレクトリ運用という通常でないカタチにしているもので、うまく動作しているようでたまに罠があるのね。
結論としては nginx の設定で

    location ^~ /person/waasuke {
        index index.php index.html;
        try_files $uri $uri/ /person/waasuke/index.php?$args;

        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_split_path_info ^(/person/waasuke)(/.*)$;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
        }
    }

とすることで解決(/person/waasuke の部分は読み替えてください)。

以下、経過。
原因を探るために、wordpress にログを吐かせる。
これは wordpress の wp-config.php に

define('WP_DEBUG', true);
if ( WP_DEBUG ) {
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );
    @ini_set( 'display_errors',0 );
}

と書き込む。これで wp-contents/debug.log にログが吐き出されるようになる。
この設定でログを監視しながらくだんの新規投稿のページに行くと、

PHP Notice:  Undefined offset: 1 in /xxxxxx/wp-includes/vars.php on line 31

と気になる出力が。
当該行を見に行くと、

if ( is_admin() ) {
        // wp-admin pages are checked more carefully
        if ( is_network_admin() )
                preg_match('#/wp-admin/network/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
        elseif ( is_user_admin() )
                preg_match('#/wp-admin/user/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
        else
                preg_match('#/wp-admin/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
        $pagenow = $self_matches[1];

どうやら、$_SERVER[‘PHP_SELF’] のチェックでうまくいってない模様。
で、nginx から値がうまくわたってないのね、ということで冒頭の設定になった次第。

comment

2015/08/10 (月)

2015-08-10:Xperia Z3 Compact

IMG_1162というわけで、粘って使ってた Xperia SX から Z3 Compact に機種変更。
横幅60mmを上限と思っている自分は「どこがコンパクトなんだよ!」と思うも、世の流れには逆らえずということで。
まぁ、最近のアプリだと動作がつらいというのは正直あったしね。。。

SIM が micro から nano に変わるため、変更には新機種で開通操作が必要。
が、その前に必要なデータを移行。自分の場合はモバイル Suica だけだけどね。
変更前の機種でモバイル Suica アプリを立ち上げ、会員メニューで機種変更を選ぶと、センター側で受付がされる。
あとは新機種で開通後にモバイル Suica アプリをダウンロードして立ち上げてログインして、初期設定を実行すればよい。

あとは仕事場帰りにヨドバシでも寄って保護フィルムとかジャケットとか充電ケーブルとかを買おう。
最近の Xperia ってマグネット付の専用の充電端子があるのね(そんなことすら知らない程度に浦島さんな旧機種 Xperia ユーザーなり。。。

comment

2015/06/01 (月)

2015-06-01:mysql gem

ruby で mysql 操作をするのに gem install mysql したライブラリを使っている。
mysql2 の gem だと SQL のプレースホルダ使えないのよね。。。

で、とあるクエリを実行しようとしてて

./hoge.rb:107:in `execute': unsupported type: 18 (TypeError)

というエラー。
なんじゃらほい、と1時間かかってしまった。
Boolean なカラムにデータを入れようとして、true をつっこんでたのがいけなかった。
1 にしたら通った。

comment

2015/04/07 (火)

2015-04-07:fail2ban memo

pop3 に対してパスワードアタックかけてくるおバカがいそうなログを qpopper が出していたので、iptables でどけてしまおうと思いつつ、手動の iptables コマンドでしくじるのも怖いので fail2ban でやってもらうように。

手順

  1. sudo apt-get install fail2ban
  2. qpopper の出すログから相手ホストを切り出すフィルタを書く
  3. そのフィルタを使えるようにする
  4. sudo /etc/init.d/fail2ban restart

フィルタはこんな感じ。

$ cat /etc/fail2ban/filter.d/qpopper.conf 
[Definition]
failregex = qpopper.* \(<HOST>\):.* Password supplied.* is incorrect

フィルタの動作チェックは↓のようなコマンドで。

$ sudo fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/qpopper.conf 

大丈夫そうなら jail.conf に今回のフィルタを追加して、fail2ban 再起動。

$ tail /etc/fail2ban/jail.conf 
...

[qpopper]
enabled = true
port = pop3
filter = qpopper
logpath = /var/log/mail.log
maxentry = 10
bantime = 3600

あとは iptables -nL とかして、アタックくんが BAN されてるのを見てニヨニヨしよう。

# iptables -nL
...
Chain fail2ban-qpopper (1 references)
target     prot opt source               destination
DROP       all  --  xxx.xxx.xxx.xxx      0.0.0.0/0
RETURN     all  --  0.0.0.0/0            0.0.0.0/0
...
comment

2015/04/03 (金)

2015-04-03:WindowsUpdate の不具合の修正をあてる

ここしばらく、普段遣いの RZ4 でタスクバーの動作が非常に重かったり、ウィンドウのフォーカス変化がトロくなる事象が散発してた。
常時というわけではなく、気が付くとそうなってて、でも待てばそのうち復活する。
待てないときは「えいや」で再起動してたけど。

なんなんだろうこれ、とタスクマネージャーを開きっぱなしにして様子を見てたら、当該事象発生時にエクスプローラーが30%ぐらいの CPU を奪ってることを発見。
「タスクバー エクスプローラー CPU」でぐぐったら、3月の Windows Update の不具合というのがポロポロ出てくる。
なんだ、みんなもはまってる事象だたのか。もっと早く調べればよかった。。。

Microsoft のサポートページに「更新プログラムの修正プログラム」があるので、入れてみる。
これで事象が再発しなくなると嬉しいな。大丈夫かな。

3033889 の更新プログラムが Windows のエクスプ ローラーで、日本語または韓国語の IME を使用するシステムに応答を停止するには
https://support.microsoft.com/ja-jp/kb/3048778

しかし、このサポートページのタイトル、日本語が???なんだが。^^;

comment