目录
一、钓鱼网站原理
1.1定义
1.2 DNS欺骗
#windows中的缓存地址
C:\Windows\System32\drivers\etc\hosts
#CentOS中的缓存地址
/etc/hosts


我们只需要在这里将域名所对应的IP改变就可以访问到我们的网站。例如:www.jd.com对应的IP改成127.0.0.1,这样域名解析就会解析到我们电脑的网站中。
1.3场景模拟
序号 | 要求 |
1 |
GW
开启路由转发以及网络地址转换模式。
|
2 | Windows 客户端连上网线就能上网,可以在GW 上部署DHCP 和DNS 服务。 |
3 | 域名www.jd.com,解析到Server 上。 |
4 | Server 上搭建web 服务,将虚假网站返回给Windows。 |
二、SNAT
2.1路由转发
前面的文章有关于路由转发的配置
[root@localhost ~]# grep -v "#" /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@localhost ~]#
2.2网络地址转换
iptables -t nat -I POSTROUTING -p all -s 192.168.1.0/24 -o ens32 -j SNAT --to-source 10.4.7.132
iptables -t nat -I POSTROUTING -p all -s 0.0.0.0/0 -o ens32 -j SNAT --to-source 10.4.7.132
上面第一条的内容意思如下是使用了iptables
工具,它是Linux系统中用于配置IPv4数据包过滤规则和NAT(网络地址转换)的工具。具体来说,你提供的这条命令是在配置源NAT(SNAT, Source Network Address Translation),它将修改符合特定条件的数据包的源IP地址。让我们逐个部分解析这条命令:
iptables
: 这是调用iptables工具来管理Linux内核中的防火墙规则。-t nat
: 指定要操作的表为nat
表。iptables
有多个表,包括filter
、nat
、mangle
等,其中nat
表用于网络地址转换规则。-I POSTROUTING
: 表示插入一条规则到POSTROUTING
链中。POSTROUTING
链在数据包即将离开本机但还未发出之前处理,通常用于SNAT。-p all
: 这里表示协议可以是任意的(all)。实际上,-p
选项后面应指定一个具体的协议(如tcp、udp、icmp等),而all
并不是一个有效的参数。正确的做法应该是省略此选项或者指定特定的协议。-s 192.168.1.0/24
: 指定源地址匹配的条件,这里指定了一个子网192.168.1.0/24
,意味着任何来自这个子网的数据包都将被这条规则考虑。-o ens32
: 指定输出接口名称为ens32
,这意味着只有那些将通过名为ens32
的网络接口离开本机的数据包才会被这条规则影响。-j SNAT
: 指定目标动作是进行源NAT(SNAT)。--to-source 10.4.7.132
: 这是SNAT的具体操作,将符合条件的数据包的源地址改为10.4.7.132
。
总结一下,这条命令的作用是:对于所有从192.168.1.0/24
这个子网发出,并且准备通过ens32
接口离开本机的数据包,无论它们使用的是什么协议,都会将其源IP地址替换为10.4.7.132
。这种技术常用于让内部网络中的多个设备共享一个公网IP地址访问互联网的情形。
第二条是包含的范围更加广泛:意思是:对于所有通过接口ens32
离开本机的数据包(无论其来源IP地址是什么),将其源IP地址替换为10.4.7.132
。这种设置通常用于NAT场景下,尤其是当您希望内部网络中的多个设备共享同一个外部IP地址访问互联网时。
命令补充:
# 查看编写的规则
iptables -t nat -nvL
# 清空NAT 链的规则
iptables -t nat -F POSTROUTING
三、DHCP服务
3.1DHCP部署
注意:DHCP使用的是UDP,所以查看时候要使用anptul。
#1、安装DHCP
[root@localhost ~]# yum install dhcp -y
#2、查看DHCP服务
[root@localhost ~]# systemctl list-unit-files |grep "dhcpd.service"
dhcpd.service disabled
#3、开启DHCP服务,并且设置为开机自启动
[root@localhost ~]# systemctl start dhcpd.service
[root@localhost ~]# systemctl enable dhcpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to
/usr/lib/systemd/system/dhcpd.service.
#4、查看DHCP
[root@localhost ~]# netstat -anptul | grep "dhcp"
udp 0 0 0.0.0.0:67 0.0.0.0:* 3227/dhcpd
#5、查看DHCP日志信息
[root@localhost ~]# tail -f /var/log/messages

此时在Windows客户端就可以使用自动获取IP
四、DNS 服务
4.1DNS 部署
[root@localhost ~]# yum install bind -y
4.2修改DNS配置文件
[root@localhost ~]# vim /etc/named.conf
第一个框的地方注释第一行,重新写的是第二行,意思是:53端口监听,监听192.186.1.254,通过这个IP地址可以找到53端口。
第二个框中是要允许查询要不止仅限于本地地址
修改二:把这里的yes改成no,把安全选项给关闭
4.3 DNS服务管理
#1. 修改DNS配置文件
vim /etc/named.conf
#2. 启动DNS
systemctl start named
#3. 开机自启动DNS
systemctl enable named
#4. 查看
netstat -anptul | grep 53
五、DNS 欺骗
5.1 DNS配置
#配置DNS
vim /etc/named.conf
在文件中添加下面的内容,然后重置生效。
5.2区域配置文件的配置
之后如果需要将jd.com的DNS配置过来,需要配置区域配置文件。
/var/named/是DNS的数据库所存储的位置 。
named.empty是区域配置的模版,named.empty有点特殊,属于root用户,属于named组,如果要以它为模版,需要直接拷贝这个文件和他的权限
先将named.empty的模版拷贝过来,因为特殊,所以要加 -a。
#1、拷贝区域配置文件
cp -a named.empty jd.com.zone
#2、修改拷贝后的区域配置文件
vim jd.com.zone
加下面的文件修改:将左边的内容修改成右边的内容
然后需要对DNS进行重启 systemctl restart named,才会有效
5.3 DNS 欺骗验证
#1、下载httpd
[root@localhost ~]# yum install httpd -y
#2、验证
[root@localhost ~]# systemctl list-unit-files |grep "httpd.service"
httpd.service disabled
#3、启动httpd
[root@localhost ~]# systemctl start httpd.service
然后使用jd.com的域名进行访问,结果如下,证明DNS欺骗的配置成功。