作業に取り掛かる前にsshのポートを変えたり鍵認証にしたりしよう。
LANとWANの設定。#
enp3s0,enp4s0でネットワークブリッジを構成する。#
sudo apt install vim ufw
sudo vim /etc/netplan/00-installer-config.yaml
- 00-installer-config.yaml
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
dhcp4: true
nameservers:
addresses:
- 127.0.0.1
enp2s0:
dhcp4: true
optional: true
enp3s0:
dhcp4: false
optional: true
enp4s0:
dhcp4: false
optional: true
bridges:
br0:
interfaces: [enp3s0,enp4s0]
addresses: [192.168.1.1/24]
nameservers:
addresses: [192.168.1.1]
optional: true
sudo netplan apply
で変更を反映する
起動時に二分間スタックするのをなんとかする。#
/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service
のExecStart=を/lib/systemd/systemd-networkd-wait-online --any
にする。
フォワードを有効にする。#
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
Adguard Homeの導入#
自分はインストーラーを使用した。
systemd-resolvedを無効化する。#
sudo mkdir /etc/systemd/resolved.conf.d
sudo vim /etc/systemd/resolved.conf.d/adguardhome.conf
・/etc/systemd/resolved.conf.d/adguard.conf
[Resolve]
DNS=127.0.0.1
DNSStubListener=no
sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl reload-or-restart systemd-resolved
Adguardのインストール#
ここでの選択肢はインストールスクリプトを使うかsnapなのだが(docker版はdockerがiptablesを穴だらけにするので不採用)
自分はインストールスクリプトを使用した。
wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
ルーターと接続されている機器でhttp://192.168.1.1:3000
にアクセスすると初期設定が始まるので
Web Interfaceをお好みのポートに、DNSサーバーをAll interfacesのPort53にする。
ユーザー名とパスを設定してセットアップを終えたらhttp://192.168.1.1:****
でWebインターフェースに飛べるようになる。
※このタイミングではIPが割り当てられないので接続する際には手動で割り当てること。
DHCPサーバーを設定する#
Webインターフェースを開いたら設定>DHCP設定
を開き、DHCPインタフェースの選択をbr0
にしてDHCP IPv4の設定をお好みの内容にしよう。
DHCP静的割り当てなんかもできるのでipを固定したい機器なんかはこのタイミングでやってあげると今後が楽かもしれない。
設定が終わったらDHCPサーバーをチェックするを押したあとDHCPサーバーを有効にするを押す。(チェック時になにか警告が出るけど平気平気)
ufwの設定#
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 53 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 53 proto udp
- /etc/ufw/before.rules
*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-not-local - [0:0]
# Allow LAN traffic
-A ufw-before-input -i br0 -j ACCEPT
-A ufw-before-output -o br0 -j ACCEPT
-A ufw-before-input -i br0 -d 192.168.1.1 -j ACCEPT
# Allow established/related connections
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Allow traffic from LAN to WAN (NAT)
-A ufw-before-forward -i br0 -o enp1s0 -j ACCEPT
-A ufw-before-forward -i enp1s0 -o br0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Allow DNS traffic from router to itself
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-output -o lo -j ACCEPT
COMMIT
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o enp1s0 -j MASQUERADE
COMMIT
sudo ufw enable && sudo ufw reload
を忘れずに。
ufwのログがうるさかったらデバッグ時以外はオフにするのも視野。