プロが教えるわが家の防犯対策術!

Linux機にて、ある学習用プログラムを走らせています。
ブラウザを介して利用するようになっており、
「http://(LinuxのIPアドレス):8081/」でアクセスする仕様です。
ルータを通しているので、
「LinuxのIPアドレス」をローカルIPとして設定したところ、
本機では無事に動作を確認出来ました。

ところが、同じLAN内の他のPC(Windows機)からアクセスしても、
「Webページ表示不可」とエラー画面が表示されてしまいます。
Win機のルータへの接続が有線でも無線でも同じです。

また、別回線からのアクセスを行う為に、
ルータにてアドレス変換(静的NAT、プロトコルはHTTP)の設定をしたのですが、
同様にエラー画面が表示されアクセス出来ません。

何か原因がお分かりの方、対策をご教授頂ければ幸いです。
よろしくお願い致します。

※Linux機
 メーカー:自作
 OS:Fedora18
 MB:MS-7210Ver.3.0
 CPU:Intel® Pentium(R) 4 CPU 3.40GHz × 2
 メモリ:2GB
 HDD:SeagateBarracuda500GB
※ルーター
 メーカー:Buffalo
 型番:WHR-AMG54

A 回答 (3件)

>REJECTと表示してある箇所を見ればよろしいのですよね?



全体を貼り付けた方がいいかと思いますけど……。

とりあえずINPUTだけ。
[root@localhost ~]# iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
INPUT_direct all -- anywhere anywhere
INPUT_ZONES all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

2つ目のACCEPTが、どう機能するのかちょっと怪しいところですが……。
INPUT_directってチェインがあるのでそちらを参照してみます。

Chain INPUT_direct (1 references)
target prot opt source destination

空でした。
次にINPUT_ZONESチェインを。

Chain INPUT_ZONES (1 references)
target prot opt source destination
IN_ZONE_public all -- anywhere anywhere

さらにIN_ZONE_publicチェインを。

Chain IN_ZONE_public (1 references)
target prot opt source destination
IN_ZONE_public_deny all -- anywhere anywhere
IN_ZONE_public_allow all -- anywhere anywhere

IN_ZONE_public_denyチェインとIN_ZONE_public_allowチェインを。

Chain IN_ZONE_public_allow (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate NEW
ACCEPT udp -- anywhere 224.0.0.251 udp dpt:mdns ctstate NEW

Chain IN_ZONE_public_deny (1 references)
target prot opt source destination

IN_ZONE_public_allowチェインでsshのポートの受け入れが指定されています。
他は無いみたいですな。
んで、INPUTチェインに戻ると…最後に
REJECT all
があるので破棄されます。

iptablesを止めてみます。

[root@localhost ~]# systemctl stop firewalld;iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost ~]#

全てのルールが削除され、ACCEPTになっています。
この状態で外部から接続してみてはどうでしょうか?
あるいは…IN_ZONE_public_allowチェインに今回のポート番号を許可するルールを追加する。
とかですかね。
http://diary.sshida.com/c-Fedora%2018&p=1 とかでしょうか。
    • good
    • 0

>iptablesは初期設定のままですので、拒否するようにはなっていないと思います。



初期設定のまま…だったら拒否しているかと思われますけど……
iptables --list
したらどうなります?
    • good
    • 0
この回答へのお礼

初期設定が拒否状態なのですね…
良くお分かりになったと思いますが、当方素人でして。
すみません。

REJECTと表示してある箇所を見ればよろしいのですよね?
Chain INPUT、Chain OUTPUTともにall -- anywhereとなっています。

お礼日時:2013/04/25 15:32

>「http://(LinuxのIPアドレス):8081/」でアクセスする仕様です。


>ルータを通しているので、
>「LinuxのIPアドレス」をローカルIPとして設定したところ、
>本機では無事に動作を確認出来ました。

アクセスしている端末とサーバは同じマシンですか?
iptablesで拒否しているとか、そういうことはありませんか?

>ところが、同じLAN内の他のPC(Windows機)からアクセスしても、
>「Webページ表示不可」とエラー画面が表示されてしまいます。

WireShark等でパケットキャプチャしてみて、サーバに正しく接続できているのか確認できませんか?
# サーバ側のhttpdのログを確認でもよいですが…。
# 作成したアプリ自身が待ち受けしているのであれば、httpdのログには残らんでしょうが…。
    • good
    • 1
この回答へのお礼

>アクセスしている端末とサーバは同じマシンですか?
そうです。
同一端末内でのみ、プログラムの動作を確認出来ました。

>iptablesで拒否しているとか、そういうことはありませんか?
iptablesは初期設定のままですので、拒否するようにはなっていないと思います。

>WireShark等でパケットキャプチャしてみて、サーバに正しく接続できているのか確認できませんか?
無線LANで接続しているWin機にWireSharkをインストールして確認してみました。
恐らく該当すると思われる箇所には、
「Destination unreachable (Host administratively prohibited)」
と表示されています。
Linux機の設定に問題が有るのでしょうか?

お礼日時:2013/04/24 19:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!