IPv6を導入した環境で自宅サーバを立てようと思ったら、任意のポートを開放できずに困ったときに調べたメモ。
メールサーバやWebサーバなどを立てるのであれば、個別のPPPOEセッションをつくってそちらを公開するのがいちばんお手軽だった。
試した環境
- ドコモ光
- プロバイダ:GMOとくとくBB
- HGW: PR-S300HI
- WIFIルータ: WXR-1750DHP2
- OS: Ubuntu 19.10 EOAN
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=19.10
DISTRIB_CODENAME=eoan
DISTRIB_DESCRIPTION="Ubuntu 19.10"
PPPOEのインストール
$ sudo apt-get install -y pppoe pppoeconf
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
ifupdown
Suggested packages:
rdnssd xdialog
The following NEW packages will be installed:
ifupdown pppoe pppoeconf
0 upgraded, 3 newly installed, 0 to remove and 1 not upgraded.
Need to get 149 kB of archives.
After this operation, 632 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu eoan/universe amd64 ifupdown amd64 0.8.35ubuntu1 [60.5 kB]
Get:2 http://archive.ubuntu.com/ubuntu eoan/universe amd64 pppoe amd64 3.12-1.2ubuntu2 [73.2 kB]
Get:3 http://archive.ubuntu.com/ubuntu eoan/universe amd64 pppoeconf all 1.21ubuntu1 [14.8 kB]
Fetched 149 kB in 2s (77.3 kB/s)
Selecting previously unselected package ifupdown.
(Reading database ... 155407 files and directories currently installed.)
Preparing to unpack .../ifupdown_0.8.35ubuntu1_amd64.deb ...
Unpacking ifupdown (0.8.35ubuntu1) ...
Selecting previously unselected package pppoe.
Preparing to unpack .../pppoe_3.12-1.2ubuntu2_amd64.deb ...
Unpacking pppoe (3.12-1.2ubuntu2) ...
Selecting previously unselected package pppoeconf.
Preparing to unpack .../pppoeconf_1.21ubuntu1_all.deb ...
Unpacking pppoeconf (1.21ubuntu1) ...
Setting up pppoe (3.12-1.2ubuntu2) ...
Setting up ifupdown (0.8.35ubuntu1) ...
Creating /etc/network/interfaces.
Created symlink /etc/systemd/system/multi-user.target.wants/networking.service → /lib/systemd/system/networking.service.
Created symlink /etc/systemd/system/network-online.target.wants/networking.service → /lib/systemd/system/networking.service.
Setting up pppoeconf (1.21ubuntu1) ...
Processing triggers for man-db (2.8.7-3) ...
Processing triggers for mime-support (3.63ubuntu1) ...
Processing triggers for systemd (242-7ubuntu3.2) ...
設定と接続
コマンド一つで、接続設定、初回の接続実行、再起動時の自動実行の設定までやってくれます。
$ sudo pppoeconf
$ ip addr show ppp0
15: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1454 qdisc fq_codel state UNKNOWN group default qlen 3
link/ppp
inet XXX.XX.XX.XX peer XXX.XXX.XXX.XX/32 scope global ppp0
valid_lft forever preferred_lft forever
これで、ppp0に割り当てられたIPv4アドレスを使ってポート開放ができるようになります。
この時点で、ブリッジしているHGWやWIFIルータのフィルタは関係なくなり、このアドレスが外部からの攻撃対象となります。SSHやファイアウォールの設定等は慎重に行いましょう。
切断するには poff コマンドを実行します。
$ sudo poff
うまく行かない場合はブリッジの設定を確認
NOT CONNECTED Sorry, I scanned 9 interfaces, but the Access Concentrator of your provider did not respond. Please check your network and modem cables. Another reason for the scan failure may also be another running pppoe process which controls the modem.
HGWとWIFIルータのブリッジ設定が有効になっていないと、LAN内から個別のPPPoEセッションをはることはできません。
PR-S300HIの場合は、トップページ>詳細設定>高度な設定 に、PPPoEブリッジのチェックボックスがあります。
WIFIルータにも同様の設定があります。
WXR-1750DHP2の場合は、詳細設定のセキュリティ>パススルーに、PPPoEパススルーというチェックボックスがあります。
わし
ファイアウォールの設定をお忘れなく。。
わし
大変良い記事をみつけましたので、リンクを貼っておきます。
コメント
初心の者です。
あるサイトからの紹介で、たどり着きました。記事を参考にさせていただきました。ありがとうございます。
自分はラズパイ(Raspbian)でWordPressのブログを立ち上げるべく努力しております。
失礼ですが、この方法で、外部から接続できるようになりますか?
割り当てられたIPv4アドレスを、いわゆるグローバルiPhoneアドレスと考え、(80,443と)ポート開放したのですが、同じWi-Fi内ではつながっても、外部からはつながらないのです。タイムアウトしてしまうのです。ここで手詰まりとなりました。なにかお気づきの点あればお教えください。コメントをお願いします。
こんにちは。コメントありがとうございます。
設定が通れば、この方法でWebサイトの公開はできますよ。
実際当サイトもこの記事の設定で運用しています。
PPP接続はできましたか?どのあたりで躓いているかがわかると解決にちかづけそうですが。
追記:
自分のWi-Fiルーターは、ブリッジモードで運用しているせいか、「PPPoEパススルー」のような項目は見当たりませんでした。
よろしくおねがいします。
$ ip addr show ppp0
15: ppp0: mtu 1454 qdisc fq_codel state UNKNOWN group default qlen 3
link/ppp
inet XXX.XX.XX.XX peer XXX.XXX.XXX.XX/32 scope global ppp0
valid_lft forever preferred_lft forever
ここまではうまく行きました。
inet 以降の伏せ字が、IPアドレスかと思うのですが、DDNSなどは使っておられますか?
inet XXX.XX.XX.XX 、4G下において、このアドレスを直にブラウザに入力しても、ブログは出てきませんでした。
[504]Gateway Timeout になってしまいます。
また、mydns に登録したところ、IPoEのIPアドレスに紐付けられてしまい、うまく行きません。
自分が分かっていないのは承知しています。丸投げしてしまうようで申し訳ないですが、コメントをお願いします。
こんにちは。こんばんは。
ppp接続はうまくできておられるのですね。
> IPoEのIPアドレスに紐付けられてしまい、うまく行きません。
もしそうであれば、LAN側のルーターを経由して外に出ているのかもしれませんね。当記事の環境では、Ubuntuに静的アドレスを割り当てていて、Default Gateway の設定はしていません。
確かデフォルトゲートウェイがLAN側のルーターを向いているとpppよりそちらが優先的に使われたような気がします。
なので、まだ試されていないのでしたら、Default Gateway の設定なし+ ppp接続を試されると良いかと思います。
推測でしかないので、外していたらゴメンナサイ。
>Default Gateway の設定なし+ ppp接続
これを施したところ、mydns に反映されまして、外部からの閲覧も可能になりました。解決です。本当にありがとうございました。
ぉぉ、それは良かったです。記事が不親切ですみませんでした。
自宅サーバライフ、楽しんでくださいね。
>Default Gateway の設定なし+ ppp接続
私のとった方法では、またもとに戻ってしまいました(IPoEのIPアドレスに紐付け)。しかし一旦はうまく行っていたのですから、間違ってはいない気がします。
お手数かけますが、そちらさまがとられている、「Default Gateway の設定なし」 の方法をお教え願えませんか?
よろしくお願いします。
こんにちは。こんばんは。
>「Default Gateway の設定なし」
こちらでは、Ubuntuを固定IPにしているので、その際に gateway4 の値を設定していないだけです。
もしラズパイのLANの設定をDHCPにしているのでしたら、再起動とか何かの拍子で Default Gateway の設定は元に戻ってしまいますよね。
まずはそのあたりを確認されてみてはいかがでしょうか。
ご教示ありがとうございます。
以下のように対処しました。参考までに。
route del default gw デフォルトゲートウェイのIPアドレス
これでうまく運用できるようになりました。