title
TOP / Wiki / Diary / Profile / PC / BBS / Mail
わたしの日記は日々の出来事の鬱憤晴らしの毒だし日記がメインです。 相当病んでいます。くだを巻いています。許容出来る方のみのアクセスをお願いします。 また、この日記へのリンクは原則自由にして頂いても結構ですが、 写真への直リンクを張るのはご遠慮下さい。内容に関しては、一切保証致しません。
カテゴリ一覧 Network, Internet, IPv6, DC, NTT, Comp, Linux, Debian, FreeBSD, Windows, Server, Security, IRC, 大学, Neta, spam, , 生活, 遊び, Drive, TV, 仕事,
過去日記:



2015年05月13日(水) [晴れ]

[NTT][Internet] NTT西日本からのお手紙@Bフレッツしゅーりょーのおしらせ

こんなメールが来ました。なんかね、ぱっとみたら、フィッシングっぽい雰囲気を出している内容で送ってくるとはw



そういえば、こんなお手紙も入ってましたっけw`




ぎりぎりまで残すかな。あ、その前にPD盤を打たせないと面倒だよなぁ。。。

[ コメントを読む(0) | コメントする ]

[Network] Alteonで遊ぶ

Alteon VAで遊ぶの巻。
さすがAAS。基本的なCLI変わってないっすね。。。そして、MacbookAirでも問題無く動いているようですwww



ノマドには最適です。おもちゃとしてw

[ コメントを読む(0) | コメントする ]

[Neta] とあるモノの名前が551だったので、蓬莱(ほうらい)だね!といったら意味が理解されなかった件について

悲しいwww
551といえば、蓬莱!というキャッチフレーズ。関西では常識だったので、普通にみんなが知ってるんだろうとおもったら、言葉が通じなかった脱力感とむなしさでいっぱい。。。((;>_<;)

[ コメントを読む(0) | コメントする ]

[Server][Network][Neta] さくらのVPSを追加申込みしようとしたら....

さくらのVPSを追加で契約しようとしたら、こんなこと言われました。。。



えーっと、私の生活IPは、さくらのネットワーク上にあって、59.106.0.0/16 の中にあるんですけど、自社のIPを拒否するってどういうことでしょうか。。。

[ コメントを読む(0) | コメントする ]

2015年05月17日() [晴れ]

[Neta][Comp][Other] Tamecco のポイントカードが素敵すぎる

素敵すぎる実装、消費者の見方ということで、前回の 記事に追記させていただきました!

[ コメントを読む(0) | コメントする ]

2015年05月18日(月) [晴れ]

[Linux] iptable を使った、ポートの変換

とあるサーバで、システム管理者がポートを変更しており、既存のポートではないデータベースを構築してしまい、一部のミドルウェアで非常に不都合が出てしまいました。んで、対応策を考えた結果...どうしたかという と。。。

環境は 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/
#
です。
こうなってくると、MySQL Proxy などを検討する必要が出てきそうです。

ああ、にしても、カオスなサーバはつらないでほしいなぁ。。。
[ コメントを読む(0) | コメントする ]

Diary for 3 day(s)
Powered by hns-2.19.6, HyperNikkiSystem Project




(c) Copyright 1998-2014 tomocha. All rights reserved.