CentOS7でPPPoEサーバ兼ルータを構築
CentOS7で、VPN検証の為、仮のインターネット環境を作成。 pppoeサーバと、iptablesを利用したNATルータにする為、CentOS7のNICを2枚にする。
※間違っていたらすいません。CentOSは最少構成でインストールしていないので、条件が違うのはご容赦ください)
それと、色々情報をあげていている方々ありがとうございます。参照したサイトのリンクも貼らせていただきました。
ネットワークはこんな感じ
NICを追加するが、前提条件として、インターネット側にでるNICを追加したNIC。検証ネットワーク側を、元々ついていたNICにする。
NICを選定
AX88179というチップのNICは、自動認識してくれるので、だいぶ前に買った、logitec LAN-GTJU3を使用することに。
挿したらすぐに認識された。
状態確認
[root@samba_test ~]# lsusb Bus 002 Device 002: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
状態確認
[root@localhost ~]# nmcli d デバイス タイプ 状態 接続 virbr0 bridge 接続済み virbr0 enp0s29f7u4 ethernet 接続済み 有線接続 1 ens32 ethernet 接続済み ens32 lo loopback 管理無し — virbr0-nic tun 管理無し — wls33 wifi 管理無し — |
PLANEXのUSBタイプのNICで USB-LAN100R、USB-LAN1000Rが自動認識してくれるらしいから、これでも良いかも。(参照:http://blog.treedown.net/entry/2016/06/12/010000)
長い名前が勝手につくので、変更する。 ちなみに、私のノートPCの場合、日本語で「有線接続 1」って勝手についた為、「eth-usb1」と変えた。
参考:http://www.maruko2.com/mw/NetworkManager_CLI_(nmcli)_%E3%81%A7%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95
[root@samba_test ~]# nmcli c m “有線接続 1" connection.interface-name eth-usb1 connection.id enp0s29f7u4 [root@samba_test ~]# |
PPPoEサーバインストール
[root@samba_test ~]#yum install ppp rp-pppoe [root@samba_test ~]# |
参照:http://www.kroom.net/index.php?Linux%2FPPPoE%E3%82%B5%E3%83%BC%E3%83%90
上記の記載通りに、SELinuxも無効にする。
SELINUX=enforcing
↓
SELINUX=disabled に変更
[root@samba_test ~]# vi /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing – SELinux security policy is enforced. # permissive – SELinux prints warnings instead of enforcing. # disabled – No SELinux policy is loaded. #SELINUX=enforcing SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted – Targeted processes are protected, # minimum – Modification of targeted policy. Only selected processes are protected. # mls – Multi Level Security protection. SELINUXTYPE=targeted [root@samba_test ~]# [root@samba_test ~]# |
ネットワーク設定
IP設定、ルーティングを有効、
ネットワークマネージャーを止める
自分が確認した所、CentOS7から導入されているネットワークマネージャーが動作していると、PPPoEサーバの設定がうまくいかないので、(IPアドレスを0.0.0.0って設定しようとすると、ネットワークマネージャーがインターフェースを落としてしまうため、PPPoEがしゃべれない)
[root@samba_test ~]# systemctl stop network [root@samba_test ~]# |
再起動した時に、動作しないようにしたい場合は、続けて
[root@samba_test ~]# systemctl disable network [root@samba_test ~]# |
ルーティングを有効にする
[root@samba_test ~]# vi /etc/sysctl.d/10-ipv4.conf net.ipv4.ip_forward = 1 |
PPPoE設定
PAP,CHAP認証を設定
[root@samba_test ~]# vi /etc/ppp/pppoe-server-options |
CHAP、PAP登録
[root@samba_test ~]# [root@samba_test ~]# [root@samba_test ~]# vi /etc/ppp/chap-secrets # Secrets for authentication using CHAP # client server secret IP addresses test@test * test * test1@test * test 10.0.0.1 |
構文は
“ユーザ名" “リモートサーバ名" “パスワード" “割り当てIPアドレス" の順に、半角スペースをいれる。固定IPアドレスを使い時以外は。割り当てIPはワイルドカードでよい。あくまで検証用なので、上記の用に、固定IPアドレスを振りたい相手と、不定のIPアドレスでよいパターンとを作ると、インターネットVPNみたいな仮環境にできる。
リモートサーバ名は、ワイルドカードで良い。
[root@samba_test ~]# vi /etc/ppp/pap-secrets # Secrets for authentication using CHAP # client server secret IP addresses test@test * test * test1@test * test 10.0.0.1 |
PPPoEサーバを起動させる
PPPoEの受け口のNICのIPアドレス設定
一回落として、0.0.0.0のIPアドレスを振る。
[root@samba_test ~]#ifdown ens32 [root@samba_test ~]#ifconfig ens32 0.0.0.0 up [root@samba_test ~]# |
PPPoEサーバ起動
[root@samba_test ~]#pppoe-server -I ens32 -L 10.0.0.254 [root@samba_test ~]# |
常時起動したい時は、起動スクリプトを作成し、登録。自分はあくまで検証の為、常時起動させたくなかったので、作成せず。
起動スクリプト作成方法参照:
http://www.kroom.net/index.php?Linux%2FPPPoE%E3%82%B5%E3%83%BC%E3%83%90
iptablesの設定
firwwalldを止めてから、IPマスカレードの設定をする。
firewalldを止める。
[root@samba_test ~]#systemctl stop firewalld [root@samba_test ~]# |
再起動時にもどうさせたくない時は、下記を行う
[root@samba_test ~]#systemctl disable firewalld [root@samba_test ~]# |
iptablesの設定
すべての設定を初期化してから、投入
[root@samba_test ~]#iptables -F [root@samba_test ~]# [root@samba_test ~]#iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -j MASQUERADE [root@samba_test ~]# |
IPマスカレード(NAT)の設定を確認
[root@samba_test ~]# [root@samba_test ~]# iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all — 10.0.0.0/24 anywhere |
これで、PPPoEで接続したネットワークから、インターネットにも接続できるはず。
確認は、/var/log/messagesと、ifconfig及び、検証ネットワークのPPPoEクライアントのルータ等で確認が取れる