zoukankan      html  css  js  c++  java
  • frp安全设置

    之前我的虚拟机疑似被黑了(https://www.cnblogs.com/CharrammaBlog/p/14846387.html)
    于是花时间研究了下怎么做可以让frp连接更加安全。

    一、stcp

    这是官方提供的方法:
    首先配置要暴露的内网主机

    ########### frpc.ini ###############
    [common]
    server_addr = x.x.x.x
    server_port = 7000
    
    [secret_ssh]
    type=stcp
    # 只有 sk 一致的用户才能访问到此服务
    sk = abcdefg
    local_ip = 127.0.0.1
    local_port = 22
    

    然后在要连接内网主机的主机(另一个局域网的主机)上也安装frpc,进行配置

    [common]
    server_addr = x.x.x.x
    server_port = 7000
    
    [secret_ssh_visitor]
    type = stcp
    role = visitor
    server_name = secret_ssh
    sk = abcdefg
    # 绑定本地端口用于访问 SSH 服务
    bind_addr = 127.0.0.1
    bind_port = 6000
    

    这样做感觉忒麻烦,连接和被连接的主机都要安装frp客户端

    二、内网主机加强密码复杂度

    先来捋一下整个连接过程:

    1. 内部局域网主机A将自己的ip和ssh服务端口(假设是22)暴露给具有公网ip的主机B
    2. 主机B通过frp服务端开放一个端口(假设是6000)
    3. 外部局域网主机C通过主机B的ip和6000端口连接主机A,实现跟使用主机A的ip和22端口连接主机A一样的效果

    所以看起来好像内网的ip和端口没有暴露到外部,实际上知道了公网主机B的ip和frp端口就相当于知道了你内网主机A的ip和ssh端口。
    好比把门换了个位置,门锁还是没换,只要别人有你的钥匙就能进入你的房子,甚至比之前还容易,因为之前别人可没法接近你的房门。

    # 随机生成一串16位字符串,可作为复杂密码使用
    tr -dc '_A-Za-z0-9' </dev/urandom | head -c 16
    

    三、设置内网主机只能通过密钥连接

    很好理解,只有办卡登记过的用户才能进入。
    修改ssh配置文件/etc/ssh/sshd_config内容如下所示

    # 是否使用公钥验证
    PubkeyAuthentication yes
    
    # 公钥的保存位置
    AuthorizedKeysFile .ssh/authorized_keys
    
    # 禁止使用密码验证登录
    PasswordAuthentication no
    

    然后重启ssh服务

    service sshd restart
    

    然后在外部局域网主机上生成密钥,放到内部局域网主机的.ssh/authorized_keys下

    四、禁止root远程登录

    root用户权限太大了,禁止root远程登录,只通过一些权限较小的用户登录主机。
    修改ssh配置文件/etc/ssh/sshd_config

    sed -i "s/PermitRootLogin yes/PermitRootLogin no/g" /etc/ssh/sshd_config
    

    然后重启ssh服务

    五、公网主机的端口设置与常规端口不同

    官方给的端口是6000,我设置的是6001,太容易被猜到了,设定为跟常规端口不同的端口号,特别是比较大的端口号,减少被扫描中的概率。

    六、使用跳板机

    不在重要的主机上直接做内网穿透,而是在同一局域网中的另一台不太重要的主机上做。能保证跳板机与其他内网主机连接就行。(感觉也挺麻烦的,每次连接上还要再连一次)

  • 相关阅读:
    Android:res之layer-list的用法
    Android:改变Activity切换方式
    Android:dimen尺寸资源文件的使用
    Android Studio安装、配置
    Android Studio 初探
    Android SDK开发包国内下载地址
    linux下centos安装android sdk最新全面教程【可行】
    CentOS 7.0安装Nvidia驱动
    javascript基础部分
    js api 实现钉钉免登
  • 原文地址:https://www.cnblogs.com/CharrammaBlog/p/14866585.html
Copyright © 2011-2022 走看看