zoukankan      html  css  js  c++  java
  • SSH实现免密登录并设置黑白名单

    简介

    FTP、Telnet 在网络上通过明文传输口令和数据,这是非常不安全的,很容易受到其他别有用心的人的利用,比如截获你的口令,然后冒充你的数据。ssh通过对传输数据加密实现安全登录,而且ssh对传输数据进行加密,减小了传输时延。虽然ssh有一定的安全措施保护数据传输过程免受干扰,但如果登录的机器本身处于危险的环境中,也不免要受收到一些干扰,因此要对处于危险环境的IP做一些限制,也就是黑名单和白名单

    环境:两台centos7服务器。192.168.92.133和192.168.92.137

    目的:实现SSH登录

    查看SSH服务

    centos7默认安装了SSH,查看是否有SSH服务

    rpm -qa|grep ssh

    如果没有安装则安装一下

    yum -y install openssh*

    注意:如果操作过程中出现了问题,可以直接卸载,然后重新安装

    yum remover -y openssh*

    要确保登录与被登陆的两台机器都开启了SSH服务

    首先查看SSH状态

    systemctl status sshd.service

    如果没有启动则启动SSH服务

    systemctl start sshd.service

    设置开机自启

    systemctl enable sshd.service

    一、ssh登录方式

    1.不指定用户,使用默认的root账户登录

    ssh 192.168.92.137

    2.登录时指定用户

    ssh –l root 192.168.92.137
    或者
    ssh root@192.168.92.137

    3.SSH默认使用22端口登录,如果被登陆机器更改了端口号,则需要使用指定的端口登录

    ssh –p 12580 192.168.92.137
    ssh –l root –p 12580 192.168.92.137
    ssh –p 12580 root@192.168.92.137

    第一次登陆时会出现如下情况,会问你是否继续此连接,输入yes,然后提示你输入对方机器对应账号的密码,通过查看ip,发现已经登录上去了

    需要退出登录的话,输入exit,可以查看IP地址验证是否退出

    二、ssh实现免密登录

    每次登录都需要输入密码挺麻烦的,如果有一种既安全又不用输密码的方式就方便许多了。这里就需要使用到公钥和私钥的知识了。

    简单介绍一下。说到公钥和私钥,就要想到锁和钥匙的关系,公钥相当于锁,锁在大门上,任何人都可以看见。私钥相当于钥匙,只有有钥匙的人才能打开锁。锁和钥匙相当于验证身份的信物,只有用钥匙打开锁,我会认为是自己人,让你进来喝口茶,坐一坐。是不是整得还挺浪漫。

    假如锁锁住的是宝物,并且还有人守护宝物,等待有缘人的到来。当然,守护者会去验证你的身份,验证身份的唯一标准就是是否能打开锁。当年藏宝的人把锁留下,肯定还有钥匙去开锁。本来只有一把钥匙,但为了怕丢了又配了一把,所以他本人有钥匙可以随时来看看,而另一把钥匙在他流浪江湖的时候给了一位有缘人,因此这位有缘人也可以通过验证打开锁,进而验证身份得到宝物。

    说明

    两台服务器:192.168.92.133和192.168.92.137

    系统:centos7

    目的:133服务器免密登录到137服务器root用户

    在133服务器上,生成公钥和秘钥

    ssh-keygen

    首先提示你生成秘钥的路径,如果不输入路径则默认生成在当前用户家目录下的.ssh目录中,当前账户为root,所以生成的秘钥默认放在/root/.ssh/id_rsa

    如果之前对应文件已经存在同名秘钥文件,则会提示你是否覆盖,如果该秘钥已用于连接其他服务器,则不要覆盖。以下为不存在同名文件,继续提示你为该秘钥设置密码,随后确认密码。设置密码后,每次使用秘钥都要输入密码。

    这里我们没有输入密码,直接两个回车

     生成之后查看.ssh隐藏文件,id_rsa为私钥文件,id_rsa.pub为公钥文件

     因为我们要连接137服务器,因此要把公钥交给137服务器

    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.92.137

    其中会提示你输入137服务器的密码,往后不会再让你输入

     现在,就可以通过SSH免密登录到137服务器了

    ssh root@192.168.92.137

     我们可以通过查看.ssh目录下的known_hosts文件查看已知的主机

    cat /root/.ssh/know_hosts

    三、禁止root登录

    由于root用户具有超级权限,随意的使用root权限可能会带来一些隐患,因此我们需要禁止root用户登录,只开放普通用户登录,当需要root权限时,再切换到root用户

    在137服务器中修改sshd_config文件

    vim /etc/ssh/sshd_config

    找到PermitRootlogin yes,去掉#,把yes改为no

     重启SSH服务

    systemctl restart sshd.service

    从133服务器登录到137服务器的root账户,可以看到已被拒绝登录

     登录普通用户tc,能够正常登录

    四、更改默认端口号

    为了安全考虑,我们还可以修改默认的端口号,减小被黑客攻击成功的风险

    找到#Port 22,去掉注释,修改成一个五位的端口:Port 12333

     重启SSH服务

    systemctl restart sshd.service

    防火墙放行12233端口

    firewall-cmd --permanent --add-port=12233/tcp

    重启防火墙

    firewall-cmd --reload

    查看端口放行情况

    firewall-cmd -–list-port

     可以看到已经能够通过修改后的端口登录了

    五、设置SSH黑白名单

     SSH通过设置黑名单或白名单做某些限制,比如禁止通过某账号登录,或者禁止从某ip登录

    1.限制或允许通过某账号登录

    在137服务器/etc/ssh/sshd_config里添加

    DenyUsers tc

     可以看到现在无法通过tc用户登录到137服务器,而root用户可以正常登录

     如果为AllowUsers tc,则为允许tc用户登录

    AllowUsers tc

    每次登录还需要输入用户名和ip,感觉比较麻烦,可以通过配置SSH快捷登录直接登录到linux服务器。

    编辑当前用户家目录下的.ssh/config文件,如果没有则创建一个

    touch config
    vim config

    添加如下信息

    Host   alias  #自定义别名
    HostName  hostname  #替换为你的ssh服务器ip
    Port   port   #ssh服务器端口,默认22
    User  user   #ssh服务器用户名
    IdentityFile   ~/.ssh/id_rsa  #生成的公钥文件对应的私钥文件

     保存并退出

     可以看到直接通过ssh aliyun登录到135服务器了

    2.允许通过某个ip登录

    vim /etc/hosts.allow

    可以编辑如下信息

    sshd:192.168.92.133:allow  #允许 192.168.0.1 这个 IP 地址 ssh 登录
    sshd:192.168.92.0/24:allow #允许 192.168.92.0/24 这段 IP 地址的用户登录
    sshd:ALL # 允许全部的 ip通过ssh 登录 

    也可以限制从某ip登录

    vim /etc/hosts.deny

    可以编辑如下信息

    sshd:192.168.92.135:deny #拒绝135这个IP地址通过ssh登录
    sshd:all:deny    #拒绝所欲sshd远程连接

    这里我们对host.deny设置,禁止通过135服务器登录到本机

    重启服务

    systemctl restart sshd

    发现已经不能通过135服务器登录到本机

    那么,如果hosts.allow设置为允许133服务器登录,同时,hosts.deny为拒绝133服务器登录的时候,由于hosts.allow文件的优先级高,因此此时可以通过135服务器登录到本机。

  • 相关阅读:
    三十二、恢复单库单表
    三十一、XBK备份
    三十、分库分表备份脚本
    二十九、mysqldump恢复案例
    二十八、mysqldump备份
    二十七、备份介绍
    二十六:慢日志分析
    二十五、二进制日志之GTID模式
    Trie树
    AC自动机
  • 原文地址:https://www.cnblogs.com/maohai-kdg/p/12005731.html
Copyright © 2011-2022 走看看