1. 总结openssh服务安全加固和总结openssh免密认证原理,及免认证实现过程。
ssh
命令是
ssh
客户端,允许实现对远程系统经验证地加密安全访问
当用户远程连接
ssh
服务器时,会复制
ssh
服务器
/etc/ssh/ssh_host*key.pub
文件中的公钥到客户机的
~/.ssh/know_hosts
中。下次连接时,会自动匹配相对应的私钥,不能匹配,将拒绝连接
ssh-keygen:生成密钥
ssh-copy-id 【host IP】:将密钥传输到对应hostIP的远程服务器
ssh -p 重设密钥
2. 总结sudo配置文件格式,总结相关示例。
可以在/etc/sudoers 里按照格式进行账户行为权限的一种授权
用户 登入主机
=(
代表用户
)
命令
user host=(runas) command
![](https://img-blog.csdnimg.cn/direct/9342576b2fae4bd5b6975da6c06d1531.png)
![](https://img-blog.csdnimg.cn/direct/39adbea1535a4888b5877a2764859e3e.png)
3. 总结PAM架构及工作原理
PAM
提供了对所有服务进行认证的中央机制,适用于本地登录,远程登录
系统管理员通过配置PAM.conf、pam.d/配置文件来对不同应用程序的认证方法调用;
如:系统默认带有许多模块,复杂模块/lib64/security的调用规则在pam.d/下配置;
工作原理:
PAM
认证一般遵循这样的顺序:
Service(
服务
)
→
PAM(
配置文件
)
→
pam_*.so
PAM
认证首先要确定那一项服务,然后加载相应的
PAM
的配置文件
(
位于
/etc/pam.d
下
)
,最后调用认证
文件
(
位于
/lib64/security
下
)
进行安全认证
1.
使用者执行
/usr/bin/passwd
程序,并输入密码
2.passwd
开始调用
PAM
模块,
PAM
模块会搜寻
passwd
程序的
PAM
相关设置文件,这个设置文件一般是
在
/etc/pam.d/
里边的与程序同名的文件,即
PAM
会搜寻
/etc/pam.d/passwd
此设置文件
3.
经由
/etc/pam.d/passwd
设定文件的数据,取用
PAM
所提供的相关模块来进行验证
4.
将验证结果回传给
passwd
这个程序,而
passwd
这个程序会根据
PAM
回传的结果决定下一个动作(重新输入
密码或者通过验证)
4. 总结PAM配置文件格式,总结相关示例, nologin.so, limits,等模块的使用。
application type control module-path arguments
type control module-path arguments
application:指服务名,如:telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确
配置的其它服务
type:指模块类型,即功能
control :PAM库该如何处理与该服务相关的PAM模块的成功或失败情况,一个关健词实现
module-path: 用来指明本模块对应的程序文件的路径名
Arguments: 用来传递给该模块的参数
nologin.so实现:
常用修改配置文件/etc/security/limits.conf:可以修改限制数
![](https://img-blog.csdnimg.cn/direct/cb4469eafb394bc8aa367dbbd5c5cd65.png)
![](https://img-blog.csdnimg.cn/direct/a84c5fce51ec4b859602e820a577bb72.png)
5. 实现私有时间服务器
修改源服务器/etc/chrony.conf文件
allow允许网段以它为校对时间的服务器
local stratum 允许在无网络时也依然有效同步
ntpdate 源服务器IP即可实现时间同步
![](https://img-blog.csdnimg.cn/direct/ecd748b0acdc46678db87d97615d2e6f.png)
![](https://img-blog.csdnimg.cn/direct/7acd65fa75e6417098875431db2c644e.png)
![](https://img-blog.csdnimg.cn/direct/3ec75275c25c4a538565ac09241f735c.png)
6. 总结DNS域名三级结构
- 顶级域名(Top-Level Domain, TLD):
顶级域名是域名的最高级别,例如“.com”、“.org”、“.net”、“.edu”等。这些顶级域名通常由特定的组织或公司管理,并用于特定的目的。例如,“.com”是用于商业组织的域名后缀,“.org”是用于非营利组织的域名后缀,“.net”是用于网络服务提供商的域名后缀,“.edu”是用于教育机构的域名后缀。 - 一级域名(First-Level Domain, FLD):
一级域名是指那些在顶级域名之后的第一级域名,例如“example.com”、“example.org”、“example.net”、“example.edu”等。这些一级域名通常由注册人或组织拥有,并在其网站或网络服务中使用。一级域名的管理通常由相应的顶级域名注册机构负责。 - 二级域名(Second-Level Domain, SDL):
二级域名是指那些在一级域名之后的第二级域名,例如“www.example.com”、“mail.example.com”、“blog.example.com”等。这些二级域名通常用于定义网站的不同部分或服务,例如网站的主页、邮件服务器、博客服务器等。二级域名的管理通常由一级域名的所有者或其授权的组织负责。 - 三级域名(Third-Level Domain, TLD3):
三级域名是指那些在二级域名之后的第三级域名,通常用于定义更具体的网站部分或服务,例如“www.blog.example.com”、“www.mail.example.com”等。这些三级域名通常用于进一步细化网站的结构和内容。三级域名的管理通常由二级域名的所有者或其授权的组织负责
7. 总结DNS服务工作原理,涉及递归和迭代查询原理
递归查询:客户端向最近的DNS代理服务器发起关于www.baidu.com的对应IP地址的查询,该DNS若有缓存结果直接返回IP地址,若无则从根域服务器开始逐级查询,最后由该代理将域名的解析IP结果返回给客户端,并且缓存记录下该域名解析结果
迭代查询:代理DNS服务器向根域DNS服务器开始发起查询,根域解析到.com,相当于向代理DNS转介给其.com域名服务器,再由.com转介给存有baidu.com域名解析的服务器,如此逐层查询知道域名服务器能解析完整www.baidu.com返回IP结果给代理服务器,此前的各上级服务器不须负责返回完整IP结果。
8. 实现私有DNS, 供本地网络主机作DNS递归查询。
配置文件/etc/named.conf named.conf.options
数据文件/etc/named.rfc1912.zones
建立域名文件.zone
![](https://img-blog.csdnimg.cn/direct/612f7041b100407f86bf2be60dfb607a.png)
9. 总结DNS服务器类型,解析答案,正反解析域,资源记录定义。
主
DNS
服务器
从
DNS
服务器
缓存
DNS
服务器
FQDN --> IP
正向解析
IP --> FQDN
反向解析
注意:正反向解析是两个不同的名称空间,是两棵不同的解析树
资源记录类型:
A, AAAA, PTR, SOA, NS, CNAME, MX
SOA
:
Start Of Authority
,起始授权记录;一个区域解析库有且仅能有一个
SOA
记录,必须位于解
析库的第一条记录
A
:
internet Address
,作用,
FQDN --> IP
AAAA
:
FQDN --> IPv6
PTR
:
PoinTeR
,
IP --> FQDN
NS
:
Name Server
,专用于标明当前区域的
DNS
服务器
CNAME
:
Canonical Name
,别名记录
MX
:
Mail eXchanger
,邮件交换器
TXT
:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:
SPF
(反垃圾邮
件)记录,
https
验证等,如下示例
![](https://img-blog.csdnimg.cn/direct/022723fcafdb4df1bba54b733f60663b.png)
10. 实现DNS主从同步
主如上题设置
从DNS:sed -i -e '/listen-on port/s@^@#@' -e '/allow-query/s@^@#@' /etc/named.conf
/etc/named.rfc1912.zones设置:
![](https://img-blog.csdnimg.cn/direct/170de921cfcf461a98f7363ba134a6b6.png)
![](https://img-blog.csdnimg.cn/direct/acb9dc25cb044df68c7295a80328abb6.png)
![](https://img-blog.csdnimg.cn/direct/37b849bd0c034a9ca351f8804456d332.png)
![](https://img-blog.csdnimg.cn/direct/c3fbab31ceeb4ab9a2c099ab4b143f16.png)
11. 实现DNS子域授权
在主DNS配置文件中添加
bj NS bjdns
bjdns A 委派的IP如:10.0.0.24
随后到10.0.0.24设置成DNS服务器
![](https://img-blog.csdnimg.cn/direct/69116f59f1024494b63c9430feb6003d.png)
www.sh 1.1.1.1为本机授权的子域
12. 基于acl实现智能DNS
![](https://img-blog.csdnimg.cn/direct/c5525c5efeb04a63b77360714d1c8828.png)
![](https://img-blog.csdnimg.cn/direct/d152b1b9bb1b4da6b59fc5c7c5c44cc9.png)
13. 总结防火墙分类
按保护范围划分:
主机防火墙:服务范围为当前一台主机
网络防火墙:服务范围为防火墙一侧的局域网
按实现方式划分
:
硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为,
山石
hillstone,
天融信,启明星辰,绿盟,深信服
, PaloAlto , fortinet
飞塔
, Cisco, Checkpoint
,
NetScreen(2004
年被
Juniper
用
40
亿美元收购
)
等
软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,
Windows
防火墙
ISA --> Forefront
TMG
按网络协议划分:
网络层防火墙:
OSI
模型下四层,又称为包过滤防火墙
应用层防火墙
/
代理服务器:
proxy
代理网关,
OSI
模型七层
包过滤防火墙
网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制列表(
ACL
),通过
检查数据流中每个数据的源地址,目的地址,所用端口号和协议状态等因素,或他们的组合来确定是否
允许该数据包通过
优点:对用户来说透明,处理速度快且易于维护
缺点:无法检查应用层数据,如病毒等
应用层防火墙
应用层防火墙
/
代理服务型防火墙,也称为代理服务器(
Proxy Server)
将所有跨越防火墙的网络通信链路分为两段
内外网用户的访问都是通过代理服务器上的
“
链接
”
来实现
优点:在应用层对数据进行检查,比较安全
缺点:增加防火墙的负载
14. 总结iptable 5表5链, 基本使用,扩展模块。
五个表
table
:
filter
、
nat
、
mangle
、
raw
、
security
filter
:过滤规则表,根据预定义的规则过滤符合条件的数据包
,
默认表
nat
:
network address translation
地址转换规则表
mangle
:修改数据标记位规则表
raw
:关闭启用的连接跟踪机制,加快封包穿越防火墙速度
security
:用于强制访问控制(
MAC
)网络规则,由
Linux
安全模块(如
SELinux
)实现
链
chain
:
内置链:每个内置链对应于一个钩子函数
自定义链:用于对内置链进行扩展或补充,可实现更灵活的规则组织管理机制;只有
Hook
钩子调
用自定义链时,才生效
五个内置链
chain:
INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
15. 总结iptables规则优化实践,规则保存和恢复。
1.安全放行所有入站和出站的状态为
ESTABLISHED
状态连接
,
建议放在第一条,效率更高
2.
谨慎放行入站的新请求
3.
有特殊目的限制访问功能,要在放行规则之前加以拒绝
4.
同类规则(访问同一应用,比如:
http
),匹配范围小的放在前面,用于特殊处理
5.
不同类的规则(访问不同应用,一个是
http
,另一个是
mysql
),匹配范围大的放在前面,效率更
高
6.
应该将那些可由一条规则能够描述的多个规则合并为一条
,
减少规则数量
,
提高检查效率
7.
设置默认策略,建议白名单(只放行特定连接)
iptables -P
,不建议,容易出现
“
自杀现象
”
规则的最后定义规则做为默认策略,推荐使用,放在最后一条
![](https://img-blog.csdnimg.cn/direct/ede5017aaffe4a9f8fe6965e68c584c4.png)
![](https://img-blog.csdnimg.cn/direct/59cb68a3207d473e90fa56b33d758c69.png)
![](https://img-blog.csdnimg.cn/direct/459654953a554bb797ea71ffd86b71a1.png)
16. 总结NAT转换原理, DNAT/SDNAT原理,并自行设计架构实现DNAT/SNAT。
当防火墙服务器设置在内外网中间隔开时,两边不在同一网段,内外客户端与服务器理应无法相互访问。
防火墙收到访问是可根据数据报文所属网段,通过DNAT将外来数据转移给内网服务器,可通过SNAT技术限制内网客户端访问不同网段的行为
外网192.168.10.0网段,当防火墙服务器收到192网段访问,
iptables -t nat -A PREROUTING -d 192.168.10.XX(防火墙上受访问的IP) -p tcp --dport 80 -j DNAT --to-destination 内网服务器IP:端口
内网10.0.0.0网段访问外网时,有安全风险,可通过伪装更改成防火墙服务器对外IP地址,隐藏客户端IP
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j MASQUERADE
![](https://img-blog.csdnimg.cn/direct/5884c06b625f46deaef960458aaf81e4.png)
![](https://img-blog.csdnimg.cn/direct/a2d55b46f8eb42e6992a821643455962.png)
![](https://img-blog.csdnimg.cn/direct/22cd8b6631ca4ed5a12a68deef824ef5.png)
设置了DNAT使ping 防火墙192.168.10.146转移到10.0.0.24服务端上
iptables -t nat -A PREROUTING -d 192.168.10.146 -p icmp -j DNAT --to-destination 10.0.0.24
17. 使用REDIRECT将90端口重定向80,并可以访问到80端口的服务
防火墙设置DNAT对应80端口指向apache服务器的90端口
![](https://img-blog.csdnimg.cn/direct/02068c087c4f433eadc8004b7b4b2669.png)
apache服务器将90端口重定向到80端口
iptables -t nat -A PREROUTING -d 本机IP -p tcp --dport 90 -j REDIRECT --to-port 80
![](https://img-blog.csdnimg.cn/direct/9102b57c2a414e109f0a7322df3026fa.png)
![](https://img-blog.csdnimg.cn/direct/3e231e86b6d1472d90a28165e3cf84f0.png)
外网机器访问防火墙对外IP时,默认80端口,跳转到对应apache服务器90重定向到80端口
![](https://img-blog.csdnimg.cn/direct/ea9b3c188b57428f868488e29842bb93.png)
18. firewalld常见区域总结。
--get-zones
列出所有可用区域
--get-default-zone
查询默认区域
--set-default-zone
=
<ZONE>
设置默认区域
--get-active-zones
列出当前正使用的区域
--add-source
=
<CIDR>
[--zone
=
<ZONE>]
添加源地址的流量到指定区域,如果
无
--zone
=
选项,使用
默认区域
--remove-source
=
<CIDR>
[--zone
=
<ZONE>]
从指定区域删除源地址的流量,如
无
--zone
=
选项,
使用默认区域
--add-interface
=
<INTERFACE>
[--zone
=
<ZONE>]
添加来自于指定接口的流量到特定区域,如果
无
--
zone
=
选项,使用默认区域
--change-interface
=
<INTERFACE>
[--zone
=
<ZONE>]
改变指定接口至新的区域,如果
无
--zone
=
选项,使用默认区域
--add-service
=
<SERVICE>
[--zone
=
<ZONE>]
允许服务的流量通过,如果
无
--zone
=
选项,使用默
认区域
--add-port
=
<PORT/PROTOCOL>
[--zone
=
<ZONE>]
允许指定端口和协议的流量,如果
无
--zone
=
选
项,使用默认区域
--remove-service
=
<SERVICE>
[--zone
=
<ZONE>]
从区域中删除指定服务,禁止该服务流量,如果
无
--zone
=
选项,使用默认区域
--remove-port
=
<PORT/PROTOCOL>
[--zone
=
<ZONE>]
从区域中删除指定端口和协议,禁止该端口
的流量,如果
无
--zone
=
选项,使用默认区域
--reload
删除当前运行时配置,应用加载永久配置
--list-services
查看开放的服务
--list-ports
查看开放的端口
--list-all
[--zone
=
<ZONE>]
列出指定区域的所有配置信息,包括接口,源地址,端口,服务等,如
果
无
--zone
=
选项,使用默认区域
19. 通过ntftable来实现暴露本机80/443/ssh服务端口给指定网络访问