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,太容易被猜到了,設定為跟常規端口不同的端口號,特別是比較大的端口號,減少被掃描中的概率。

六、使用跳板機

不在重要的主機上直接做內網穿透,而是在同一局域網中的另一台不太重要的主機上做。能保證跳板機與其他內網主機連接就行。(感覺也挺麻煩的,每次連接上還要再連一次)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM