宅内DNSプロキシ
の編集
https://junkyard.shirotsume.ch/?%E5%AE%85%E5%86%85DNS%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
AboutThisWiki
AutoTicketLinkName
BracketName
Dark and Darker身内メモ
FormattingRules
FrontPage
Help
InterWiki
InterWikiName
InterWikiSandBox
IPv6はゴミ
LANパーティー攻略情報
LANパーティー攻略情報/機材郵送
MenuBar
PHP
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
QCクソ情報
RecentDeleted
Sabbat
SandBox
Tampermonkeyスクリプト
WikiEngines
WikiName
WikiWikiWeb
YukiWiki
あすけんの女バトル
よくわからないもの
クソAnycast鯖
住まない方が良いところ
宅内DNSプロキシ
最強PCセットアップ
* 宅内DNSプロキシ [#index] * ナニコレ [#k42c2df1] - 様々なOS・デバイスでは旧来の暗号化されていないDNSのまま。 -- Windows11では純正でDNS over HTTPSがサポートされるようにはなりました。 --- ただWindows11は使いたくないので、やっぱり宅内にDNSプロキシ欲しくない? - 今のインターネット上には邪悪なホストがいっぱい居るので、DNSレベルで弾けるようにしたい。 - そこで、宅内にDNSプロキシを置いて、リゾルバまでは暗号化させるための設定方法メモです。 * 前提 [#s078aada] - コマンドから何をしようとしているのか把握出来る人向け。 -- もう完全に自分の備忘録。 - OSにはArchLinuxを使います。 -- RHEL系とかDebian系とかは適宜適当にやってください。 - DNS over QUICを使う場合にはLXCとかのコンテナを使わないでください。 -- 後々出てくるsysctlの設定とかがホスト依存なので。 * 設定 [#q79003c1] - rootにて <pre> [root@arch-dns1 ~]# # パッケージアップデート pacman-key --init pacman-key --populate archlinux pacman-key --init && pacman -Sy archlinux-keyring && pacman -Syu # vimインストール pacman -S vim rm /usr/bin/vi ln -s /usr/bin/vim /usr/bin/vi # SSH鯖インストール pacman -S openssh vi /etc/ssh/sshd_config # PermitRootLoginをyesにする # SSH鯖の起動・有効化 systemctl start sshd systemctl status sshd systemctl enable sshd systemctl status sshd # vimの右クリック動作が気持ち悪いので止める vi .vimrc ---- " デフォルトの設定を読み込む source $VIMRUNTIME/defaults.vim " 右クリックした時の動作を止める set mouse-=a ---- # NTP同期を有効化する timedatectl set-timezone Asia/Tokyo timedatectl set-ntp true # yayのアップデート用に管理用ユーザー追加 useradd -m admin passwd admin usermod -G wheel admin visudo # %wheel ALL=(ALL:ALL) ALL な行のコメントアウトを外す pacman -S --needed git base-devel # 管理用ユーザーにユーザー変更 su - admin </pre> - 管理用ユーザー(admin)にて <pre> [admin@arch-dns1 ~]$ # yay入れてdnsproxyもインストール git clone https://aur.archlinux.org/yay.git cd yay/ makepkg -si cd ~ yay -Syu yay -Sy dnsproxy # rootに戻る exit </pre> - rootにて <pre> [root@arch-dns1 ~]# # dnsproxyの設定を変更する cd /etc/dnsproxy/ cp -p dnsproxy.yaml dnsproxy.yaml.orig vi dnsproxy.yaml # 中身は別の項参照。 # OS純正のsystemd-resolvedを停止・無効化する # これしないと53番ポートをsystemd-resolvedが使い続けてしまう。 systemctl status systemd-resolved systemctl stop systemd-resolved systemctl status systemd-resolved systemctl disable systemd-resolved systemctl status systemd-resolved # DNSproxyを開始・有効化する systemctl status dnsproxy systemctl start dnsproxy systemctl status dnsproxy systemctl enable dnsproxy systemctl status dnsproxy </pre> * 設定内容 [#q9463ce0] - dnsproxy.yaml <pre> bootstrap: - "1.1.1.1:53" - "1.0.0.1:53" listen-addrs: - "0.0.0.0" listen-ports: - 53 max-go-routines: 0 ratelimit: 0 ratelimit-subnet-len-ipv4: 24 ratelimit-subnet-len-ipv6: 64 udp-buf-size: 0 upstream: - "quic://***************" timeout: '10s' ipv6-disabled: true </pre> -- キャッシュ機能も有効にしたいなら以下も追加で。以下はキャッシュに5MB使う例。cache-sizeはbyteなので注意。 <pre> cache: true cache-size: 5242880 cache-optimistic: true </pre> * 動作確認 [#e31ab643] - 任意のデバイスのDNSサーバーを今回設定したのに書き換える。あとDHCPも該当のサーバーに向ける。 - ブラウザとか閉じてからDNSキャッシュをクリアして、そこから適当なサイトが見れるか確認。 - 適当な接続性確認サイトでアップストリームなDNSサーバーを検知出来ていれば尚ハッピー -- https://www.dnscheck.tools * トラブルシューティング [#g1987325] ** failed to sufficiently increase receive buffer size [#k4c36bfb] - DNS over QUICを設定した場合、ログを見てみると、バッファを増やせと出ていたりするかも。 <pre> # journalctl -u dnsproxy Oct 24 10:09:02 arch-dns1 dnsproxy[428]: 2024/10/24 10:09:02.217634 failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 7168 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details. </pre> - 推奨どおり、OSのネットワーク用バッファを増やしましょう。 <pre> vi /etc/sysctl.d/99-sysctl.conf ---- net.core.rmem_max = 7500000 net.core.wmem_max = 7500000 ---- sysctl --system </pre> -- コンテナで動いていると設定出来ないので、ホスト側で色々設定変更してみるかVMに移行してください。
タイムスタンプを変更しない
* 宅内DNSプロキシ [#index] * ナニコレ [#k42c2df1] - 様々なOS・デバイスでは旧来の暗号化されていないDNSのまま。 -- Windows11では純正でDNS over HTTPSがサポートされるようにはなりました。 --- ただWindows11は使いたくないので、やっぱり宅内にDNSプロキシ欲しくない? - 今のインターネット上には邪悪なホストがいっぱい居るので、DNSレベルで弾けるようにしたい。 - そこで、宅内にDNSプロキシを置いて、リゾルバまでは暗号化させるための設定方法メモです。 * 前提 [#s078aada] - コマンドから何をしようとしているのか把握出来る人向け。 -- もう完全に自分の備忘録。 - OSにはArchLinuxを使います。 -- RHEL系とかDebian系とかは適宜適当にやってください。 - DNS over QUICを使う場合にはLXCとかのコンテナを使わないでください。 -- 後々出てくるsysctlの設定とかがホスト依存なので。 * 設定 [#q79003c1] - rootにて <pre> [root@arch-dns1 ~]# # パッケージアップデート pacman-key --init pacman-key --populate archlinux pacman-key --init && pacman -Sy archlinux-keyring && pacman -Syu # vimインストール pacman -S vim rm /usr/bin/vi ln -s /usr/bin/vim /usr/bin/vi # SSH鯖インストール pacman -S openssh vi /etc/ssh/sshd_config # PermitRootLoginをyesにする # SSH鯖の起動・有効化 systemctl start sshd systemctl status sshd systemctl enable sshd systemctl status sshd # vimの右クリック動作が気持ち悪いので止める vi .vimrc ---- " デフォルトの設定を読み込む source $VIMRUNTIME/defaults.vim " 右クリックした時の動作を止める set mouse-=a ---- # NTP同期を有効化する timedatectl set-timezone Asia/Tokyo timedatectl set-ntp true # yayのアップデート用に管理用ユーザー追加 useradd -m admin passwd admin usermod -G wheel admin visudo # %wheel ALL=(ALL:ALL) ALL な行のコメントアウトを外す pacman -S --needed git base-devel # 管理用ユーザーにユーザー変更 su - admin </pre> - 管理用ユーザー(admin)にて <pre> [admin@arch-dns1 ~]$ # yay入れてdnsproxyもインストール git clone https://aur.archlinux.org/yay.git cd yay/ makepkg -si cd ~ yay -Syu yay -Sy dnsproxy # rootに戻る exit </pre> - rootにて <pre> [root@arch-dns1 ~]# # dnsproxyの設定を変更する cd /etc/dnsproxy/ cp -p dnsproxy.yaml dnsproxy.yaml.orig vi dnsproxy.yaml # 中身は別の項参照。 # OS純正のsystemd-resolvedを停止・無効化する # これしないと53番ポートをsystemd-resolvedが使い続けてしまう。 systemctl status systemd-resolved systemctl stop systemd-resolved systemctl status systemd-resolved systemctl disable systemd-resolved systemctl status systemd-resolved # DNSproxyを開始・有効化する systemctl status dnsproxy systemctl start dnsproxy systemctl status dnsproxy systemctl enable dnsproxy systemctl status dnsproxy </pre> * 設定内容 [#q9463ce0] - dnsproxy.yaml <pre> bootstrap: - "1.1.1.1:53" - "1.0.0.1:53" listen-addrs: - "0.0.0.0" listen-ports: - 53 max-go-routines: 0 ratelimit: 0 ratelimit-subnet-len-ipv4: 24 ratelimit-subnet-len-ipv6: 64 udp-buf-size: 0 upstream: - "quic://***************" timeout: '10s' ipv6-disabled: true </pre> -- キャッシュ機能も有効にしたいなら以下も追加で。以下はキャッシュに5MB使う例。cache-sizeはbyteなので注意。 <pre> cache: true cache-size: 5242880 cache-optimistic: true </pre> * 動作確認 [#e31ab643] - 任意のデバイスのDNSサーバーを今回設定したのに書き換える。あとDHCPも該当のサーバーに向ける。 - ブラウザとか閉じてからDNSキャッシュをクリアして、そこから適当なサイトが見れるか確認。 - 適当な接続性確認サイトでアップストリームなDNSサーバーを検知出来ていれば尚ハッピー -- https://www.dnscheck.tools * トラブルシューティング [#g1987325] ** failed to sufficiently increase receive buffer size [#k4c36bfb] - DNS over QUICを設定した場合、ログを見てみると、バッファを増やせと出ていたりするかも。 <pre> # journalctl -u dnsproxy Oct 24 10:09:02 arch-dns1 dnsproxy[428]: 2024/10/24 10:09:02.217634 failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 7168 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details. </pre> - 推奨どおり、OSのネットワーク用バッファを増やしましょう。 <pre> vi /etc/sysctl.d/99-sysctl.conf ---- net.core.rmem_max = 7500000 net.core.wmem_max = 7500000 ---- sysctl --system </pre> -- コンテナで動いていると設定出来ないので、ホスト側で色々設定変更してみるかVMに移行してください。
テキスト整形のルールを表示する
This site is protected by
Turnstile
and the Cloudflare
Privacy Policy
and
Terms of Service
apply.