アクセスポイントなんかでWeb認証させてからインターネット接続させてみたり

| コメント(2) | トラックバック(0)

FREESPOT みたいな
無線LAN -> Web認証 -> インターネット接続
してみる。

認証じゃなくても、初回は強制的に○○のページに誘導とかもできる。

CentOSにdhcp(dhcpd),gateway(iptables),www(apache)。
WAN
|eth0: x.x.x.x
CentOS
|eth1: 192.168.1.254
無線LAN(ルータモード)
|
端末

dhcpdの設定を適当に。
/etc/dhcp/dhcpd.conf

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.150;
option routers 192.168.1.254;
}

ipマスカレード

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

DNATで転送したり、しなかったり。

# ipt_recent を使って(認証済のipは)通す。有効時間1時間。
iptables -A PREROUTING -m recent -i eth1 -j ACCEPT \
--name webauth --rcheck --seconds 3600
# DNATで全部転送する。
iptables -A PREROUTING -i eth1 -j DNAT --to 192.168.1.254

認証ページにリダイレクトする。
/etc/httpd/conf/httpd.conf

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^192\.168\.1\.254
RewriteRule ^(.*)?$ http://192.168.1.254/ [R=302,L]
</IfModule>

お好みの認証をする。

認証の最後でipt_recentに追加。
で、普通にインターネット接続できるようになる。

# y.y.y.y = 認証済IP
# /proc/net/xt_recrnt/webauth の所有者変更必要
echo +y.y.y.y > /proc/net/xt_recrnt/webauth
メモ。
# - すると削除
echo -y.y.y.y > /proc/net/xt_recrnt/webauth
# 全消去
echo / > /proc/net/xt_recrnt/webauth

いろいろと雑だけど認証して一定時間すぎると再認証が必要なインターネット接続は実現できたと思う。
認証である必要はないので、リダイレクトにしたら初回だけ強制であるページを表示なんてのもできる。
実運用ならポート制限とか...。

トラックバック(0)

トラックバックURL: http://uwi.but.jp/mt/mt-tb.cgi/306

コメント(2)

こんにちは、ハチビ~と申します。

># ipt_recent を使って(認証済のipは)通す。有効時間1時間。
> # DNATで全部転送する。

上記の部分について、質問があります。
> # DNATで全部転送する。
この設定をした場合は、
># ipt_recent を使って(認証済のipは)通す。有効時間1時間。
の設定がされていて、認証済みのIPでもすべて転送されるという動作で正しいでしょうか。

やりたいとことは、認証済みIP以外は認証ページに転送するといったことを実現したいと考えています。
(要するに上記の設定は、両方同時に設定するという意味ではないということでしょうか)

あら、質問が...

> 認証済みのIPでもすべて転送されるという動作で正しいでしょうか。

下に書いてある
echo +y.y.y.y > /proc/net/xt_recrnt/webauth
で追加していないIPをすべて転送する動作となります。

> やりたいとことは、認証済みIP以外は認証ページに転送するといったことを実現したいと考えています。

記事に書いてあることで、実現できます。

コメントする

このブログ記事について

このページは、uwiが2013年9月12日 17:46に書いたブログ記事です。

ひとつ前のブログ記事は「Twitterしてみる」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。