DNS与防火墙

本文详细介绍了如何基于ACL实现DNS子域授权,包括DNS服务器配置、zone文件管理、DNS主从同步以及iptables的iptables表、链结构、NAT转换(DNAT/SDNAT)、SNAT和POSTROUTING链的使用。同时涵盖了iptables规则的添加、查看、删除和iptables策略的实战应用。
摘要由CSDN通过智能技术生成
  1. 实现DNS子域授权
  2. 基于acl实现智能DNS
  3. 总结防火墙分类
  4. 总结iptable 5表5链, 基本使用,扩展模块。
  5. 总结iptables规则优化实践,规则保存和恢复。
  6. 总结NAT转换原理, DNAT/SDNAT原理,并自行设计架构实现DNAT/SNAT。
  7. 使用REDIRECT将90端口重定向80,并可以访问到80端口的服务
  8. firewalld常见区域总结。
  9. 通过ntftable来实现暴露本机80/443/ssh服务端口给指定网络访问

DNS

实现DNS自解析

10.0.0.155 DNS服务器
10.0.0.150 client -nameserver:10.0.0.155
10.0.0.156 web

DNS

cat named.conf.default-zones
zone "linux-magedu.com" {
        type master;
        file "/etc/bind/db.linux-magedu.com";
};

root@ubuntu2:/etc/bind# cat /etc/bind/db.linux-magedu.com
linux-magedu.com.       86400 IN SOA mage-dns. admin.linux-magedu.com. ( 123 3H 15M 1D 1W )

linux-magedu.com.       86400 IN NS dns1.linux-magedu.com.

dns1.linux-magedu.com.  86400 IN A  10.0.0.155

www.linux-magedu.com.   86400 IN A  10.0.0.56
w.linux-magedu.com.     86400 IN A  1.2.3.4

#语法检查
root@ubuntu2:/etc/bind# named-checkzone linux-magedu.com /etc/bind/db.linux-magedu.com
zone linux-magedu.com/IN: loaded serial 123
OK

root@ubuntu2:/etc/bind# rndc reload
server reload successful

root@ubuntu2:/etc/bind# dig www.linux-magedu.com

; <<>> DiG 9.18.18-0ubuntu0.22.04.2-Ubuntu <<>> www.linux-magedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48642
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 3d108db02fc9047f0100000065f97e678cd7aa180ae5bab4 (good)
;; QUESTION SECTION:
;www.linux-magedu.com.          IN      A

;; ANSWER SECTION:
www.linux-magedu.com.   86400   IN      A       10.0.0.156

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Tue Mar 19 12:00:39 UTC 2024
;; MSG SIZE  rcvd: 93



client
在这里插入图片描述
web服务器 156

echo "<h1>this is linux-magedu.com</h1>" >> /var/www/html/index.html

dns主机验证

root@ubuntu2:/etc/bind# curl 10.0.0.156
<h1>this is linux-magedu.com</h1>

client验证

[root@rocky_8 ~]# curl 10.0.0.156
<h1>this is linux-magedu.com</h1>

DNS主从同步

环境配置

10.0.0.155 DNS master
10.0.0.151 DNS slave
10.0.0.150 client
10.0.0.156 web-nginx
10.0.0.152 mysql

DNSslave主机

#安装bind
apt update;apt install -y bind9

#取消ubuntu自带的systemd-resolved
systemctl stop systemd-resolved.service

#修改软链接文件指向,保证永久生效
rm -f /etc/resolv.conf
ln -sv /run/systemd/resolve/resolv.conf /etc/resolv.conf

slave的vim  /etc/resolv.conf 
nameserver 127.0.0.1

root@ubuntu2204:~# mkdir /etc/bind/slaves
root@ubuntu2204:~# chmod g=rwx /etc/bind/slaves
root@ubuntu2204:~# vim /etc/apparmor.d/usr.sbin.named
#在第19行后新增如下两行
[root@ubuntu ~]# vim /etc/apparmor.d/usr.sbin.named 
/etc/bind/slaves/** rwk,
/etc/bind/slaves/ rwk,

root@ubuntu2204:~#  systemctl restart apparmor.service

#新增主从同步配置
[root@ubuntu ~]# vim /etc/bind/named.conf.default-zones
zone "linux-magedu.com" IN {
        type slave;
        masters {10.0.0.155;};
        file "/etc/bind/slaves/db.linux-magedu.com";
};

#将ipv6监听取消
root@ubuntu2204:/etc/bind# vi named.conf.options

root@ubuntu2204:/etc/bind# systemctl restart named
root@ubuntu2204:/etc/bind# ss -unlp
State            Recv-Q           Send-Q                     Local Address:Port                      Peer Address:Port           Process
UNCONN           0                0                             10.0.0.151:53                             0.0.0.0:*               users:(("named",pid=41598,fd=32))
UNCONN           0                0                             10.0.0.151:53                             0.0.0.0:*               users:(("named",pid=41598,fd=33))
UNCONN           0                0                              127.0.0.1:53                             0.0.0.0:*               users:(("named",pid=41598,fd=26))
UNCONN           0                0                              127.0.0.1:53                             0.0.0.0:*               users:(("named",pid=41598,fd=27))
UNCONN           0                0                                0.0.0.0:52594                          0.0.0.0:*               users:(("rsyslogd",pid=39091,fd=7))

#解析文件同步过来了
root@ubuntu2204:/etc/bind#  ls /etc/bind/slaves/
db.linux-magedu.com


master

#新增dns2
root@ubuntu2:/etc/bind# cat db.linux-magedu.com
linux-magedu.com.   86400   IN SOA mage-dns. admin.linux-mage.com ( 124 3H 15M 1D 1W )

linux-magedu.com.   886400  IN NS  dns1.linux-magedu.com.
linux-magedu.com.   886400  IN NS  dns2.linux-magedu.com.

dns1.linux-magedu.com.  86400   IN A   10.0.0.155
dns2.linux-magedu.com.  86400   IN A   10.0.0.151

www.linux-magedu.com. 86400 IN A   10.0.0.156
w.linux-magedu.com.   86400 IN A   1.2.3.4

root@ubuntu2:/etc/bind# ll db.linux-magedu.com
-rw-r--r-- 1 root bind 399 Mar 19 20:23 db.linux-magedu.com
root@ubuntu2:/etc/bind# rndc reload
server reload successful


client db文件同步过来了

root@ubuntu2204:/etc/bind/slaves# ll
total 12
drwxrwsr-x 2 root bind 4096 Mar 19 20:18 ./
drwxr-sr-x 3 root bind 4096 Mar 19 20:17 ../
-rw-r--r-- 1 bind bind  339 Mar 19 20:18 db.linux-magedu.com
root@ubuntu2204:/etc/bind/slaves# ll
total 12
drwxrwsr-x 2 root bind 4096 Mar 19 20:25 ./
drwxr-sr-x 3 root bind 4096 Mar 19 20:17 ../
-rw-r--r-- 1 bind bind  413 Mar 19 20:25 db.linux-magedu.com

client

[root@rocky_8 ~]# nslookup  www.linux-magedu.com
Server:         10.0.0.155
Address:        10.0.0.155#53

Name:   www.linux-magedu.com
Address: 10.0.0.156

#DNS-master  停掉服务
root@ubuntu2:/etc/bind# systemctl stop named

[root@rocky_8 ~]# nslookup  www.linux-magedu.com
Server:         10.0.0.151
Address:        10.0.0.151#53

Name:   www.linux-magedu.com
Address: 10.0.0.156

iptables

iptables 的表、链结构

5种规则链
(1)INPUT:处理入站数据包
(2)OUTPUT:处理出站数据包
(3)FORWARD:处理转发数据包
(4)POSTROUTING链:在进行路由选择后处理数据包
(5)PREROUTING链:在进行路由选择前处理数据包

4个规则表
(1)raw表:确定是否对该数据包进行状态跟踪
(2)mangle表:为数据包设置标记
(3)nat表:修改数据包中的源、目标IP地址或端口
(4)filter表:确定是否放行该数据包(过滤)

规则链之间的顺序
(1)入站: PREROUTING——INPUT
(2)出站: OUTPUT——POSTROUTING
(3)转发: PREROUTING——FORWARD——POSTROUTING

转换
(1)nat PREROUTING:目的地址转换。要把别人的公网ip换成你们内部的ip
(2)nat POSTROUTING:源地址转换,要把你的内网地址转换成公网地址才能上网,一般用于对外发布内网的服务(内网访问外网)

防火墙规则

在这里插入图片描述
在这里插入图片描述

添加、查看、删除规则

#查看默认规则:
iptables   -nL

#指定表查看:
iptables -t filter  -vnL

#查看指定表中的指定链
iptables -t filter  -vnL  INPUT ------不指定表,默认就是filter

添加规则的两个常用选项:
-A,在末尾追加规则。
-I,在指定位置前插入规则。如果不指定,则在首行插入
添加新的防火墙规则时,使用管理选项“-A”、“-I”,前者用来追加规则,后者用来插入规则。

匹配到了就不在匹配后面的规则

#清空规则 ----如果不写表名和链名,默认清空filter表中所有链里的所有规则
iptables -F

#禁止所有主机ping本机
iptables -t filter -A INPUT -p icmp -j REJECT  

#允许ping通,-A在前一条规则后添加
iptables -t filter -A INPUT -p icmp -j ACCEPT

#指定序号插入,插入到第一条
iptables -t filter -I INPUT 1 -p icmp -j ACCEPT 

#禁止任何主机tcp
iptables -t filter -A INPUT -p tcp -j REJECT

#允许任何主机udp
iptables -I INPUT 1 -p udp -j ACCEPT

#查看行规则的位置
iptables  -nL  --line-number  

#拒绝某一台主机,其他主机可以
iptables -t filter -A INPUT -s 192.168.198.12 -p icmp -j REJECT

#拒绝多台主机
iptables -t filter -A INPUT -s 192.168.198.12,192.168.198.13 -p icmp -j REJECT

#不允许11的数据包出去,其他的就都ping不通了
iptables -t filter -A OUTPUT -s 192.168.198.11 -p icmp -j REJECT

#指定端口
iptables -t filter -A INPUT -p tcp --dport 22 -j REJECT
iptables -t filter -A INPUT -s 192.168.198.12 -p tcp --dport 80 -j REJECT
#删除指定的INPUT链中的第一条规则
iptables -D INPUT 1
#删除序号小的
iptables -D INPUT -p icmp  -j REJECT

SNAT

源地址转换。
源地址转换是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址
就是把内网地址转成指定的IP地址,这个iP地址可以访问公网

iptables -t nat -A POSTROUTING -s 192.168.198.0/24 -o ens37 -j SNAT --to 10.0.0.10
# -t nat 指定使用nat表
# -A POSTROUTING 添加在数据流出链,原因为在输出时添加只需要添加一次。
# -s 指定源ip
# -o 指定输出网卡为ens37时
# -j 指定跳转到SNAT处理
# --to 指定SNAT nat为10.0.0.10这个地址

DNAT

目的地址转换的作用是将一组本地内部的地址映射到一组全球地址。
通常来说,合法地址的数量比起本地内部的地址数量来要少得多。

私网地址只能作为源地址来访问公网IP,而无法作为目标地址被其他主机访问
所以DNAT将私网中web服务器映射到公网IP,使其公网IP作为目标地址被公网中主机进行访问

iptables -t nat -A PREROUTING -d 12.0.0.254 -i ens37 -p tcp  --dport 80 -j DNAT --to 192.168.198.11:80

# 从ens36网卡进入的流量目的地址为12.0.0.254目的端口为80的tcp协议NAT处理为访问192.168.198.11
# -t nat 指定使用nat表
# -A PREROUINTG 添加在路由选择前数据进入链,在输入时直接判断。
# -d 指定目的ip
# -i 指定输出网卡为ens36时
# -p 指定协议为tcp协议
# --dport 指定目的端口为80
# -j 指定跳转到DNAT处理
# --to 指定DNAT nat到192.168.198.11这个地址

联合部署

n85–kk
在这里插入图片描述

dns配置
在这里插入图片描述
client

[root@node1 network-scripts]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.10.155

在这里插入图片描述
防火墙
在这里插入图片描述
web–mysql搭建
在这里插入图片描述
client curl成功
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值