• 2-2-sshd服务安装管理及配置文件理解和安全调优


    大纲:

    1. 培养独自解决问题的能力

    2. 学习第二阶段Linux服务管理的方法

    3. 安装sshd服务

    4. sshd服务的使用

    5. sshd服务调优

    6. 初步介绍sshd配置文件

    ######################################

    1. 培养独自解决问题的能力

    遇到问题的解决方法:

    1. 先仔细回看上课笔记

    2. 如果上课笔记没有,在查阅互联网资料,书籍等

    3. 如果以上都没找到,在发消息给老师求助

    4. 关键是:不要怕失败,多动手,多实验,多敲代码!!!

    学会培养独立解决 问题的能力和方法,很重要!!!

    2. 学习第二阶段Linux服务管理的方法

    学习服务的方法:

    1. 了解服务的作用:名称,功能,特点

    2. 安装服务

    3. 配置文件的位置,端口

    4. 服务开启和关闭的脚本

    5. 此服务的使用方法

    6. 修改配置文件(实战举例)

    7. 排错(从上倒下,从内到外)

    =====================================

    3. 安装sshd服务

    SSHD服务

    介绍:ssh协议,即安全外壳协议.为Secure Shell的缩写.SSH为建立在应用层和传输层基础上的安全协议.

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

    相比较之前用telnet方式传输文件要安全很多,因为telnet使用明文传输,而sshd是加密传输.

    服务安装:

    需要安装OpenSSH四个安装包

    OpenSSH软件包,提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此代替原来的类似服务.

    3.1 查看sshd服务是否已安装

    which sshd #查询命令路径,是否存在sshd命令

    rpm -qa | grep openssh

    #sshd服务的安装包名中包含字段openssh,通过搜索,查看openssh包是否已安装

    wpsF84F.tmp

    3.2 安装sshd服务

    yum -y install openssh* #通过yum安装openssh包

    #推荐使用yum安装,前提必须配置好本地yum源或网络yum源

    #使用yum或rpm安装的软件包一般安装路径会保存到大的目录下如/etc等

    #使用源码安装的软件,需要自定义

    wpsF85F.tmp

    wpsF860.tmp

    也可使用如下命令进行安装:

    rpm -ivh /mnt/Packages/openssh*.rpm #rpm安装sshd的方法

    3.3 查看安装服务生成文件列表

    安装完成后,查看生成了哪些文件:

    rpm -ql openssh

    wpsF861.tmp

    我们看到sshd服务

    安装路径在/etc/ssh目录下

    帮助文档在/usr/share/doc/openssh-5.3pl和/usr/share/man目录下

    =====================================

    4.sshd服务的使用(ssh协议)

    Way 1:

    ---------------------------------------------

    使用sshd服务远程连接某主机时,可使用如下命令:

    ssh <IP Address>

    使用如上命令,ssh默认以root用户登录

    例如:

    ssh 192.168.171.120

    wpsF862.tmp

    这时,我们收到了确认信息!如下:

    The authenticity of host '192.168.171.121 (192.168.171.121)' can't be established.

    RSA key fingerprint is b2:65:b6:46:65:ba:c3:d6:f8:b8:59:99:01:37:5c:c1.

    Are you sure you want to continue connecting (yes/no)?

    其中RSA算法,是采用两个大素数相乘的得数而得来的.本地保存有两个大素数(由于两个大素数相乘得数有很多分解因式,所以很难破解,越长需要破解的时间越长,这是公有密钥中还是很安全的!!)

    在我们属于yes确认连接后,会在本地目录中保存下公有密钥.详情如下:

    wpsF873.tmp

    这个确认信息,只在第一次连接时,出现.在第一次连接后,会在宿主目录.ssh/know_hosts下保存信息.

    Warning: Permanently added '192.168.171.121' (RSA) to the list of known hosts.

    wpsF874.tmp

    在下次在删除宿主目录下的.ssh的文件夹后,当我们再次连接时,不会在出现确认信息

    wpsF875.tmp

    Way 2:

    ---------------------------------------------

    ssh <UserName>@<IP Address>

    使用如上命令,可以指定远程登录用户(这里可以指定非root用户进行远程登录)

    例如:

    ssh gan@192.168.171.120

    在远程登录主机上,添加普通用户gan:

    useradd gan && echo "123456" | passwd gan --stdin

    wpsF876.tmp

    在客户端192.168.171.120中使用gan用户远程登录192.168.171.121:

    ssh gan@192.168.171.121

    wpsF877.tmp

     

    Way 3:(The same as Way 2)

    ---------------------------------------------

    ssh -l <UserName> <IP Address>

    -l #指定login name

    例如:

    ssh -l gan 192.168.171.120

    wpsF888.tmp

    更多信息---> ssh --help

    wpsF889.tmp

    =====================================

    5. sshd服务配置文件及调优

    查看sshd配置文件:

    wpsF88A.tmp

    Server端配置文件:

    vim /etc/sshd/sshd_config #server端

    在配置文件中,以#开头的可能是注释,也可能是默认配置

    按照我的理解,以#开头直接跟着字母的行为默认配置

    以#开头,后面跟着一个空格符号后,紧跟这字符的行为注视信息,

    如下图:

    wpsF88B.tmp

    23行为注释信息,24行为默认配置文件

    wpsF88C.tmp

    由上图可知:

    Port 22

    # SSH 预设使用 22 这个port,也可以使用多个port,即重复使用 port 这个设定项目

    我们可以修改默认的端口,来防止别人暴力破解!!(注意:修改后需重启sshd服务)

    AddressFamily any

    默认使用所有协议簇

    ---------------------

    ListenAddress 0.0.0.0

    ListenAddress ::

    默认监听所有地址的连接.第一行监听IPV4地址,第二行监听IPV6地址

    若只允许某个地址或地址段进行远程连接,可将第一行修改成如下:

    ListenAddress 192.168.171.120 #只监听来自192.168.171.120的连接

    ListenAddress 192.168.171.0 #监听来自192.168.171.0网段的连接

    ---------------------

    Protocol 2

    表示采用安全协议的版本号,为2

    ---------------------

    SyslogFacility AUTHPRIV

    生成日志信息的格式,采用AUTHPRIV,sshd服务日志文件在:

    ls /var/log/secure

    服务日志文件可监控别人远程登录的信息,监控这个文件的变化,可以有效防止别人暴力破解

    wpsF89C.tmp

    ---------------------

    LoginGraceTime 2m

    默认连接时间是2min,当连接时,超过2min没有回应时,断开连接!

    若没有单位,默认为秒(s)

    # 当使用者连上 SSH server 之后,会出现输入密码的画面,在该画面中,

    # 在多久时间内没有成功连上 SSH server 就强迫断线!若无单位则默认时间为秒!

    可以根据实际情况来修改实际

    ---------------------

    PermitRootLogin yes

    设置是否允许远程登录root用户! yes允许,no不允许(一般服务器都禁止root用户远程登录)

    ---------------------

    StrictModes yes

    当使用者的 host key 改变之后,Server 就不接受联机.

    可以抵挡部分的木马程序!

    ---------------------

    PasswordAuthentication yes

    密码验证,当远程连接发生时,使用密码验证!这个是很需要的!!!

    在真实生产环境中,根据不通安全级别,有的设置是不需要密码登录而是通过认证的密钥来登录的!

    ---------------------

    PermitEmptyPasswords no

    使用允许无密码登录,如果上一项设置为yes,这一项最好设置为no

    这是不允许远程连接以空密码登录

    ---------------------

    PrintMotd yes

    登陆后是否显示一些信息!!我们可以在文件

    /etc/motd文件内进行设定!

    例:给sshd服务添加一些警告信息

    [root@xiaogan121 ~]# echo 'Warning ! From now on, all of your operation has been 4record!'> /etc/motd

    [root@xiaogan121 ~]# cat /etc/motd

    测试:

    [root@xiaogan120 ~]# ssh 192.168.171.121

    root@192.168.171.121's password:

    Last login: Thu Sep 15 16:28:36 2016 from 192.168.171.120

    Warning ! From now on, all of your operation has been 4record!

    警告!从现在开始,你所有的操作已经被记录!

    ---------------------

    PrintLastLog yes

    是否打印上次登录信息!

    通过这个打印信息,我们可以根据最近一次登录的地址,来判断是否有人登录过我们的机器

    例:

    [root@xiaogan120 ~]# ssh 192.168.171.121

    root@192.168.171.121's password:

    Last login: Thu Sep 15 16:28:36 2016 from 192.168.171.120  #就是这个信息

    ---------------------

    UseDNS yes

    一般来说,为了要判断客户端来源是正常合法的,因此会使用 DNS 去反查客户端的主机名

    不过如果是在内网互连,这项目设定为 no 会让联机速度比较快。

    #################################

    Client端配置文件:

    vim /etc/sshd/ssh_config #client端

    #################################

    优化sshd配置文件,防止暴力破解sshd服务

    其实,实质就是修改sshd默认监听端口,

    (22号端口为sshd默认端口,故我们改成别人不容易知道的端口即可)

    # SSH 预设使用 22 这个port,也可以使用多个port,即重复使用 port 这个设定项目!

    # 例如想要开放 sshd 端口为 22和 222 ,则多加一行内容为: Port 222  即可

    # 然后重新启动 sshd 这样就好了。 建议大家修改 port number 为其它端口。防止别人暴力破解。

    过程如下:

    vim /etc/ssh/sshd_config

    修改如下行:

    #Port 22

    为如下行:

    Port <PortNum> #PortNum为指定的修改后端口

    如:Port 123

    保存退出后,重启sshd服务

    /etc/init.d/sshd restart

    service sshd restart

    查看sshd监听端口

    ss -tulnp | grep ssh

    netstat -anlpt | grep ssh

  • 相关阅读:
    5js
    4js
    3js
    2js
    1js
    7css
    6css
    5css
    Django高级项目实战-开发企业级问答网站,学Django就这了
    Java日志第27天 2020.8.1
  • 原文地址:https://www.cnblogs.com/xiaogan/p/5874381.html
Copyright © 2020-2023  润新知