Go frp內(nèi)網(wǎng)穿透防暴力破解工具

起因

最近自己的frp服務(wù)器上,老是會(huì)被一些莫名其妙的人嘗試暴力破擊我的遠(yuǎn)程鏈接密碼,雖然16位大小寫數(shù)字加特殊字符的密碼很難破解,但看著也煩,還影響心情。于是打算自己寫一個(gè)小工具,分析破解的IP所在地和攻擊頻率,將它加到防火墻中去直接屏蔽。

步驟分析

1、監(jiān)聽日志

frp 0.36之后的版本是有tcp連接的日志的,格式為
2021/08/24 12:04:04 [I] [proxy.go:162] [70107e20979a59c9] [ZNGW] get a user connection [119.1.97.214:3807]

只要實(shí)時(shí)監(jiān)聽日志文件,并從這個(gè)格式中提取出我們需要的 配置的TCP轉(zhuǎn)發(fā)名(ZNGW)和請(qǐng)求者IP(119.1.97.214) 就可以了

2、獲取IP地理位置

可以通過獲取ip位置的一些api接口獲取,如http://ip-api.com/json/ip地址字串?lang=zh-CN

{
  status: "success",
  country: "中國",
  countryCode: "CN",
  region: "GZ",
  regionName: "貴州",
  city: "興義",
  zip: "",
  lat: 25.0502,
  lon: 104.9877,
  timezone: "Asia/Shanghai",
  isp: "Chinanet",
  org: "Chinanet GZ",
  as: "AS4134 CHINANET-BACKBONE",
  query: "119.1.97.214"
}

3、根據(jù)配置規(guī)則決定是否限制

可以指定一張規(guī)則表,什么地方的ip可以訪問,什么地方的ip不能訪問,什么地方的ip訪問有頻率限制等

# 規(guī)則訪問
rules:

  # 按數(shù)組順序來,匹配到了就按匹配的規(guī)則執(zhí)行,跳過此規(guī)則。
  # 地區(qū)以 http://ip-api.com/json/?lang=zh-CN 查詢的結(jié)果為準(zhǔn)
  # 端口: -1 所有端口
  # time: 時(shí)間區(qū)間
  # count: 訪問次數(shù),-1不限,0限制。其他為 time時(shí)間內(nèi)訪問count次,超出頻率就限制

  - # 中國上海IP允許
    port: -1
    country: 中國
    regionName: 上海
    city: 上海
    time: 1
    count: -1

  - # 中國地區(qū)IP跳過地域判斷
    port: -1
    country: 中國
    regionName:
    city:
    time: 600
    count: 3

  - # 其他地區(qū)IP禁止
    port: -1
    country:
    regionName:
    city:
    time: 1
    count: 0

4、加入防火墻

linux有iptables和firewall二種防火墻,win中有Microsoft Defender,這些都是可以通過命令行來添加拒絕通過的規(guī)則的。

  • iptables: iptables -I INPUT -s 119.1.97.214 -j DROP
  • firewall: firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="119.1.97.214" reject"
  • Microsoft Defender: netsh advfirewall firewall add rule name=119.1.97.214 dir=in action=block protocol=TCP remoteip=119.1.97.214

大致思路是這樣,然后抽空花了點(diǎn)時(shí)間,用Go寫了一個(gè)這樣的小工具。完整代碼:https://github.com/zngw/frptables

測(cè)試

目前已經(jīng)在frp服務(wù)器上運(yùn)行1天了,效果還是有的,可以明顯看日志文件鏈接數(shù)變少了,也添加了幾個(gè)明顯的攻擊者IP到防火墻中

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容