1. SUDO,PAM配置规范说明
sudo配置规范说明
授权规则配置文件
vim /etc/sudoers
sudoers配置规范
被授权用户名 登入主机=(代表用户) 命令
user host=(runas) command 此处需写该命令的绝对路径
pam配置规范说明
vim /etc/pam.d/<APP>
type control module-path arguments
1.APP:指定服务名,如:telnet、login、ftp等,服务名字“other”代表所有没有在该文件中明确配置的其他服务
2.type:指模块类型,即功能
linux-PAM有四种模块类型:认证管理(auth)、帐号管理(account)、会话管理(session)和密码管理(password)。一个类型可能有多行,它们按顺序依次由PAM模块调用。
3.control:PAM库该如何处理与该服务相关的PAM模块的成功或失败情况,一个关键词实现
控制标记分为五种:required、requisite、sufficient、optional、include
4.module-path:用来指明本模块对应的程序文件的路径名
即要调用模块的位置,如果是64位系统,一般保存在/lib64/security,同一模块可以出现在不同的类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型,编制了不同的执行函数。
5.arguements:用来传递给该模块的参数
2. chrony搭建私有ntp服务
服务器端配置
[root@centos8 ~]#hostname -I
10.0.0.8
[root@centos8 ~]#yum -y install chrony
[root@centos8 ~]#vim /etc/chrony.conf
server ntp.aliyun.com iburst
server ntp1.aliyun.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@centos8 ~]#systemctl restart chronyd
#服务启动后会打开端口123/udp
[root@centos8 ~]#ss -ntlu
Netid State Recv-Q Send-Q
Local Address:Port Peer Address:Port
udp UNCONN 0 0
0.0.0.0:123 0.0.0.0:*
udp UNCONN 0 0
127.0.0.1:323 0.0.0.0:*
udp UNCONN 0 0
[::1]:323 [::]:*
tcp LISTEN 0 128
0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 100
127.0.0.1:25 0.0.0.0:*
tcp LISTEN 0 128
[::]:22 [::]:*
tcp LISTEN 0 100
[::1]:25 [::]:*
客户端配置
[root@centos7 ~]#vim /etc/chrony.conf
server 10.0.0.8 iburst
[root@centos7 ~]#systemctl restart chronyd.service
#确认同步成功
[root@centos7 ~]#chronyc sources -v
210 Number of sources = 1
.-- 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
===============================================================================
^* 10.0.0.8 3 6 77 29 -229us[-1154us] +/- 17ms
3. 说明CDN原理
CDN (Content Delivery Network)内容分发网络
工作原理:
- 用户向浏览器输入www.a.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS服 务器请求
- 网站的DNS域名解析器设置了CNAME,指向了www.a.tbcdn.com,请求指向了CDN网络中的智能 DNS负载均衡系统
- 智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户;
- 用户向该IP节点(CDN服务器)发出请求
- 由于是第一次访问,CDN服务器会通过Cache内部专用DNS解析得到此域名的原web站点IP,向原 站点服务器发起请求,并在CDN服务器上缓存内容
- 请求结果发给用户
4. 搭建智能DNS,实现不同地域客户端解析到不同主机
#实验目的
搭建DNS主从服务器架构,实现DNS服务冗余
#环境要求
DNS主服务器和web服务器1:10.0.0.8/24,172.16.0.8/16
web服务器2:10.0.0.7/24
web服务器3:172.16.0.7/16
DNS客户端1:10.0.0.6/24
DNS客户端2:172.16.0.6/16
#前提准备
关闭SElinux
关闭防火墙
时间同步
1 DNS 服务器的网卡配置
#eth0:10.0.0.8/24
#eth1: 172.16.0.8/16
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group
default qlen 1000
link/ether 00:0c:29:f9:8d:90 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fef9:8d90/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group
default qlen 1000
link/ether 00:0c:29:f9:8d:11 brd ff:ff:ff:ff:ff:ff
inet 172.16.0.8/16 brd 172.16.0.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe11:8d90/64 scope link
valid_lft forever preferred_lft forever
2 主DNS服务端配置文件实现 view
yum install bind -y
vim /etc/named.conf
#在文件最前面加下面行
acl beijingnet {
10.0.0.0/24;
};
acl shanghainet {
172.16.0.0/16;
};
acl othernet {
any;
};
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#其它略
# 创建view
view beijingview {
match-clients { beijingnet;};
include "/etc/named.rfc1912.zones.bj";
};
view shanghaiview {
match-clients { shanghainet;};
include "/etc/named.rfc1912.zones.sh";
};
view otherview {
match-clients { othernet;};
include "/etc/named.rfc1912.zones.other";
};
include "/etc/named.root.key";
3 实现区域配置文件
vim /etc/named.rfc1912.zones.bj
zone "." IN {
type hint;
file "named.ca";
};
zone "magedu.org" {
type master;
file "magedu.org.zone.bj";
};
vim /etc/named.rfc1912.zones.sh
zone "." IN {
type hint;
file "named.ca";
};
zone "magedu.org" {
type master;
file "magedu.org.zone.sh";
};
vim /etc/named.rfc1912.zones.other
zone "." IN {
type hint;
file "named.ca";
};
zone "magedu.org" {
type master;
file "magedu.org.zone.other";
};
chgrp named /etc/named.rfc1912.zones.bj
chgrp named /etc/named.rfc1912.zones.sh
chgrp named /etc/named.rfc1912.zones.oth
4 创建区域数据库文件
vim /var/named/magedu.org.zone.bj
$TTL 1D
@ IN SOA master admin.magedu.org. (
2019042214 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 10.0.0.8
websrv A 10.0.0.7
www CNAME websrv
vim /var/named/magedu.org.zone.sh
$TTL 1D
@ IN SOA master admin.magedu.org. (
2019042214 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 10.0.0.8
websrv A 172.16.0.7
www CNAME websrv
vim /var/named/magedu.org.zone.other
$TTL 1D
@ IN SOA master admin.magedu.org. (
2019042214 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 10.0.0.8
websrv A 127.0.0.1
www CNAME websrv
chgrp named /var/named/magedu.org.zone.bj
chgrp named /var/named/magedu.org.zone.sh
chgrp named /var/named/magedu.org.zone.other
systemctl start named #第一次启动服务
rndc reload #不是第一次启动服务
5 实现位于不同区域的三个WEB服务器
#分别在三台主机上安装http服务
#在web服务器1:10.0.0.8/24实现
yum install httpd
echo www.magedu.org in Other > /var/www/html/index.html
systemctl start httpd
#在web服务器2:10.0.0.7/16
echo www.magedu.org in Beijing > /var/www/html/index.html
systemctl start httpd
#在web服务器3:172.16.0.7/16
yum install httpd
echo www.magedu.org in Shanghai > /var/www/html/index.html
systemctl start httpd
6 客户端测试
#分别在三台主机上访问
#DNS客户端1:10.0.0.6/24 实现,确保DNS指向10.0.0.8
curl www.magedu.org
www.magedu.org in Beijing
#DNS客户端2:172.16.0.6/16 实现,确保DNS指向172.16.0.8
curl www.magedu.org
www.magedu.org in Shanghai
#DNS客户端3:10.0.0.8 实现,,确保DNS指向127.0.0.1
curl www.magedu.org
www.magedu.org in Other
5. 解释DNS解析流程
- 主机首先向其本地域名服务器进行递归查询。
- 本地域名服务器采用迭代查询,它先向某个根域名服务器查询。
- 根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器的IP地址。
- 本地域名服务器向顶级域名服务器进行迭代查询。
- 顶级域名服务器告诉本地域名服务器,下一次应查询的权限域名服务器的IP地址。
- 本地域名服务器向权限域名服务器进行迭代查询。
- 权限域名服务器告诉本地域名服务器所查询的域名的IP地址。
- 本地域名服务器最后把查询的结果告诉主机。
6. iptables 5表5链解释
五链
INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
五链解释:
INPUT, 进内核(包含:filter,mangle)
OUTPUT, 出内核(包含:filter,nat,mangle,raw)
FORWARD, 转发(包含:filter,mangle)
PREROUTING,前置路由检查(包含:nat,mangle,raw)
POSTROUTING 后置路由检查(包含:nat,mangle,raw)
五表
security -->raw-->mangle-->nat-->filter
五表解释:
filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表
nat:network address translation 地址转换规则表
mangle:修改数据标记位规则表
raw:关闭启用的连接跟踪机制,加快封包穿越防火墙速度
security:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现
三种报文流向
流入本机:PREROUTING --> INPUT–>用户空间进程
流出本机:用户空间进程 -->OUTPUT–> POSTROUTING
转发:PREROUTING --> FORWARD --> POSTROUTING
7. iptables/firewalld/nftable 实现主机防火墙。5000-6000端口仅192.168.0.0/24网段内的主机访问
使用iptables
# 清空所有已有规则,并设置默认策略为拒绝
iptables -F
iptables -P INPUT DROP
# 允许回环接口的流量
iptables -A INPUT -i lo -j ACCEPT
# 允许192.168.0.0/24网段的流量访问5000-6000端口
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 5000:6000 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -p udp --dport 5000:6000 -j ACCEPT
# 允许已建立的、相关的连接通过
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
使用firewalld
# 启用firewalld服务并设置开机启动
systemctl start firewalld
systemctl enable firewalld
# 清空所有已有规则,并设置默认策略为拒绝
firewall-cmd --zone=public --permanent --remove-interface=eth0
firewall-cmd --zone=public --permanent --add-interface=eth0
firewall-cmd --permanent --zone=public --set-target=DROP
# 允许192.168.0.0/24网段的流量访问5000-6000端口
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" port protocol="tcp" port="5000-6000" accept'
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" port protocol="udp" port="5000-6000" accept'
# 重载firewalld规则
firewall-cmd --reload
使用nftables
# 清空所有已有规则,并设置默认策略为拒绝
nft flush ruleset
nft add table ip filter
nft add chain ip filter input { type filter hook input priority 0 \; }
# 允许回环接口的流量
nft add rule ip filter input iif lo accept
# 允许192.168.0.0/24网段的流量访问5000-6000端口
nft add rule ip filter input ip saddr 192.168.0.0/24 tcp dport 5000-6000 accept
nft add rule ip filter input ip saddr 192.168.0.0/24 udp dport 5000-6000 accept
# 允许已建立的、相关的连接通过
nft add rule ip filter input ct state related,established accept
8. mysql的各发行版有哪些 ?
MySQL:5.1 --> 5.5 --> 5.6 --> 5.7 -->8.0 MariaDB:5.1 -->5.5 -->10.0–> 10.1 --> 10.2 --> 10.3 --> 10.4 --> 10.5
9. mysql索引的作用
在mysql中,索引可以用来快速查询数据表中有某一特定值的记录,大大加快数据的查询速度;在列上创建了索引之后,查找数据时可以直接根据该列上的索引找到对应记录行的位置,从而快捷地查找到数据。如果表中查询的列有一个索引,MySQL就能快速到达一个位置去搜索数据文件,而不必查看所有数据,这样将会节省很大一部分时间;且通过创建唯一索引可以保证数据库表中每一行数据的唯一性。
10.mysql btree索引的原理
B-Tree结构的数据可以让系统高效的找到数据所在的磁盘块。为了描述B-Tree,首先定义一条记录为一个二元组[key, data] ,key为记录的键值,对应表中的主键值,data为一行记录中除主键外的数据。对于不同的记录,key值互不相同。
11. mysql安全加固?
设置数据库管理员root口令
禁止root远程登录
删除anonymous用户账号
删除test数据库