こんなメールが来ました。なんかね、ぱっとみたら、フィッシングっぽい雰囲気を出している内容で送ってくるとはw
そういえば、こんなお手紙も入ってましたっけw`
ぎりぎりまで残すかな。あ、その前にPD盤を打たせないと面倒だよなぁ。。。
こんなメールが来ました。なんかね、ぱっとみたら、フィッシングっぽい雰囲気を出している内容で送ってくるとはw
そういえば、こんなお手紙も入ってましたっけw`
ぎりぎりまで残すかな。あ、その前にPD盤を打たせないと面倒だよなぁ。。。
Alteon VAで遊ぶの巻。
さすがAAS。基本的なCLI変わってないっすね。。。そして、MacbookAirでも問題無く動いているようですwww
ノマドには最適です。おもちゃとしてw
悲しいwww
551といえば、蓬莱!というキャッチフレーズ。関西では常識だったので、普通にみんなが知ってるんだろうとおもったら、言葉が通じなかった脱力感とむなしさでいっぱい。。。((;>_<;)
さくらのVPSを追加で契約しようとしたら、こんなこと言われました。。。
えーっと、私の生活IPは、さくらのネットワーク上にあって、59.106.0.0/16 の中にあるんですけど、自社のIPを拒否するってどういうことでしょうか。。。
素敵すぎる実装、消費者の見方ということで、前回の 記事に追記させていただきました!
とあるサーバで、システム管理者がポートを変更しており、既存のポートではないデータベースを構築してしまい、一部のミドルウェアで非常に不都合が出てしまいました。んで、対応策を考えた結果...どうしたかという と。。。
環境は CentOS 6、OS標準のMySQL。
あんちょこな考えで行くと、/etc/my.cnf で port を複数書いてみて、同時に複数のポートをLISTENできるかどうかと考えつくが無理。
[mysqld] port=3306,13306
[mysqld] port=3306 port=13306
どちらもダメ。後者は、設定が上書きされ、二つ目のポートが有効に。
じゃあ、ポート変換があればいいのね、ってことで、stone でやってしまうと、データベースへの接続時のsrc ip に不都合が出てしまいます(L7の為)。
結果、行きついた結果は次の通り。
という方法などがあり、一番シンプルなのは標準で実装されているiptablesを使うのが無難でしょう。
しかし、iptables では、問題がありそのまま実装してしまうと、localhost 宛てのの通信は、リダイレクトできません。なぜならば、インターフェースに入ってくるトラフィック(PREROUTING)、インターフェースから出ていくトラフィック(POSTROUTING)の処理だからです。
苦肉の策で、ローカルプロセスからの通信は、stone を使えば、期待できる挙動にたどり着けます。
お互いlocalhostで解決するため、src address の問題もありませんし。
# stone localhost:3306 localhost:13306 May 19 16:08:47.220262 140674508240832 start (2.3e) [32257] May 19 16:08:47.223528 140674508240832 stone 3: 127.0.0.1:mysql <- 127.0.0.1:13306
さあ、つないでみましょう。
$ mysql -h 127.0.0.1 -P 13306 -u root -p
-h localhost だと、-P オプションが有効にならず、3306 で接続されてしまったため、注意が必要です。
問題なく、接続できたか確認は次の通り。
今回、127.0.0.1 で接続しているので、localhost で表示されています。
mysql> SELECT ID, USER, HOST, DB FROM information_schema.processlist ; +-----+--------+-----------------------------+--------+ | ID | USER | HOST | DB | +-----+--------+-----------------------------+--------+ | 152 | root | proxy.example.jp:48765 | NULL | | 319 | root | localhost:41223 | NULL | +-----+--------+-----------------------------+--------+
# netstat -anop |egrep '(13306)|(41223)' tcp 0 0 127.0.0.1:13306 0.0.0.0:* LISTEN 32257/stone off (0.00/0/0) tcp 0 0 127.0.0.1:3306 127.0.0.1:41223 ESTABLISHED 31425/mysqld keepalive (7068.38/0/0) tcp 0 0 127.0.0.1:13306 127.0.0.1:59827 ESTABLISHED 32257/stone off (0.00/0/0) tcp 0 0 127.0.0.1:59827 127.0.0.1:13306 ESTABLISHED 447/mysql keepalive (7068.38/0/0) tcp 0 0 127.0.0.1:41223 127.0.0.1:3306 ESTABLISHED 32257/stone off (0.00/0/0)
上記の結果から、mysqlコマンドでstoneにつなぎ、stoneがmysqldにつながっているのが確認できました。
でも、 全然美しくない!!!!
気になったので、ローカルプロセスのトラフィックを制限できないか、と気になり調べていたところ、出ていくトラフィックを制限してしまえばよいことに気づき、次の方法で実践。
参考になったサイトは、
80番ポートへ届いたパケットをiptablesでローカ ルの上位ポートに転送する - Qlitaです。やりたいことがズバリと書いていました。つか、かわずんかよ(w
# リアル知り合いですぉ(^-^)
さあ、実践です。
CentOSなので、事前にチェックした結果、問題なかったので /etc/sysconfig/iptables に次のように記載しま した。
*nat :PREROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A PREROUTING -p tcp --dport 13306 -j REDIRECT --to-port 3306 -A OUTPUT -p tcp -d 192.168.1.100 --dport 13306 -j REDIRECT --to-port 3306 -A OUTPUT -p tcp -d 127.0.0.1 --dport 13306 -j REDIRECT --to-port 3306 COMMIT
確認してみたところ次の結果。
$ mysql -h 127.0.0.1 -P 13306 -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. mysql>
$ mysql -h 192.168.1.100 -P 13306 -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. mysql>
上記の接続時の結果は次の通り。
mysql> SELECT ID, USER, HOST, DB FROM information_schema.processlist ; +-----+--------+-----------------------------+--------+ | ID | USER | HOST | DB | +-----+--------+-----------------------------+--------+ | 357 | root | localhost:59868 | NULL | +-----+--------+-----------------------------+--------+
mysql> SELECT ID, USER, HOST, DB FROM information_schema.processlist ; +-----+--------+-----------------------------+--------+ | ID | USER | HOST | DB | +-----+--------+-----------------------------+--------+ | 369 | root | 192.168.1.100:45385 | NULL | +-----+--------+-----------------------------+--------+
期待した通りの動きになりましたとさ。
でも、コレには続きがありまして、このiptables を使うには、nat のモジュールが必要です。
OpenVZの様なVPSでは、自身のカーネルを持っていないコンテナ技術。
すなわちモジュールとして組み込まれていないと動作しません。
ipiptables: Applying firewall rules: FATAL: Could not load /lib/modules/2.6.32-xxxx/modules.dep: No such file or directory iptables-restore v1.4.7: iptables-restore: unable to initialize table 'nat' Error occurred at line: 1 Try `iptables-restore -h' or 'iptables-restore --help' for more information. [FAILED]
参考に、/lib/module 以下がどうなっているかというと...
# find /lib/modules/ /lib/modules/ #です。