目录
一、SSH基础
1、什么是ssh服务器
2、对比一下ssh协议与telnet协议
3、常见的底层为ssh协议的软件:
4、拓展
二、SSH软件学习
1、ssh服务软件学习
2、sshd公钥传输的原理:
3、ssh命令学习:
4、学习解读sshd服务配置文件:
三、ssh服务的应用
1、使用密钥对免密码登录
第一步:在客户端自己生成一对密钥(使用命令ssh-keygen)
第二步:将公钥文件导入给服务器,检查自己会产生一个known_hosts文件,服务器对应用户的家目录的.ssh目录下也会产生一个authorized_keys文件。
第三步:验证是否免密:(这个是单向的,如果需要服务器也能连接客户端,那么还需要在服务器同样做设置)
2、黑白名单设置
黑白名单的语法:
第一种:白名单
第二种: 黑名单
一、SSH基础
1、什么是ssh服务器
ssh是一种安全通道协议,主要用来实现远程登录、数据传输等;ssh协议对通信双方的数据传输进行加密处理,其中包括用户登录时输入的用户口令,ssh为建立在应用层和传输层基础上的安全协议。
2、对比一下ssh协议与telnet协议
telnet协议: 是明文的,端口号是tcp的23端口;
ssh协议: 数据传输是加密的,可以防止信息泄露;数据传输是压缩的,可以提高传输的速度;端口是tcp的22端口;
SSH(Secure Shell)目前较可靠,是专为远程登录会话和其他网络服务提供安全性的协议
。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
3、常见的底层为ssh协议的软件:
Linux客户端: ssh, scp, sftp,slogin
Windows客户端:xshell, MobaXterm,putty, securecrt
OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统。
Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。
执行"systemctl start sshd"命令即可启动sshd 服务
4、拓展
Windows上自带的远程连接工具是mstsc,是使用的tcp的3389端口,使用的RDP协议
二、SSH软件学习
1、ssh服务软件学习
软件名:openssh(在centos7中为openssh-server)
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config ##ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务(文件传输功能)
客户端配置文件:/etc/ssh/ssh_config
2、sshd公钥传输的原理:
-
客户端发起连接请求
-
服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
-
客户端生成密钥对
-
客户端用自己的公钥异或会话ID(异或是算法,有很多种),计算出一个值Res,并用服务端的公钥加密
-
客户端发送加密值到服务端,服务端用私钥解密,得到Res
-
服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
-
最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密
原理是这样,但是在实际操作中客户端把服务器的公钥记录在了~/.ssh/known_hosts文件中
拓展:
思考我们登录时怎么确认是不是我需要连接的服务器?(有个前提是我能碰的着服务器)
首先在客户端连接服务器:
服务器连接自己试试:
3、ssh命令学习:
ssh命令的语法:ssh [选项] 用户名@服务器ip地址或域名
选项:
-p 端口号:不加默认是22号端口,如果是端口被修改了,需要指定端口号;
-l 用户名:这个和“用户名@”效果一样;
-t 跳板机服务器ip地址:比如需要访问外网的时候,需要先过内外网服务器等等;
-o 配置文件参数变量值:比如ssh 192.168.20.10 -o StrictHostKeyChecking=no (允许免密登录)
ssh 还能直接跟上命令
如:
ssh 192.168.91.101 hostname (显示远程服务器的主机名)
4、学习解读sshd服务配置文件:
[root@localhost /]#vim /etc/ssh/sshd_config
17 #Port 22
##这是sshd服务监听的端口,为了安全起见,建议更改默认端口为一个五位数以上的端口号
18 #AddressFamily any
19 #ListenAddress 0.0.0.0 ##可以改为自己的自己的ip地址
20 #ListenAddress ::##用来设置sshd服务器绑定的IP地址
32 SyslogFacility AUTHPRIV
33 #LogLevel INFO
##当有人使用 SSH 登入系统的时候,SSH 会记录信息,这个信息要记录的类型为AUTHPRIV,sshd 服务日志存放在:/var/log/secure。
##可以做日志分离优化
##LogLevel用来设定sshd日志消息的级别,与上面记录的等级息息相关
35 # Authentication:
##限制用户必须在指定的时限内认证成功,0 表示无限制。默认值是 120 秒
37 #LoginGraceTime 2m
##LoginGraceTime用来设定如果用户登录失败,在切断连接前服务器需要等待的时间,单位为妙
38 #PermitRootLogin yes
##PermitRootLogin用来设置能不能以root身份ssh登录,
40 #MaxAuthTries 6
##用来设置最大失败尝试登陆次数为6
41 #MaxSessions 10
##设置同一个连接最大会话
43 #PubkeyAuthentication yes
##基于key验证(生产中需要打开)
63 #PasswordAuthentication yes
64 #PermitEmptyPasswords no ##是否允许空密码登录,no表示不允许,需要密码!!
##密码验证建议还是需要的!可以通过认证的秘钥来登陆,来减少密码交互。
65 PasswordAuthentication yes
##基于用户名和密码连接,默认为yes
96 UsePAM yes
##设置是否通过PAM验证,需要的
98 #AllowAgentForwarding yes ##允许代理
99 #AllowTcpForwarding yes ##允许tcp那个代理
100 #GatewayPorts no
##设置是否允许远程客户端使用本地主机的端口转发功能,出于安全考虑,建议禁止
115 #UseDNS no
##UseDNS是否使用dns反向解析,建议关闭,内网改为no可以提高速度
这是可以添加的选项:
#AllowUsers<用户名1> <用户名2> <用户名3> ...
##指定允许通过远程访问的用户,多个用户以空格隔开
比如:AllowUsers zhangsan@192.168.91.101 lisi
##默认拒绝所有
##允许所有的主机访问我的lisi用户
##只允许192.168.91.101上的所有用户访问本机的zhangsan用户
#AllowGroups<组名1> <组名2> <组名3> ...
##指定允许通过远程访问的组,多个组以空格隔开。当多个用户需要通过ssh登录系统时,可将所有用户加入一个组中。
#DenyUsers<用户名1> <用户名2> <用户名3> ...
##指定禁止通过远程访问的用户,多个用户以空格隔开
举例:DenyUsers liwu
#拒绝liwu被访问
#DenyGroups<组名1> <组名2> <组名3> ...
##指定禁止通过远程访问的组,多个组以空格隔开。
三、ssh服务的应用
1、使用密钥对免密码登录
第一步:在客户端自己生成一对密钥(使用命令ssh-keygen)
##使用命令生成一对密钥
[root@localhost .ssh]#ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ##默认放在用户的家目录下的~/.ssh/下
Enter passphrase (empty for no passphrase): ##对密钥文件加密,密码至少5个字符
Enter same passphrase again: ##再次输入密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:VqCGTmM6KO1NlBm1NNuCUZYE7ZXsCrZedcKdDaS4kFQ root@localhost.localdomain
The key’s randomart image is:
±–[RSA 2048]----+
| =BEo.o. |
| . @oB+o. |
| %.B+o…+ |
| o *o+.o=.+ . |
|o +.oo.oSo |
|… +. o. |
| … |
| . |
| |
±—[SHA256]-----+
##验证密钥对成功创建
[root@localhost .ssh]#ls
id_rsa id_rsa.pub
第二步:将公钥文件导入给服务器,检查自己会产生一个known_hosts文件,服务器对应用户的家目录的.ssh目录下也会产生一个authorized_keys文件。
第三步:验证是否免密:(这个是单向的,如果需要服务器也能连接客户端,那么还需要在服务器同样做设置)
2、黑白名单设置
黑白名单的语法:
#AllowUsers<用户名1> <用户名2> <用户名3> …
##指定允许通过远程访问的用户,多个用户以空格隔开
比如:AllowUsers zhangsan@192.168.91.101 lisi
##默认拒绝所有
##允许所有的主机访问我的lisi用户
##只允许192.168.91.101上的所有用户访问本机的zhangsan用户
#AllowGroups<组名1> <组名2> <组名3> ...
##指定允许通过远程访问的组,多个组以空格隔开。当多个用户需要通过ssh登录系统时,可将所有用户加入一个组中。
#DenyUsers<用户名1> <用户名2> <用户名3> ...
##指定禁止通过远程访问的用户,多个用户以空格隔开
举例:DenyUsers liwu
#拒绝liwu被访问
#DenyGroups<组名1> <组名2> <组名3> ...
##指定禁止通过远程访问的组,多个组以空格隔开。
第一种:白名单
[root@localhost ssh]#vim /etc/ssh/sshd_config
#手动添加
AllowUsers zhangsan@192.168.20.10
##表示只允许192.168.20.10主机上的任意用户能够连接zhangsan
##并且默认拒绝所有
第二种: 黑名单
##服务器上添加黑名单
[root@localhost .ssh]#vim /etc/ssh/sshd_config
2 DenyUsers xueyin@192.168.20.10
拓展:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!报错
翻译为:提醒你远程主机的身份已经修改了;
系统之前连接过192.168.20.10,记录了它的公钥,现在换了一台主机ip也是这个,但是公钥与缓存不一致,所以ssh好心提醒一下;
解决思路:根据生产环境需求,如果是安全的,那么删掉本地的密钥缓存(删除~/.ssh/known_hosts文件中的对应192.168.20.10的公钥)。
e题外话
初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:
2023届全国高校毕业生预计达到1158万人,就业形势严峻;
国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。
一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。
6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。
2022届大学毕业生月收入较高的前10个专业
本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。
具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。
“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。
网络安全行业特点
1、就业薪资非常高,涨薪快 2022年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!
2、人才缺口大,就业机会多
2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。
行业发展空间大,岗位非常多
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。
从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
行业发展空间大,岗位非常多
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。
从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…