Make pre-authenticated ports simpler and stricter

This commit is contained in:
Daniel
2021-04-07 16:27:44 +02:00
parent 2564c7b668
commit c8bb071e29
5 changed files with 166 additions and 147 deletions

View File

@@ -63,7 +63,6 @@ func interceptionStart() error {
interceptionModule.StartWorker("stat logger", statLogger)
interceptionModule.StartWorker("packet handler", packetHandler)
interceptionModule.StartWorker("ports state cleaner", portsInUseCleaner)
return interception.Start()
}
@@ -265,13 +264,12 @@ func fastTrackedPermit(pkt packet.Packet) (handled bool) {
func initialHandler(conn *network.Connection, pkt packet.Packet) {
log.Tracer(pkt.Ctx()).Trace("filter: handing over to connection-based handler")
// check for internal firewall bypass
ps := getPortStatusAndMarkUsed(pkt.Info().LocalPort())
if ps.isMe {
// approve
// Check for pre-authenticated port.
if localPortIsPreAuthenticated(conn.Entity.Protocol, conn.LocalPort) {
// Approve connection.
conn.Accept("connection by Portmaster", noReasonOptionKey)
conn.Internal = true
// finish
// Finalize connection.
conn.StopFirewallHandler()
issueVerdict(conn, pkt, 0, true)
return