Linux云架构基础2.1——sshd远程服务
文章目录
SSH简介
SSH(Secure Shell)是一种能够提供安全远程登录会话的协议,使用ssh可以在远程linux中执行命令,两种安全验证的方法:
(1)基于口令的安全验证:经过验证帐号与密码即可登录到远程主机
(2)基于**的安全验证:需要在本地生成“**对”后将公钥传输至服务器,进行公共**的比较。
Telnet同样也是一种远程登录工具,但是他是基于明文传输,并不安全。
OpenSSH软件包
SSH的安装需要安装以下安装包
openssh-7.4p1-16.el7.x86_64 (服务端和客户端都需要安装的,包含ssh所需的组件)
openssh-clients-7.4p1-16.el7.x86_64 (客户端安装软件包)
openssh-server-7.4p1-16.el7.x86_64 (服务端安装软件包)
rpm -pqi 软件包(查看软件rpm包的作用)
rpm -ql 软件名 (查看软件所产生的文件目录)
ssh的安装
两种安装方式
yum安装
yum install openssh openssh-clients openssh-server -y
rpm 安装
rpm -ivh xxxx.rpm
使用rpm -aq | grep openssh命令查看安装了哪些openssh相关软件
OpenSSH常用配置文件
/etc/ssh/ssh_config 客户端配置文件
/etc/ssh/sshd_config 服务端配置文件
ssh相关指令
开启ssh服务命令
systemctl start/restart/stop/status sshd
/etc/init.d/sshd start/restart/stop/status
开机启动 chkconfig sshd on
查看开机启动 chkconfig --list sshd
ssh远程连接服务器
-
首先确定是否能ping通
-
第一次连接会生成RSA,并将主机的信息存储在/root(谁登录就是谁的家目录)/.ssh/known_hosts文件中
ssh的配置文件
/etc/ssh/ssh_config 客户端配置文件
/etc/ssh/sshd_config 服务端配置文件
—配置文件位置 /etc/ssh/sshd_config
—配置文件中,#号注释的是文件,带有端口号的是默认,默认端口号
—端口号可以多个,netstat -anutp (发现开启2个端口号)
—修改完配置文件之后一定要重启,inode号已经变了
—是否需要密码认证PasswordAuthentication yes
—LoginGraceTime 2m (输入密码未登陆多长时间退出)
—PrintMotd yes 登陆之后显示的内容vim /etc/PrintMotd,打印内容
—PrintLastLog yes 显示上次登陆的时间
—Protocol 2 选择的SSH协议版本,一般用协议2,如果想要支持协议1,设置为Protocol 2,1即可。
小故事
《黑客帝国:重装上阵》中使用sshd的配置文件原理来进行暴力**root用户密码,其中入侵核电站的方法SSH CRC-32漏洞,将核电站Root密码更改,成功登陆,感兴趣的同学可以去瞅瞅。
ssh的默认的日志
ls /var/log/secure
ssh连接登录的信息都被记录在/var/log下的secure文件中
通过秘钥对进行sshd服务认证
ssh通信主要基于两种通信方式
一种是基于密码登录,ssh连接用户时输入密码即可登录
另一种是基于秘钥对登录,这里使用的是rsa公私钥算法,算法的原理是,ssh主机在本地生成一对秘钥对(公钥和私钥),主机将私钥发送给需要连接本机的远程主机即可。下面为步骤
—使用ssh-****** 生成**对
ssh-******
—将公钥分发到需要连接的远程主机
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.238…
—测试远程连接即可,连接远程主机的root用户
ssh [email protected]
登录警告信息
当其他用户成功**或者其他用户登录时,我们可以编辑ssh警告信息,来吓唬一下他们,实现方法如下。
提示信息被放在/etc/motd ,在此文件中添加需要警告的信息即可。
scp服务器之间的拷贝
scp是基于ssh登录并且复制数据,远程复制过程安全,操作简单
scp 本服务器绝对地址 [email protected]:/tmp
scp [email protected]:/etc/passwd/ /opt
拷贝目录(加r)
scp /etc/hosts 192…:/opt
防暴力**
使用ssh远程连接时存在一些安全隐患,比如有人恶意登录,恶意**你的主机,导致主机或者网站访问速度过慢,此时需要采取措施预防这些问题。
方法如下:
- 密码复杂
长度大于8位,最好大于14位,最好有数字、大小写英文 - 修改默认端口号(/etc/ssh/sshd_config)
- 不使用root用户登录(禁用root用户,不太方便)
限制root用户登录,root用户一登录上去就被退出
创建普通用户zhang,设置为超级管理员
此时登录的用户为zhang,但是显示为root用户,被他人尝试暴力**登录时需要先**出此用户的用户名及密码,这一点不是那么容易的,就保障了系统的安全。
在ssh配置文件中可以禁止root用户登录,PermitRootLogin no
此时上方设置的zhang用户也不能登录,因为zhang用户被设置为管理员用户,此时此时则不能登录。
以上,一般小公司就解决了暴力**的问题,以下需要使用开源软件来实现。
-
还有情况,暴力**的时候,一直不断的被尝试登录,此时需要找出此暴力**的ip并将此ip禁止即可,在日志文件lastb中即可查看登录的用户信息。
-
登录信息会被记录在登录信息文件中,此时如果文件的内容太大则会浪费系统空间,,说明还没有被**,禁用对应ip地址即可。
ll -h /var/log/btmp
实战背景
公司公网网站一直被他人暴力**sshd的服务密码,虽未**成功,但是导致系统的负载过高。由于在暴力**的时候,系统不断登录尝试密码认证用户,从而增加系统资源的额外开销,导致网站访问速度过慢。
此时使用fail2ban防暴力**工具,在另一篇文档中有涉及,链接如下: