ssh的简介
ssh服务【Secure Shell 】:SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录提供服务。 解决的问题: 对服务器的远程控制,远程操作。
ssh服务是安全的、加密、基于S/C(服务端/客户端)的远程连接服务
? 【运行的sshd进程会监听22号端口,提供远程登录的服务,服务的内容: 远程操作服务器】
OpenSSH是使用SSH协议远程登录的首选连接工具。它对所有流量进行加密,以消除窃听、连接劫持和其他攻击。此外,OpenSSH还提供了大量的安全隧道功能、多种身份验证方法和复杂的配置选项。
/etc/ssh
[root@firewall ~]
openssh-server-7.4p1-21.el7.x86_64 --》提供服务的软件包 -->sshd
openssh-7.4p1-21.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64 --》提供客户端使用的命令的软件包,ssh, scp, and sftp.
rpm 是linux里软件管理的命令 【-qa 查询所有的已经安装了的软件 query all
yum 也是linux里的软件管理的命令,底层是基于rpm的 --》yum 是使用python开发的软件管理工具
如何判断一个服务是启动还是没有启动?
1.查看进程
ps aux|grep sshd
2.查看端口
[root@firewall ~]
tcp LISTEN 0 128 *:22 *:* users:(("sshd",pid=1043,fd=3))
[root@firewall ~]
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1043/sshd
[root@firewall ~]
[cali@sanchuang-server ~]$ w
ssh命令用于远程管理Linux主机,语法:ssh [-p]端口号 主机@IP地址
使用ssh命令远程登录
方式1: ssh 用户名@服务器地址 --》推荐
方式2: ssh -l 用户名 服务器地址
方式3: ssh 服务器地址
ssh -p22 root@192.168.31.5
ifconfig
exit
[root@firewall bin]
[root@firewall bin]
密钥实现ssh远程连接,下次连接就不用密码啦【私钥、公要】
[root@zhujh ~]
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
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:U0qBtk4Cib7atzLDETvKEc8QkT3lPJUM40A6Op8IqTs root@zhujh
The key's randomart image is:
+---[RSA 3072]----+
| o=+.+ooo |
|.o+o= =o . |
|.o...* .. . |
|.=o . +. o |
|= *o + S |
|o*++ . . |
|=++o |
|Eo* . |
|.. =.. |
+----[SHA256]-----+
ssh-copy-id 192.168.31.5
vim /etc/ssh/sshd_config
PubkeyAuthentication yes
PasswordAuthentication no
systemctl restart sshd
[root@zhujh ~]
Last login: Sun Aug 15 20:18:42 2021 from 192.168.31.128
修改sshd的配置文件
修改sshd服务的端口号,重新进行远程连接(systemctl restart sshd)
修改端口号的好处:默认情况下为22,不用指定端口别人就可以连接到我的服务器,这样不安全
注意:
? 1、端口号的范围:0-65535
? 2、不能使用别的服务已经占用的端口(常见的:20、21、23、25、80、443、3389、3306)
vim /etc/ssh/sshd_config
Port 2233
ss -anplut|grep sshd
systemctl restart sshd
setenforce 0
systemctl stop firewalld
远程传输命令
scp命令用于在网络中安全的传输文件(如果想将文件通过网络传输给其他主机,恰好两台都是Linux系统,就可以使用scp)
将本地文件传送到远程主机 语法:scp [-P端口号 -r接文件夹时要用] 本地文件 远程账户@远程IP地址:远程目录
将本地文件 /lianxi/zjh.txt 传送到远程主机的 /root
[root@zhujh lianxi]
zjh.txt 100% 12 0.8KB/s 00:00
将远程主机文件下载到本地 语法:scp [选项] 远程用户@IP地址:远程文件 本地目录
将远程主机 /root/zhu 下载到本地 /lianxi
[root@zhujh lianxi]
jh.txt
SSH的常见问题
1、ssh服务关闭后,是否还可以ssh进入服务器?已经ssh连接上的进程是否会退去? 答案: 关闭ssh服务,已经连接的ssh窗口不会断开,继续可以使用 老连接可以继续使用,新的连接连不上
2、如何知道哪些人ssh远程登录进入了我们的linux系统? 答案:w --》查看还在我们linux系统里的用户 查看日志–》/var/log/secure
3、如何加固我们的ssh服务?
? 答案:1.禁用root用户远程登录 --》黑客就需要去猜我们的用户名了
? 2.把密码设置复杂
? 3.修改端口号 --》需要去寻找我的ssh的端口号
? 4.禁用密码认证,启用密钥认
? 5.禁止root登录
? 6.升级openssh,修补漏洞
4、如何暴力破解ssh的用户名(root)和密码?
? 答案:暴力破解 --》穷举–》一个一个的密码去试试 ? 1万个密码 ? python,shell(脚本)
ssh的实操
ListenAddress 0.0.0.0 --》代表任意的接口的ip地址上都提供ssh服务
ListenAddress 192.168.0.2 --》只是在192.168.0.2上提供ssh服务
PermitRootLogin no --》禁用root用户远程登录 (连接还有详细用户名)
一连接,我们就要接触sshd,如果已经连了,就不归sshd管了
方式1: ssh 用户名@服务器地址 --》推荐
方式2: ssh -l 用户名 服务器地址
方式3: ssh 服务器地址
如何知道哪些人ssh远程登录进入了我们的linux系统?
练习:
1.修改端口号,具体自定义
2.禁用root用户登录,新建一个普通的用户sc,并且设置密码
3.ssh远程登录,在其他的linux系统上或者windows上
4.查看日志
tail -f logfile
tail -n logfile
5.查看kown_hosts文件的内容
日志管理
什么日志?
日志是系统用来记录系统运行时候的一些相关信息文本文件
日志有什么用?
日志是为了保存相关程序的运行状态、错误信息等,为了对系统分析、保存历史记录以及出现错误时分析错误的使用
Linux系统日志类型:
? 内核信息
? 服务信息
? 应用程序信息
什么是rsyslog?
rsyslog是Linux系统中用来实现日志功能的服务,rsyslog默认是已安装,并且启动的
systemctl status|start|stop|restart rsyslog
tail -f logfile
tail -n logfile
facility(设施),用来定义日志消息的来源,方便对日志进行分类
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xT9Ij8yL-1629042821344)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210815214216554.png)]
priority(日志级别)定义不同消息的级别
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-avslaR2I-1629042821347)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210815214352785.png)]
查看日志位置
ssh为例
[root@zhujh lianxi]
SyslogFacility AUTHPRIV
日志文件
tail /var/log/secure
配置日志服务器:多台服务器,同一集中在一台服务器上
日志服务器配置
vim /etc/rsyslog.cont
input(type="imudp" port="514")
input(type="imtcp" port="514")
systemctl restart rsyslog
日志客户配置
vim /etc/rsyslog.conf
systemctl restart rsyslog
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-42woNKy2-1629042821349)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210815222859072.png)]
测试效果
yum install samba -y
tail /var/log/messages
tail /var/log/messages
temctl restart rsyslog
**日志客户配置**
```python
vim /etc/rsyslog.conf
systemctl restart rsyslog
[外链图片转存中…(img-42woNKy2-1629042821349)]
测试效果
yum install samba -y
tail /var/log/messages
tail /var/log/messages
|