diff --git a/server/handler/payload.go b/server/handler/payload.go index ab2b387..df403d7 100644 --- a/server/handler/payload.go +++ b/server/handler/payload.go @@ -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 } diff --git a/server/handler/pool.go b/server/handler/pool.go index c56b305..bf9b1c7 100644 --- a/server/handler/pool.go +++ b/server/handler/pool.go @@ -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) } diff --git a/web/src/pages/set/Audit.vue b/web/src/pages/set/Audit.vue index 6c4e436..fe7d0e0 100644 --- a/web/src/pages/set/Audit.vue +++ b/web/src/pages/set/Audit.vue @@ -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>