SSH
・インストール
sudo apt update
sudo apt install -y openssh-server
sudo systemctl enable –now ssh
sudo systemctl status ssh
・IPアドレス確認
ip a
・接続(接続する側のPC)
ssh ユーザー@ipアドレス
・シャットダウン
sudo shutdown -h now
・テキストベース起動にする場合
sudo systemctl set-default multi-user.target
NIC/VLAN
・NetworkManager
デスクトップ版デフォルト
nmcli/nmtui(対話)で管理
・systemd-networkd
軽量デーモンベース
両者はNetplanで抽象化されている。
NetplanのYAMLで書く。
・どちらが有効か
systemctl is-active NetworkManager
systemctl is-active systemd-networkd
・NICの物理情報取得
ネットワークデバイス一覧
lshw -c network -short
IPアドレス一覧
ip -br addr
・VLAN設定(GUI)
nm-connection-editor
(システム>高度なネットワーク設定)
を起動。
VLANを設定する仮想LAN側をlab-trunkとしてIPv4/6を無効。
新規作成>VLANから作成し、以下の通り設定IPv4/6は無効。

・確認
nmcli -f NAME,DEVICE,AUTOCONNECT connection show | grep -E ‘enp0s31f6\.(12|13)’
・Netplan YAML確認方法
ls -la /etc/netplan
ここで読み取れること。
01-network-manager-all.yaml
があるので、NetworkManagerをrendererに使っている。
90-NM-*.yamlはNetworkManagerが自動生成したファイルなので
手動で編集しないほうがいい。
・nmcli
接続確認
nmcli connection show
nmcli connection show ‘有線接続 1’ | grep ipv4
IPフォワーディング
sudo sysctl -w net.ipv4.ip_forward=1
※このマシンが、自分宛てではないIPパケットを受け取ったときに、別のインターフェースへ転送するかどうかを決めるカーネルパラメータ
・永続化する場合
echo ‘net.ipv4.ip_forward=1’ | sudo tee /etc/sysctl.d/99-lab.conf
PPPoEサーバー化
・インストール
sudo apt update
sudo apt install -y pppoe ppp
・サーバーオプション
sudo vim /etc/ppp/pppoe-server-options
|
|
# ラボ用 pppoe-server オプション require-chap nodefaultroute noproxyarp lcp-echo-interval 10 lcp-echo-failure 3 mru 1454 mtu 1454 |
・認証設定
sudo vim /etc/ppp/chap-secrets
|
|
# client server secret IP "rtx-a" * "labpass" 203.0.113.2 "rtx-b" * "labpass" 198.51.100.2 |
・手動起動
sudo pppoe-server -I enp0s31f6.13 -L 100.64.0.1 -R 203.0.113.2 -N 1 -C isp-a
sudo pppoe-server -I enp0s31f6.12 -L 100.64.0.1 -R 198.51.100.2 -N 1 -C isp-b
・PPPoEサーバー起動確認
pgrep -a pppoe-server
PPPoEサーバー永続化
sudo vim /etc/systemd/system/pppoe-server@.service
|
|
[Unit] Description=PPPoE server (%i) After=network-online.target NetworkManager-wait-online.service Wants=network-online.target [Service] Type=forking EnvironmentFile=/etc/pppoe-lab/%i.conf # VLAN I/F が現れるまで待ってから起動(GUI起動のタイミングずれ対策) ExecStartPre=/bin/sh -c 'until ip link show ${IFACE} >/dev/null 2>&1; do sleep 1; done' ExecStart=/usr/sbin/pppoe-server -I ${IFACE} -L ${LOCAL} -R ${REMOTE} -N ${SESSIONS} -C ${ACNAME} Restart=on-failure RestartSec=3 [Install] WantedBy=multi-user.target |
sudo mkdir -p /etc/pppoe-lab
sudo vim /etc/pppoe-lab/isp-a.conf
|
|
IFACE=enp0s31f6.13 LOCAL=100.64.0.1 REMOTE=203.0.113.2 SESSIONS=1 ACNAME=isp-a |
sudo vim /etc/pppoe-lab/isp-b.conf
|
|
IFACE=enp0s31f6.12 LOCAL=100.64.0.2 REMOTE=198.51.100.2 SESSIONS=1 ACNAME=isp-b |
sudo systemctl daemon-reload
sudo systemctl enable –now pppoe-server@isp-a.service
sudo systemctl enable –now pppoe-server@isp-b.service
RTX
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
ip lan1 address 192.168.12.1/24 #RTX-Aは.13 ip route default gateway pp 1 pp select 1 pppoe use lan2 pp auth accept chap pp auth myname rtx-b labpass #chap-secretsに一致 ppp lcp mru on 1454 ppp ipcp ipaddress on ip pp mtu 1454 ip pp tcp mss limit auto pp always-on on pp enable 1 pp select none no ip lan2 address save |
|
|
ping 100.64.0.1 (外向に何か発信しないと立ち上がらない) show status pp 1 show status lan2 |
PPPoEリアルタイム確認
sudo journalctl -f | grep -Ei ‘pppd|pppoe’
sudo tcpdump -ni enp0s31f6 -e
sudo tcpdump -ni enp0s31f6.13 -e pppoed
WAN側NICにNAT
ip -br link
lspci | grep -i realtek
・出口(Realtek)でマスカレード
sudo iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE
sudo iptables -A FORWARD -i ppp+ -o enp2s0 -j ACCEPT
sudo iptables -A FORWARD -i enp2s0 -o ppp+ -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t mangle -A FORWARD -p tcp –tcp-flags SYN,RST SYN -j TCPMSS –clamp-mss-to-pmtu
・永続化
sudo apt install -y iptables-persistent
sudo netfilter-persistent save
・戻るルート
sudo ip route add 192.168.13.0/24 dev ppp1
sudo ip route add 192.168.12.0/24 dev ppp0
・永続化
sudo vim /etc/ppp/ip-up.d/lab-routes
|
|
<del>#!/bin/sh case "$PPP_REMOTE" in 203.0.113.2) ip route add 192.168.13.0/24 dev "$PPP_IFACE" ;; 198.51.100.2) ip route add 192.168.12.0/24 dev "$PPP_IFACE" ;; esac</del> |
sudo chmod +x /etc/ppp/ip-up.d/lab-routes
DNS
・Ubuntu
printf ‘ms-dns 8.8.8.8\nms-dns 1.1.1.1\n’ | sudo tee -a /etc/ppp/pppoe-server-options
sudo systemctl restart pppoe-server@isp-a pppoe-server@isp-b
・RTX
no dns server dhcp lan2
dns server pp 1
pp select 1
ppp ipcp msext on
pp select none
disconnect pp 1
connect pp 1
show status pp 1
RTX拠点間VPN(GUI)
ダッシュボード>かんたん設定>IPsec
・自分側と接続先の両方とも固定の … 持っている
・接続先のホスト名またはIPアドレス:相手側のIPアドレス
・認証鍵:abc (本番では複雑にする)
・認証アルゴリズム:HMAC-SHA
・暗号アルゴリズム:3DES-CBC
下にいくほど強い。選ぶときは暗号と認証を同じゾーンで揃えることが多い。
HMAC-SHA256ならAES(AES256)-CBC、HMAC-SHAなら3DES-CBC。
相手拠点に承認、暗号アルゴリズム両方合わせる。
暗号、承認アルゴリズム
・承認アルゴリズム
✕ HMAC-MD5
△ HMAC-SHA
◯ HMAC-SHA256
・暗号アルゴリズム
✕ DES-CBC
△ 3DES-CBC
◯ AES-CBC
◯ AES256-CBC
IKE、ESP、SA
IPsecの構成はIKE+ESP+SA
1.IKEがハンドシェイク(PSK認証)
IKE SA作成
IKE SAの中で、ESP SA作成
※PSK認証は事前共有キーを送信しないハッシュを照合
※事前共有キー=Pre-Shared Key
2.ESP SAを使い、ESPパケット生成
※ESPフォーマットのIPパケット
※暗号、認証アルゴリズムはここに効く
3.ESPパケットを転送(転送は実装)
※IKE、ESP、SAここまで
経路に関する設定>接続先のLAN側アドレス:192.168.12.0
ここはip route 192.168.12.0/24 gateway tunnel Nの設定に相当する。
拠点間VPNはGUIだけではエラーになってしまったのでコマンドで追加設定。
最終的なコンフィグ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
console character en.ascii console lines infinity ip route default gateway pp 1 ip lan1 address 192.168.13.1/24 #ip lan1 address 192.168.12.1/24 nat descriptor type 1 masquerade nat descriptor address outer 1 ipcp nat descriptor address inner 1 auto nat descriptor masquerade static 1 1 192.168.13.1 udp 500 nat descriptor masquerade static 1 2 192.168.13.1 esp nat descriptor masquerade static 1 3 192.168.13.1 udp 4500 #nat descriptor masquerade static 1 1 192.168.12.1 udp 500 #nat descriptor masquerade static 1 2 192.168.12.1 esp #nat descriptor masquerade static 1 3 192.168.12.1 udp 4500 pp select 1 pppoe use lan2 pp always-on on pp auth accept chap pp auth myname rtx-a labpass #pp auth myname rtx-b labpass ppp lcp mru on 1454 ppp ipcp ipaddress on ppp ipcp msext on ip pp nat descriptor 1 ip pp mtu 1454 ip pp tcp mss limit auto pp enable 1 ip route 192.168.12.0/24 gateway tunnel 1 #ip route 192.168.13.0/24 gateway tunnel 1 tunnel select 1 description tunnel test ipsec tunnel 1 ipsec sa policy 1 1 esp 3des-cbc sha-hmac ipsec ike nat-traversal 1 on ipsec ike keepalive log 1 off ipsec ike keepalive use 1 on heartbeat 10 6 ipsec ike pre-shared-key 1 text abc ipsec ike local address 1 192.168.13.1 ipsec ike remote address 1 198.51.100.2 #ipsec ike local address 1 192.168.12.1 #ipsec ike remote address 1 203.0.113.2 ip tunnel tcp mss limit auto tunnel enable 1 ipsec auto refresh on dhcp service server dhcp scope 1 192.168.13.2-192.168.13.254/24 #dhcp scope 1 192.168.12.2-192.168.12.254/24 dns server pp 1 httpd host 192.168.0.0-192.168.255.255 sshd service on sshd host key generate sshd host 192.168.0.0-192.168.255.255 |