Ubuntu 19.10 でPPPOE接続をしてポート開放を行う。

Ubuntu
Ubuntu 自宅サーバ

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
/etc/ppp にある設定が上書きされます。新規設定の場合はバックアップの必要はないでしょう。Yesを選択して進めます。
設定変更が必要かチェックしてくれるようなので、こちらもYes.
ユーザ名を入力します。光回線のプロバイダから発行されている接続IDです。私の場合は、GMOとくとくBBから通知されているIDを入力しました。
同じくパスワード。プロバイダから発行されているものを入力します。
/etc/resolv.confにDNSサーバを自動反映させるかどうか。特に拒否する理由がなければ、Yesで進めます。
これもYesでよいでしょう。
起動時に有効にするかどうか。
今すぐ接続するか? 手動で実行する場合は、pon dsl-provider を実行します。
接続完了です。
ip コマンドで状況を確認できます。
$ 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

うまく行かない場合はブリッジの設定を確認

pppoeconf を実行しても、ユーザー名やパスワードを聞かれないで終わってしまう。
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パススルーというチェックボックスがあります。

「使用する」にチェックを付けます。
わし
わし

ファイアウォールの設定をお忘れなく。。

わし
わし

大変良い記事をみつけましたので、リンクを貼っておきます。

v6プラス環境からRaspberry Pi 4でIPv4 PPPoE接続するには

スポンサーリンク
☆Geha☆をフォローする