马哥教育第五周作业
一、总结openssh服务安全加固
1、修改 /etc/ssh/sshd_config配置文件
1)使用非默认端口
2)禁止使用protocol version 1
3)限制可登录用户
4)设定空闲会话超时时长
5)仅监听特定的IP地址
6)基于口令认证时,使用强密码策略
7)使用基于密钥的认证
8)禁止使用空密码
9)禁止root用户直接登录
10)限制ssh的访问频度和并发在线数
11)经常分析日志
Port 9527
ListenAddress 10.0.0.100
PasswordAuthentication no
ChallengeResponseAuthentication no
UseDNS no
ClientAliveInterval 60
二、总结sudo配置文件格式,总结相关示例。
1、存放授权规则文件
/etc/sudoers
/etc/sudoers.d
格式说明:
用户 登入主机=(代表用户) 命令
user host =(runas) command
user:运行命令者的身份
host:通过哪 些主机
(runas): 以哪个用户的身份
commad:运行哪些命令(必须写命令路径)
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
wang ALL=(root) /usr/bin/mount /dev/cdrom /mnt/
[20:49:12 root@rocky8 ~]#sudo mount /dev/cdrom /mnt/
三、总结PAM架构及工作原理
1、PAM架构图、PAM 框架由四个部分组成:
PAM 使用者
PAM 库 (存放在/lib64/security/.so)
pam.conf 主配置文件一般不使用,一般使用应用程序专用配置文件/etc/pam.d/APP_NAME
PAM 服务模块,也称为提供者
2、PAM工作原理:
PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)pam_.s0
PAM认证首先要确定那一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于lib64/security下)进行安全认证
1.使用者执行/usr/bin/passwd 程序,并输入密码
2.passwd开始调用PAM模块,PAM模块会搜寻passwd程序的PAM相关设置文件,这个设置文件股是
在/ete/pam.d/里边的与程序同名的文件,即PAM会搜寻/etc/pam.d/passwd此设置文件
3.经由/etc/pam.d/passwd设定文件的数据,取用PAM所提供的相关模块来进行验证
4.将验证结果回传给passwd这个程序,而passwd这个程序会根据PAM回传的结果决定下一个动作(重新输入密码或者通过验证)
四、 总结PAM配置文件格式,总结相关示例, nologin.so, limits,等模块的使用。
1、PAM配置文件格式说明
通用配置文件/etc/pam.conf格式,此格式不使用
application type control module-path arguments
专用配置文件/etc/pam.d/格式
type control module-path arguments
1)app]ication:指服分名,如,te]het、1og1n、ftp等,服务名P"OTHER”代表所有没有在该文件中明确配置的其它服务
2)type:指模块类型,即功能
3)control ;PAM车该如何处理与该服务相关的PAM模统的成功战失败情况,一个关健词实现
4)module-path: 用来指明本模块对应的程序文件的路径名
5)Arguments;用来传递给该模块的参数
2、总结nologin.so, limits,等模块的使用
1)模块:pam_nologin.so
功能
①、如果/etc/nologin 文件存在,将导致非root 用户不能登录,且如果/etc/nologin 文件里面存在一些内容时,则非root用户被拒绝时,还会显示文件里面的内容。su 可以登录;
②、如果用户shell 是/sbin/nologin 时,当该用户登录时,会被拒绝登录;
2)模块 :pam_limit.so
功能
在用户级别实现对其可使用的资源的限制,例如: 可打开的文件的数量,可运行的进程的数量,可用内存空间
限制用户可使用的资源的方式:2种
1、ulimit 命令 :立即生效,但无法保存
-n # 最多的打开的文件的描述符的个数,例如可通过此限制其他主机对本机httpd 的压力测试
-u # 最大用户进程数,针对所有用户。只能调小,不能调大
-S # 使用的(软)资源限制
-H # 使用的(硬)资源限制
-a # 列出所有的限制值
2、修改配置文件
/etc/security/limits.conf
/etc/security/limits.d/*.conf #limit 通过专门的配置文件来进行设置
格式
< domain> < type> < item> < value>
①< domain> : 应用于哪些对象
username : 指明某单个用户
@group : 某组内所用用户
*: 所有用户
②< type> : 限制的类型
Soft : 软限制,普通用户自己可以修改
Hard 硬限制,由root用户设定,且通过kernel强制生效
-二者同时限定
③< item> : 限制哪些资源
nofile :所能够同时打开的最大文件数量,默认为1024
nproc 所能够同时运行的进程的最大数量,默认为1024
rss 实际分配给进程的物理内存
maxlogin 某用户的最多登录次数
④< value> 指定具体值
示例
apache 用户可打开10240 个文件;student 用户不能运行超过20个进程
vim /etc/security/limits.conf
apache - nofile 1024
student hard nproc 20
五、实现私有时间服务器
1、chrony搭建私有ntp服务器端
[root@localhost ~]$hostname -I
10.0.0.15
[root@localhost ~]$yum -y install chrony
[root@localhost ~]$vim /etc/chrony.conf
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server ntp1.aliyun.com iburst
server time1.cloud.tencent.com iburst
server ntp2.aliyun.com iburst
#allow 192.168.0.0/16
allow 0.0.0.0/0
# Serve time even if not synchronized to a time source.
local stratum 10
[root@localhost ~]$systemctl restart chronyd
[root@localhost ~]$chronyc sources -v
210 Number of sources = 3
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 120.25.115.20 2 6 17 22 +1767us[+9519us] +/- 23ms
^- 139.199.215.251 2 6 17 26 +1327us[+9080us] +/- 44ms
^- 203.107.6.88 2 6 17 27 -7523us[-9598us] +/- 39ms
2、chrony搭建私有ntp客户端
[root@CentOS7 ~]# vim /etc/chrony.conf
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 10.0.0.15 iburst
[root@CentOS7 ~]# service chronyd restart
[root@CentOS7 ~]# ntpdate 10.0.0.15
19 Nov 15:42:30 ntpdate[7441]: step time server 10.0.0.15 offset 63158400.001169 sec
在这里插入代码片
六、总结DNS域名三级结构
1、DNS三级域名结构图
1)因特网在命名的时候采用了层次结构的命名方法,级别最低的域名写在左边,级别最高的域名写在右边;域名服务主要是基于UDP实现的,服务器的端口号为53。
2)com: 一级域名. 表示这是一个企业域名。同级的还有 “net”(网络提供商), “org”(非盈利组织) 等。
3)baidu: 二级域名,指公司名。
4)www: 指服务器主机名。
5)域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等;其中顶级域名分为:国家顶级域名、通用顶级域名、反向域名。
七、总结DNS服务工作原理,涉及递归和迭代查询原理
1、DNS服务工作原理
原理:树状结构最顶层称为根域,用“."表示,相应服务器称为根服务器,整个域名空间解析权都归根服务器所有,但根服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了-些顶级域,然后将不同顶级域解析权分别委派给相应的顶级域服务器,如将com域的解析权委派给com域服务器,以后但凡根服务器收到以com结尾的域名解析请求,都会转发给com域服务器,同样道理,为了减轻顶级域的压力,又下设了若干二级域,二级域又下设三级域或主机。
顺序:读取本地缓存---->本地/etc/hosts---->/etc/resolvconf(cs架构的客户端)
(用于局域网) (用于域名服务器)
两种查询:
(1)递归查询
递归查询是一种DNS服务器的查询模式,在该模式下DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
(2)迭代查询
DNS服务器另外一种查询方式为迭代查询,DNS服务器会向客户机提供其他能够解析查询请求的DNS服务器地址,当客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台DNS服务器地址,客户机再向这台DNS服务器提交请求,依次循环直到返回查询的结果
八、实现私有DNS, 供本地网络主机作DNS递归查询
1、DNS服务端配置
[root@localhost ~]$yum -y install bind bing-utils bind-libs
[root@localhost ~]$vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTPROTO=none
IPADDR=10.0.0.15
PREFIX=24
GATEWAY=10.0.0.2
DNS1=127.0.0.1
#DNS1=10.0.0.2
#DNS2=114.114.114.114
ONBOOT=yes
[root@localhost ~]$cat /etc/resolv.conf
[root@localhost ~]$nmcli connection reload
[root@localhost ~]$nmcli connection up eth0
# Generated by NetworkManager
nameserver 127.0.0.1
[root@localhost ~]$vim /etc/named.conf
options {
listen-on port 53 { localhost; }; //修改此项为localhost
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; }; //修改此项为any
[root@localhost ~]$systemctl restart named
[root@localhost named]$vim magedu.org.zone
[root@localhost named]$cat magedu.org.zone
$TTL 1D
@ IN SOA master admin.magedu.org( 20221121 3H 10M 1D 6H )
NS master
master A 10.0.0.15
www A 10.0.0.14
db A 10.0.0.4
node1 A 10.0.0.129
[root@localhost named]$vim /etc/named.rfc1912.zones
[root@localhost named]$cat /etc/named.rfc1912.zones
zone "magedu.org"{
type master;
file "magedu.org.zone";
};
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
[root@localhost named]$named-checkconf
[root@localhost named]$named-checkzone magedu.org /var/named/magedu.org.zone
zone magedu.org/IN: loaded serial 20221121
OK
[root@localhost named]$rndc reload
server reload successful
2、客户端
[root@CentOS7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.4
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.15 修改此项为DNS服务IP地址
#DNS1=10.0.0.2
#DNS2=114.114.114.114
ONBOOT=yes
3、DNS解析测试
[root@CentOS7 ~]# host www.magedu.org
www.magedu.org has address 10.0.0.14
[root@CentOS7 ~]# host node1.magedu.org
node1.magedu.org has address 10.0.0.129
[root@CentOS7 ~]# host db.magedu.ort
Host db.magedu.ort not found: 3(NXDOMAIN)
[root@CentOS7 ~]# host db.magedu.org
db.magedu.org has address 10.0.0.4
九、总结DNS服务器类型,解析答案,正反解析域,资源记录定义。
DNS是互联网中一项重要的基础服务,它将简单易记的域名转换成可由计算机识别的IP地址,以便客户端对服务器的正常访问。而由DNS构建起的域名与IP地址之间的对应关系,称之为“DNS记录”(record)。通过设置不同的解析记录,可以实现对主机名不同的解析效果,从而满足不同场景下的域名解析需求。常见的域名解析记录,主要有以下几种类型。
1、A记录
A(Address)记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上,同时也可以设置域名的子域名。简单来讲,A记录就是指定域名对应的IP地址。如我们添加一条A记录将www的主机指向IP192.168.1.1,那么当你访问www主机时就会解析到192.168.1.1这个IP上。
2、CNAME记录
通常称别名解析,是主机名到主机名的映射。当需要将域名指向另一个域名,再由另一个域名提供 IP 地址,就需要添加 CNAME 记录,最常用到 CNAME的场景包括做CDN、企业邮箱、全局流量管理等。与A记录不同的是,CNAME别名记录设置的值不是一个固定的IP,而是主机的别名地址。
别名解析可以提供更大的灵活性,便于统一管理。比如,当主机因某种因素的影响需要更换IP时,如果域名做了CNAME记录,就可以同时更新别名的解析指向,不需要进行新的解析操作。
3、NS记录
如果需要把子域名交给其他DNS服务商解析,就需要添加NS记录(Name Server)。NS记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。NS记录中的IP即为该DNS服务器的IP地址。大多数域名注册商默认用自己的NS服务器来解析用户的DNS记录。DNS服务器NS记录地址一般以以下的形式出现:ns1.domain.com、ns2.domain.com等。
4、SOA记录
SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。
SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。
5、AAAA记录
AAAA记录(AAAA record)是用来将域名解析到IPv6地址的DNS记录。用户可以将一个域名解析到IPv6地址上,也可以将子域名解析到IPv6地址上。国内大多数IDC不支持AAAA记录的解析,因此如果想进行AAAA记录解析,则需对域名NS记录设置一些专业的域名解析服务商,由他们提供AAAA记录的设置。中科三方云解析支持IPv6环境下的AAAA记录解析。
6、TXT记录
TXT记录,一般指某个主机名或域名的标识和说明。如:admin IN TXT “管理员, 电话:XXXXXXXXXXX”,mail IN TXT “邮件主机,存放在xxx , 管理人:AAA”,Jim IN TXT “contact: abc@mailserver.com”,也就是说,通过设置TXT记录内容可以使别人更方便地联系到你。TXT 记录常用的方式还有做 SPF 记录(反垃圾邮件)和SSL证书的DNS验证等。
7、MX记录
MX(Mail Exchanger)记录是邮件交换记录,主要用于邮箱解析,在邮件系统发送邮件时根据收信人的地址后缀进行邮件服务器的定位。MX记录允许设置一个优先级,当多个邮件服务器可用时,会根据该值决定投递邮件的服务器。
MX记录的权重对 Mail 服务非常重要,当发送邮件时,Mail 服务器先对域名进行解析,查找 MX记录。先找权重数最小的服务器(比如说是 10),如果能连通,那么就将服务器发送过去;如果无法连通 MX 记录为 10 的服务器,才将邮件发送到权重更高的 mail 服务器上。
8、PTR记录
PTR是pointer 的简写,即“反向DNS”,domain name pointer,可以粗略的理解为DNS反向,是一个指针记录,用于将一个IP地址映射到对应的主机名,也可以看成是A记录的反向,即通过IP访问域名
正向解析:
[root@localhost named]$vim /etc/named.rfc1912.zones
zone "0.0.10.in-addr.arpa" {
type master;
file "10.0.0.zone";
};
[root@localhost named]$vim magedu.org.zone
$TTL 1D
@ IN SOA master admin.magedu.org ( 20221121 3H 10M 1D 6H )
NS master
master A 10.0.0.15
www A 10.0.0.14
db A 10.0.0.4
node1 A 10.0.0.129
[root@CentOS7 ~]# host www.magedu.org
www.magedu.org has address 10.0.0.14
反向解析:
[root@localhost named]$vim 10.0.0.zone
$TTL 1D
@ IN SOA master admin.magedu.org ( 20221121 3H 10M 1D 6H )
NS master
master A 10.0.0.15
14 PTR www.magedu.org.
4 PTR db.magedu.org.
[root@CentOS7 ~]# host 10.0.0.14
14.0.0.10.in-addr.arpa domain name pointer www.magedu.org.
十、实现DNS主从同步
主DNS配置
[root@localhost ~]$cat /var/named/magedu.org.zone
$TTL 1D
@ IN SOA master admin.magedu.org ( 20221121 3H 10M 1D 6H )
NS master
NS ns1
master A 10.0.0.15
ns1 A 10.0.0.11
www A 10.0.0.14
db A 10.0.0.4
node1 A 10.0.0.129
[root@localhost ~]$vim /var/named/magedu.org.zone
[root@localhost ~]$cat /var/named/magedu.org.zone
$TTL 1D
@ IN SOA master admin.magedu.org ( 20221122 120 10M 1D 6H )
NS master
NS ns1
master A 10.0.0.15
ns1 A 10.0.0.11
www A 10.0.0.130
db A 10.0.0.114
node1 A 10.0.0.8
[root@localhost ~]$rndc reload
server reload successful
从DNS配置
[root@localhost ~]$yum -y install bind
[root@localhost ~]$vim /etc/named.conf
options {
// listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
// allow-query { localhost; };
[root@localhost ~]$vim /etc/named.rfc1912.zones
zone "magedu.org" {
type slave;
masters {10.0.0.15;};
file "slaves/magedu.org.zone.slave"
[root@localhost slaves]$vim /etc/named.rfc1912.zones
zone "magedu.org" {
type slave;
masters {10.0.0.15;};
file "slaves/magedu.org.zone.slave";
};
测试是否同步
查文件是否有同步
[root@localhost slaves]$ll
total 4
-rw-r--r--. 1 named named 351 Nov 22 15:14 magedu.org.zone.slave
[root@localhost slaves]$ll
total 4
-rw-r--r--. 1 named named 411 Nov 22 16:18 magedu.org.zone.slave
[root@CentOS7 ~]# dig www.magedu.org @10.0.0.11
; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> www.magedu.org @10.0.0.11
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39228
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.magedu.org. IN A
;; ANSWER SECTION:
www.magedu.org. 86400 IN A 10.0.0.130
;; AUTHORITY SECTION:
magedu.org. 86400 IN NS master.magedu.org.
magedu.org. 86400 IN NS ns1.magedu.org.
;; ADDITIONAL SECTION:
master.magedu.org. 86400 IN A 10.0.0.15
ns1.magedu.org. 86400 IN A 10.0.0.11
;; Query time: 2 msec
;; SERVER: 10.0.0.11#53(10.0.0.11)
;; WHEN: 二 11月 22 16:19:41 CST 2022
;; MSG SIZE rcvd: 130
十一、 实现DNS子域授权
1、在10.0.0.15主DNS配置
[root@localhost named]$cat magedu.org.zone
$TTL 1D
@ IN SOA master admin.magedu.org ( 20221123 120 10M 1D 6H )
NS master
NS ns1
cq NS ns2
master A 10.0.0.15
ns1 A 10.0.0.11
ns2 A 10.0.0.28
2、在10.0.0.28子域DNS授权配置
[root@localhost cd]$yum -y install bind bind-utils
[root@localhost cd]$vim /etc/named.conf
options {
// listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
// allow-query { localhost; };
[root@localhost cd]$vim /etc/named.rfc1912.zones
zone "cq.magedu.org" {
type master;
file "cq.magedu.org.zone";
};
[root@localhost cd]$vim /var/named/cq.magedu.org.zone
$TTL 1D
@ IN SOA ns1 admin (1 1H 10M 1D 2H)
NS ns1
ns1 A 10.0.0.28
www A 1.1.1.1
[root@localhost cd]$ll /var/named/cq.magedu.org.zone
-rw-r--r--. 1 root root 94 Nov 23 14:53 /var/named/cq.magedu.org.zone
[root@localhost cd]$chmod 640 /var/named/cq.magedu.org.zone
[root@localhost cd]$ll /var/named/cq.magedu.org.zone
-rw-r-----. 1 root root 94 Nov 23 14:53 /var/named/cq.magedu.org.zone
[root@localhost cd]$chgrp named /var/named/cq.magedu.org.zone
[root@localhost cd]$ll /var/named/cq.magedu.org.zone
-rw-r-----. 1 root named 94 Nov 23 14:53 /var/named/cq.magedu.org.zone
3、在10.0.0.4上测试子域授权结果
[root@CentOS7 ~]# dig www.cq.magedu.org
; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> www.cq.magedu.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43475
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.cq.magedu.org. IN A
;; ANSWER SECTION:
www.cq.magedu.org. 86400 IN A 1.1.1.1
;; AUTHORITY SECTION:
cq.magedu.org. 86400 IN NS ns2.magedu.org.
;; ADDITIONAL SECTION:
ns2.magedu.org. 86400 IN A 10.0.0.28
;; Query time: 299 msec
;; SERVER: 10.0.0.15#53(10.0.0.15)
;; WHEN: 三 11月 23 15:00:17 CST 2022
;; MSG SIZE rcvd: 96
十二、基于acl实现智能DNS
1、两台服务配置两个不同网段IP:eth0:10.0.0.0/24 模拟为北京 eth1:192.168.10.0/24模拟为上海 DNS服务器上配置如下:
1)创建两个DNS数据库文件
[05:56:05 root@rocky8 named]#vim magedu.org.zone.bj
$TTL 1D
@ IN SOA master admin.magedu.org. (20220131 180 10M 1D 6H)
NS master
master A 10.0.0.8
www A 1.1.1.1
[05:56:32 root@rocky8 named]#cat magedu.org.zone.sh
$TTL 1D
@ IN SOA master admin.magedu.org. (20220131 180 10M 1D 6H)
NS master
master A 10.0.0.8
www A 2.2.2.2
2)修改DNS服务器上的/etc/named.conf文件如下:
[05:45:29 root@rocky8 named]#vim /etc/named.conf
acl beijingnet {
10.0.0.0/24;
11.0.0.0/24;
};
acl shanghainet {
192.168.10.0/24;
192.168.20.0/24;
};
view beijingview {
match-clients { beijingnet; };
include "/etc/named.rfc1912.zones.bj";
};
view shanghaiview {
match-clients { shanghainet; };
include "/etc/named.rfc1912.zones.sh";
};
include "/etc/named.root.key";
3)将DNS服务器上的/etc/named.conf中的zone “.” IN 根组配置内容移动到/etc/named.rfc1912.zones中来:
[06:02:10 root@rocky8 named]#vim /etc/named.rfc1912.zones
zone "." IN {
type hint;
file "named.ca";
};
zone "magedu.org" {
type master;
file "magedu.org.zone";
};
2、测试结果
1)从北京10.0.0.0/24网段访问www.magedu.org返回结果为www.magedu.org. 86400 IN A 1.1.1.1
[root@localhost ~]# dig www.magedu.org @10.0.0.8
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.10 <<>> www.magedu.org @10.0.0.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32779
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.magedu.org. IN A
;; ANSWER SECTION:
www.magedu.org. 86400 IN A 1.1.1.1
;; AUTHORITY SECTION:
magedu.org. 86400 IN NS master.magedu.org.
;; ADDITIONAL SECTION:
master.magedu.org. 86400 IN A 10.0.0.8
;; Query time: 1 msec
;; SERVER: 10.0.0.8#53(10.0.0.8)
;; WHEN: Wed Nov 23 22:06:17 CST 2022
;; MSG SIZE rcvd: 96
2)从上海192.168.10.0/24网段访问www.magedu.org返回结果为www.magedu.org. 86400 IN A 2.2.2.2
[root@localhost ~]# dig www.magedu.org @192.168.10.131
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.10 <<>> www.magedu.org @192.168.10.131
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60127
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.magedu.org. IN A
;; ANSWER SECTION:
www.magedu.org. 86400 IN A 2.2.2.2
;; AUTHORITY SECTION:
magedu.org. 86400 IN NS master.magedu.org.
;; ADDITIONAL SECTION:
master.magedu.org. 86400 IN A 10.0.0.8
;; Query time: 3 msec
;; SERVER: 192.168.10.131#53(192.168.10.131)
;; WHEN: Wed Nov 23 21:46:56 CST 2022
;; MSG SIZE rcvd: 96
十三、总结防火墙分类
1、按保护范围分类:主机防火墙、网络防火墙
2、按实现方式划分:硬件防火墙、软件防火墙
3、按网络协议划分:网络层防火墙、应用层防火墙/代理服务器
十四、总结iptable 5表5链, 基本使用,扩展模块。
1、五表为:
filter:过滤规则表,控制数据包允许或拒绝
nat:地址转换规则表
mangle:修改数据标记位规则表
raw:关闭启用的连接跟踪要制,加快封包穿越防火墙速度
security:用于强制访问控制(MAC)网络规则,由Linux安全模块实现
五表优先级从高到低的顺序为:
security -->ram–>raw–>mangle–>nat–>filter
2、五链为:
PREROUTING:支持nat、magle、raw三个表
INPUT:支持filter、mangle两个表
OUTPUT:支持filter、nat、mangle、rawl四个表
FORWARD:支持filter、mangle两个表
POSTROUTING:支持nat、raw、mangle三个表
查看表支持那些链命令:
[22:16:25 root@rocky8 ~]#iptables -t filter -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3、iptables基本使用:
iptables -t 选用那种规则表,默认不写为filter表
iptables -A 选择在那个链上
iptables -s 源IP地址
iprables -j 选择执行动作允许货拒绝
iptables -d 目标IP地址
iptables -p 指定协议
iptables -i 报文流入的接口
iptables -o 报文流出的接口
–source-port 匹配报文源端口
–destination-port 匹配报文目标端口
–tcp-flags mask/comp 匹配检查的标志位
实验代码:
[22:55:55 root@rocky8 ~]#systemctl disable --now firewalld
[22:56:37 root@rocky8 ~]#iptables -A INPUT -s 10.0.0.200 -j DROP
[22:59:13 root@rocky8 ~]#iptables -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
62 5208 DROP all -- * * 10.0.0.200 0.0.0.0/0
[22:59:42 root@rocky8 ~]#iptables -F
4、 扩展模块:
tcp 指定TCP端口匹配
multiport 以离散的方式定义多端口匹配
iprange 定义连续的ip地址范围匹配
mac 定义源MAC地址匹配
strig 对报文中的应用层数据做字符串匹配检查
time 将报文到达的时间与指定时间范围进行匹配
connlimit 对每个客户端IP做并发连接数数量匹配
limit 对收发报文的速率做匹配
state 根据“连接追踪机制”检查连接状态
十五、总结iptables规则优化实践,规则保存和恢复。
1、将所有入站和出站的状态为ESTABLISH的连接放至第一条
2、谨慎放行入站的新请求
3、针对特殊目的限制访问需求的,在放行规则前拒绝
4、同类规则,匹配范围小的放在前面
5、不同类的规则,匹配范围大的放在前面
6、将可合并的规则合并为一条,减少规则数量
7、设置默认白名单策略
规则保存:iptables-save > /PATH
规则恢复:iptables-restore < /PATH
方法一:
#保存规则
[09:24:27 root@rocky8 ~]#iptables -A INPUT -s 10.0.0.1 -j ACCEPT
[09:26:38 root@rocky8 ~]#iptables-save > /data/iptables.rules
#恢复规则
[09:26:58 root@rocky8 ~]#iptables-restore < /data/iptables.rules
[09:27:43 root@rocky8 ~]#vim /etc/rc.local
iptables-restore < /data/iptables.rules
[09:29:32 root@rocky8 ~]#chmod +x /etc/rc.d/rc.local
方法二:
#保存规则
[09:40:50 root@rocky8 ~]yum -y install iptables-services
[09:43:21 root@rocky8 ~]iptables -A INPUT -s 10.0.0.1 -j ACCEPT
[09:44:19 root@rocky8 ~]iptables-save > /etc/sysconfig/iptables
[09:47:36 root@rocky8 ~]systemctl enable iptables.service
#恢复规则
[09:50:50 root@rocky8 ~]iptables -F
[09:51:20 root@rocky8 ~]iptables-save > /etc/sysconfig/iptables
十六、总结NAT转换原理, DNAT/SNAT原理,并自行设计架构实现DNAT/SNAT。
1、NAT工作原理
1.NAT用来将内网地址和端口号转换成合法的公网地址和端口号,建立一个会话,与公网主机进行通信。
2.NAT外部的主机无法主动跟位于NAT内部的主机通信,NAT内部主机想要通信,必须主动和公网的一个IP通信,路由器负责建立一个映射关系,从而实现数据的转发。
2、DNAT/SNAT原理
1.DNAT Destination Network Address Translation 目的网络地址转换,实现公网地址访问私网地址;SNAT原理:修改数据包的源地址。
2.SNAT Source Network Address Translation 源网络地址转换,实现私网地址访问公网地址;DNAT原理:修改数据包的目的地址。
实现DNAT/SNAT
#公网机器
eth0:192.168.10.200仅主机模式
#防火墙
eth0:10.0.0.8 #NAT
eth1:192.168.10.8 #仅主机模式
vim /etc/sysctl.conf #防火墙启用转发
net.ipv4.ip_forward = 1
sysctl -p #配置生效
#公司的机器
10.0.0.7 NAT模式
#10.0.0.8 防火墙规则
#SNAT转换规则在POSTROUTING链上配置
[root@firewall ~]#iptables -t nat -A POSTROUTING -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j MASQUERADE
[root@firewall ~]#iptables -t nat -vnL
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * * 10.0.0.0/24 !10.0.0.0/24
#DNAT转换规则在PREROUTING链上配置
[root@firewall ~]#iptables -t nat -A PREROUTING -d 192.168.10.8 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.7:80
[root@firewall ~]#iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- * * 0.0.0.0/0 192.168.10.8 tcp dpt:80 to:10.0.0.7:80
十七、 使用REDIRECT将80端口重定向8080,并可以访问到80端口的服务
[root@lan ~]# iptables -t nat -A PREROUTING -d 10.0.0.7 -p tcp --dport 80 -j REDIRECT --to-ports 8080
[root@lan ~]# iptables -vnL -t nat
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1 60 REDIRECT tcp -- * * 0.0.0.0/0 10.0.0.7 tcp dpt:80 redir ports 8080
十八、firewalld常见区域总结。
1、trusted:允许所有流量访问
2、public:拒绝除和传出流量相关的,以及ssh预定义服务之外的其他所有传入流量,新加的网卡默认属于public
3、firewalld常见区域
十九、通过ntftable来实现暴露本机80/443/ssh服务端口给指定网络访问
[root@firewall ~]#nft add table inet test_table
[root@firewall ~]#nft list table inet test_table
table inet test_table {
}
[root@firewall ~]#nft add chain inet test_table test_chain
[root@firewall ~]#nft list table inet test_table
table inet test_table {
chain test_chain {
}
}
[root@firewall ~]#nft add rule inet test_table test_chain ip saddr 10.0.0.18 tcp --dport 80 accept^C
[root@firewall ~]#nft add rule inet test_table test_chain reject
[root@firewall ~]#nft list table inet test_table
table inet test_table {
chain test_chain {
reject
}
}
[root@firewall ~]#nft insert rule inet test_table test_chain index 0 ip saddr 10.0.0.18 tcp dport 80 accept
[root@firewall ~]#nft list table inet test_table
table inet test_table {
chain test_chain {
ip saddr 10.0.0.18 tcp dport 80 accept
reject
}
}
[root@firewall ~]#nft insert rule inet test_table test_chain index 0 ip saddr 10.0.0.18 tcp dport 443 accept
[root@firewall ~]#nft list table inet test_table
table inet test_table {
chain test_chain {
ip saddr 10.0.0.18 tcp dport 443 accept
ip saddr 10.0.0.18 tcp dport 80 accept
reject
}
}
[root@firewall ~]#nft insert rule inet test_table test_chain index 0 ip saddr 10.0.0.18 tcp dport ssh accept
[root@firewall ~]#nft list table inet test_table
table inet test_table {
chain test_chain {
ip saddr 10.0.0.18 tcp dport 22 accept
ip saddr 10.0.0.18 tcp dport 443 accept
ip saddr 10.0.0.18 tcp dport 80 accept
reject
}
}
二十、 总结关系型数据库相关概念,关系,行,列,主键,惟一键,域。
1、关系Relational: 关系就是二维表
2、行row: 表中每一行,又称为一条记录record
3、列column:表中每一列,称为属性,字段,域field
4、主键Primary key: PK, 一个字段或多个字段组合,用于唯一确定一个记录的字段,一个表只有一个主键,主键字段不能为空NULL
5、唯一键Unique key:一个字段或多个字段组合,用于唯一确定一个记录的字段,一个表可以有多个UK,且UK字段可以为NULL
二十一、 总结关联类型,1对1,1对多,多对多关系。可以自行设计表进行解释。
一对一联系(1:1),在表A中创建一个字段,存储另一个表的主键值
一对多联系(1:n):外键
多对多联系(m:n):增加第三张表
二十二、 总结mysql设计范式
第一范式:1NF
无重复的列,每一列都是不可分割个基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的列,确保每一列的原子性,除去同类型的字段,就是无重复的列
说明:第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
第二范式:2NF
第二范式必须先满足第一范式,属性完全依赖于主键,;要求表中每个行必须可以被唯一的区分,通常为表加上每行的唯一标识主键PK,非PK的字段需要与整个PK有直接相关性,即非PK的字段不能依赖于部分主键
第三范式:3NF
满足第三范式必须满足第二范式属性,非主键属性不依赖于其他非主键属性,第三范式要求一个数据表中不包含已在其他表中已包含的非主键信息,非PK字段间不能有从属关系
二十三、总结Mysql多种安装方式,及安全加固,并总结mysql配置文件。
1、Mysql安装方式
1.程序包管理器管理的程序包
2.源代码编译安装
3.二进制格式的程序包,
2、安全加固
设置数据库管理员root口令
禁止root远程登录
禁止anonymous登录
删除test数据库
3、mysql配置文件
[root@firewall ~]#vim /etc/my.cnf
[client-server]
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
[client] #客户端自动登录
user=root
password=123456
[mysql] #永久修改提示符格式
prompt=(\\u@\\h) [\\d]>\\_
[mysqld] #服务器禁止远程连接
skip-networking=1
bind_address=127.0.0.1