第5次作业

1.总结openssh服务安全加固

SSH(Secure Shell)是一种能够让用户安全访问远程系统的网络协议,它为不安全网络中的两台主机提供了一个强加密数据通信通道。SSH是Linux、UNIX系统管理员操作和管理主机的首选方式。虽然SSH比其他通信方式更加安全,但是错误的配置也可能导致其出现安全问题。

  1. SSH配置是文件为/etc/ssh/sshd_config
  2. 针对SSH的配置文件的修改要生效需要重启ssh服务。
  3. SSH配置文件中需要带有#号的注释行,不会在服务运行中生效,生效需要删除#号。
  4. 注释通常为该选项的默认值。
  5. 使用SSHv2版本的协议,确保系统使用SSHv2版本,配置为仅接受SSHv2版协议的连接。配置为Protocol 2
  6. 关闭或者延迟压缩。配置项为Compression no
  7. 限制身份最大尝试连接次数。配置项为MaxAuthTries 3
  8. 禁用root账号远程登录。配置项为PermitRootLogin no
  9. 显示最后一次登录的时间和日期。配置项为PrintLastLog yes
  10. 结束空闲的SSH会话。配置项为ClientAliveCountMax选项和ClientAliveInterval选项相互配合,例如要在十五分钟(300秒)后关闭不活动的会话,修改配置文件如下:

ClientAliveInterval 300

ClientAliveCountMax 0

  1. 禁用空密码。配置项为PermitEmptyPasswords no;
  2. 使用非常规端口,更改默认22端口。配置项为Port 22
  3. 将服务器绑定到固定的IP地址,通过一个专有地址来连接。配置项为ListenAddress 10.0.0.1
  4. 使用秘钥进行身份认证。配置项为PubkeyAuthentication yes

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

配置文件:/etc/sudo.conf
授权规则配置文件:
● /etc/sudoers
● /etc/sudoers.d
安全编辑授权规则文件和语法检查工具:/usr/sbin/visudo 保存时会自动检查配置文件的语法

user    host=(runas)    command

user:运行命令者的身份,username,uid,%group_name,%group_id,user_alias
host:允许在哪些主机上授权,ip,hostname,network(/netmask),host_alias
runas:以哪个账户的身份执行授权的命令,username,uid,%group_name,%group_id,runas_alias
command:运行哪些命令,command_name,directory,sudoedit,cmnd_alais

sudo别名有四种类型:
(1)User_Alias
(2)Runas_Alias
(3)Host_Alias
 (4) Cmnd_Alias
别名命名格式:[A-Z,0-9,_]*
别名定义:Alias_Type NAME1=item1,item2 : NAME2=item3,item4

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

PAM提供了对所有服务进行认证的中央机制,适用于本地登录,远程登录,如:Telnet,rlogin,fsh,ftp,点对点协议PPP,su等应用程序中,系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略;应用程序开发者通过在服务程序中使用PAM API(pam_xxxx())来实现对认证方法的调用;而PAM服务模块的开发者利用PAM SPI编写模块(主要调用函数pam_sm_xxx()提供PAM接口库调用,将不同的认证机制加入到系统中;PAM接口库(libpam)则读取配置文件,将应用程序和相应的PAM服务模块联系起来)

工作原理:
PAM认证一般遵循这样的顺序:Service(服务)–PAM(对应的配置文件)–pam_*.so(PAM模块)
PAM首先要确定哪一项服务,然后记载相应的PAM配置文件(/etc/pam.d/),最后调用认证文件(/lib64/security)

以passwd为例说明:

用户使用passwd命令
passwd调用PAM模块,PAM模块会搜索passwd对应的PAM配置文件,这个配置文件一般在/etc/pam.d/下,且配置文件与程序名相同,即PAM会搜索/etc/pam.d/passwd
PAM模块根据/etc/pam.d/passwd配置调用相关的.so模块
验证结果回传给passwd程序,passwd根据结果决定下一个动作(重新输入密码或者通过验证)
 

4. 总结PAM配置文件格式,总结相关示例, nologin.so, limits,等模块的使用。

PAM配置文件是/etc/pam.d目录下的文件,每个文件对应一个应用程序或服务。其格式如下:
type control module-path module-arguments
其中,type表示PAM模块的类型,包括auth、account、password、session等。control表示控制标记,包括required、requisite、sufficient、optional等。module-path表示PAM模块的路径,module-arguments表示PAM模块的参数。
以下是几个常用的PAM模块及示例:
pam_nologin.so:禁止非特权用户登录系统。
auth required pam_nologin.so
pam_limits.so:设置用户资源限制。
session required pam_limits.so
pam_unix.so:验证用户密码。
auth required pam_unix.so sha512 shadow nullok
pam_env.so:设置环境变量。
session required pam_env.so user_readenv=1
pam_securetty.so:限制root用户登录控制台。
auth requisite pam_securetty.so
在PAM配置文件中,控制标记的作用是指定PAM模块的验证顺序和返回结果。其中,required表示如果PAM模块验证失败,则整个验证过程将失败;requisite表示如果PAM模块验证失败,则整个验证过程立即失败,不再执行后面的PAM模块;sufficient表示如果PAM模块验证成功,则整个验证过程立即成功,不再执行后面的PAM模块;optional表示如果PAM模块验证失败,不会导致整个验证过程失败,但是如果验证成功,则需要继续执行后面的PAM模块。
使用PAM模块可以实现各种身份验证和授权规则,例如限制用户资源使用、设置环境变量、限制特定用户登录控制台等。

5.总结DNS域名三级结构

DNS域名结构分为三级:主机名、二级域名和顶级域名。其中,主机名指的是主机设备的名称,比如“www”、“mail”等;

二级域名指的是主机所在的域名,比如“google.com”中的“google”就是一个二级域名;

而顶级域名则是在二级域名后面的最后部分,比如“.com”、“.net”、“.edu”等。

以“www.google.com”为例,其中“www”是主机名,“google”是二级域名,“.com”则是顶级域名。这种三级结构的域名系统使得互联网上的每个设备都能够用一个唯一的域名进行标识,从而方便用户进行访问和交流。

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

● 递归查询(recursion):是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户。一般客户机和本地DNS服务器之间属于递归查询,即客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。

● 迭代查询(iteration):是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS的地址,用户再向这台DNS服务器再次发起查询,直到查询到结果为止。

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

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

DNS服务器类型
● 主DNS服务器,管理和维护域内解析库的服务器
● 从DNS服务器
● 缓存DNS服务器(也叫转发器)

解析答案
● 肯定答案:存在对应的查询结果
● 否定答案:请求的条目不存在等原因导致无法返回结果
● 权威答案:直接由存有此查询结果的DNS服务器(权威服务器)返回答案.由域名所被管辖的上级域名服务器返回的结果,比如www.baidu.com,由baidu.com这个域名的dns服务器返回的结果就是权威的
● 非权威答案:由其他非权威服务器返回的查询结果.任何不是由域名所被管辖的上级域名服务器返回的结果都是非权威答案(因为这些都是缓存的结果,存在过期时间未到解析却更新了的情况)

正反解析域
正向解析:FQDN—>IP
反向解析:IP—>FQDN
正反向解析是两个不同的名称空间,是两棵不同的解析树。

在 IPv4 中,NS A 记录存储在给定的域名下,而 DNS PTR 记录存储在 IP 地址下——进行了反转,且添加了“.in-addr.arpa”。例如,IP 地址 192.0.2.255 的 PTR 记录将存储在“255.2.0.192.in-addr.arpa”下。
必须添加“in-addr.arpa”,因为 PTR 记录存储在 DNS 的 .arpa 顶级域中。.arpa 是一个主要用于管理网络基础设施的域,是为互联网定义的第一个顶级域名。(“arpa”这个名字可以追溯到互联网的早期:它的名字来源于高级研究计划署 (ARPA),它创建了互联网的重要前身 ARPANET。)in-addr.arpa 是 .arpa 中的命名空间,用于在 IPv4 中进行反向 DNS 查找。

在 IPv6 中,IPv6 地址的构造不同于 IPv4 地址,并且 IPv6 PTR 记录存在于 .arpa 内的不同命名空间中。 IPv6 PTR 记录存储在 IPv6 地址下,反转并转换为 4 位部分(与 IPv4 中的 8 位部分相反),加上“.ip6.arpa”。

资源记录定义
区域解析库由各种资源记录RR(Resource Record)组成:
● SOA:Start Of Authority,起始授权记录,一个区域解析库有且仅有一个SOA记录,必须位于解析库的第一条记录
● A:internet Address
● AAAA
● PTR:PoinTeR,反向地址解析,IP–>FQDN
● NS:Name Server,专用于指明当前区域的DNS服务器
● CNAME:Canonical Name,别名记录
● MX:Mail eXchange,邮件交换器
● TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等

9.实现DNS主从同步

10.实现DNS子域授权

11.总结防火墙分类

按保护范围划分:
● 主机防火墙:服务范围为当前一台主机
● 网络防火墙:服务范围为防火墙一侧的局域网
按实现方式划分:
● 硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现
● 软件防护墙:运行于通用硬件平台之上的防火墙应用硬件,windows防火墙
按网络协议划分:
● 网络层防火墙:OSI模型下四层,又称为包过滤防火墙
● 应用层防火墙/代理服务器:proxy代理网关,OSI模型七层

12.总结iptable

链 chain:
● 内置链:每个内置链对应一个钩子函数。INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
● 自定义链:用于对内置链进行扩展,需要先定义再调用

● 当一个数据包进入网卡时,数据包先进入PREOUTING链,内核根据数据包的目的IP判断是否需要转送出去
● 如果数据包是进入本机的,数据包会沿着图向下移动,到达INPUT链。数据包到达INPUT链后,任何进程都会收到它,本机运行的程序可以发送数据包,先经过OUTPUT链,然后从POSTROUTING链出去
● 如果数据包是要转发出去的,且内核允许转发,数据包会向右移动,经过FORWARD链,然后达到POSTROUTING链出去

表 table:
● filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,是链下的默认表
● nat:地址转换规则表
● mangle:修改数据标记位规则表
● raw:关闭启用的连接跟踪机制,加快封包穿越防火墙速度
● security:用于强制访问控制网络规则,由Linux安全模块实现,如SELinux

扩展模块

mutiport模块
以离散方式指定多端口匹配,最多指定15个

  --source-ports    --sports port[,port|,port:port]...
  --destination-ports    --dports port[,port|,port:port]...
  --ports    port[,port|,port:port]...

string模块
对报文中的应用层数据做字符串模式匹配检测

--algo {bm|kmp}    字符串匹配检测算法
--from offset    数据包开始偏移,即从数据包头跳过多少位
--to offset   数据包结束偏移,目的是为了减少资源消耗
[!] --string pattern
[!] --hex-string pattern

iptables -A INPUT -d 10.0.0.1 -p tcp --sport 80 -m string --algo bm --from 62 --string "google" -j REJECT

state模块
可以根据“连接追踪机制”去检查连接的状态,较消耗资源
conntrack机制:追踪本机上的请求和响应之间的关系
状态类型:
● NEW:新发出的请求,连接追踪信息库中不存在此连接的相关信息条目,因此将其识别为第一次发出的请求
● ESTABLISHED:NEW状态之后,连接追踪信息库中为其建立的条目失效之前期间内所进行的通信状态
● RELATED:新发起的但与已有连接相关联的连接,如FTP协议中的数据连接与命令连接之间的关系
● INVALID:无效连接,如flag标记不正确
● UNTRACKED:未进行追踪的连接,如raw表中关闭追踪
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值