zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    HAproxy 1.5 dev14 发布
    IBM/DW 使用 Java 测试网络连通性的几种方法
    Skype 4.1 Linux 发布,支持微软帐号登录
    Dorado 7.1.20 发布,Ajax的Web开发平台
    Aspose.Slides for Java 3.0 发布
    开发版本 Wine 1.5.18 发布
    BitNami Rubystack 开始支持 Ruby 2.0
    XWiki 4.3 正式版发布
    Silverlight实例教程 Out of Browser的Debug和Notifications窗口
    Silverlight实例教程 Out of Browser与Office的互操作
  • 原文地址:https://www.cnblogs.com/xiaogan/p/5874381.html
Copyright © 2011-2022 走看看