読者です 読者をやめる 読者になる 読者になる

うまいぼうぶろぐ

linuxとhttpdとperlのメモ

linux

linuxでVMwareのvmdkイメージをmountする話

ストレージの機能で仮想マシンのイメージをsnapshotでとっていても、 実際にそのvmdkから特定のファイルを復旧する場合は、 そのsnapshotのファイルをコピーしてインベントリに登録、、、などまあまあ面倒。 だったらいっそのことvmdkを直接mountしたらええ…

RedHat/CentOS のphp/curlでGMO決済にsslで蹴られる現象の対応

GMO側がPCI DSS対応でTLS 1.2のみでの接続となってる。で、CentOS6でcurlで接続すると、 rpmでinstallされているcurl/opensslはtls 1.2に対応しているにも関わらずSSL Connect Errorで弾かれる。 (正確にはcurl直叩きではなくてphpから呼び出すcurl)curl-7.1…

stunnel でtlsで鍵認証をした上でsshする

http://qiita.com/albatross/items/390bf14db8b57c5a42f4 ずばり探し求めてたの発見。wifiなどでoutboundが80,443だけに制限されている場合、 aws上のサーバなどにsshが出来ない。てっとり早い対応はsshのportを443に変えてしまう。 sshdの設定で鍵認証だけ…

古いlinux(fedora core、centos)をp2vする

mdadmを使っているためvmware converterが使えなくて、ssh+tarでp2vする場合の注意点。参考: http://hogem.hatenablog.com/entry/2016/02/12/233000 inode size 移行先の仮想マシンで何も考えずにmkfsしてinode sizeが256になっていると、 移行元のgrubのバ…

ansibleで牛がしゃべるようになってた

久々に触ったら突然牛が出てきてうけた。 正確にいうとansibleは何も変わってなくて、サーバにcowsayがinstallされたからだった。 _____________ < PLAY [hoge] > ------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || https://support.ansible.…

syslogで受けとったメッセージをアプリケーションで直接読む

久々の更新。 man 5 rsyslog.conf Named pipes This version of rsyslogd(8) has support for logging output to named pipes (fifos). A fifo or named pipe can be used as a destination for log messages by prepending a pipe symbol (’|’) to the name…

環境変数SSLEAY_CONFIGでopenssl.cnfのファイルを指定する

opensslでprivate CAを作るとRHELの場合は/etc/pki/CA/ (openssl.cnfは/etc/pki/tls/openssl.cnf)が自動的に指定されるので、rootじゃないと証明書を作成できない。一般ユーザで場所を指定したい場合はどうしたらいい?と思ってopenssl ca help をみると" -c…

sendmailで特定のホスト宛にSTARTTLSの接続に失敗して(平文ですら)送信できない現象

/var/log/maillog STARTTLS=client, error: connect failed=-1, SSL_error=1, errno=0, retry=-1 STARTTLS=client: 26136:error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small:s3_clnt.c:3342: ruleset=tls_server, arg1=SOFTWARE,…

クライアント証明書発行(作成・署名)時のパスワードをターミナルから入力する

/etc/pki/tls/misc/CA -newreq だとパスワードを聞かれるので 内部で実行されている openssl reqを直接実行して、標準入力から読み込むようにする。スクリプトにがっつりパスワードを書いていて無条件に署名するので 本番運用するCAの場合は取り扱い注意。や…

opensslとcurlでクライアント証明書を使ってHTTPS接続する

1年ぶりにやったらど忘れしてる。 クライアント証明書発行 事前にプライベートCA作っておくこと 詳細は省略 /etc/pki/tls/misc/CA -newca クライアント証明書用 秘密鍵、CSR作成 /etc/pki/tls/misc/CA -newreq上で作ったファイルがあるディレクトリでCAで署…

big-ip でSSLクライアント認証&外部のOCSPレスポンダを使って証明書の失効を管理する

AskF5 | Manual Chapter: Configuring Remote SSL OCSP Authentication 参考:hogem.hatenablog.com URLはpoolではなく、直接指定しかできないから、真面目に使うならサーバ間でHAとかしないとダメ? と思ったけどvirtualserverのIP宛でも指定できたので、事…

snmpでlinuxのdisk パーティション監視

cacti/cloudforecastってどやって取ってるん?とふと気になって調べた。 cloudforecastのlib/CloudForecast/Data/Disk.pm 見てたらhrStorage* という単語あったので snmpのoid見てたらこの辺だった。 各サーバのsnmpd.conf にdiskの設定追加しなくても良い方…

mailコマンドでlocalのmtaではなく外部のsmtpサーバを指定

これあんまりやらんからすぐ忘れちゃう。 mail -S "smtp=smtp://192.0.2.1:25"もしくは~/.mailrc set smtp=smtp://192.0.2.1 ちなみにsendmailコマンドの場合 /etc/mail/submit.mc FEATURE(`msp', `[192.0.2.1]')dnl postfix版のsendmailコマンドは不明

incrond / inotify cron - inotifyのeventを検知したらcrontab風の書式に従ってコマンドを実行するデーモン

便利ソフトウェアです。incronを知らなかったので、昔はこんなことしてた。 inotifywatchでイベントを監視してコマンド実行する 一時的なコマンドならこれでも良かったけど、ファイルが増えるとさすがに面倒。 incrondはincrontabコマンドでcrontab風に書か…

スクリプト内でパスワードを保存しないといけないときに平文は嫌なので暗号化して対処する

http://auewe.hatenablog.com/entry/2014/04/14/213319 シェルスクリプトの平文パスワードをセキュアにする方法 これ良いですね。たいていの場合、sshの認証で鍵を作ってるだろうから 余計なファイル作らなくてもできるので手っ取り早いし。 ### encrypt $ o…

ipmitool でInfo: SOL payload disabledと言われてログインできなかったのを直す

# ipmitool -v -I lanplus sol activate -H 192.168.0.1 -U user Running Get PICMG Properties my_addr 0x20, transit 0, target 0x20 Error Response 0xc1 from Get PICMG Properities No PICMG Extenstion discovered Info: SOL payload disabled # ipmit…

nfs4 server起動直後(もしくはHA切り替わり後)にclientから90秒間アクセスできない現象

dmesg, messages にこれが出てるから仕様だと思って諦めてた。 NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory NFSD: starting 90-second grace period が、redhatに解決法書いてた。 https://access.redhat.com/solutions/428…

10Gbe環境でのdrbd設定tuning - 特にmax-buffersとmax-epoch-size

https://drbd.linbit.com/users-guide/s-throughput-tuning.html https://www.3ware.co.jp/archives/1655 version: drbd 8.4.6, drbd-utils 8.9.3 きっかけ 10Gbase-SR で接続してc-max-rate, rate で1000M, 300M (MByte/sec) などにしても実際の速度が80MBy…

RHEL6/CentOS6 nfsサーバ /etc/hosts.allow memo

https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/ch-nfs.html http://nfs.sourceforge.net/nfs-howto/ar01s03.html http://www.turbolinux.co.jp/products/server/11s/user_guide/nfssetup.ht…

RHEL/CentOS Software Collections で(少し)新しいバージョンを使える

http://www.slideshare.net/moriwaka/red-hat-software-collections http://blog.co-mit.com/post/15/RedHat+Software+Collections%E3%81%AF%E7%B4%A0%E6%99%B4%E3%82%89%E3%81%97%E3%81%84 http://www.idcf.jp/blog/cloud/software-collections-for-centos-…

yumの変数定義

すぐ忘れる。ほんと忘れる。 https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Using_Yum_Variables.html /etc/yum/vars/ 以下にファイル作る。 ファイル名が変数名、中身が値 おまけ: rpmbuild のデフ…

jq コマンド 初めて知った(json)

http://qiita.com/takeshinoda@github/items/2dec7a72930ec1f658af http://stedolan.github.io/jq/download/ JSON 出力を食わせれば項目ごとに改行されて良い感じに表示したり、 grepのように特定の項目のみ表示したりできる。素敵。

supervisor - 任意のコマンドをdaemonizeするブツ

http://supervisord.org/configuration.html daemontoolsみたいなもの?ざっと見たメモ supervisord が常駐 子プロセスとしてコマンドを実行/管理 コマンドはフォアグラウンドで実行 子プロセスが終了したら再度実行する 実行ユーザの指定、環境変数の設定等…

network モニタ用コマンド

Linuxでネットワークの監視を行えるモニタリングコマンド20選 http://orebibou.com/2014/09/linux%E3%81%A7%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E7%9B%A3%E8%A6%96%E3%82%92%E8%A1%8C%E3%81%88%E3%82%8B%E3%83%A2%E3%83%8B%E3%…

openssh chrootかつsftpだけ利用できる環境を構築する

参考 https://en.wikibooks.org/wiki/OpenSSH/Cookbook/SFTP#Chrooted_SFTP-only_Accounts 設定があまり複雑でなくて、色々な落としどころ求めたらこうなった。利用するのはopenssh。 opensshのMatch User(Group)とChrootDirectoryを使えばいいけど、 openss…

xfs_quota memo

https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/xfsquota.html uquota / ユーザquota gquota / グループquota pquota / プロジェクトquotalinuxの通常のquotaではディレクトリ単位の制限がで…

linuxでディレクトリ単位の容量制限

linuxのquotaってuid/gid 単位だからディレクトリ単位は無理じゃね?と思って調べた。 ddで空ファイルを作って、loopでmountする quotaを使用しないディレクトリ単位の容量制限 - とあるネットワーク管理者の苦悩d.hatena.ne.jpこれ簡単で楽チンですね。ddで…

roundcube - オープンソース webmail

Roundcube - Free and Open Source Webmail Software phpで動く mysql / pgsql / sqlite imap 対応 web上で動くimap対応clientなので、サーバ側は別途設定しとく必要あり(postfix/dovecotなど) メニューも日本語対応しててオープンソースの割になかなかよさ…

RHEL6 linux quota usrquota grpquota

久々にやったら昔とコマンドのオプション変わったのができなかったのでfstab /dev/mapper/vg1_lv_home /home ext4 defaults,usrquota,grpquota 0 0aquota.user, aquota.group はtouchなどをしなくてもquotacheck -c (create) で作ってくれた。 mount /home -…

apache でload average の値によってページを差し替えるサーバ負荷に優しい方法

# aws でauto scaling しろよ、というのはさておき http://httpd.apache.org/docs/2.2/rewrite/rewritemap.html http://httpd.apache.org/docs/2.2/programs/httxt2dbm.html RewriteMap で外部のファイル/コマンドを実行した値を変数に入れて、RewriteCond …

vSphere APIでVMware をlinuxから操作する

account作って、my vmwareからdownloadVMware vSphere CLI https://developercenter.vmware.com/web/dp/tool/vsphere_cli/ vSphere Perl SDK for vSphere https://developercenter.vmware.com/web/dp/sdk/55/vsphere-perl というのからも別ファイルがdownloa…

色つきのdiff

colordiff (yum install --enablerepo=epel colordiff) git diff --color git diffはリポジトリ管理してないファイル同士のdiffにも使えるのが素敵。最近だとだいたいOSに入ってそうだし。

RHEL yum でinstallしたapache はLoadModuleからsuexec_module を決しても/usr/sbin/suexecがあるとsuexecが有効になるみたい

# source installした場合は試してない。httpd.conf (or includeされているその他のfile)でloadmoduleしている場合 $ grep suexec httpd.conf LoadModule suexec_module modules/mod_suexec.so $ httpd -M 2>&1 | grep suexec suexec_module (shared)起動時…

scriptで取ったログをcolで変換すると怒られてテキストに変換できないときの対処

scriptで取ったログは入力したバックスペースや表示される(目に見えない)制御記号なども記録されるので $ col -bx < typescript > log.txtなどとすれば良いんけど、端末の文字コードとテキストの文字コードが一致していないと(?)文字化けして怒られて、変換…

RHEL bondingの設定教えてくれるURL

https://access.redhat.com/labs/networkbondinghelper/ 要redhat network account ガイドにしたがってポチポチ入れてたらコンフィグ(ifcfg-*)用意してくれる。 ど忘れしたときに良いかも。

MySQLの公式yum リポジトリ

RHELのyumのmysqlはバージョン低いから今までdev.mysql.domからbinary取ってきてたんだけど、これだと構成管理上めんどくせーなーと思っていた。 が、いつのまにかyum/rpmが用意されてた。ありがたや http://dev.mysql.com/downloads/repo/yum/ # wget http:…

memo: ddでバッファを含まずにdiskのwrite(sequential)の性能を見るときは conv=fdatasync をつける

ちょいちょいオプション忘れる $ dd if=/dev/zero of=./hoge.dat bs=1M count=10000 conv=fdatasync

RHEL系で古いカーネルをさくっと削除する

yum update しても古いカーネルは残っているので、場合によっては適当なタイミングで削除しないといけない。で、今まではrpm -qaやuname -rなどでkernelのバージョンを確認したあと、不要なものを都度yumで指定して消してたんだけど、素敵コマンドで一発で出…

bashでリダイレクトを使ったソケット通信

vpsのhttpdのログにbash脆弱性を狙ったアクセスが来ていて、たいていはどこかへpingを実行したり、HTTPヘッダにX-Bash-Test というのを含めて脆弱性を確認してるだけ、みたいなのだけど、その中で見慣れないログを見つけた。 User-Agent: () { :; }; /bin/ba…

古いRHEL (RHEL5) を放置してたらSSLの証明書期限切れでrhn_registerが使えなくなってた時の対応

https://www.jpcert.or.jp/at/2014/at140037.html bash 脆弱性対応のためにyum update bash しようとしたら、一部のRHEL5のサーバでyum が使えなくなっていた(もちろんサブスクリプション登録はしている)expiredという文字だけ見て、はじめはRHELの更新忘れ…

ncで簡易webサーバを起動する

外からNW、FWの疎通確認をしたいけどまだwebサーバでhttpd起動してなかった、というときなどに。 # echo "HTTP/1.0 200 OK" > hoge.txt # echo "" >> hoge.txt # echo "hogehoge" >> hoge.txt # while :; do nc -l 80 < hoge.txt ; done ファイル作るの面倒…

ngrepで保存したファイルはフラグが全部"P"になってしまう

ngrep -W byline をつけるとだいぶ便利なので、ついそのままの勢いで-O /tmp/hoge.cap などとしていた。 で後からそのパケット見ようとしたらRST以外のフラグが全部Pになってしまってた?? 保存するときはやはりtcpdump -w file 使った方が良いかな。 保存…

drbd 8.4.5から管理系のコマンド(drbdadm等)がdrbd-utils に分離してた

http://lists.linbit.com/pipermail/drbd-user/2014-June/021381.html http://oss.linbit.com/drbd/8.4/drbd-8.4.5.tar.gz http://oss.linbit.com/drbd/drbd-utils-8.9.0.tar.gz なので、それぞれinstallする。 drbd kernel module (drbd.ko) tar zxvf drbd-…

splunk - リアルタイムログ解析プラットフォーム

名前は聞いたことあったけど、interopで詳細聞いて面白そうだった。 fluentd + growthforecast or その他の見える化ツールのようなもの? http://ja.splunk.com/ ドキュメントだいぶ充実してる。 linuxや各種ネットワーク機器用のapp (cacti でいうtemplate…

couchbase server - ドキュメント型NoSQL DB 触ってみたメモ

db tech showcase で詳細聞いておもしろそうだった。 http://www.couchbase.com/jp/ コミュニティ版(無償)とエンタープライズ版の2種類 コミュニティ版はエンタープライズ版の1つ前のメジャーバージョンが提供される エンタープライズ版でも2ノードまでは無…

VMware ESXi 仮想マシンにvlan tagを通す

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2078548 http://kb.vmware.com/selfservice/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=1003806 http://kb.vmware.com/selfservi…

シェルスクリプト内にバイナリファイル埋め込んで、それをシェルから触る

cybozuのパッケージインストールシェル見てて知った。でも自分で使う機会なさそう。例えば何かソースを圧縮したtar.gz を埋め込んでおいて、シェルを実行したら、そのtar.gzを展開して何か操作をする。 source.sh この記述方法だとポイントはtailの行数。シ…

opensslでOCSP Responder を起動する

# openssl ocsp -index index.txt -CA cacert.pem -rsigner cacert.pem -rkey \ private/cakey.pem -port 2560 Enter pass phrase for private/cakey.pem: # cakey.pemのpassphrase を入力 Waiting for OCSP client connections... Invalid request Responde…

RHEL6/CentOS6 でiproute netns (network namespace) を使ってnetnsの勉強

http://blog.hansode.org/archives/52634753.html http://ritchey98.blogspot.jp/2013/12/centos6-linux-network-namespace.html OS標準のiprouteではversionが古いので、openstackのpackageを利用すると良い。 netnsで遊ぶ http://aikotobaha.blogspot.jp/2…

grub install memo

昔はgrub シェルでinstall コマンドを自力で書いてた気がするけどsetup だけで良かったぽい。 man grub info grub /dev/sdb1 に/boot パーティションある場合 # grub > device (hd0) /dev/sdb > root (hd0,0) > setup (hd0) > quit