mirror of https://github.com/bjdgyc/anylink.git
在审计日志的页面增加详情和访问协议
This commit is contained in:
parent
8837a07fac
commit
6a69377568
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in New Issue