自宅サーバをIPv6対応させる

予想に反して、asahi-netのIPv6(フレッツ)が申し込みしてないはずだったのに勝手に有効化されてしまい、よく確認してみると「withフレッツ」契約だと強制的に有効にさせられるらしいので、まぁ前向きに、自宅サーバ(Linux CentOS6.9)をマジメにIPv6対応させることにした。

● ルータの設定
IPv6についてはパススルーだけ対応の古いルータ(AtermWG600HP)なので、Linux側でファイア・ウォールさせる方針にする。ルータは「IPv6ブリッジ」を有効にしておくこと。asahi-netのフレッツはIPv6はIPoE方式(PPPoEじゃない)なので、これだけでほぼ設定は終わる。

ひかり電話契約がある場合はDHCPv6-PD形式でHGWが受ける形式になり、ひかり電話契約がない場合は DHCPv6で prefix /64 がIAIDに直接割り振られる・・・感じらしいけど正直まだきちんとは理解できていない。

● LinuxのIPv6設定
「どーせIPv6なんか使わんやろ」と思っていた昔に設定したLinuxなので、案の定無効化されていた。
# vi /etc/sysctl.d/ipv6-disable.conf

#net.ipv6.conf.all.disable_ipv6 = 1
#net.ipv6.conf.default.disable_ipv6 = 1
コメントアウトして再度有効に。再起動後、ifconfig で IPv6 (Scope:Global)が/64で取れていることを確認。

● Linuxのip6table設定
ファイアウォールの方は、
# vi /etc/sysconfig/ip6tables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
#-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT
-A INPUT -j REJECT --reject-with icmp6-adm-prohibited
-A FORWARD -j REJECT --reject-with icmp6-adm-prohibited
COMMIT
最初からある設定も参考にして、こんなとこか?(http,httpsを有効にする) 外へ見せてるサーバなので、DROPよりもREJECTのほうが好み。

# /etc/init.d/ip6table start
# /etc/init.d/ip6table status
# chkconfig ip6talbes on

● HTTP/HTTPDの確認
TCP 80 を許可/不許可切り替えながら本当に動いているかを確認してみる。

[rarul@mana ~]$ curl http://fe80::c23f:****:****:****/
curl: (7) Failed to connect to fe80::c23f:****:****:****: Invalid argument
[rarul@mana ~]$ curl http://[fe80::c23f:****:****:****]/
curl: (3) [globbing] error: bad range specification after pos 9
[rarul@mana ~]$ curl -g 'http://[fe80::c23f:****:****:****]:80/'
curl: (7) Failed to connect to fe80::c23f:****:****:****: Invalid argument
... curlが古いのか結局わからんかった。なので代わりにtelnetで、

[rarul@mana ~]$ telnet fe80::c23f:****:****:****%eth0 80
Trying fe80::c23f:****:****:****%eth0...
Connected to fe80::c23f:****:****:****%eth0.
Escape character is '^]'.
^C
Connection closed by foreign host.
反応あり/なしがわかったから、もう確認はtelnetだけでいいや・・・telnetの場合は「%eth0」が必要らしい。別Windowsマシンからも、「http://[fe80::c23f:****:****:****]/」で確認できたのでこれでよさそう。

あと、Apacheのアクセスログのaccess_logに IPv6が残っていたよ、ヤッター
fe80::4845:****:****:**** - - [07/Feb/2018:17:22:35 +0900] "GET / HTTP/1.1" 200 2422 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"

● DNS
www.rarul.com の AAAA レコードを登録して完了。DNSが浸透してきた頃にアクセスログ見て最終確認すればよいかと。

このブログ記事について

このページは、らるるが2018年2月26日 02:09に書いたブログ記事です。

ひとつ前のブログ記事は「「Linuxのしくみ -実験と図解で学ぶOSとハードウェアの基礎知識-」読んだ」です。

次のブログ記事は「スケーラブルな組織」です。

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

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0