如何从零开始配置云主机

保证安全

云主机暴露在公网中,难免遭到各种人的恶意扫描,有必要采取措施保证安全。

修改ssh端口

默认通过ssh连接云主机的端口为22,这是最容易被恶意扫描的端口,可以修改成其他端口以减少被扫描概率。

  • 修改ssh端口号
    输入:
    vim /etc/ssh/sshd_config
    向下找到Port 22这段,在下一行插入:
    Port 2222 (这个端口号你自己定,最大不要超过65535)
    保存退出。
  • 重启ssh服务
    输入:
    sudo service sshd restart
  • 检查是否修改成功
    输入:
    netstat -ltnp
    结果中有: 0.0.0.0:2222即为成功
  • 修改云主机安全组
    登陆云主机控制台,选择:安全组 -> 入站规则 -> 添加规则。
    规则类型:自定义,
    来源:0.0.0.0/0,
    协议端口:TCP:2222(同ssh端口),
    策略:允许
  • ssh登陆测试
    新开个终端窗口,输入:
    ssh 主机名@ip地址 -p 2222

使用frp做内网穿透

利用云主机具有公网ip的优点,可以通过搭建内网穿透服务,来远程访问家中的主机。此方法适合云主机配置不高(如最便宜的1核2G1M),又有远程访问家中主机需求的。通过内网穿透,不仅可以通过ssh、远程桌面连接家中主机,还可以通过浏览器远程访问和下载家中主机中的文件。

frp分为frps(server)和frpc(client)两个包 ,其中前者安装到云主机上,后者安装在需要被外网访问到的各个设备上(如家中的主机)。

云主机端

  • 下载frp软件
    下载地址:https://github.com/fatedier/frp/releases
    选择适合自己系统的版本,如ubuntu18.04选择下载frp_0.37.1_linux_amd64.tar.gz
    解压:
    tar -zxvf frp_0.37.1_linux_amd64.tar.gz
    重命名:
    mv frp_0.37.1_linux_amd64 frp

  • 修改frps.ini
    把frps.ini中的内容改为:

[common]
# 服务器监听端口
bind_port = 7000
# dashboard监听端口
dashboard_port = DASH_PORT
# dashboard登陆用户名
dashboard_user = NAME
# dashboard登陆密码
dashboard_pwd = PWD
# 权限验证方式
authentication_method = token
# token验证密码
token = TOKEN_PWD

其中,DASH_PORT、NAME、PWD、TOKEN_PWD需要自己更改。

  • 设置服务开机自启
    新建文件:/etc/systemd/system/frps.service,内容为:
[Fusion]
Description=Frp Server Daemon
After=syslog.target network.target
Wants=network.target

[Service]
Type=simple
# 改为自己的路径
ExecStart=/home/ubuntu/Downloads/frp/frps -c /home/ubuntu/Downloads/frp/frps.ini
ExecStop=/usr/bin/killall frps

#启动失败1分钟后再次启动
RestartSec=1min
KillMode=control-group

#重启控制:总是重启
Restart=always

[Install]
WantedBy=multi-user.target

修改后,输入:
sudo systemctl enable frps.service
sudo systemctl start frps.service
查看启动结果:
sudo systemctl status frps.service

家中主机端

  • 下载frp软件
    同样的下载地址:
    https://github.com/fatedier/frp/releases
    如果家中主机也是ubuntu18.04,下载同样的安装包即可。下载后解压、重命名。
  • 修改frpc.ini
    frpc.ini中的内容修改为:
[common]
# 云主机ip
server_addr = ADDR
authentication_method = token
# token验证密码,和frps.ini中的相同
token = TOKEN_PWD
server_port = 7000

# 开放ssh访问
[ssh_1]
type = tcp
local_ip = 127.0.0.1
local_port = 22
# 需要云主机开放相关端口
remote_port = SSH_PORT
# 使用加密
use_encryption = true
# 使用压缩
use_compression = true
# 最大连接数
pool_count = 2

# 开放远程桌面访问
[rdp_1]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
# 需要云主机开放相关端口
remote_port = RDP_PORT

# 开放远程文件访问
[static_file]
type = tcp
# 需要云主机开放相关端口
remote_port = FILE_PORT
plugin = static_file
# 要对外暴露的文件目录
plugin_local_path = /home/ubuntu/Downloads/
# 用户访问 URL 中会被去除的前缀,保留的内容即为要访问的文件路径
plugin_strip_prefix = file
# 远程文件访问登陆用户名
plugin_http_user = FILE_USER
# 远程文件访问登陆密码
plugin_http_passwd = FILE_PWD
# 浏览器访问: http://x.x.x.x:FILE_PORT/file/

其中,ADDR、TOKEN_PWD、SSH_PORT、RDP_PORT、FILE_PORT、FILE_USER、FILE_PWD需要自行设置。

  • 设置服务开机自启
    新建文件:/etc/systemd/system/frpc.service,内容为:
[Fusion]
Description=Frp Server Daemon
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
#  改为自己的路径
ExecStart=/home/ubuntu/Downloads/frp/frpc -c /home/ubuntu/Downloads/frp/frpc.ini
ExecStop=/usr/bin/killall frpc
#启动失败1分钟后再次启动
RestartSec=1min
KillMode=control-group
#重启控制:总是重启
Restart=always
[Install]
WantedBy=multi-user.target

修改后,输入:
sudo systemctl enable frpc.service
sudo systemctl start frpc.service
查看启动结果:
sudo systemctl status frpc.service

  • 安装xrdp
    通过rdp来进行远程桌面连接
    输入:
    sudo apt install xrdp
    sudo adduser xrdp ssl-cert
    sudo systemctl start xrdp
    查看启动结果:
    sudo systemctl status xrdp
    远程连接ubuntu桌面时可能会黑屏,解决方法:
    编辑/etc/xrdp/startwm.sh,在测试和执行Xsession的行之前添加下面两行:
    unset DBUS_SESSION_BUS_ADDRESS
    unset XDG_RUNTIME_DIR
    重启xrdp:
    sudo systemctl restart xrdp

开放云主机端口

上面,我们开放了frp服务端口:7000、dashboard端口:DASH_PORT、ssh端口:SSH_PORT、远程桌面访问端口:RDP_PORT、远程文件访问端口:FILE_PORT,这些端口都需要在云主机的控制台中开放,才可访问。
以frp服务端口7000为例:
登陆云主机控制台,选择:安全组 -> 入站规则 -> 添加规则。
规则类型:自定义,
来源:0.0.0.0/0,
协议端口:TCP:7000,
策略:允许
备注:frp
其他端口开放操作同上。

测试

  • 在云主机端,重启frps.ini服务:
    sudo systemctl restart frps.service
  • 在家中主机端,重启frpc.ini服务:
    sudo systemctl restart frpc.service
  • 测试ssh:
    用另一台电脑,远程连接家中主机。如果是windows系统,打开powershell,如果是mac,打开terminal,输入:
    ssh USER@ADDR -p SSH_PORT
    其中,USER为家中主机的登陆用户名,ADDR为云主机ip,SSH_PORT为frpc.ini中设置开放的ssh端口。
    连接成功,输入家中主机密码后,即登陆成功。
  • 测试远程桌面:
    用另一台电脑,远程连接家中主机的桌面。
    如果是windows系统,打开远程桌面连接,计算机名为:ADDR:RDP_PORT,用户名为:USER
    其中,USER为家中主机的登陆用户名,ADDR为云主机ip,RDP_PORT为frpc.ini中设置开放的远程桌面端口。
    在rdp登陆界面:
    session:xorg
    username:家中主机登陆用户名
    password:家中主机登陆密码
    连接成功,再次输入家中主机密码后,即登陆成功。
  • 测试远程文件访问:
    用另一台电脑,打开浏览器,访问: http://ADDR:FILE_PORT/file/
    其中,ADDR为云主机ip,FILE_PORT为frpc.ini中设置开放的远程文件访问端口。
    连接成功,输入家中主机用户名和密码后,即登陆成功,可访问和下载家中主机的文件。
  • 测试dashboard
    dashboard是管理frp的面板,用另一台电脑,打开浏览器,访问: http://ADDR:DASH_PORT
    其中,ADDR为云主机ip,DASH_PORT为frps.ini中设置的dashboard端口。
    连接成功,输入frps.ini中设置的dashboard用户名和密码后,即登陆成功,可查看frp连接情况。

安全使用

暴露在公网的云主机很容易被攻击,如果攻击者通过云主机远程连接家中的主机,那就比较危险了,所以,在使用frp时可以通过下列方法,在一定程度上减少被攻击的概率:

  • 及时关闭云主机中的frps.service服务。
    在需要远程连接家中主机时手动该服务,使用后手动关闭。
  • 设置访问ip白名单
    在云主机控制台的安全组中,设置访问白名单,只允许自己的电脑ip访问,其他ip一律不允许访问。
  • 使用密钥登陆
    在云主机中,设置只允许通过密钥登陆,关闭密码登陆,也能起到限制指定电脑访问的作用。
  • 使用stcp
    frp支持使用stcp连接,即在需要访问的电脑上,也安装一个frp,通过配置frpc.ini,再添加一层安全认证,保证安全。缺点是,需要在每台想要访问家中主机的电脑上,都安装一遍frp。

参考:
https://gofrp.org/docs/
https://zhuanlan.zhihu.com/p/336429888?utm_source=zhihu&utm_medium=social&utm_oi=1169924703535304704
https://zhuanlan.zhihu.com/p/396428643
https://zhuanlan.zhihu.com/p/347239470
https://www.zhihu.com/question/391105587
https://www.sohu.com/a/446523786_495675

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值