2024年第五周

1、总结openssh服务安全加固和总结openssh免密认证原理,及免密认证实现过程。

1.1、openssh服务安全加固

  1. 更新系统包信息并升级所有安全的包
  2. 安装Fail2Ban,这是一个用来防止DDoS攻击的工具
  3. 启动Fail2Ban服务并设置为开机自启
  4. 修改SSH配置以提高安全性
  5. 重新加载SSH服务配置以应用更改
  6. 设置防火墙规则来仅允许从特定IP访问SSH端口

1.2、openssh免密认证原理

        SSH免密认证主要是通过公钥和私钥的方式实现,用户需要生成一对公私钥,将公钥放到远程服务器上,然后在本地客户端使用私钥进行认证。使用ssh-keygen -t rsa命令生成公钥,将生成的公钥(默认为~/.ssh/id_rsa.pub)复制到远程服务器的用户家目录下的.ssh/authorized_keys文件中。在复制公钥到远端后,SSH客户端就可以无密码登录远程服务器了。

1.3、免密认证实现过程

  1. 在客户端生成一对密钥(公钥和私钥)。
  2. 将公钥复制到服务器的指定位置。
  3. 配置SSH服务器以启用公钥认证。
  4. 客户端尝试连接到服务器时,服务器会使用客户端提供的公钥与服务器上的私钥进行配对。

2、总结sudo配置文件格式,总结相关示例。

2.1、sudo配置文件格式

        用户 登入主机=(代表用户) 命令

        user host=(runas) command

说明user: 运行命令者的身份 ;host: 通过哪些主机; (runas):以哪个用户的身份 ;command: 运行哪些命令。

2.2、示例

student ALL=(root)   /sbin/pidof,/sbin/ifconfig
%wheel ALL=(ALL) NOPASSWD: ALL


3、总结PAM架构及工作原理

3.1、PAM架构

3.2、工作原理

  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,等模块的使用。

4.1、PAM配置文件格式

  • 通用配置文件/etc/pam.conf格式:application type control module-path arguments
  • 专用配置文件/etc/pam.d/ 格式 :type control module-path arguments

4.2、常用模块

  • pam_nologin.so 模块  如果/etc/nologin文件存在,将导致非root用户不能登陆,当该用户登陆时,会显示/etc/nologin文 件内容,并拒绝登陆
  • pam_limits.so 模块  在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间 

5、实现私有时间服务器

  1. 安装chrony
  2. 配置chrony(编辑/etc/chrony/chrony.conf
  3. 重启chrony服务
  4. 确保chrony服务开机启动
  5. 验证chrony是否正常工作

6、总结DNS域名三级结构

  • 根域: 全球根服务器节点只有13,10个在美国,1个荷兰,1个瑞典,1个日本
  • 一级域名:Top Level Domain: tld
  • 三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
  • com, edu, mil, gov, net, org, int,arpa
  • 二级域名:wang.org
  • 三级域名:study.wang.org
  • 最多可达到127级域名

7、总结DNS服务工作原理,涉及递归和迭代查询原理

7.1、DNS服务工作原理

7.2、递归查询

  • DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器 本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用户
  • 一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,DNS务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交 给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。

7.3、迭代查询

  • DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的 地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。
  • 一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回 权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。

8、实现私有DNS, 供本地网络主机作DNS递归查询。

1、安装bind

yum -y install bind bind-utils

2、修改bind配置文件

vim /etc/named.conf
//listen-on port 53 { localhost; };
//allow-query     { localhost; };

vim /etc/named.rfc1912.zones
zone "xie.org" IN {
        type master;
        file "xie.org.zone";
};

3、配置DNS区域数据库文件

cp -p /var/named/named.localhost /var/named/xie.org.zone
vim /var/named/xie.org.zone

4、检查配置文件

named-checkconf
named-checkzone xie.org /var/named/xie.org.zone

5、重启DNS服务

systemctl restart named

6、Client端配置

vim  /etc/resolv.conf
nameserver 10.0.0.155

9. 总结DNS服务器类型,解析答案,正反解析域,资源记录定义。

9.1DNS服务器类型

  • DNS服务器:管理和维护所负责解析的域内解析库的服务器
  • DNS服务器:从主服务器或从服务器"复制"(区域传输)解析库副本
  • 缓存DNS服务器(转发器)

9.2解析答案

  • 肯定答案:存在对应的查询结果
  • 否定答案:请求的条目不存在等原因导致无法返回结果
  • 权威答案:直接由存有此查询结果的DNS服务器(权威服务器)返回的答案
  • 非权威答案:由其它非权威服务器返回的查询答案

9.3正反解析域

负责本地域名的正向和反向解析库:正向区域、反向区域。

解析形式:

正向: FQDN(Full Qualifiled Domain Name)-->IP

反向:IP-->FQDN

9.4资源记录定义

格式:name [TTL] IN rr_type value

说明:

  1.  TTL可从全局继承。
  2.  使用 "@" 符号可用于引用当前区域的域名。
  3. 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应。
  4. 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机。

10. 实现DNS主从同步

主DNS服务器配置

1、在DNS服务器上安装bind

yum install bind bind-utils -y

2、修改bind 配置文件

vim /etc/named.conf             
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };
vim /etc/named.rfc1912.zones    
#加上下面内容
zone "xie.org" IN {
   type master;
   file  "xie.org.zone";
};

3、DNS区域数据库文件

cp -p /var/named/named.localhost /var/named/xie.org.zone
#如果没有加-p选项,需要修改所有者或权限。chgrp named xie.org.zone
vim /var/named/xie.org.zone 
$TTL 1D
@ IN SOA master admin.xie.org. (
 2019042210 ; serial
 1D ; refresh
 1H ; retry
 1W ; expire
 3H ) ; minimum
       NS master
master     A    10.0.0.155         
www     A    10.0.0.151

4、检查配置文件和数据库文件格式,并启动服务

named-checkconf 
named-checkzone xie.org /var/named/xie.org.zone
systemctl start named          #第一次启动服务
rndc reload                    #不是第一次启动服务

从DNS服务器配置

yum install bind -y
vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };
#不允许其它主机进行区域传输
   allow-transfer { none;};
vim /etc/named.rfc1912.zones
zone "xie.org" {
   type slave;
   masters { 主服务器IP;};
file "slaves/xie.org.slave";
};
systemctl start named          #第一次启动服务
rndc reload                    #不是第一次启动服务
ls /var/named/slaves/xie.org.slave #查看区域数据库文件是否生成

11. 实现DNS子域授权

.com. IN NS ns1.com.
.com. IN   NS ns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2
#xie.org. 在.com的名称服务器上,解析库中添加资源记录
xie.org. IN NS ns1.xie.org.
xie.org. IN NS ns2.xie.org.
xie.org. IN NS ns3.xie.org.
ns1.xie.org. IN A 3.3.3.1
ns2.xie.org. IN A 3.3.3.2
ns3.xie.org. IN A 3.3.3.3

12. 基于acl实现智能DNS

12.1 前提准备

  • 关闭SElinux
  • 关闭防火墙
  • 时间同步

12.2 DNS服务器的网卡配置

  • 配置两个IP地址
  • eth0:10.0.0.8/24
  • eth1: 172.16.0.8/16

12.3DNS服务端配置文件实现 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";

12.4实现区域配置文件

vim /etc/named.rfc1912.zones.bj
zone "." IN {
   type hint;
   file "named.ca";
};
zone "wang.org" {
   type master;
   file "wang.org.zone.bj";
};
vim /etc/named.rfc1912.zones.sh
zone "." IN {
   type hint;
   file "named.ca";
};
zone "wang.org" {
   type master;
   file "wang.org.zone.sh";
};
vim /etc/named.rfc1912.zones.other
zone "." IN {
   type hint;
   file "named.ca";
};
zone "xie.org" {
   type master;
   file "xie.org.zone.other";
};
chgrp named /etc/named.rfc1912.zones.bj
chgrp named /etc/named.rfc1912.zones.sh
chgrp named /etc/named.rfc1912.zones.other

12.5创建区域数据库文件

vim /var/named/xie.org.zone.bj
$TTL 1D
@   IN SOA master admin.xie. (
                    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/xie.org.zone.sh
$TTL 1D
@   IN SOA master admin.xie.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/xie.org.zone.other
$TTL 1D
@   IN SOA master admin.xie.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/xie.org.zone.bj
chgrp named /var/named/xie.org.zone.sh
chgrp named /var/named/xie.org.zone.other
systemctl start named          #第一次启动服务
rndc reload                    #不是第一次启动服务

12.6实现位于不同区域的三个WEB服务器

#分别在三台主机上安装http服务
#在web服务器1:10.0.0.8/24实现
yum install httpd                        
echo www.xie.org in Other > /var/www/html/index.html
systemctl start httpd   
#在web服务器2:10.0.0.7/16
echo www.xie.org in Beijing > /var/www/html/index.html
systemctl start httpd  
#在web服务器3:172.16.0.7/16
yum install httpd                        
echo www.xie.org in Shanghai > /var/www/html/index.html
systemctl start httpd

13. 总结防火墙分类

13.1 按保护范围划分:

  • 主机防火墙:服务范围为当前一台主机
  • 网络防火墙:服务范围为防火墙一侧的局域网

13.2 按实现方式划分:

  •  硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为, 山石hillstone,天融信,启明星辰,绿盟,深信服, PaloAlto , fortinet飞塔, Cisco, CheckpointNetScreen(2004年被 Juniper 40亿美元收购)
  •  软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA --> Forefront TMG

13.3按网络协议划分:

  • 网络层防火墙:OSI模型下四层,又称为包过滤防火墙
  • 应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层

14. 总结iptable 5表5链, 基本使用,扩展模块。

chain:
  • 内置链:每个内置链对应于一个钩子函数(五个内置链:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING)
  • 自定义链:用于对内置链进行扩展或补充,可实现更灵活的规则组织管理机制;只有Hook钩子调 用自定义链时,才生效.
五个表 table filter nat mangle raw security
  • filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表
  • natnetwork address translation 地址转换规则表
  • mangle:修改数据标记位规则表
  • raw:关闭启用的连接跟踪机制,加快封包穿越防火墙速度
  • security:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现

命令格式:

iptables   [-t table]   SUBCOMMAND   chain   [-m matchname [per-match-options]]  

-j targetname [per-target-options]
扩展模块:
1、multiport扩展:以离散方式定义多端口匹配 , 最多指定 15 个端口
#指定多个源端口
[!] --source-ports,--sports port[,port|,port:port]...
# 指定多个目标端口
[!] --destination-ports,--dports port[,port|,port:port]...
#多个源或目标端
[!] --ports port[,port|,port:port]...
2、iprange扩展:指明连续的(但一般不是整个网络) ip 地址范围
[!] --src-range from[-to] 源IP地址范围
[!] --dst-range from[-to] 目标IP地址范围

3、mac扩展:mac 模块可以指明源MAC地址,,适用于:PREROUTING, FORWARDINPUT chains

[!] --mac-source XX:XX:XX:XX:XX:XX

4、string扩展:对报文中的应用层数据做字符串模式匹配检测

--algo {bm|kmp} 字符串匹配检测算法
 bm:Boyer-Moore
 kmp:Knuth-Pratt-Morris
--from offset 开始偏移
--to offset   结束偏移
[!] --string pattern 要检测的字符串模式
[!] --hex-string pattern 要检测字符串模式,16进制格式

5、connlimit扩展 根据每客户端IP做并发连接数数量匹配 ,可防止Dos(Denial of Service,拒绝服务)攻击

--connlimit-upto N #连接的数量小于等于N时匹配
--connlimit-above N #连接的数量大于N时匹配

6、limit扩展 基于收发报文的速率做匹配 , 令牌桶过滤器

--limit-burst number #前多少个包不限制
--limit #[/second|/minute|/hour|/day]

15. 总结iptables规则优化实践,规则保存和恢复。

15.1 iptables规则优化实践

  1. 安全放行所有入站和出站的状态为ESTABLISHED状态连接,建议放在第一条,效率更高。
  2. 谨慎放行入站的新请求。
  3.  有特殊目的限制访问功能,要在放行规则之前加以拒绝。
  4. 同类规则(访问同一应用,比如:http ),匹配范围小的放在前面,用于特殊处理。
  5. 不同类的规则(访问不同应用,一个是http,另一个是mysql ),匹配范围大的放在前面,效率更高。
  6. 应该将那些可由一条规则能够描述的多个规则合并为一条 , 减少规则数量 , 提高检查效率
  7. 设置默认策略,建议白名单(只放行特定连接)

15.2 规则保存

  1. 持久保存规则:iptables-save > /PATH/TO/SOME_RULES_FILE
  2. 加载规则 :iptables-restore < /PATH/FROM/SOME_RULES_FILE
  3. 开机自动重载规则:
  • 用脚本保存各个iptables命令;让此脚本开机后自动运行
  • /etc/rc.d/rc.local文件中添加脚本路径 /PATH/TO/SOME_SCRIPT_FILE
  • 用规则文件保存各个规则,开机时自动载入此规则文件中的规则
  • /etc/rc.d/rc.local文件添加iptables-restore < /PATH/FROM/IPTABLES_RULES_FILE
  • 定义Unit File, CentOS 78 可以安装 iptables-services 实现iptables.service

15.3规则恢复

iptables -F

iptables-save > /etc/sysconfig/iptables

16. 总结NAT转换原理, DNAT/SDNAT原理,并自行设计架构实现DNAT/SNAT。

16.1 NAT

NAT: network address translation ,支持 PREROUTING INPUT OUTPUT POSTROUTING 四个链。
请求报文:修改源 / 目标 IP ,由定义如何修改
响应报文:修改源 / 目标 IP ,根据跟踪机制自动实现

16.2 DNAT

        source NAT ,支持 POSTROUTING, INPUT ,让本地网络中的主机通过某一特定地址访问外部网络,实现地址伪装, 请求报文:修改源 IP。

16.3 SDNAT

        destination NAT 支持 PREROUTING , OUTPUT ,把本地网络中的主机上的某服务开放给外
部网络访问 ( 发布服务和端口映射 ) ,但隐藏真实 IP, 请求报文:修改目标 IP。


17. 使用REDIRECT将90端口重定向80,并可以访问到80端口的服务

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 90 -j REDIRECT --to-port 80

18. firewalld常见区域总结。

zone
                                默认配置
trusted
允许所有流量
home
拒绝除和传出流量相关的,以及 ssh,mdsn,ipp-client,samba-client,dhcpv6-client 预定义服务之外其它所有传入流量
internal
home 相同
work
拒绝除和传出流量相关的,以及 ssh,ipp-client,dhcpv6-client 预定义服务之外的其它所有传入流量
public
拒绝除和传出流量相关的,以及 ssh,dhcpv6-client 预定义服务之外的其它所有传入流量,新加的网卡默认属于public zone
external
拒绝除和传出流量相关的,以及 ssh 预定义服务之外的其它所有传入流量,属于external zone的传出 ipv4 流量的源地址将被伪装为传出网卡的地址。
dmz
拒绝除和传出流量相关的,以及 ssh 预定义服务之外的其它所有传入流量
block
拒绝除和传出流量相关的所有传入流量
drop
拒绝除和传出流量相关的所有传入流量(甚至不以 ICMP 错误进行回应)

19. 通过ntftable来实现暴露本机80/443/ssh服务端口给指定网络访问

# 允许指定网段访问本机80端口
iptables -t nat -A PREROUTING -p tcp -d <本机公网IP> --dport 80 -j DNAT --to-destination <本机内网IP>:80
iptables -t nat -A POSTROUTING -p tcp -s <本机内网IP> --sport 80 -j MASQUERADE
 
# 允许指定网段访问本机443端口
iptables -t nat -A PREROUTING -p tcp -d <本机公网IP> --dport 443 -j DNAT --to-destination <本机内网IP>:443
iptables -t nat -A POSTROUTING -p tcp -s <本机内网IP> --sport 443 -j MASQUERADE
 
# 允许指定网段访问本机SSH端口22
iptables -t nat -A PREROUTING -p tcp -d <本机公网IP> --dport 22 -j DNAT --to-destination <本机内网IP>:22
iptables -t nat -A POSTROUTING -p tcp -s <本机内网IP> --sport 22 -j MASQUERADE
  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值