Linux运维周作业五(7.8-7.14)

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

openssh服务安全加固:

1.使用强密码策略

2.使用公钥认证

3.修改SSH默认端口

openssh免密认证原理:

1. 客户端发起ssh请求,服务器会把自己的公钥发送给用户

2. 用户会根据服务器发来的公钥对密码进行加密

3. 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功

免认证实现过程:

1. 首先在客户端生成一对密钥(ssh-keygen)

2. 并将客户端的公钥ssh-copy-id 拷贝到服务端

3. 当客户端再次发送一个连接请求,包括ip、用户名

4. 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:magedu

5. 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端

6. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端

7. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

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

授权规则配置文件:

/etc/sudoers

/etc/sudoers.d

安全编辑授权规则文件和语法检查工具

/usr/sbin/visudo

sudoers授权规则格式:

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

user host=(runas)   command

范例:

[root@rocky8 ~]# vim /etc/sudoers

root ALL=(ALL) ALL

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

PAM架构:

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

PAM工作原理:

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

PAM配置文件格式:

专用配置文件/etc/pam.d/格式

type:指模块类型,即功能

control :PAM库该如何处理与该服务相关的PAM模块的成功或失败情况,一个关健词实现

module-path: 用来指明本模块对应的程序文件的路径名

Arguments: 用来传递给该模块的参数

总结相关示例:

nologin.so
limits.so

5. 实现私有时间服务器

服务端配置:

[root@rocky8 ~]# yum -y install chrony

[root@rocky8 ~]# vim /etc/chrony.conf 

[root@rocky8 ~]# systemctl restart chronyd.service

服务启动后会打开udp123端口

客户端配置

[root@rocky8-1 ~]# vim /etc/chrony.conf

[root@rocky8-1 ~]# systemctl restart chronyd.service

确认同步成功

6. 总结DNS域名三级结构

1、顶级域名(Top-Level Domain,TLD):顶级域名是一个域名的最高层次,通常表示一个国家、地区或组织类型。例如,.com表示商业组织,.org表示非赢利组织,.edu表示教育机构,.cn表示中国等。顶级域名还可以分为两种类型:国家顶级域名(Country-Code Top-Level Domain,ccTLD)和通用顶级域名(Generic Top-Level Domain,gTLD)。

2、二级域名(Second-Level Domain,SLD):二级域名是紧接在顶级域名后面的域名部分,用于区分不同的组织或实体。例如,在“.com”顶级域名下,“baidu”就是一个二级域名,“baidu.com”就是一个完整的域名。

3、三级域名(Third-Level Domain):三级域名是紧接在二级域名后面的域名部分,通常用于进一步区分不同的部门、区域或主机名。例如,在“baidu.com”二级域名下,“www”可以是一个三级域名,“www.baidu.com”就是一个完整的域名。

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

1、用户在浏览器中输入域名,如www.baidu.com。

2、浏览器向本地DNS服务器发送DNS查询请求。

3、如果本地DNS服务器已经缓存了该域名对应的IP地址,则直接返回给浏览器。

4、如果本地DNS服务器没有缓存该域名对应的IP地址,则向根域名服务器发送递归查询请求。

5、根域名服务器返回给本地DNS服务器该域名对应的顶级域名服务器的IP地址。

6、本地DNS服务器向顶级域名服务器发送迭代查询请求。

7、顶级域名服务器返回给本地DNS服务器该域名对应的二级域名服务器的IP地址。

8、本地DNS服务器向二级域名服务器发送迭代查询请求。

9、二级域名服务器返回给本地DNS服务器该域名对应的主机名的IP地址。

10、本地DNS服务器将IP地址返回给浏览器,并将该域名和IP地址缓存起来。

递归查询  指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果

迭代查询    不直接回复查询结果,而是告诉另一台DNS服务器地址,用户这样依次反复查询

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

[root@rocky8 ~]# yum -y install bind

[root@rocky8 ~]# systemctl enable --now named

[root@rocky8 ~]# vim /etc/named.conf

[root@rocky8 ~]# rndc reload

用另一台服务器做客户端,填DNS:10.0.0.8验证结果

[root@rocky8-1 ~]# yum -y install bind-utils

[root@rocky8-1 ~]# dig www.baidu.com

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

DNS服务器类型:

主DNS服务器

从DNS服务器

缓存DNS服务器(转发器)

解析答案:

肯定答案:存在对应的查询结果

否定答案:请求的条目不存在等原因导致无法返回结果

权威答案:直接由存有此查询结果的DNS服务器(权威服务器)返回的答案

非权威答案:由其它非权威服务器返回的查询答案

正反解析域:

正向:FQDN-->IP

反向:IP-->FQDN

资源记录定义:

name    [TTL]    IN    rr_type     value

注意:

1.TTL可从全局继承

2.使用“@”符号可用于引用当前区域的域名

3.同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应

4.同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义,此仅表示通过多个不同的名字可以找到同一个主机

10. 实现DNS主从同步

主DNS服务器配置:

[root@rocky8 ~]# yum -y install bind

[root@rocky8 ~]# vim /etc/named.conf

[root@rocky8 ~]# vim /etc/named.rfc1912.zones

[root@rocky8 ~]# vim /var/named/wang.org.zone

[root@rocky8 ~]# chmod 640 /var/named/wang.org.zone

[root@rocky8 ~]# chgrp named /var/named/wang.org.zone

[root@rocky8 ~]# ll /var/named/wang.org.zone

-rw-r----- 1 root named 152 Jul 14 07:43 /var/named/wang.org.zone

[root@rocky8 named]# yum -y install bind-utils

[root@rocky8 ~]# cd /var/named/

[root@rocky8 named]# named-checkzone wang.org wang.org.zone

[root@rocky8 named]# rndc reload

从服务器配置:

[root@rocky8-1 ~]# yum -y install bind bind-utils

[root@rocky8-1 ~]# vim /etc/named.conf

[root@rocky8-1 ~]# vim /etc/named.conf

[root@rocky8-1 ~]# named-checkconf

[root@rocky8-1 ~]# vim /etc/named.rfc1912.zones 

从服务器会自动从主服务器上把/var/named/wang.org.zone拷贝到从服务器上/var/named/slaves/wang.org.slave.zone上,以下是操作

[root@rocky8 named]# systemctl start named           主服务器启动服务

[root@rocky8-1 ~]# systemctl enable --now named        从服务器上启动服务

[root@rocky8 ~]# vim /var/named/wang.org.zone

新增解析服务器,版本号要比原来大

[root@rocky8 ~]# rndc reload

从服务器上可以看到时间改变,已经实现主从同步
测试主DNS服务器解析正常
测试从DNS服务器解析正常

11. 实现DNS子域授权

主域DNS服务器:

[root@rocky8 ~]# yum -y install bind bind-utils

[root@rocky8 ~]# vim /etc/named.conf 

[root@rocky8 ~]# vim /etc/named.rfc1912.zones

[root@rocky8 ~]# vim /var/named/wang.org.zone

[root@rocky8 ~]# chgrp named /var/named/wang.org.zone

[root@rocky8 ~]# systemctl start named

[root@rocky8 ~]# named-checkzone wang.org /var/named/wang.org.zone

实现子域DNS服务器:

[root@rocky8-1 ~]# yum -y install bind bind-utils

[root@rocky8-1 ~]# vim /etc/named.conf

[root@rocky8-1 ~]# vim /etc/named.rfc1912.zones

[root@rocky8-1 ~]# cp -p /var/named/named.localhost /var/named/shanghai.wang.org.zone

[root@rocky8-1 ~]# systemctl start named

客户端进行测试:

[root@rocky8-2 ~]# yum -y install bind-utils

12. 基于acl实现智能DNS

配置两块网卡

[root@zhao ~]# yum install bind -y

[root@zhao ~]# vim /etc/named.conf

[root@zhao ~]# vim /etc/named.rfc1912.zones.bj

[root@zhao ~]# vim /etc/named.rfc1912.zones.sh

[root@zhao ~]# vim /etc/named.rfc1912.zones.other

[root@zhao ~]# chgrp named /etc/named.rfc1912.zones.bj

[root@zhao ~]# chgrp named /etc/named.rfc1912.zones.sh

[root@zhao ~]# chgrp named /etc/named.rfc1912.zones.other

[root@zhao ~]# vim /var/named/wang.org.zone.bj

[root@zhao ~]# vim /var/named/wang.org.zone.sh

[root@zhao ~]# vim /var/named/wang.org.zone.other

[root@zhao ~]# chgrp named /var/named/wang.org.zone.bj

[root@zhao ~]# chgrp named /var/named/wang.org.zone.sh

[root@zhao ~]# chgrp named /var/named/wang.org.zone.other

systemctl start named #第一次启动服务

rndc reload #不是第一次启动服务

#在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

客户端测试

#分别在三台主机上访问

#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

13. 总结防火墙分类

按保护范围划分:

主机防火墙:服务范围为当前一台主机

网络防火墙:服务范围为防火墙一侧的局域网

按实现方式划分:

硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为,山石hillstone,天融信,启明星辰,绿盟,深信服, PaloAlto , fortinet飞塔, Cisco, Checkpoint,NetScreen(2004年被 Juniper 用40亿美元收购)等

软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA --> Forefront TMG

按网络协议划分:

网络层防火墙:OSI模型下四层,又称为包过滤防火墙

应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层

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

iptables的五表五链是Linux防火墙管理的重要概念,它允许用户根据不同的需求定制防火墙规则。这五张表和五条链分别是:

五表

raw表:确定是否对该数据包进行状态跟踪。

mangle表:修改IP数据包头(如TTL值),同时也用于为数据包设置标记。

nat表:处理网络地址转换,以及修改数据包中的源、目标IP地址或端口等。

filter表:过滤数据,确定是否放行该数据包。

security表:需要和SELinux结合使用,内置规则比较复杂,通常都会被关闭。

五链

INPUT链:处理入站数据包。

OUTPUT链:处理出站数据包。

FORWARD链:处理转发数据包。

PREROUTING链:在进行路由选择前处理数据包。

POSTROUTING链:在进行路由选择后处理数据包。

规则表与规则链的关系:规则链位于规则表中,规则表是规则链的集合。默认情况下,有四个规则表和五种规则链。规则表间的优先顺序依次为raw、mangle、nat、filter。规则链间的匹配顺序遵循入站数据(PREROUTING、INPUT)、出站数据(OUTPUT、POSTROUTING)、转发数据(PREROUTING、FORWARD、POSTROUTING)的顺序。

filter表主要涉及INPUT、FORWARD、OUTPUT三条链,是iptables命令默认操纵的表,用于数据包过滤功能。

nat表主要涉及PREROUTING、OUTPUT、POSTROUTING三条链,用于地址转换功能,如NAT转换。

mangle表允许在每条链上进行修改操作,如修改报文元数据或为数据包设置防火墙标记等。

raw表提供快速通道功能,优先级最高,符合raw表规则的数据包会跳过一些检查。

security表需要与SELinux结合使用,通常都会被关闭,除非有特定的安全需求。

通过iptables的这些功能,可以灵活地控制网络流量,实现访问控制、端口转发、地址转换等多种网络安全策略

[root@rocky8 ~]# iptables -t nat -vnL      -t接表

iptables [-t table] {-A|-C|-D} chain rule-specification      -A接链

扩展模块分为隐式扩展和显示扩展

隐式扩展:

iptables 在使用-p选项指明了特定的协议时,无需再用-m选项指明扩展模块的扩展机制,不需要手动加载扩展模块

tcp 协议的扩展选项

REJECT:--reject-with:icmp-port-unreachable默认

RETURN:返回调用链

REDIRECT:端口重定向

LOG:记录日志,dmesg

MARK:做防火墙标记

DNAT:目标地址转换

SNAT:源地址转换

MASQUERADE:地址伪装

显示扩展:

显示扩展即必须使用-m选项指明要调用的扩展模块名称,需要手动加载扩展模块

[-m matchname [per-match-options]]

范例:[root@rocky8 ~]# iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.10 -p tcp -m multiport --dports 22,80 -j ACCEPT

[root@rocky8 ~]# iptables -F     清楚规则(默认清楚filter表规则)

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

iptables规则优化实践

1. 安全放行所有入站和出站的状态为ESTABLISHED状态连接,建议放在第一条,效率更高

2. 谨慎放行入站的新请求

3. 有特殊目的限制访问功能,要在放行规则之前加以拒绝

4. 同类规则(访问同一应用,比如:http ),匹配范围小的放在前面,用于特殊处理

5. 不同类的规则(访问不同应用,一个是http,另一个是mysql ),匹配范围大的放在前面,效率更高

6. 应该将那些可由一条规则能够描述的多个规则合并为一条,减少规则数量,提高检查效率

7. 设置默认策略,建议白名单(只放行特定连接)

iptables -P,不建议,容易出现“自杀现象”

规则的最后定义规则做为默认策略,推荐使用,放在最后一条

规则保存:

[root@rocky8 ~]# mkdir /data/backup

[root@rocky8 ~]# iptables-save > /data/backup/rules.bak

规则恢复:

[root@rocky8 ~]# iptables-restore < /data/backup/rules.bak 

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

NAT、DNAT、SNAT转换原理:

NAT: network address translation,支持PREROUTING,INPUT,OUTPUT,POSTROUTING四个链

请求报文:修改源/目标IP,由定义如何修改

响应报文:修改源/目标IP,根据跟踪机制自动实现

NAT的实现分为下面类型:

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

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

PNAT: port nat,端口和IP都进行修改

自行设计架构实现SNAT:

启用路由转发功能:

[root@rocky8 ~]# sysctl -a |grep ip_forward

net.ipv4.ip_forward = 0

[root@rocky8 ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward=1

[root@rocky8 ~]# sysctl -p

net.ipv4.ip_forward = 1

[root@rocky8 ~]# hostname -I

10.0.0.8 192.168.10.131

[root@lan-host ~]# hostname -I

192.168.10.132

[root@rocky8 ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 10.0.0.8

SNAT实现

自行设计架构实现DNAT:
[root@lan-host ~]# yum -y install httpd

[root@lan-host ~]# systemctl enable --now httpd

[root@lan-host ~]# hostname -I > /var/www/html/index.html

[root@rocky8 ~]# iptables -t nat -A PREROUTING -d 10.0.0.8 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.132:80

用另一台机器访问,发现DNAT已经生效

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

[root@rocky8 ~]# yum -y install httpd

[root@rocky8 ~]# systemctl enable --now httpd

[root@rocky8 ~]# hostname -I > /var/www/html/index.html

[root@rocky8 ~]# iptables -t nat -A PREROUTING -d 10.0.0.8 -p tcp --dport 90 -j REDIRECT --to-ports 80

18. firewalld常见区域总结。

drop区域:任何进入此区域的包都会被直接丢弃,没有任何回应。

block区域:任何进入此区域的流量都会被拒绝,并返回一个ICMP错误消息。

public区域:用于公共区域,仅接受那些被选择的连接。

external区域:专门用于路由器等具有独立外部网络的设备。

dmz区域:用于放置受限的内部网络区域,如企业的非安全区域。

work区域:用于工作区,可以接受选定的传入连接。

home区域:用于家庭网络,可以接受选定的传入连接。

internal区域:用于内部网络,可以接受选定的传入连接。

trusted区域:所有进入此区域的包都会被接受,没有任何限制。

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


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,423评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,147评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,019评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,443评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,535评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,798评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,941评论 3 407
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,704评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,152评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,494评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,629评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,295评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,901评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,978评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,333评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,499评论 2 348

推荐阅读更多精彩内容