質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Q&A

1回答

462閲覧

FREESPOTのように、特定のURLに強制遷移させたい

k_style

総合スコア6

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

0グッド

1クリップ

投稿2017/12/03 04:58

###前提・実現したいこと
Linux(CentOS 6.9)をルータとして、eth1に接続されたAPからのアクセスを特定のURL(localhostのindex.html)に遷移させたいです。
eth0: WAN と接続
eth1(192.168.111.222): 無線AP(192.168.110.1)と接続

###発生している問題・エラーメッセージ

任意のページにアクセス後遷移しない

###該当のソースコード

  • iptables
# RESET RULES iptables -F iptables -t nat -F iptables -X # BASIC iptables -P INPUT DROP iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A FORWARD -i eth1 -o eth0 -s 192.168.111.0/24 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT # LOOPBACK iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # IP MASQUERADE LAN -> WAN(eth0) iptables -t nat -A POSTROUTING -o eth0 -s 192.168.111.0/24 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth0 -s 192.168.110.0/24 -j MASQUERADE # limit connection iptables -t nat -A PREROUTING -s 192.168.111.0/24 -j DNAT --to-destination 192.168.111.222 iptables -t nat -A PREROUTING -s 192.168.110.0/24 -j DNAT --to-destination 192.168.111.222
  • httpd.conf(デフォルトの末尾に追記)
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} !^192.168.111.222 RewriteRule ^(.*(?!localhost).*)?$ http://localhost/index.html [R] </IfModule>

###試したこと
ログを確認したところ、アクセスはhttpdに到達している

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

80, 443 番ポートへの通信を DNAT ではなく REDIRECT して自ホストに向けるといいと思います。

iptables -t nat -A PREROUTING -s 192.168.111.0/24 -p tcp --dport 80 -j REDIRECT iptables -t nat -A PREROUTING -s 192.168.110.0/24 -p tcp --dport 80 -j REDIRECT iptables -t nat -A PREROUTING -s 192.168.111.0/24 -p tcp --dport 443 -j REDIRECT iptables -t nat -A PREROUTING -s 192.168.110.0/24 -p tcp --dport 443 -j REDIRECT

また、httpd.conf で、リダイレクト先の URL を http://localhost/index.html としていますが、これだとクライアントPCから localhost (クライアントPC から見た localhost、つまりクライアントPC 自身)の 80 番ポートに接続しようとします。
そうではなく、http://192.168.111.222/index.html にするのではないでしょうか。

投稿2017/12/05 09:04

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問