如何解决转到 TCP 侦听器 ACL
我意识到我有很多无效的请求访问了我的 HTTP 服务器,但这些请求是在 TCP 会话中并且没有通过 TLS 握手,因此还没有 HTTP 请求。 (我无法在 HTTP 层阻止它)。
我写了下面的内容来过滤 TCP 侦听器的恶意流量,但我认为它不是最佳的,首先接受连接然后关闭,如果连接来自已知 IP 地址,我喜欢完全不接受连接。下一个最好的方法是在 IPtables/NFtables 上进行,但我喜欢探索是否可以在 TCP 侦听器上建立 conn 之前过滤远程地址。我尝试查看 NET 包,看起来它在文件描述符中,这不是一件容易的事。
func main() {
// listen for incoming connections.
l,err := net.Listen(CONN_TYPE,CONN_HOST+":"+CONN_PORT)
if err != nil {
fmt.Println("Error listening:",err.Error())
os.Exit(1)
}
// Close the listener when application closes.
defer l.Close()
fmt.Println("listening on ",CONN_PORT)
for {
//listen for an incoming connection.
conn,err := l.Accept()
if err != nil {
fmt.Println("Error accepting: ",err.Error())
os.Exit(1)
}
fmt.Println(conn.RemoteAddr())
p := fmt.Sprintln(conn.RemoteAddr())
ip := strings.Split(p,":")[0]
if ip == "127.0.0.1" {
conn.Close()
}
// Handle connections in a new goroutine.
go handleRequest(conn)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。