某校の研究室にて、ネットで外部につなぐ時にブラウザによる認証が必要なのですが、機材として購入されていたXBOX-ONEが認証に阻まれネットに繋げずただの箱になっていました。そこで、近くにあったCentOSサーバ(NIC2枚差し)を間に挟んでネットにつながるようにしてみました。
絶対次やろうとしても忘れている自信があるのでメモを残しておきます。うろ覚えの部分もあるので、間違ってる部分もあるかも……
NIC構成
外側 enp6s0 DHCP(クラスB)
内側 enp11s0 192.168.11.1/24
外側が学内ネットワークでDHCPでIPが割り振られます。ブラウザ認証を終えると無制限でネット接続ができます。
内側がXBOX用のネットワークです。内側に対するDHCPは、以前外側のネットワークに漏らして本来のDHCPサーバの邪魔をしてみんなIPが拾えなくなるという(ゝω・)テヘペロな事件を起こしたことがあり、今回も自信がないので固定IPでやることにしました。
ゾーン構成
外側 external
firewall-cmd --permanent --zone=external --change-interface=enp6s0
内側 trusted
firewall-cmd --permanent --zone=trusted --change-interface=enp11s0
マスカレード設定
外側
firewall-cmd --permanent --zone=external --add-masquerade
内側
firewall-cmd --permanent --zone=trusted --add-masquerade
ポート解放
外側(学校のFWがあるので学内は信用する。ルータの設定とは関係ない、研究室用)
firewall-cmd --permanent --zone=external --add-port=0-65535/tcp
ipv4のforward設定
echo 1 >/proc/sys/net/ipv4/ip_forward
転送許可フィルタ
firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -o enp6s0 -j MASQUERADE
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp11s0 -o enp6s0 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp6s0 -o enp11s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
これだけ設定してfirewallをreloadしたら、サーバの方の設定は終了。とりあえず認証を通しておきます。
curl -d uid=<ユーザーID> -d pwd=<パスワード> http://認証cgiのアドレス
後はつなぐ側。
XBOX-ONEの設定
IP 192.168.11.2
MASK 255.255.255.0
DNS 8.8.8.8 / 8.8.4.4
GATEWAY 192.168.11.1
無事サインインができ、Edgeも動きましたo(≧▽≦)┌θ