黑帽联盟

 找回密码
 会员注册
查看: 829|回复: 0
打印 上一主题 下一主题

[安全教程] AdGuardHome 安装及部署教程

[复制链接]

895

主题

38

听众

3319

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    开心
    3 分钟前
  • 签到天数: 1638 天

    [LV.Master]伴坛终老

    AdGuardHome是什么

    AdGuardHome 是一款全网广告拦截与反跟踪软件。它是一个开源的 DNS 服务器,部署方便、UI 友好易用,有着防污染、防跟踪、防篡改的能力,其次才是它的去广告、反跟踪功能,是通过重定向 DNS 解析记录实现的。


    官网地址:https://adguard.com/adguard-home.html

    项目GitHub地址:https://github.com/AdguardTeam/AdGuardHome

    项目Docker地址:https://hub.docker.com/r/adguard/adguardhome


    AdGuard Home 去广告效果怎样?

    既然有去广告功能,自然还是要讨论它的去广告效果的。不过在这里博主要给小伙伴们直接泼一盆冷水了,广告的种类和形态是多样的,不要指望一个 DNS 能把所有的广告消灭干净了。


    对于 PC 端的网页广告效果最好的有且仅有浏览器插件,如果配合 Ad­Guard Home 在广告到达浏览器之前进行阻挡一些会给设备节省不少的计算开销,理论上来说会起到一定的省电效果,但估计也没人会在意。如果只是单纯的使用 Ad­Guard Home 并没有什么效果,少量的被拦截的广告会在页面上留下一个空白区域。


    对于手机上的广告最直观的感受是手机收到的推送广告明显减少了,然后是部分 App 的开屏广告消失了,还是能起到一定作用的。对于 ADUI 这样的广告级魔改安卓系统效果尤其明显


    AdGuard Home安装教程
    1、开放端口
    1. `53`:DNS 端口。即其他设备访问 AdGuard Home 进行 DNS 解析的默认端口。因为部分系统不支持自定义 DNS 端口,所以不建议自定义。部署前务必要查看是否有其它程序占用。
    2. `67, 68`: DHCP 端口。除非想代替你路由上的 DHCP 服务器,否则用不到。
    3. `80`: 管理页面默认 HTTP 端口。可忽略,在初始化页面设置管理端口为 `3000` 端口即可。
    4. `443`:HTTPS 和 DoH 端口。本地内网环境不需要。
    5. `853`:DoT 端口。不使用相关功能可忽略。
    6. `3000`:初始化设置端口。除非通过配置文件去设置,否则必须开启。
    复制代码
    2、自动安装(Linux和Mac)

    在终端中运行以下命令:

    1. curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh
    复制代码

    如果提示 curl: command not found ,那是因为没装 Curl ubuntu/debian 系统安装 Curl 方法:

    1. apt-get install curl -y
    复制代码

    centos 系统安装 Curl 方法:

    1. yum install curl -y
    复制代码
    3、手动安装(Linux x64)

    在终端中运行以下命令:

    1. <font size="3">wget https://<font color="rgb(102, 217, 239)">static</font>.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz</font><font size="3">tar xvf</font>
    复制代码
    1. tar xvf AdGuardHome_linux_amd64.tar.gz
    复制代码

    进入解压目录执行以下命令安装

    1. <blockquote>cd AdGuardHome
    复制代码
    4、Windows安装

    前往 AdGuard Home 官网下载安装包。
    下载二进制文件

    使用浏览器 / 下载工具下载:https://static.adguard.com/adguardhome/edge/AdGuardHome_windows_amd64.zip
    解压压缩包得到 AdGuardHome.exe 文件
    11.png


    将 AdGuardHome.exe 移动到 C:\Program Files\AdGuard_Home 文件夹中
    12.png



    以管理员身份打开命令提示符,执行以下命令

    1. cd "C:\Program Files\AdGuard_Home"
    2. .\AdGuardHome.exe --service install
    复制代码

    13.png


    当提示 AdGuard Home is successfully installed and will automatically start on boot. 即表示 AdGuard Home 在当前系统上安装成功。在命令行中会显示管理后台的地址与端口,默认为 http://IP:3000



    5、Docker安装(Linux x64)
    (1)Bridge 网络模式
    1. docker run -d \
    2.     --name adguardhome \
    3.     -v $PWD/adguardhome/work:/opt/adguardhome/work \
    4.     -v $PWD/adguardhome/conf:/opt/adguardhome/conf \
    5.     -p 53:53/tcp \
    6.     -p 53:53/udp \
    7.     -p 3000:3000/tcp \
    8.     adguard/adguardhome
    复制代码
    (2)Host 网络模式
    1. docker run -d \
    2.     --name adguardhome \
    3.     --restart unless-stopped \
    4.     --log-opt max-size=1m \
    5.     --network host \
    6.     -v $PWD/adguardhome/work:/opt/adguardhome/work \
    7.     -v $PWD/adguardhome/conf:/opt/adguardhome/conf \
    8.     adguard/adguardhome
    复制代码

    AdGuard Home设置教程
    1、初始化设置

    使用网页浏览器访问 IP + 3000 端口即可进入到 Ad­Guard Home 的初始化界面,比如 IP 是 10.0.0.53,那么就访问 http://10.0.0.53:3000
    14.png



    接着是监听接口(网卡)和端口设置,根据不同的网络模式和实际情况需要作出不同的修改
    15.png

    然后是设置管理用户名和密码,后面都是直接下一步:
    16.png

    完事之后输入用户名和密码登录,就来到了仪表盘页面。
    17.png

    至此 Ad­Guard Home 就部署完成了。



    2、高级配置

    18.png



    19.png


    (1)常规设置

    20.png


    • 过滤器更新间隔:DNS 过滤清单默认更新间隔,一般为 3 天 - 7 天
    • 使用 AdGuard 「浏览安全」网页服务:作用与 Chrome 网页安全性检查类似,开启后,当用户访问存在潜在威胁的网站时,AdGuard 会主动拦截并弹出提示
    • 使用 AdGuard 「家长控制」 服务:如果家中有尚未成年的孩子,建议开启,避免访问不良网站
    • 强制安全搜索:隐藏 Bing、Google、Yandex、YouTube 网站上 NSFW 等不适宜的内容
    • 查询记录保留时间:AdGuard Home 服务端采用 Sqlite 文件数据库存储日志,长时间保留可能会降低运行速度,同时占用大量的储存空间,家庭用户一般保留 24 小时 - 7 天即可
    • 统计数据保留时间:用于仪表盘的数据展示,一般保留 24 小时 - 7 天即可


    (2)DNS 设置

    21.png


    • 上游 DNS 服务器:AdGuard Home 的上游 DNS 服务器,可参考下方推荐列表,一般保留 1 - 2 个即可。AdGuard Home 除了可以作为广告过滤网关,如果设置了纯净 DNS 后,还可以避免运营商的 DNS 劫持
    1. tls://dot.360.cn
    2. https://doh.360.cn/dns-query
    3. tls://dns.pub
    4. https://dns.pub/dns-query
    5. tls://dns.alidns.com
    6. https://dns.alidns.com/dns-query
    7. tls://dns.ipv6dns.com
    8. https://dns.ipv6dns.com/dns-query
    复制代码
    • BootStrap DNS 服务器地址:作为 DoH / DoT DNS 的前置 DNS 解析器,可参考下方推荐列表
    1. 119.29.29.29
    2. 223.5.5.5
    3. 180.76.76.76
    4. 2400:3200::1
    5. 2400:da00::6666
    6. 240C::6666
    复制代码
    • 查询方式、速度限制、EDNS、DNSSEC、拦截模式、DNS 缓存设置、访问设置可根据需要进行调整,一般保持默认设置即可
    • 速度限制:0
    • 使用 EDNS :已知前面提及的上游 DNS 服务器都是支持 EDNS 技术的,它有助于获取到更合适的 CDN 节点,建议勾选。
    • 使用 DNSSEC : 用于效验 DNS 记录的签名,防止 DNS 缓存被投毒,建议勾选。勾选后会在日志页面请求列显示小绿锁图标。
    • 禁用 IPv6 :丢弃 IPv6 的 DNS 查询。在本地网络和网站都支持 IPv6 会优先使用 IPv6 去访问网站,但目前 IPv6 的建设还处于初级阶段,大多数地区的 IPv6 网络体验都一般。还有一些代理软件对 IPv6 支持不佳,开启后可能会影响国际互联网的访问。如果对此没有特殊需求,那么直勾选即可,这样既不影响 BT 软件连接 IPv6 网络,又可以优先使用 IPv4 来上网。如果只有 IPv4 ,那么是否勾选没有区别
    • DNS 缓存配置,目前多数域名的 TTL 值普遍在 300 以内,所以给出以下设置参考值:覆盖最小 TTL 值:600;覆盖最大 TTL 值:3600


    (3) DNS 封锁清单

    为了更好地发挥 AdGuard Home 去广告的功能,仅依靠默认的过滤规则是不够的,但也不宜过多,过多的过滤规则会影响解析的速度,各位可以根据需要添加过滤规则。
    22.png

    1. halflife
    2. https://raw.githubusercontent.com/o0HalfLife0o/list/master/ad.txt

    3. anti-AD
    4. https://anti-ad.net/easylist.txt

    5. neoHosts
    6. https://cdn.jsdelivr.net/gh/neoFelhz/neohosts@gh-pages/full/hosts.txt

    7. 大圣净化 - 针对国内视频网站
    8. https://raw.githubusercontent.com/jdlingyu/ad-wars/master/hosts

    9. adgk手机去广告规则
    10. https://raw.githubusercontent.com/banbendalao/ADgk/master/ADgk.txt

    11. 广告终结者
    12. http://sub.adtchrome.com/adt-chinalist-easylist.txt

    13. Adbyby
    14. https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/lazy.txt

    15. EasyList China+EasyList
    16. https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt

    17. EasyPrivacy
    18. https://easylist-downloads.adblockplus.org/easyprivacy.txt
    复制代码
    (4) DNS允许清单
    1. anti-ad白名单
    2. https://raw.githubusercontent.com/privacy-protection-tools/dead-horse/master/anti-ad-white-list.txt

    3. filter_whitelist
    4. https://raw.githubusercontent.com/hl2guide/Filterlist-for-AdGuard/master/filter_whitelist.txt

    5. LWJ's white list
    6. https://raw.githubusercontent.com/liwenjie119/adg-rules/master/white.txt

    7. DNS允许白名单
    8. https://raw.githubusercontent.com/ChengJi-e/AFDNS/master/QD.txt
    复制代码

    AdGuard Home 所有的配置参数都保存在一个名为 AdGuardHome.yaml 的配置文件中,这个配置文件默认路径通常为 AdGuard Home 二进制文件 AdGuardHome 所在的目录。

    这里我们只需调整以下两个参数,就是可以明显提升 AdGuard Home 的 QPS 能力。

    • ratelimit : DDoS保护,客户端每秒接收的数据包数。默认值是 20,建议禁用该参数(将值改为 0)。
    • blocked_response_ttl : 缓存时间,默认值是 10,建议设置为 60 。

    (5)开启DoH/DoT

    设置一个DNS的解析域名并申请SSL证书,进入加密设置,勾选启用加密,输入自己刚刚设置好的域名,HTTPS端口填写没有被占用的端口,粘贴好SSL证书和秘钥后保存配置即大功告成,宝塔面板反代http://ip:8080并开启SSL。
    23.png


    在设备上使用 AdGuard Home DNS

    最后你可以在 Ad­Guard Home 的设置指导页面找到相应系统的 DNS 设置方法,先不要着急在路由器上使用,建议先设置电脑或手机,通过访问一些网站来测试是否能正常解析。正常的情况下在仪表盘界面会有统计信息,在查询日志界面你会看到解析的详细记录信息。
    24.png


    完成 AdGuard Home 的设置后,便可将 AdGuard Home 的 DNS 地址部署到局域网设备上。



    1、更改路由器 DNS 地址

    不同品牌路由器修改的方法各有差异,具体步骤可参照说明书或网上的教程(路由器型号 + 更改 DNS),下方以 Redmi AC2100 路由器为例。

    打开并登录路由器的后台管理页面。
    25.png



    在局域网设置中找到 DNS 设置,将首选 DNS 服务器更改为 AdGuard Home 的 DNS 地址,可设置为其它的 DNS 服务商,避免因 AdGuard Home 服务器宕机而导致局域网无法访问互联网。更改完成后点击保存即可。在路由器更改 DNS 后,局域网内的所有设备的 DNS 解析都会通过 AdGuard Home DNS 完成,实现过滤广告与反隐私跟踪。
    26.png



    2、更改手机 DNS 地址

    27.png

    • 进入「设定 - 网络和互联网 - Wi-Fi」,点击当前已连接网络的一旁的设置按钮,在 Wi-Fi 详情信息页面点击「编辑」按钮
    • 找到「IP 设定」
    • 分别输入该设备的 IP、网关与 AdGuard Home 服务器地址


    3、 iOS 设备

    28.png

    • 进入「设置 - 无线局域网」,点击当前已连接网络的名称
    • 在 Wi-Fi 详情信息页面找到「配置 DNS」
    • 切换为手动设置,并输入 AdGuard Home 服务器地址


    4、更改电脑 DNS 地址

    29.png



    30.png

    31.png

    • 打开「Windows 设置 - 网络和 Internet」,点击「更改适配器选项」
    • 选中有线 / 无线网卡,点击工具栏「更改此连接的设置」
    • 找到「Internet 协议版本 4」,点击「属性」按钮
    • 填写 DNS 服务器,点击「编辑」按钮


    常见问题
    1、端口冲突

    在 Linux 设备上运行 AdGuard Home,通常会出现 53(本地 DNS 服务器)、68(DHCP 客户端)、80(Http)、443(Https) 端口冲突的问题,可以通过netstat -tunlp | grep端口号 查询占用进程。有两种解决方案:使用不同端口、停用冲突进程。
    如果是通过 Docker 方式运行 AdGuard Home,出现 listen udp 0.0.0.0:53: bind: address already in use 的提示,需要手动处理,方法如下:

    1. #停止 DNSStubListener
    2. systemctl stop systemd-resolved

    3. #创建文件夹(如果不存在)
    4. mkdir /etc/systemd/resolved.conf.d/

    5. #使用 Nano 创建配置文件2021-04-29 16:16:00 星期四
    6. nano /etc/systemd/resolved.conf.d/adguardhome.conf
    复制代码

    在编辑器中粘贴以下内容:

    1. [Resolve]
    2. DNS=127.0.0.1
    3. DNSStubListener=no
    复制代码

    保存后执行以下命令。

    1. #创建备份
    2. sudo mv /etc/resolv.conf /etc/resolv.conf.backup

    3. #将 /etc/resolv.conf 链接至 /run/systemd/resolve/resolv.conf
    4. ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

    5. #重启 DNSStubListener
    6. systemctl restart systemd-resolved
    复制代码

    完成后使用 netstat -tunlp | grep 53 命令检查是否依旧有进程占用 53 端口,如无冲突,重启 AdGuard Home 容器即可。


    2、平均处理时间过长?

    以下几个因素会使 AdGuard Home 的处理时间过长:

    • 本地到上游DNS的速度:如果本地运营商的 DNS 没有 DNS 劫持、投毒的问题,建议使用运营商 DNS + 公共 DNS 的方案,DNS 速度可以通过 Ping 值比较。并在 AdGuard Home 中选择以「并行请求」的方式处理 DNS 请求
    • 浏览安全、家庭控制与强制安全搜索服务:以上三个功能,在 DNS 请求时不会经过 DNS 缓存,直接向上游 DNS 服务器请求,从而减慢 AdGuard Home 的处理速度
    • IPv6:如果使用的宽带、校园网不支持 IPv6,可以禁用解析 IPv6,提高响应速度
    • 过滤规则:过多的过滤规则会影响响应速度,宁缺毋滥,选择最合适自己的规则,一般保留 3 - 4 个广告过滤规则即可。
    • 统计周期: 在完成以上优化后,发现平均处理时间并没有太大改变,使用体验上也并不慢,有可能是因为统计周期过长,将优化前的结果计入,导致优化前后的结果无太大差异。不妨将仪表盘的统计周期缩短为 24 小时再看看。
    • 完成以上步骤后使用体验比没有使用 AdGuard Home 还要糟糕,问题有亿点严重了。这个时候需要查找 AdGuard Home 的日志,寻找问题的原因。

    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部