一、ssh介绍

1、什么是 ssh

ssh 是 Secure Shell 的缩写,是一个建立在应用层上的安全远程管理协议。ssh 是目前较为可靠的传输协议,专为远程登录会话和其他网络服务提供安全性。利用 ssh 协议可以有效防止远程管理过程中的信息泄露问题。 ssh可用于大多数UNIX和类UNIX操作系统中,能够实现字符界面的远程登录管理,它默认使用22端口,采用密文的形式在网络中传输数据,相对于通过明文传输的Telnet协议,具有更高的安全性。

2、ssh的登录验证

ssh 提供了基于账户密码(口令)和密钥对两种登录验证方式,这两者都是通过密文传输数据的。

账户密码验证:

登录格式
ssh 用户名@IP地址
密钥对验证:
  • 首先需要在 Client 上创建一对密钥,并且需要把公钥放在需要访问的 Server 上。
  • 当 Client 需要连接 Server 时,Client 端的软件就会向 Server 端发出登录请求,请求使用密钥对中的的公钥进行安全验证
  • Server 收到请求之后,会在该用户的家目录下查询公钥文件,拿 Client 发送过来的公钥和自己家目录下的公钥 进行比较
  • 如果两个公钥一致,Server 就用公钥加密“challenge(质疑)”,并把它发送给 Client 软件。Client 收到加 密内容之后,使用本地的私钥进行解密,再把解密结果发送给 Server 端,Server 端验证成功后,允许登录。

二、ssh服务

1、环境准备

准备好两台Linux操作系统的主机,且将其主机名更改为不同,便于后面的密钥对登录。

centos6 更改主机名

[root@centos ~]# vim /etc/sysconfig/network
HOSTNAME=centos-11

临时关闭防护功能:

 iptables -F #清空防火墙规则
setenforce 0 #临时关闭SELinux

永久关闭防护功能:

 chkconfig iptables off         #设置防火墙开机不自启动
sed -i ‘7s/enforcing/disabled/’ /etc/selinux/config #永久关闭SELinux
#注意:以上两条命令执行后,需要重启服务器才能生效
2、密钥对登录配置
1、linux主机间进行密钥对登录

1、客户端生成密钥对文件 ssh-keygen -t rsa -b 2048

-t 指定加密类型(rsa/dsa等)

-b 指定密钥对加密长度

询问1:执行过程中会询问保存位置,一般默认保存在当前用户家目录下的.ssh/目录下

询问2:是否对密钥文件进行加密

加密:若加密,则在调用密钥文件时需要先验证密钥的密码,密码正确才能使用密钥文件

不加密:若不加密,则密钥文件可以直接被调用,整个登录验证过程无需输入任何密码,即为免密登录

[root@centos-11 ~]# ssh-keygen -t rsa -b 2048

2、将公钥文件上传至服务器端 ssh-copy-id 用户名@服务器IP地址

[root@centos-11 ~]# ssh-copy-id root@10.10.10.12
#该用户名和要用来登录服务器的用户名一致

3、客户端尝试登录服务器 ssh 用户名@服务器IP地址

[root@centos-11 ~]# ssh root@10.10.10.12
Last login: Fri Dec 20 20:41:00 2019 from 10.10.10.1
#密钥对验证优先级大于账户密码验证
2、windows 密钥对登录 linux主机

由于Windows不能直接生成密钥对,所以需要借助工具。我使用的是xshell

1、使用Xshell自带的密钥对生成向导生成密钥对



一直下一步,其中有一步是,设置密码为本地私钥。看情况进行选择。最后一步复制公钥无需保存。

2、将公钥导入Linux主机的指定用户下的指定公钥配置文件内 后面用哪个用户登录就放在谁的用户家目录下,找到 .ssh 目录,然后在里面创建 authorized_keys 文件,并且将公钥写入。

[root@centos-12 ~]# vim .ssh/authorized_keys
#粘贴你刚才复制的公钥信息,另起一行

3、使用windows尝试登录指定用户

3、禁止root用户远程登录

root 在系统中是一个可以为所欲为的角色,我们可以在平时的操作中用普通用户操作,在有需要修改一些系统设置的时候再从普通用户切换到 root 用户,这样可以最大限度的避免因为误操作而对系统造成破坏,同时也可以避免黑客在暴力破解后直接使用 root 用户登录系统,一般在远程登录管理上我们会禁止直接使用 root 用户登录。

配置文件:/etc/ssh/sshd_config
选项:
PermitRootLogin no
4、修改默认端口
修改默认端口:ssh 作为一个用来远程管理服务器的工具,需要特别的安全,默认情况下使用TCP的22端口,若不进行修改,很容易被利用遭到攻击,所以我们一般都会修改端口,尽量修改一个高位端口(范围1-65535)
配置文件:/etc/ssh/sshd_config
Port 55235
linux 主机登录
ssh -p 55235 root@10.10.10.12
xshell 登录
ssh root@10.10.10.12:55235
5、ssh服务相关服务
scp:安全的远程文件复制命令

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,类似于命令有cp,scp传输是加密的,所以可能会稍微影响一点速度。另外,scp还非常不占资源,不会提高多少系统负荷。

格式:
scp 本地文件 用户名@服务器IP:目录
scp test.txt root@10.10.10.12:/tmp
-P 端口 #若端口不是默认22,则需要使用此格式指定端口
sftp:安全的文件传输协议

sftp是Secure FileTransferProtocol的缩写,安全文件传送协议。sftp与ftp有着几乎一样的语法和功能。由于这种传输方式使用了加密/解密技术,所以sftp比ftp更安全一些,但传输效率比普通的FTP要低得多.

格式:
sftp 用户名@服务器IP
-oPort=端口 #若端口不是默认22,则需要使用此格式指定端口
交互命令:
help:查看在交互模式下支持哪些命令
pwd/lpwd:pwd是查看服务器所在路径;lpwd是查看客户端所在路径
ls/lls:ls是查看服务器当前目录下的文件列表;lls是查看客户机当前所在路径的所有文件列表
put:将客户机中的指定文件上传到服务器端
get:将服务器端的指定文件下载到客户机的当前所在目录
rm:删除掉服务器端的指定文件
quit:退出sftp的交互模式,断开和服务器之间的连接
6 TCP Wrappers(简单防火墙)
1、介绍

TCP_Wrappers是一个工作在第四层(传输层)的的安全工具,对有状态连接(TCP)的特定服务进行安全检测并实现访问控制,界定方式是凡是调用libwrap.so库文件的的程序就可以受TCP_Wrappers的安全控制。它的主要功能就是控制谁可以访问,常见的程序有rpcbind、vsftpd、sshd,telnet。

简单来说 TCP Wrappers 只对走tcp协议的一些服务起到控制作用。

判断方式:

1. 查看对应服务命令所在位置 which sshd
2. 查看指定命令执行时是否调用libwrap.so文件 ldd /usr/sbin/sshd | grep libwrap.so
[root@centos-12 ~]# which sshd
/usr/sbin/sshd
[root@centos-12 ~]# ldd /usr/sbin/sshd | grep libwrap.so
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fd38c0d1000)
2、工作原理

以ssh为例,每当有ssh的连接请求时,先读取系统管理员所设置的访问控制文件,符合要求,则会把这次连接原封不动的转给ssh进程,由ssh完成后续工作;如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供ssh服务。

3、配置

TCP_Wrappers的使用主要是依靠两个配置文件/etc/hosts.allow, /etc/hosts.deny,以此实现访问控制,默认情况下,/etc/hosts.allow,/etc/hosts.deny什么都没有添加,此时没有限制 。

service_list@host: client_list
配置文件编写规则:
service_list: 是程序(服务)的列表,可以是多个,多个时,使用,隔开
@host:设置允许或禁止他人从自己的哪个网口进入。这一项不写,就代表全部
client_list:是访问者的地址,如果需要控制的用户较多,可以使用空格或,隔开
内置ACL:ALL(所有主机)、LOCAL(本地主机)

以ssh服务代码示例:

拒绝单个 IP 使用 ssh 远程连接:
配置文件:
hosts.allow:空着
hosts.deny:sshd:10.10.10.1
拒绝某一网段使用 ssh 远程连接:
hosts.allow:空着
hosts.deny:sshd:10.10.10.
仅允许某一 IP 使用 ssh 远程连接:
hosts.allow:sshd:10.10.10.11
hosts.deny:sshd:ALL

ssh服务介绍及配置的更多相关文章

  1. [SSH服务]——一些安全性配置和补充实验

    SSH 安全性和配置 转载于 http://www.ibm.com/developerworks/cn/aix/library/au-sshsecurity/ 对于一些之前列举的代码示例,许多系统管理 ...

  2. ssh服务介绍

    基本介绍 ssh:安全的远程登陆 要有客户端与服务器端,客户端主动链接服务端,那么服务端地址是不能变的. socket:套接字 标识应用唯一的地址 tcp/udp port端口号 cat /etc/s ...

  3. 对于ssh服务的简单配置,似的自己的服务器更加安全

    对于一台服务器,最大的问题莫过于安全.没有安全性的服务器即使再牛*,性能再好,作用再大,也是分分钟被人搞定,而且还是揉虐性的...当然万事没有绝对的安全,我们只是将危险降低而已.本文只针对于ssh服务 ...

  4. Linux之ssh服务介绍

    一.什么是SSH? 简单说,SSH(Secure Shell Protocol)是一种网络协议,用于计算机之间的加密登录.在默认状态下SSH服务提供俩个服务功能,一个是提供类似telnet远程联机服务 ...

  5. Rsync服务介绍与配置

    Rsync 简要介绍 rsync 是一个用于增量文件传输的开源工具,不得不说,rsync简直是不同服务器间传输文件.同步文件的利器.与FTP相比,它具有非常简单的安装和配置方法.而且,rsync可以只 ...

  6. ssh服务及安全配置

    1.清空防火墙 关闭 setenforcesetenforce   2 getenforce 3 setenforce 0 4 iptables -F 5 systemctl stop firewal ...

  7. ssh服务、密钥登陆配置

    环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:2 ...

  8. 05_配置交换机SSH服务(数通华为)

    1. 网络拓扑: 2. SW1配置:2.1 配置为Access口,vlan 10:[SW1]vlan 10[SW1-GigabitEthernet0/0/1]port link-type access ...

  9. Ubuntu安装SSH服务

    1 SSH服务 Ubuntu默认并没有安装ssh服务,如果通过ssh远程连接到Ubuntu,需要自己手动安装ssh-server(openssh-server). 1.1 检测是否安装SSH服务 出现 ...

随机推荐

  1. 阿里云ECS搭建harbor1.6.1仓库

    机器信息 Centos 7.4 安装docker yum install docker #启动docker并设置开机自启 systemctl start docker systemctl enable ...

  2. OutOfMemoryError本地线程不足问题分析

    java.lang.OutOfMemoryError本地线程不足问题 11月份中旬客户方的一个系统突然报内存异常,当时是早上上班的时候碰到该项目的项目经理,还跟该项目的项目经理开玩笑说你们系统上线将近 ...

  3. 【Luogu P1502】窗口的星星

    Luogu P1502 题意很好理解,就是问给出的矩形套住的最大和. 但是做起来却十分麻烦. --来自疯狂爆10分的愤怒 一个比较高效的思路是--把每一个星星作为左下角向右上方拓展形成一个矩形, 拓展 ...

  4. 本地存储常用方式 localStorage, sessionStorage,cookie 的区别 和 服务器存储session

    本地存储:把一些信息存储到客户端本地(主要目的有很多,其中有一个就是实现多页面之间的信息共享)       1. 离线缓存(xxx.manifest)  H5处理离线缓存还是存在一些硬伤的,所以真实项 ...

  5. Spring(Bean)1

    Spring支持3种依赖注入的方式 (DI依赖注入)*属性注入 (配置bean set方法注入) <bean id="car" class="spring.bean ...

  6. 行内元素(inline标签)设置了行高为什么不生效,还是表现为父盒子的行高?行内元素行高问题终极解释

    最近在看张鑫旭大佬的<css世界>,读到5.2.4  内联元素 line-height 的“大值特性” ,产生了疑惑, 在开发中确实也遇到了同样的问题,深入探究后得出结果,先说结论吧,论证 ...

  7. Kubernetes 时代的安全软件供应链

    点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 汤志敏  阿里云 ...

  8. use dict in bash

    declare -A animals=(["moo"]="cow" ["woof"]="dog") for sound ...

  9. 记一次Elasticsearch OOM的优化过程——基于segments force merge 和 store type 转为 niofs

    首选,说明笔者的机器环境(不结合环境谈解决方案都是耍流氓): cpu 32核,内存128G,非固态硬盘: RAID0 (4T * 6),单节点,数据量在700G到1800G,索引15亿~21亿.敖丙大 ...

  10. 剑指offer-31:整数中1出现的次数(从1到n整数中1出现的次数)

    参考: https://troywu0.gitbooks.io/interview/整数中出现1的次数(从1到n整数中1出现的次数).html 题目描述 求出1~13的整数中1出现的次数,并算出100 ...