またテスト荒らしになりそうです。申し訳ありません。
このテスト結果見て頂きたいんですが、m(._.)m オネガイ
ホスト(219.164.xxx.xxx)のポート(21)に接続中です。(2003/02/07 14:32:11)
Connected to 219.164.xxx.xxx (219.164.xxx.xxx).
220 ProFTPD 1.2.8rc1 Server (ProFTPD) [219.164.xxx.xxx]
Name (219.164.xxx.xxx:nobody): ---> USER anonymous
331 Anonymous login ok, send your complete email address as your password.
---> PASS XXXX
230 Anonymous access granted, restrictions apply.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
---> PWD
257 "/" is current directory.
---> TYPE A
200 Type set to A
---> PASV
227 Entering Passive Mode (219,164,xxx.xxx,15,187).
Error999: タイムアウトしました。(10 sec)
☆☆☆ テストは異常終了しました。☆☆☆ (2003/02/07 14:32:21)
こんな感じですが問題点はあと、何でしょうか?
一応Proftpd側でproftpd -tではSyntax check complete
servername -127.0.0.1:21 masquerading as 219.164.xxxとなりますので問題ないとおもいます。
ルーターからPASVPORT転送をおやじ師匠のように転送ポート設定してあります。
proftpd.confにはルータと同じポート設定をしています。
では、よろしくお願いします。m(._.)m
このテスト結果も見て頂きたいんですが、m(._.)m オネガイ
#nmap 219.164.xxx.xxxとすると
21/tcp filtered ftp
80/tcp filtered http
135/tcp filtered loc-srv
136/tcp filtered profile
137/tcp filtered netbios-ns
138/tcp filtered netbios-dgm
139/tcp filtered netbios-ssn
445/tcp filtered microsoft-ds
です。あららポートフォワーディングスクリプト間違えてるのかな??
これも、よろしくお願いします。m(._.)m
遅いですが、こんばんは。
> このテスト結果見て頂きたいんですが、m(._.)m オネガイ
>
> ホスト(219.164.xxx.xxx)のポート(21)に接続中です。(2003/02/07 14:32:11)
>
> Connected to 219.164.xxx.xxx (219.164.xxx.xxx).
> 220 ProFTPD 1.2.8rc1 Server (ProFTPD) [219.164.xxx.xxx]
> Name (219.164.xxx.xxx:nobody): ---> USER anonymous
> 331 Anonymous login ok, send your complete email address as your password.
> ---> PASS XXXX
> 230 Anonymous access granted, restrictions apply.
> ---> SYST
> 215 UNIX Type: L8
> Remote system type is UNIX.
> Using binary mode to transfer files.
> ---> PWD
> 257 "/" is current directory.
> ---> TYPE A
> 200 Type set to A
> ---> PASV
> 227 Entering Passive Mode (219,164,xxx.xxx,15,187).
>
> Error999: タイムアウトしました。(10 sec)
> ☆☆☆ テストは異常終了しました。☆☆☆ (2003/02/07 14:32:21)
>
> こんな感じですが問題点はあと、何でしょうか?
>
> 一応Proftpd側でproftpd -tではSyntax check complete
> servername -127.0.0.1:21 masquerading as 219.164.xxxとなりますので問題ないとおもいます。
>
> ルーターからPASVPORT転送をおやじ師匠のように転送ポート設定してあります。
>
> proftpd.confにはルータと同じポート設定をしています。
今、こちらからテストしてみました。proftpdは設定も含めて問題なさそうですが、FFFTPやftpコマンドとも、試験結果のとおりで、データコネクションが張れないのでLISTで止まります。proftpdはチャントしたアドレスを4000〜?を返して来てますので、ルータのポートマッピングとフィルタがおかしいか、iptables当たりで飛ばされているかです。
nmapは、家庭内からやったのでしたら通らなくて正常です。一般的に家庭内からルータのWAN側のグローバルアドレスを指定してパケットを投げると、ルータは全て廃棄してしまいます。ルータとして普通の動作です。おやじのHPのセキュリティ対策の下の方にあるオンラインスキャンのサイト(sygate等)で試験するといいです。
どうも、ご無理申し訳ありません、感謝いたします。
> 今、こちらからテストしてみました。proftpdは設定も含めて問題なさそうですが、FFFTPやftpコマンドとも、試験結果のとおりで、データコネクションが張れないのでLISTで止まります。proftpdはチャントしたアドレスを4000〜?を返して来てますので、ルータのポートマッピングとフィルタがおかしいか、iptables当たりで飛ばされているかです。
問題点はやっぱりルーターの設定あたりですね、なんどもおやじ師匠のホームページを見て勉強させて頂きました。
やっぱり予想どうりデータコネクション用のポートフォワーディングがなにかまずい模様です。
しかし、proftpdは凄く反応、転送速度ともにスポーツカーなみですね、今までのwindows用のFTPDは何だったんだと思います。
私の今のLinuxコンピューターの基本的なとらえかたが、ネットワークに始まりネットワークに終わるという姿勢で行きたいと考えます。
ルーター設定もすこし時間がかかりご迷惑になりますが、よろしくです。
ではー。
シマンテックでテストしましたが、一応見てくださいませ。
ネットワーク脆弱性スキャン
結果:
ポート 種類 状態
ICMP Ping Ping: Ping はコンピュータに存在するかどうどうかを問い合わせるネットワークトラブルシューティングユーティリティです。コンピュータが存在の応答を返せばハッカーもそれを知ることになります。
21 FTP (File Transfer Protocol): このプロトコルは標準 FTP プログラムを使ってコンピュータ上のファイルをダウンロードするために使われます。FTP サーバーが動作している場合にのみ開いてください。
22 SSH: このポートに対する TCP 接続は SSH の検索を示すことがあり、SSH には多少の役立つ機能があります。SSH は Telnet の安全な代用になります。SSH の最も一般的な用途は安全にログインしてサーバーからファイルをコピーすることです。
23 Telnet: Telnet を使うと世界中のどこにある端末からでもコンピュータにログインできます。このポートは Telnet サーバーが動作している場合にのみ開いてください。
25 SMTP (Simple Mail Transfer Protocol): ホスト間のメール転送用のプロトコルです。このポートはメールサーバーが動作している場合にのみ開いてください。
79 Finger: インターネットに接続しているユーザーの氏名、ログオン状態、プロファイル情報などを入手するためのユーティリティです。
80 HTTP (Hypertext Transfer Protocol): クライアントとサーバーの間でメッセージを転送し合うためのプロトコルです。このポートは Web サーバーが動作している場合にのみ開いてください。
110 POP3 (Post Office Protocol): インターネットメールサーバーやメールフィルタアプリケーションがこのポートを使います。このポートはメールサーバーが動作している場合にのみ開いてください。
113 Ident / Authentication.: このサービスは一部のメール、ニュース、リレーチャットにアクセスを許可するために必要です。このポートを秘匿にすると処理速度の問題が起きることがあります。
119 NNTP (Network News Transfer Protocol): ニュースサーバーが Usenet 記事をニュースリーダーアプリケーションに配信または他のサーバーとの間で配信し合うために使うサービスです。
139 NetBIOS: NetBIOS は Windows のファイル共有やプリンタ共有に使われます。ポート 139 が開いていれば、コンピュータはインターネット経由でファイル共有を開放しています。他の NetBIOS コンポーネントはコンピュータ名、ワークグループ、ユーザー名、その他の情報を開示する可能性があります。NetBIOS ポートに対する接続の防止について詳しくは、次を参照:NetBIOS 情報と設定の手順
143 IMAP (Internet Message Access Protocol): IMAP は電子メール配信のための高度なプロトコルです。このポートは IMAP サーバーが動作している場合にのみ開いてください。
443 TLS/SSL 経由の HTTP: 安全な HTTP 通信を用意するためのプロトコルです。このポートは Web サーバーが動作している場合にのみ開いてください。
445 Windows NT / 2000 SMB: サーバーメッセージの交換に使われる標準プロトコル (SMB は Server Message Block の略) でパスワードの取得など複数の方法で使われます。
1080 SOCKS: このプロトコルを使うとコンピュータはファイアウォールを通してインターネットにアクセスできます。SOCKS は何台ものコンピュータが 1 つの IP アドレスを共有するときに使われます。一般にこのプロトコルは内側からのインターネットに対するアクセスのみを許可します。ただし、誤った設定のためにハッカーがファイアウォールを通して内側にトラフィックを渡せるようになることがよくあります。
1723 PPTP (Point-to-Point Tunneling Protocol): このサービスは仮想専用ネットワーク接続に使われます。
5631 pcAnywhere: このポートはシマンテック社の pcAnywhere がホストモードのときに使われます。
上記の内オープンがICMP Ping Pingと80 HTTP と21 FTP でした。4000番からのポートがでていないということは、ポートフォワーディングができていないということで考えて間違いありませんでしょうか?
としますと解決方法としてiptablesによるポートフォワーディングの修正という方向性ですね。
調べているのですが見つからないので、もしご存知であればiptablesでパッシブポートのフォワーディングに関して記載されているURLなどありませんでしょうか?
私のほうに念のためNMAPでデータポートのテストして頂くのはご無理でしょうか?
お願いかたがたです。
ではでは。
こんばんは。
> 上記の内オープンがICMP Ping Pingと80 HTTP と21 FTP でした。4000番からのポートがでていないということは、ポートフォワーディングができていないということで考えて間違いありませんでしょうか?
シマンテックは代表的なポートしかスキャンしないので引っかからないと思います。sygateが時間がかかりますが全てスキャンできるのですが、今は、つながりませんね。
> としますと解決方法としてiptablesによるポートフォワーディングの修正という方向性ですね。
> 調べているのですが見つからないので、もしご存知であればiptablesでパッシブポートのフォワーディングに関して記載されているURLなどありませんでしょうか?
>
> 私のほうに念のためNMAPでデータポートのテストして頂くのはご無理でしょうか?
取り敢えず1-110までと、4000-4010までスキャンしましたが21と80のほかは開いていません。サーバでフィルタしているのでしょうか?おやじは、クライアントと同じ位置にLANカード1枚でサーバがぶる下がっているので、サーバはスッポッポンです。サーバでルータを兼ねPPPoE用とLAN用の2枚のLANカードを入れた時の例なら、No.349に書いてありますが、参考にはなりませんでしょうか?ポリシーはほぼTE4121Cと同じです。ここの35の下あたりに、下記を追加すればいいと思います。
35'; -A input -i ppp0 -s 0/0 -d 0/0 4000:4029 -p tcp -y -j ACCEPT
どうもです先ほどのスクリプトを追加させて頂きました。
iptales -A input -i ppp0 -s 0/0 -d 0/0 4000:4029 -p tcp -y -j ACCEPT
ホスト(219.167.xxx.xxx)のポート(21)に接続中です。(2003/02/08 23:22:18)
Connected to 219.167.xxx.xxx (219.167.xxx.xxx).
220 ProFTPD 1.2.8rc1 Server (ProFTPD) [219.167.xxx.xxx]
Name (219.167.xxx.xxx:nobody): ---> USER anonymous
331 Anonymous login ok, send your complete email address as your password.
---> PASS XXXX
230 Anonymous access granted, restrictions apply.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
Passive mode off.
---> PWD
257 "/" is current directory.
---> TYPE A
200 Type set to A
---> PORT 192,168,xxx.xxx,138,246
200 PORT command successful
---> LIST
150 Opening ASCII mode data connection for file list
-rw-rw-rw- 1 root root 23463 Jan 28 02:47 httpd (・ウ・ヤ。シ).con
226 Transfer complete.
local: /var/log/ftptstlog/219.167.xxx.xxxtest.txt remote: test.txt
---> PORT 192,168,xxx.xxx,138,247
200 PORT command successful
---> RETR test.txt
550 test.txt: No such file or directory
---> QUIT
221 Goodbye.
☆☆☆ テストを終了しました。☆☆☆ (2003/02/08 23:22:20)
これはテストOKということでしょうか?
では、では。
> ホスト(219.167.xxx.xxx)のポート(21)に接続中です。(2003/02/08 23:22:18)
>
> Connected to 219.167.xxx.xxx (219.167.xxx.xxx).
> 220 ProFTPD 1.2.8rc1 Server (ProFTPD) [219.167.xxx.xxx]
> Name (219.167.xxx.xxx:nobody): ---> USER anonymous
> 331 Anonymous login ok, send your complete email address as your password.
> ---> PASS XXXX
> 230 Anonymous access granted, restrictions apply.
> ---> SYST
> 215 UNIX Type: L8
> Remote system type is UNIX.
> Using binary mode to transfer files.
> Passive mode off.
> ---> PWD
> 257 "/" is current directory.
> ---> TYPE A
> 200 Type set to A
> ---> PORT 192,168,xxx.xxx,138,246
> 200 PORT command successful
> ---> LIST
> 150 Opening ASCII mode data connection for file list
> -rw-rw-rw- 1 root root 23463 Jan 28 02:47 httpd (・ウ・ヤ。シ).con
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
これが出ているので、データコネクションはうまくいってます。(Activeモードですが)
> 226 Transfer complete.
> local: /var/log/ftptstlog/219.167.xxx.xxxtest.txt remote: test.txt
> ---> PORT 192,168,xxx.xxx,138,247
> 200 PORT command successful
> ---> RETR test.txt
> 550 test.txt: No such file or directory
> ---> QUIT
> 221 Goodbye.
>
> ☆☆☆ テストを終了しました。☆☆☆ (2003/02/08 23:22:20)
>
> これはテストOKということでしょうか?
これは、Activeモード(Portモード)の結果ですよね。テストそのものは、test.txtがフォルダになかったので、厳密にはファイルの取得ができていません。test.txtをanonymous用フォルダに置いてもらえば正常終了します。何故なら、LISTで文字化けしてますが、一覧表示ができており、データコネクションが張れていますのでネットワークの問題はありません。
PASVの結果を示してください。
まだ、だめですね。データポートは開いてますでしょうか?
> PASVの結果を示してください。
ホスト(219.167.xxx.xxx)のポート(21)に接続中です。(2003/02/09 00:25:03)
Connected to 219.167.xxx.xxx (219.167.xxx.xxx).
220 ProFTPD 1.2.8rc1 Server (ProFTPD) [219.167.xxx.xxx]
Name (219.167.xxx.xxx:nobody): ---> USER anonymous
331 Anonymous login ok, send your complete email address as your password.
---> PASS XXXX
230 Anonymous access granted, restrictions apply.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
---> PWD
257 "/" is current directory.
---> TYPE A
200 Type set to A
---> PASV
227 Entering Passive Mode (219,167,xxx.xxx,15,185).
Error999: タイムアウトしました。(10 sec)
☆☆☆ テストは異常終了しました。☆☆☆ (2003/02/09 00:25:13)
では。
よくわからないのですが、PPPoEをサーバで終端しているのでしょうか?おやじが示したのは先に書いたように、そのときの物です。そもそもルータの後ろにLANカード1枚でサーバを置いているなら、iptablesをいじる必要性はあまりないはずです。積極的に閉めるならできますが、家庭内と外とは同じethoから出入りするので設定がアドレスベースでかなり複雑になります。
もし、PPPoEをサーバで受けていないのなら、下記のとおりにしてください。なお、他にもいじっているならその限りではありません。
iptales -A input -i ppp0 -s 0/0 -d 0/0 4000:4029 -p tcp -y -j ACCEPT
^^^^
ここを消してください。
どうもです、少しルーターの設定に手間取りそうです。
何回かテストしてみましたが、パッシブポート接続ができないですね。
iptablesの設定はこんな感じです
if [ "${ENABLE_SERVERS}" = "y" ]; then
SERVER_IP_PASVPORTS=192.168.0.yy
PORT_PASVPORTS_PUBLIC=4000 4029
PORT_PASVPORTS_LOCAL=4000 4029
fi
# PASVPORTS:
if [ "${ENABLE_SERVERS}" = "y" ]; then
iptables -A PREROUTING -t nat -p tcp -d ${OUTSIDE_IP} --dport
${PORT_PASVPORTS_PUBLIC} -j DNAT --to
${SERVER_IP_PASVPORTS}:${PORT_PASVPORTS_LOCAL}
iptables -A FORWARD -p tcp -d ${SERVER_IP_PASVPORTS} --dport
${PORT_PASVPORTS_LOCAL}
-o ${INSIDE_DEVICE} -j ACCEPT
あとは、基本的にドロップで落としています、後で前回のスクリプトも入れてみましたが、まだ無理のようです。
内部は何も設定していません。
ポート接続はWAN,LANともに問題ないようです。
でも、理解できないのは20番ポート−は特に開けていないのになんでポート接続出来るのでしょうか???
> よくわからないのですが、PPPoEをサーバで終端しているのでしょうか?おやじが示したのは先に書いたように、そのときの物です。そもそもルータの後ろにLANカード1枚でサーバを置いているなら、iptablesをいじる必要性はあまりないはずです。積極的に閉めるならできますが、家庭内と外とは同じethoから出入りするので設定がアドレスベースでかなり複雑になります。
> もし、PPPoEをサーバで受けていないのなら、下記のとおりにしてください。なお、他にもいじっているならその限りではありません。
>
> iptales -A input -i ppp0 -s 0/0 -d 0/0 4000:4029 -p tcp -y -j ACCEPT
> ^^^^
> ここを消してください。
この説明は少し難しいのでもう少しよく考えてみます。時間は掛かりますがよろしくお願いします。
いつも、ありがとうございます。
ではでは。
こんばんは。 別に謝る必要はないのでは。おやじも一緒に勉強させてもらっているのですから。 全体の構成と、フィルタポリシーとiptablesの全体が分からないのでなんとも言えないのですが、気になったところだけ。 > if [ "${ENABLE_SERVERS}" = "y" ]; then > SERVER_IP_PASVPORTS=192.168.0.yy > PORT_PASVPORTS_PUBLIC=4000 4029 > PORT_PASVPORTS_LOCAL=4000 4029 > fi 3/4行目は範囲指定しているので、「:」が抜けてますね。これだけでOKかも? PORT_PASVPORTS_PUBLIC=4000:4029 PORT_PASVPORTS_LOCAL=4000:4029 > # PASVPORTS: > > if [ "${ENABLE_SERVERS}" = "y" ]; then > iptables -A PREROUTING -t nat -p tcp -d ${OUTSIDE_IP} --dport > ${PORT_PASVPORTS_PUBLIC} -j DNAT --to > ${SERVER_IP_PASVPORTS}:${PORT_PASVPORTS_LOCAL} > iptables -A FORWARD -p tcp -d ${SERVER_IP_PASVPORTS} --dport > ${PORT_PASVPORTS_LOCAL} > -o ${INSIDE_DEVICE} -j ACCEPT ここは、パラメータの意味がわからないのでなんともなんですが、下記でどうでしょうか?「eth1」は、WAN側のデバイス名にしてください。 if [ "${ENABLE_SERVERS}" = "y" ]; then iptables -A PREROUTING -t nat -p tcp --dport ${PORT_PASVPORTS_PUBLIC} -i eth1 -j DNAT --to ${SERVER_IP_PASVPORTS} fi ^^^^^ > あとは、基本的にドロップで落としています、後で前回のスクリプトも入れてみましたが、まだ無理のようです。 暗黙のDENYで必要なポートを開けるというポリシーは、フィルタの意味とアプリケーションがどんなポートを使用して、どんな動きをしているか分からないと繋がらなくなるので、注意が必要です。おやじは、動かないより動いたほうがいいとの判断で、「LAN側から始まる通信は基本的に通す。WAN側から始まる通信はサーバで使用しているもの、或いはアプリ上WAN側から通信が始まるポートのみを通過させる。」というポリシーで必要十分な設定と思っています。 > 内部は何も設定していません。 > ポート接続はWAN,LANともに問題ないようです。 > でも、理解できないのは20番ポート−は特に開けていないのになんでポート接続出来るのでしょうか??? これは、おやじの「FTPサーバの公開」に答えがあります。データコネクションの設定方向から当然接続できます。もしできないならwebの画面も見られない状態になっていると思います。「サーバ公開のための設定」のTE4121CやBA8000の設定を見ても分かると思います。 FTPサーバを基準にすると、20番はLAN側から始まる通信なので単にマスカレードしているだけ。逆にクライアントを基準に見ると、この20番はクライアントがサーバ側の動作になっていて、20番ポートからの接続を待っているという動きです。よく見てもらえば分かりますが、おやじのルータの20番に関する設定は後者のためのものです。従って、PORTでFTPサーバに繋がるのは少しもおかしくありません。積極的にドロップしているフィルタなら、むしろ、外部のFTPサーバにクライアントとしてPORTモードで接続するときの対策が必要です。 ところで、構成は(デバイス名は適当)下記でいいんですよね。 eth1┌───┐eth0 WAN ───┤ルータ├─── LAN(192.168.0.0/24) └───┘
こんにちは。
少し、あいまいなところはまだありますが、少し勉強しなおしました。
なんとなく分ってきたような気がします。いくつか問題があるようです。
> if [ "${ENABLE_SERVERS}" = "y" ]; then
> SERVER_IP_PASVPORTS=192.168.0.yy
> PORT_PASVPORTS_PUBLIC=4000 4029
> PORT_PASVPORTS_LOCAL=4000 4029
> fi
>
> # PASVPORTS:
>
> if [ "${ENABLE_SERVERS}" = "y" ]; then
> iptables -A PREROUTING -t nat -p tcp -d ${OUTSIDE_IP} --dport
> ${PORT_PASVPORTS_PUBLIC} -j DNAT --to
> ${SERVER_IP_PASVPORTS}:${PORT_PASVPORTS_LOCAL}
> iptables -A FORWARD -p tcp -d ${SERVER_IP_PASVPORTS} --dport
> ${PORT_PASVPORTS_LOCAL}
> -o ${INSIDE_DEVICE} -j ACCEPT
ここで書かれているフィルタは、
・1行目:インタフェースに無関係で${OUTSIDE_IP}というアドレスのTCPの${PORT_PASVPORTS_PUBLIC}番ポートにアクセスがあったら、そのパケットの宛先アドレスを${SERVER_IP_PASVPORTS}に、ポートを${PORT_PASVPORTS_LOCAL}に書換えて転送するという意味ですよね。、
・2行目:転送したパケットで${SERVER_IP_PASVPORTS}というアドレス宛でTCPの${PORT_PASVPORTS_LOCAL}番ポートで、${INSIDE_DEVICE}というインターフェース向けは通過させる。
というもので、冗長になっているのと、ポート番号は変換しないのにサーバ側のポートを指定しており、その指定方法に誤りがあると思います。
また、動的IPなら、${OUTSIDE_IP}はそれに追従しなければなりませんので、指定できるのでしょうか。一般的には難しいし、指定する意味があまりないのでインタフェースで指定します。複数固定IPな環境では逆にこうしないとまずいと思いますが。単一固定ならどちらでもいいと思います。
ポートのレンジ指定は、--dportはaaa:bbbですが、--toではadr:aaa-bbbと書くんではないでしょうか?(自信無し。:では区別がつかない?)いずれにしても、ポート変換するわけではないので、ここでのポート指定は不要でしょう。
とういうことで、下記ではどうでしょうか?折角、FORWARDを書くんでしたら、おやじのようにsyn付きのみ通すとしたらどうでしょう。WAN側のデバイス名は${OUTSIDE_DEVICE}、LAN側のデバイス名は${INSIDE_DEVICE}という前提です。
if [ "${ENABLE_SERVERS}" = "y" ]; then
SERVER_IP_PASVPORTS=192.168.0.yy
PORT_PASVPORTS_PUBLIC=4000:4029
fi
# PASVPORTS:
if [ "${ENABLE_SERVERS}" = "y" ]; then
iptables -A PREROUTING -t nat -p tcp --dport ${PORT_PASVPORTS_PUBLIC} -i ${OUTSIDE_DEVICE} -j DNAT --to ${SERVER_IP_PASVPORTS}
iptables -A FORWARD -p tcp -d ${SERVER_IP_PASVPORTS} --dport ${PORT_PASVPORTS_PUBLIC} --syn -j ACCEPT
fi
こんばんは。ありがとうございます。
早急にテストしてみたいのですが、今出来ませんのでご連絡だけですがご容赦くださいませ。
明日にでもテスト連絡いたします。
では、取り急ぎご連絡まで。