FC2ブログ

FTPサーバーのPASVとルータの関係

ブラウザーからftpサーバーに接続する時はパッシブモードで接続しているのですが。

ルータによってはパッシブモードで接続できないときがあります。っていうかnetvolanteでは接続不可でした。

NTT西日本の光プレミアムで使用するCTU経由では21ポートのみ開放でもパッシブモードで利用出来るのでそのへん戸惑いました。

内部でうまい具合にポート変換しているのでしょうかね?

でpppoe接続でCTU使っている場合はパッシブモードで使われるポートも開放してあげないといけません。

vinelinux5の場合は/etc/proftpd.confの内容

MasqueradeAddress ダイナミックDNS or 固定IP PassivePorts 60000 60010 <どのポートで待ち受けるかの範囲、値はお好みで
を追加記述してあげる。

あとはルータで60000から60010のポートを開放する。

クライアント君「ftpさんつなぎますよ~」

ftpさん「わしのIPアドレスといまからあけるポート今から言うぞ」

クライアント君「了解ではそのIPアドレスのポート番号に繋ぎます」

ftpさん「よしきた!~~w」

という動作になります。

あと動的グローバルIPアドレスをお使いの人はftpの動作モードをinetdに変更する必要があります。(グローバルIPが変化しても更新されないため)

デフォルトではstandaloneになってるのでinetdに変更する。

chkconfig proftpd offでデーモン起動を停止

viエディタで/etc/xinetd.d/ftpなどお好きな名前で新規ファイル作成

service ftp
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/in.proftpd
}

/etc/init.d/xinetd restartでxinetdを再起動

ftp接続要求があるとproftpdが起動するはず。

念のために一旦ネット切断してグローバルIPを変化させてから再接続を試みるといいでしょう。


Phpmyadminへの攻撃

自鯖のログより。

この秒単位の攻撃w何かのツールを使っているのであろうかという不正アクセスウェブログ。

これはPhpmyadminのセキュリティホールをついた攻撃です。

404コードで返っているので自分のところは大丈夫ですが

鯖を組んでいる人でMYSQLを使っている人は要注意ですね。

ブロードバンドルータの不正アクセスログでport80でログが残っている人はほぼこれが原因だと思います。

[01/Nov/2009:04:21:06 +0900] "GET //phpmyadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 310 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
[01/Nov/2009:04:21:07 +0900] "GET //pma/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 303 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
[01/Nov/2009:04:21:08 +0900] "GET //admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 305 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
[01/Nov/2009:04:21:08 +0900] "GET //dbadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 307 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
[01/Nov/2009:04:21:09 +0900] "GET //mysql/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 305 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
[01/Nov/2009:04:21:09 +0900] "GET //php-my-admin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 312 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
[01/Nov/2009:04:21:10 +0900] "GET //myadmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 307 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
[01/Nov/2009:04:21:11 +0900] "GET //PHPMYADMIN/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 310 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
[01/Nov/2009:04:21:11 +0900] "GET //phpMyAdmin/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 310 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
[01/Nov/2009:04:21:12 +0900] "GET //p/m/a/config/config.inc.php?p=phpinfo(); HTTP/1.1" 404 305 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"

ちなみに相手はクロアチアからの攻撃でした。

Proxyサーバー役割

Proxyサーバーの役割としては掲示板とかに書き込みする人など生IPを特定されにくくするために使っている人がほとんどだとは思います。

大まかな役割としてはProxyキャッシュでデータがキャッシュされているのでwebアクセスの負荷を低減させます。でも今となっては回線のブロードバンド化でそれとしての機能にメリットは感じられない。

webアクセスログがProxyサーバーからのアクセスになるのである程度は身元を隠せる

掲示板の悪用なので警察沙汰になったらまずProxyのログを調べるためにまず最初にサーバーの管理者に取り調べがくることでしょうw捜査に時間かかるので警察としては厄介でしょうが。

一番の便利?な使い方としては、ローカル側にProxyサーバーを置いてそれ経由でインターネットしているところなどでは、様々な管理ができます。

社内でインターネット環境があるところでは、どこにアクセスしたかどうかとか、いやらしい使い方ですが、分かりますw

また特定のサイト2chとか見ようとしたら


のようなメッセージをだしてアクセス制御できますよ。

自分の環境ではsquid proxyを使って動作検証しました。

/etc/squid/error/ERR_ACCESS_DENIED
のHTMLファイルをカスタマイズすればお好きな警告メッセージをだせます。
社長の顔もしくはお局の顔をいれとくと効果あるかもしれませんw

vinelinux5 x86_64

centosで一通りftp+sambaを構築したのですが、anonymousftpで使用するディレクトリのパーミッションが0777で使用するとanonymousftp接続したときにログインできない不都合が発生しました。

というよりvsftpdがセキュアであり、柔軟性が無いんですよね~

なので使い慣れているproftpdを使用することに計画を変更。

centosで使用してもよかったのですが、もともと標準ftpサーバで使われているvinelinuxを選択しました。

proftpdはwebminのモジュールでも使用できますしね^^

リモート設定はopensshで行うのが基本ですが、webminもつかえると楽です。

んでftpサーバにアクセスしてみるとどうしても2バイト文字が化ける問題が発生

/etc/proftpd.confの内容で

Server side: EUC / Client side: EUC
CharsetLocal EUC-JP-MS
CharsetRemote EUC-JP-MS

Server side: UTF-8 / Client side: UTF-8
CharsetLocal UTF-8
CharsetRemote UTF-8

Server side: UTF-8 / Client side: Shift-JIS
CharsetLocal UTF-8
CharsetRemote CP932

3つほどパターンがあったのですがサーバーとクライアント側で文字コードを相互にエンコードしてくれる記述があったのですが、全部コメントアウトにしたら正常になりました。

これの使い時ってどんなときなんだろうか…

昔はパッチあてて対応していたみたいですけど、今は上記のエンコードオプションがあるのでしょうけど。

anonymousftpのほうは

/var/ftp

をSambaで共有してます。

ftpクライアント使えって突っ込まれそうですが、導入後のメンテナンス考えると大変なので

この方法を採用してます。

vine64_convert_20091028223118.png


CentOS5.4 x86_64

たまには仕事ネタでもするかな。資料残しも含まれてますw

ずいぶん前に要望で、ある本社にサーバーを置いて複数の支社からファイルを共有したいとの話があったのです。

「予算を出来るだけ抑えつつお願いw」って

まあ普通ローカルネットでファイル共有して運用している会社は山ほどあるわけですけど。

グローバルIP経由でファイル共有しているところはよほど大きな企業でもないかぎりあまり例はないでしょう。

ヤマハのネットボランチを使うDDNSとかNTTフレッツグループつかったりと色々な候補はあったのですがそれでも、予算オーバーとのこと。

う~む。

ならファイルを見に行くだけとかでしたら予算おさえられますよ~やら色々打ち合わせしつつ最終的に

それでもいいとのことなので、仕様は決まりました。

本社にanonymousFTP+Sambaサーバーを構築して、各支店からそれをftp経由で見にいく使い方です。

そんでもって本社で公開したいファイルはftpディレクトリをSamba共有でいつでもファイルを放り込める簡単設計に決めました。

DDNSは安定性とか考えて、ヤマハのネットボランチで決まりです。これは本社のみに置きます。

外部からはftp経由でファイルを持っていく。安価仕様ですなw

サーバー機はどうしようか?データのミラーリングとか必要かな?

依頼元曰く「データはそんなに重要でもないし容量もそんなに多く必要じゃない」

とのことです、そこまでおさえるかw

ハードウェア仕様

ケースITX-200
小さいほど良いでしょう。(ファンレス仕様にしたかったけどね)

Intel Atom D945GCLF2
これは、低電力であるのが強みです。1.6GhzのCPU2コアでHTで動いちゃってますので4スレッドで動きます。
十分すぎでしょう。

memoryは1GBでHDDは320GB(SSD使いたかったけどね)

合計25000円程度です。

OSは

CentOS5.4の64bitを選択

慣れているvineでもよかったけど、企業用ではCentOSのほうがいいかな?ってなんとなく決めましたw

私のなんとなくって結構信頼あると思うw

あとubuntuとかでもいけるけど、あれは素人っぽくで「なんとなく」いやです。

まあubuntuって初期でガチガチファイヤーウォールかかっていたと思うので、それを解除するのがめんどくさそう。

まあなんだかんだで、さくさくPC組み立てて、CD/DVD無いのでネットワークインストールしました。

① ftp://ftp.riken.jp/でネットワークブートイメージを拾ってきまして、USBストレージのルートディレクトリにisolinuxフォルダの中身をコピー

② isolinux.cfgファイルをsyslinux.cfgにリネーム

③ そのUSBストレージに向かってsyslinux.exeを使って syslinux -ma G:(USBストレージのドライブレター)でFAT環境でlinuxをブートさせるものです。昔あったDOSのsysコマンドみたいなもん

④ USBブートさせてからftp経由でネットワークインストール



今日はここまで。
centsys_convert_20091026225641.png