远程访问(ssh)及控制

OpenSSH服务器

SSH (Secure Shell) 协议

是一种安全通道协议 (telnet是明文加密,ssh是密文加密)

对通信数据进行了加密处理,用于远程管理

扩充

SSH (Secure shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH为建立在应用层和传输层基础上的安全协议。

                              网络

ssH客户端<------------------------------>SSH服务端

数据传输是加密的,可以防止信息泄漏

数据传输是压缩的,可以提高传输速度
SSH客户端:Putty、Xshell、 CRT、MobaXterm、FinalShell

SSH服务端:OpenSSH
OpenSSH是实现sSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。

执行"systemctl start sshd"命令即可启动sshd服务

sshd 服务默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)

sshd服务的默认配置文件是/etc/ ssh/ sshd_ config

ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件。

ssh服务端主要包括两个服务功能ssh远程链接和sftp服务

作用:SSHD服务使用sSH协议可以用来进行远程控制,或在计算机之间传送文件。

相比较之前用relnet方式来传输文件要安全很多,因为relnet使用明文传输,SSH是加密传输。

OpenSSH

服务名称: sshd

服务端主程序: /usr/sbin/sshd

服务端配置文件: /etc/ssh/sshd_ config

远程登录第一种方式示例:

验证

在服务端再次验证

第二种方式:

直接@用户名进行连接

查看ssh安装包

查看ssh版本

服务配置与管理

端口的使用

SSH预设使用22这个port,也可以使用多个port,即重复使用 port这个设定项!例如想要开放SSHD端口为22和222,则多加一行内容为: Port 222即可。
然后重新启动SSHD这样就好了。建议大家修改 port number为其它端口,防止别人暴力破解。

ListenAddress监听地址
ListenAddress 0.0.0.0
设置sSHD服务器绑定的IP地址,0.0.0.0表示侦听所有地址
安全建议:如果主机不需要从公网ssh访问,可以把监听地址改为内网地址这个值可以写成本地IP地址,也可以写成所有地址,即0.0.0.0表示所有IP。

Protocol 2
设置协议版本为sSH1或ssH2,SSH1存在漏洞与缺陷,选择SSH2

UseDNS yes
一般来说,为了要判断客户端来源是正常合法的,因此会使用DNs 去反查客户端的主机名,但通常在内网互连时,该基设置为no,因此使联机速度会快些
注:禁用DNS反向解析,以提高服务器的响应速度

SyslogFacility A0THPRIV
当有人使用'ssH登入系统的时候,SssH 会记录信息,这个信息要记录的类型为AUTHPRIV,sshd 服务日志存放在:/var/log/secure 。

进入编辑页面

安全调优

LoginGraceTime 2mGrace优雅

grace意思是系统给与多少秒来进行登录。(默认2分钟,o表示无限制)·当使用者连上 sSH server 之后,会出现输入密码的画面,在该画面中。

在多久时间内没有成功连上sSHserver 就强迫断线!若无单位则默认时间为秒。可以根据实际情况来修改实际

 

PermitRootLogin yes实验

是否允许root 登入,默认是允许的,但是建议设定成no,真实的生产环境服务器,是不允许root账号直接登陆的,仅允许普通用户登录,需要用到root用户再切换到root用户。

案列

创建用户zhangsan、 lisi

查询组

grep " wheel" letc/ group

gpasswd -a zhangsan wheel #zhangsan用户已加入 wheel组开启pam模块

PasswordAuthentication yes
密码验证当然是需要的!所以这里写yes,也可以设置着no,在真实的生产服务器上,根据不同安全级别要求,有的是设置不需要密码登陆的,通过认证的秘钥来登陆。

PermitEmptyPasswords no
是否允许空密码的用户登录,默认为no,不允许空密码登录

PrintLastLog yes
最示上次登入的信息!默认为yes

公钥传输原理

 

MaxAuthTries 6
指定每个连接最大允许的认证次数。默认值是6 。
如果失败认证的次数超过这个数值的一半,连接将被强制断开,且会生成额外的失败日志消息
默认3次

验证ssh -o NumberofPasswordPrompts=8 lisi@192.168.10.9

AllowUsers
当希望只允许或禁止某些用户登录时,uf以使用 AllowUsers或DenyUsers配置,两者用法类似(注意不要同时使用)。配置Allowusers
例如,若只允许 zhangsan、wangwu用户登录,其他(lisi)用户AllowUsers zhangsan@192.168.10.10 wangwu
题白结论

扩展命令参数
ssh -o ConnectTimeout=3 -o ConnectionAttempts=5 -o Passworduthentication=no -o StrictHostKeyChecking=no $ipcommand "
#connectTimeout=3
连接超时时间,3秒
#ConnectionAttempts=5
连接失败后重试次数,5次
# PasswordAuthentication=no
不使用密码认证,没有互信直接退出
#strictHostKeychecking=no
自动信任主机并添加到known_hosts文件
例1
ssh -o strictHostKeychecking=no root@192.168.10.0

对未经过安全认证的RPM包进行安全检查Linux用户方面的加固
设定密码策略
对用户密码强度的设定
对用户的登录次数进行限制禁止ROOT用户远程登录
设置历史命令保存条数和账户超时时间设置只有指定用户组才能使用su命令切换到root用广
对Linux账户进行管理
对重要的文件进行锁定,即使ROOT用户也无法删除
建立日志服务器日

sshd服务器支持的两种验证方式

密码验证

对服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户端角度来看,正在连接的服务器有可能会被假冒;从服务器角度来看,当遭遇密码暴力破解攻击时防御能力较弱。

密码最低位数为18位,密码复杂性(大写、小写、字符、数字)端口(1023以上为高危端口)做好安全

密钥验证

要求提供相匹配的密钥信息才能通过验证,通常现在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,大大增强了远程管理时的安全性。该方式不易被假冒,并且可以避免交互登录,在shell中广泛使用

scp复制

本地文件复制到服务器

到另一个窗口复制传输

返回并查看

在本地主机上直接拷贝服务器的目录

验证

同理

sftp

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值