OpenWrt 防火墙基础过滤–域名过滤

域名过滤

  • OpenWrt 防火墙基础过滤--域名过滤
    • 域名过滤
      • 直接劫持ip
      • uci 自定义域
      • dnsmasq+ipset+iptables

前文提到了在 openwrt 系统中,IP过滤和mac 过滤的大概实现,这里再简单介绍下域名过滤的实现。

域名过滤

域名过滤主要是建立在dns服务器基础上。前期我也考虑过通过域名劫持的方式将访问转接到其他地址

直接劫持ip

比如:在openwrt系统中,我们可以通过修改 dnsmasq.conf 文件进行实现。

# vi /etc/dnsmasq.conf
address=/testdomain.com/10.10.254.62   //在文本最后添加一行实现testdomain.com域名劫持到ip地址10.10.254.62
# /etc/init.d/dnsmasq restart

这样,我们访问网页的时候就会跳到10.10.254.62的地址上

#ping baidu.com
PING baidu.com (10.10.254.62): 56 data bytes
ping: sendto: Network is unreachable

但是,在实际应用中会出现很多问题,就比如一个很实际的问题,怎么实现黑白名单,我们不可能每次都会对后台进行修改。

uci 自定义域

这时,我又考虑到第二种方式,也就是
通过openwrt系统自带的 uci 工具实现自定义域,建立dhcp域名池 来进行拦截

#uci add dhcp domain
#uci set dhcp.@domain[-1].name="baidu.com"
#uci set dhcp.@domain[-1].ip="127.0.0.1"
uci commit dhcp
/etc/init.d/dnsmasq restart
#ping baidu.com
PING baidu.com (127.0.0.1): 56 data bytes
ping: sendto: Network is unreachable

这种方式一度让我觉得可行,我可以通过 uci 工具对要过滤的 dns 进行直接的 拦截与开放,但是在后续的测试过程中,我发现了 这种方式的不足。

在测试拦截的有效性时,我发现是能够满足我对对应域名的拦截,但是,这种方式的拦截对精确度要求太高,我不能拦截到它的别名域名。

就比如:我在我的dhcp 域名池中添加的是 baidu.com ,那么就不能拦截到 www.baidu.com 这个域名的访问链接。这种方式被我放弃了。

dnsmasq+ipset+iptables

最后,我采用了这种方式。利用ipset 创建ip集,将域名所对应的ip 储存到ip集中,对整个ip集利用iptables 进行操作,这样就完美的实现了域名的拦截和黑白名单操作。
openwrt的默认dnsmasq并不支持ipset,需要安装dnsmasq-full版本。而 ipset是为了支持对域名的转发代理

1.配置

iptables + ipset + dnsmasq-full

vi /etc/dnsmasq.conf

末尾添加:
server=/.com/127.0.0.1#53

server=/.com/127.0.0.1#53
server=/.cn/127.0.0.1#53
server=/.net/127.0.0.1#53
conf-dir=/etc/dnsmasq.d

新建文件夹

mkdir /etc/dnsmasq.d
cd /etc/dnsmasq.d
touch domain.conf

在domain.conf中添加内容,例如:

ipset=/baidu.com/domain
ipset=/qq.com/domain
...

创建一个ipset,禁用URL接触出的IP地址存储在该ipset中。鉴于ipset保存在内存中,重启后需要重新设置

ipset -N domain iphash

操作–>将规则写入到开机自启动的firewall文件路径中,在openwrt中文件一般为firewall.user.

黑名单:

iptables  -t filter -I 规则链 -m set --match-set domain dst -j REJECTiptables  -t filter -I 规则链 -m set --match-set domain src -j REJECT

白名单:

iptables  -t filter -I 规则链 -m set --match-set domain dst -j ACCEPTiptables  -t filter -I 规则链 -m set --match-set domain src -j ACCEPTiptables  -t filter -A 规则链 -j REJECT

注:ipset每次重启后失效,因此需要把ipset写入开机自启动文件中,在openwrt系统中,uci支持ipset, 我们用uci 设置firewall

config ipsetoption name  'domain'option match  'ip'option storage  'hash'option enabled  '1'

作用等同于:ipset -N domain iphash

在我的openwrt 系统中,iptables 没有安装 string 模块,这个也可以使用 iptables 中的 string 模块进行实现,但是精确性不高,且效率低

OpenWrt 防火墙基础过滤--域名过滤相关推荐

  1. 纹理基础知识和过滤模式详解

    转载自 纹理基础知识和过滤模式详解 1. 为什么在纹理采样时候需要 texture filter (纹理过滤) 我们的纹理 要贴到三维图形表面,而三维图形上的pixel中心与纹理上的texel中心并不 ...

  2. linux 七层防火墙,iptables防火墙实现七层过滤对应用层的过滤

    一)iptables防火墙实现七层过滤对应用层的过滤.(应用模块layer7) 图如下: 1)对内核先打补丁,打上layer7的模块,然后重新编译内核 tar xf netfilter-layer7- ...

  3. c语言实现dns数据结构算法,[转载]C++实现的DNS,包括域名过滤和缓存

    1.程序体系结构 1.1 DNS体系结构 设计DNS的体系结构如图1-1所示. 图1-1 DNS体系结构逻辑图 其除了基本的域名解析功能,中包括对设定的域名的过滤以及DNS缓存等功能.具体功能流程将在 ...

  4. 最基础的协同过滤介绍

    文章目录 1.到底什么是协同过滤 2.协同过滤的一般步骤 3.基于用户的CF (User-CF) 3.1 基本介绍 3.2 用户相似度 3.2.1 用户相似度基本介绍 3.2.2 用户相似度改进:IC ...

  5. 【SQL语法基础】数据过滤:SQL数据过滤都有哪些方法?

    我在上篇文章中讲到过,提升查询效率的一个很重要的方式,就是约束返回结果的数量,还有一个很有效的方式,就是指定筛选条件,进行过滤.过滤可以筛选符合条件的结果,并进行返回,减少不必要的数据行. 那么在今天 ...

  6. 第29节 天融信Topgate防火墙基础配置案例

    防火墙配置目录 1 实验拓扑图及实验要求 1.1 网络拓扑图 1.2 实验1:验证防火墙的区域隔离及策略编写 1.3 实验2:做源转换SNAT 1.4 实验3:目标转换DNAT 1.5 实验4:应用层 ...

  7. Cisco ASA防火墙基础

    Cisco ASA防火墙基础 1.Cisco 防火墙简介: 硬件与软件防火墙: .软件防火墙: Cisco新版本的IOS软件提供了IOS防火墙特性集,它具有应用层智能状态监测防火墙引擎. Cisco  ...

  8. 什么是防火墙?防火墙基础知识讲解

     什么是防火墙?防火墙基础知识讲解 - 云+社区 - 腾讯云 什么是防火墙 防火墙也被称为防护墙,它是一种位于内部网络与外部网络之间的网络安全系统,可以将内部网络和外部网络隔离.通常,防火墙可以保护内 ...

  9. 防火墙规则应用同一子网计算机,防火墙基础(一)

    防火墙基础 防火墙:一套安全隔离工具: 工作在网络边缘,对经过防火墙的数据报文,根据预先定义的匹配规则进行检测,如果能匹配,用预先定义好的处理机制进行处理, 如果不匹配,则用默认的处理机制进行处理的一 ...

  10. linux防火墙基础firewalld

    第二章firewalld防火墙(一)linux防火墙基础 防火墙技术: 1.包过滤 packet filtering 2.应用代理 application proxy 3.状态检测 stateful ...

最新文章

  1. 关于CSS3的filter(滤镜) 属性
  2. 英雄多少钱steam_¥50元到手蓝宝石显卡?玩转GTAV轻松CSGO英雄联盟帧数144fps
  3. 新的Google Lyra音频编解码器对实时视频流意味着什么?
  4. thinkserver rd650管理口地址_路由器WAN口和LAN口有什么区别【区别介绍】
  5. 04.卷积神经网络 W4.特殊应用:人脸识别和神经风格转换(作业:快乐屋人脸识别+图片风格转换)
  6. 【例1】 给定n(n>=1),用递归的方法计算1+2+3+4+...+(n-1)+n。
  7. 智慧教室解决方案和移动授课概念说明
  8. Day6-------BOM
  9. IDE 的未来在哪里?
  10. c++11 多线程编程(三)------ 竞争和互斥锁
  11. 【C++入门】C++类和对象
  12. maven项目转换成dynamic项目
  13. 推荐!这款3D全场景编辑器,能快速搭建三维大场景
  14. win10专业版修改家庭计算机,win10家庭版升级专业版的最完美的方法_win10专业版技巧...
  15. ExoPlayer播放器播放MP2音频格式视频无声音加入Ffmpeg软解码功能
  16. 生命中,很多事是事在人为
  17. 毕业生签三方?报到证?档案户口?
  18. 程序员专属手机壁纸来了。。。
  19. 计算机用户与权限如何设置密码,如何设置电脑用户权限_如何设置电脑使用时间...
  20. 串口调试小节之五 串口参数设置查询

热门文章

  1. ONF代理执行董事Rick Bauer出走MEF
  2. linux系统中profile文件介绍
  3. Microsoft System Center (SCCM/SCOM)简介
  4. Rosalind Java|k-Mer Composition
  5. IDEA自动生成 Author 注释 签名
  6. 解决Ubuntu设置静态ip网络连接失败的问题
  7. 【阿里云盘】2022付费考研课程
  8. web安全:QQ号快速登录漏洞及被盗原理
  9. 一文了解Clickhouse
  10. 巨杉TechDay回顾 | 技术人的夏天 · 就是这么燃!