• Linux学习


    参考资料

    Blog SSH config file for OpenSSH client
    Blog sshd_config - How to configure the OpenSSH server
    Blog SSH 密钥登录

    Server配置文件(sshd_config)

    一般只是配置:

    1. 修改并增加端口(Port)
    2. 禁用密码登录,改用密钥

    SSH 密钥登录

    生成密钥

    $ ssh-keygen -t rsa -b 4096 -f keyname -N password -C "your_email@domain.com"
    
    • -t:参数用于指定生成密钥的加密算法,一般为dsa或rsa。
    • -b:参数指定密钥的二进制位数。这个参数值越大,密钥就越不容易破解,但是加密解密的计算开销也会加大。
    • -f:参数指定生成的私钥文件的名称,可指定绝对路径。
    • -N:参数用于指定私钥的密码(passphrase)。
    • -C:参数可以为密钥文件指定新的注释,格式为username@host。

    手动上传公钥

    OpenSSH 规定,用户公钥保存在服务器的/.ssh/authorized_keys(authorized_keys已经是文件名,并不是文件夹)文件。你要以哪个用户的身份登录到服务器,密钥就必须保存在该用户主目录的/.ssh/authorized_keys文件。只要把公钥添加到这个文件之中,就相当于公钥上传到服务器了。每个公钥占据一行。如果该文件不存在,可以手动创建。

    关闭密码登录

    修改 sshd_config 文件

    $ nano /etc/ssh/sshd_config
    
    
    
    
    # 如果要完全禁用基于密码的身份验证,请将 PasswordAuthentication 和 ChallengeResponseAuthentication 都设置为 no
    PasswordAuthentication no
    #PermitEmptyPasswords no
    
    # Change to yes to enable challenge-response passwords (beware issues with
    # some PAM modules and threads)
    ChallengeResponseAuthentication no
    
    # 修改完成后按 Ctrl+X ,接着 Y,最后按回车
    

    查看 ssh 状态

    $ systemctl restart ssh
    $ systemctl status ssh
    

    禁止或允许某些用户或某IP(段)的客户端访问

    Blog:Linux限制某些用户或IP登录SSH、允许特定IP登录SSH

    限制用户SSH登录

    只允许指定用户进行登录(白名单):

    在/etc/ssh/sshd_config配置文件中设置AllowUsers选项,(配置完成需要重启 SSHD 服务)格式如下:

    AllowUsers    aliyun test@192.168.1.1            
    # 允许 aliyun 和从 192.168.1.1 登录的 test 帐户通过 SSH 登录系统。
    

    只拒绝指定用户进行登录(黑名单):

    在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:

    DenyUsers    zhangsan aliyun    #Linux系统账户        
    # 拒绝 zhangsan、aliyun 帐户通过 SSH 登录系统
    

    重启SSH

    service sshd restart
    

    限制IP SSH登录

    配置 iptables(重点难点)

    配置 hosts

    说明:这里的IP是指客户端IP,不是服务器IP,下面的例子使用了hosts.allow文件的配置方式,目的是快,但也有不灵活的,建议改成iptables的方案。

    除了可以禁止某个用户登录,我们还可以针对固定的IP进行禁止登录,linux 服务器通过设置/etc/hosts.allow和/etc/hosts.deny这个两个文件,hosts.allow许可大于hosts.deny可以限制或者允许某个或者某段IP地址远程 SSH 登录服务器,方法比较简单,且设置后立即生效,不需要重启SSHD服务,具体如下:

    /etc/hosts.allow添加

    sshd:192.168.0.1:allow  #允许 192.168.0.1 这个IP地址SSH登录
    sshd:192.168.0.:allow #允许192.168.0.1/24这段IP地址的用户登录,多个网段可以以逗号隔开,比如192.168.0.,192.168.1.:allow
    

    /etc/hosts.allow添加

    sshd:ALL #允许全部的ssh登录 
    hosts.allow和hosts.deny两个文件同时设置规则的时候,hosts.allow文件中的规则优先级高,按照此方法设置后服务器只允许192.168.0.1这个IP地址的SSH登录,其它的IP都会拒绝。
    

    /etc/hosts.deny添加

    sshd:ALL #拒绝全部IP
    

    针对hosts.deny的参考:http://www.cnblogs.com/EasonJim/p/8338931.html

    扩展应用

    保护 SSH

    SSH 端口转发(SSH隧道)

    Blog:SSH 端口转发
    视频:SSH 隧道技术
    视频:SSH 动态隧道 Windows和Linux应用
    视频:SSH 动态隧道配合ProxyChains
    视频:用SShuttle建立最好用的SSH动态隧道

    本地转发(Local port forwarding)

    SSH隧道-正向本地转发

    远程转发(Remote port forwarding)

    SSH隧道-反向远程转发

    动态转发

    SSH隧道-动态转发

    SSH 证书登录

  • 相关阅读:
    【foj 1746 A Water Problem】
    【hdu 1049 Climbing Worm】
    【hdu 1070 Milks】
    【B ECJTU_ACM 11级队员2012年暑假训练赛(2)】
    『C Free 5.0 注册码共享』
    【E ECJTU_ACM 11级队员2012年暑假训练赛(2)】
    【J ECJTU_ACM 11级队员2012年暑假训练赛(2)】
    【H ECJTU_ACM 11级队员2012年暑假训练赛(2)】
    【C ECJTU_ACM 11级队员2012年暑假训练赛(2)】
    『为黑客正名』
  • 原文地址:https://www.cnblogs.com/zxaben/p/14860247.html
Copyright © 2020-2023  润新知