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

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
server/handler
web/src/pages/set

View File

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

View File

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

View File

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