在审计日志的页面增加详情和访问协议

This commit is contained in:
lanrenwo 2022-07-15 11:27:54 +08:00
parent 8837a07fac
commit 6a69377568
3 changed files with 48 additions and 24 deletions

View File

@ -1,7 +1,9 @@
package handler
import (
"crypto/md5"
"encoding/binary"
"encoding/hex"
"github.com/bjdgyc/anylink/base"
"github.com/bjdgyc/anylink/dbdata"
@ -127,7 +129,7 @@ func logAudit(cSess *sessdata.ConnSession, pl *sessdata.Payload) {
ipDst := waterutil.IPv4Destination(pl.Data)
ipPort := waterutil.IPv4DestinationPort(pl.Data)
b := getByte290()
b := getByte51()
key := *b
copy(key[:16], ipSrc)
copy(key[16:32], ipDst)
@ -139,9 +141,9 @@ func logAudit(cSess *sessdata.ConnSession, pl *sessdata.Payload) {
}
key[34] = byte(accessProto)
if info != "" {
copy(key[35:35+len(info)], info)
md5Sum := md5.Sum([]byte(info))
copy(key[35:51], hex.EncodeToString(md5Sum[:]))
}
s := utils.BytesToString(key)
nu := utils.NowSec().Unix()
@ -149,7 +151,7 @@ func logAudit(cSess *sessdata.ConnSession, pl *sessdata.Payload) {
v, ok := cSess.IpAuditMap[s]
if ok && nu-v < int64(base.Cfg.AuditInterval) {
// 回收byte对象
putByte290(b)
putByte51(b)
return
}

View File

@ -92,20 +92,20 @@ type BufferPool struct {
sync.Pool
}
// 长度 290 对象
var byte290Pool = sync.Pool{
// 长度 51 小对象
var byte51Pool = sync.Pool{
New: func() interface{} {
b := make([]byte, 290)
b := make([]byte, 51)
return &b
},
}
func getByte290() *[]byte {
b := byte290Pool.Get().(*[]byte)
func getByte51() *[]byte {
b := byte51Pool.Get().(*[]byte)
return b
}
func putByte290(b *[]byte) {
*b = (*b)[:290]
byte290Pool.Put(b)
func putByte51(b *[]byte) {
*b = (*b)[:51]
byte51Pool.Put(b)
}

View File

@ -16,39 +16,50 @@
<el-table-column
prop="username"
label="用户名">
</el-table-column>
<el-table-column
prop="protocol"
label="协议">
label="用户名"
width="120">
</el-table-column>
<el-table-column
prop="src"
label="源IP地址">
label="源IP地址"
width="140">
</el-table-column>
<el-table-column
prop="dst"
label="目的IP地址">
label="目的IP地址"
width="140">
</el-table-column>
<el-table-column
prop="dst_port"
label="目的端口">
label="目的端口"
width="85">
</el-table-column>
<el-table-column
prop="access_proto"
label="访问协议"
width="85"
:formatter="protoFormat">
</el-table-column>
<el-table-column
prop="info"
label="详情">
</el-table-column>
<el-table-column
prop="created_at"
label="创建时间"
width="150"
:formatter="tableDateFormat">
</el-table-column>
<el-table-column
label="操作"
width="150">
width="100">
<template slot-scope="scope">
<el-popconfirm
class="m-left-10"
@ -89,7 +100,7 @@ export default {
mixins: [],
created() {
this.$emit('update:route_path', this.$route.path)
this.$emit('update:route_name', ['基础信息', 'IP审计'])
this.$emit('update:route_name', ['基础信息', '审计日志'])
},
mounted() {
this.getData(1)
@ -99,6 +110,7 @@ export default {
tableData: [],
count: 10,
nowIndex: 0,
accessProtoArr:["", "UDP", "TCP", "HTTPS", "HTTP"],
}
},
methods: {
@ -136,6 +148,16 @@ export default {
console.log(error);
});
},
protoFormat(row) {
var access_proto = row.access_proto
if (row.access_proto == 0) {
switch (row.protocol) {
case 6: access_proto = 2; break;
case 17: access_proto = 1; break;
}
}
return this.accessProtoArr[access_proto]
},
},
}
</script>