今回は Raspberry Pi 3 Model A+
広告ブロックを使用したい場合は、それぞれのクライアントのプロキシー設定で Proxy サーバーのIPアドレスとポートを指定します。
準備するもの
- Raspberry Pi 3 Model A+
4GB512MB - USB接続のSSDまたはHDD(今回は500GBのHDDを使用)
- SD Card 8GB以上(今回は32GBを使用)
- 作業用Windows PC
- Raspberry Pi Imager
OSの準備
OSのインストールは二段階で行います。最初に作業用のSD Cardにインストールし、その後本稼働用のUSBディスクへインストールします。
インストールメディアの作成
Raspberry Pi Imager を使用し、Raspberry Pi OS Lite 32Bit版を SD CARD(32GB) に書き込む。 ここでホスト名、SSHの設定、ユーザーIDとパスワードの設定、WiFiのSSIDとパスワード、ロケールを設定します。
同様の手順でUSBディスクにもOSを書き込みます。
OSの起動
作成した SD Card を Raspberri Pi に挿入し電源を投入します。
無線LANルータの設定画面やログを参照し、 Raspberry Pi に割り当てられたIPアドレスを調べ、ターミナルソフトを使用しSSHで接続します。
Bootデバイスの変更
/boot/config.txt に以下の行を追加する。
program_usb_boot_mode=1
追加が完了したらリブートします。
$sudo reboot now
立ち上がったらブート媒体の確認を行います。
$vcgencmd otp_dump | grep 17:
以下のように表示されることを確認します。
17:3020000a
これでUSBディスクからBoot出来るようになります。
電源オフ
シャットダウンします。Raspberry Pi は自動で電源がオフにならないため、Raspberry Pi のLED(緑)が消灯するまで待ちます。消灯確認後電源をオフします。
$sudo shutdown -h now
USBディスクからの起動
SD Card を抜き取り、USBディスクを接続し電源を投入します。
初期設定
システムのアップデート
$sudo apt update
$sudo apt upgrade
rootのパスワード設定
$sudo passwd root
mcのインストール
$sudo apt install mc
IPアドレスの固定化
/etc/dhcpcd.conf に以下を追加
interface wlan0
static ip_address=192.168.0.102/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
再起動
ここでIPアドレスの変更を確認するために、再起動します。
$sudo reboot now
CPU最大周波数の制限
Raspberry Pi 3 Model A+ではアイドル時は600Mhzで動作している。ビジー時は1.5GHzまで上昇するようです。今回はCPUパワーをそれほど必要としないため、CPUの最大周波数を 800MHz に制限することにしました。これでヒートシンクやファンなしで運用できそうです。
/boot/config.txt に以下を追加します。
arm_freq=800
これで最大周波数が800MHzに押さえられます。設定を有効にするためリブートします。
$vcgencmd measure_clock arm
CPUのクロックと温度の確認
このコマンドでRaspberry Pi のCPU4コアすべてが100%で稼働し続けます。
$openssl speed -multi 4
以下のコマンドでCPUの稼働周波数と温度を確認します。
$vcgencmd measure_clock arm
$vcgencmd measure_temp
80℃以下であれば問題ないと思います。
NTPサーバの設定
/etc/systemd/timesyncd.conf に以下の設定を追加します。
[Time] NTP=ntp1.plala.or.jp FallbackNTP=ntp1.jst.mfeed.ad.jp ntp2.jst.mfeed.ad.jp ntp3.jst.mfeed.ad.jpNPTサーバーは使用しているプロバイダーの指定に従ってください。
NTPサービスを再起動し変更を反映します。
$ sudo systemctl restart systemd-timesyncd
rootログイン時のパスワード入力の強制
デフォルトでは sudo 時にパスワードを聞いてこない。パスワード入力を必須にするため以下のファイルの行に#を付けコメントにします。
/etc/sudoers.d/010_pi-nopasswd
変更前:
synctam ALL=(ALL) NOPASSWD: ALL
変更後:
#synctam ALL=(ALL) NOPASSWD: ALL
AdGuard Home の導入
AdGuardユーザーの登録
$sudo adduser adpi
videoグループへの参加(vcgencmd の実行に必要)。
$sudo usermod -aG video adpi
AdGuardのインストールのために管理者に切り替えます。
$sudo su -
#cd /home/adpi #curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
#exit
インストールが完了したら管理者から抜けます。
AdGuard Homeのセットアップ
WindowsPCのブラウザーから以下のURLに接続します。
http://192.168.0.2:3000/install.html
DNSサーバ
待ち受けインターフェイス
wlan0 - 192.168.0.2 ポート 53
管理者ID
管理者用のユーザーIDとパスワードを指定します。
画面の指示に従い設定を完了します。
AdGuard Homeの管理ウェブインターフェイスは、次のアドレスで利用可能になります。
http://192.168.0.2:8088
正常に稼働していることを確認します。
AdGuardのフィルタ設定
AdGuard Homeの管理ウェブインターフェイスを開き、[フィルタ] の [DNSブロックリスト] で [ブロックリストに追加する] を開き [リストから選択] から以下を有効にする。
- AdGuard DNS filter
- AdAway Default Blocklist
- Dan Pollock's List
- OISD Blocklist Small
- Peter Lowe's Blocklist
- Dandelion Sprout's Game Console Adblock List
- The Big List of Hacked Malware Web Sites
- Perflyst and Dandelion Sprout's Smart-TV Blocklist
squid
インストール
$sudo apt install squid
/etc/squid/squid.conf
squidの設定ファイルに以下を設定する。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
acl localnet src 192.168.0.0/24 | |
acl SSL_ports port 443 | |
acl Safe_ports port 80 # http | |
acl Safe_ports port 21 # ftp | |
acl Safe_ports port 443 # https | |
acl Safe_ports port 70 # gopher | |
acl Safe_ports port 210 # wais | |
acl Safe_ports port 1025-65535 # unregistered ports | |
acl Safe_ports port 280 # http-mgmt | |
acl Safe_ports port 488 # gss-http | |
acl Safe_ports port 591 # filemaker | |
acl Safe_ports port 777 # multiling http | |
acl CONNECT method CONNECT | |
http_access deny !Safe_ports | |
http_access deny CONNECT !SSL_ports | |
http_access allow localhost manager | |
http_access deny manager | |
include /etc/squid/conf.d/* | |
http_access allow localnet | |
http_access allow localhost | |
http_access deny all | |
http_port 3128 | |
coredump_dir /var/spool/squid | |
refresh_pattern ^ftp: 1440 20% 10080 | |
refresh_pattern ^gopher: 1440 0% 1440 | |
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 | |
refresh_pattern . 0 20% 4320 | |
dns_nameservers 192.168.0.2 |
squid を再起動し変更を反映します。
$sudo systemctl restart squid
squidのログは以下で参照できます。
$sudo tail -f /var/log/squid/access.log
[参考]ユーザーsquid(-u)に関するログを継続的(-f)に表示します。
$journalctl -fu squid
AdGuardの利用
iPhone や Amazon Fire などのタブレットから AdGuard を使用する場合は、プロキシーサーバーの設定を開き、IPアドレスとポートを指定します。
この例では、IPアドレスは192.168.0.2、ポートは 3128 です。
今のところ問題なく動作していますが、この方法では Youtube の広告を非表示にすることは出来ませんでした。
では・・・
0 件のコメント:
コメントを投稿