diff options
| author | 崔一鸣 <[email protected]> | 2019-11-15 20:48:23 +0800 |
|---|---|---|
| committer | 崔一鸣 <[email protected]> | 2019-12-13 16:55:57 +0800 |
| commit | 3b81b3f0832d4175ad0ddbf03d824cfa303b4cd7 (patch) | |
| tree | 09333e231798cdbad975caa93781c0d245e3b4e4 /entry/include | |
| parent | 9e42ae359628b3876e6afb8b0d75f9c030ce059d (diff) | |
kni适配firewall
Diffstat (limited to 'entry/include')
| -rw-r--r-- | entry/include/kni_maat.h | 32 | ||||
| -rw-r--r-- | entry/include/tsg_rule.h | 46 | ||||
| -rw-r--r-- | entry/include/tsg_types.h | 109 |
3 files changed, 155 insertions, 32 deletions
diff --git a/entry/include/kni_maat.h b/entry/include/kni_maat.h deleted file mode 100644 index 7569ff7..0000000 --- a/entry/include/kni_maat.h +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once -#define KNI_MAAT_READCONF_IRIS 0 -#define KNI_MAAT_READCONF_JSON 1 -#define KNI_MAAT_READCONF_REDIS 2 -#define KNI_MAAT_RULE_NUM_MAX 8 -struct kni_maat_handle; - - -/* action - 0x00: none - 0x01: monitor - 0x02: intercept - 0x10: reject - 0x30: Manipulate - 0x60: steer - 0x80: bypass -*/ -enum kni_action{ - KNI_ACTION_NONE = 0x00, - KNI_ACTION_MONITOR = 0x01, - KNI_ACTION_INTERCEPT = 0x02, - KNI_ACTION_REJECT = 0x10, - KNI_ACTION_MANIPULATE = 0x30, - KNI_ACTION_STEER = 0x60, - KNI_ACTION_BYPASS = 0x80 -}; - -struct kni_maat_handle* kni_maat_init(const char* profile, void *logger, int thread_count); -void kni_maat_destroy(struct kni_maat_handle *handle); -enum kni_action intercept_policy_scan(struct kni_maat_handle* handle, struct ipaddr *addr, char *domain, int domain_len, - int thread_seq, int *policy_id, int *do_log, int *is_hit_policy); -char* kni_maat_action_trans(enum kni_action action); diff --git a/entry/include/tsg_rule.h b/entry/include/tsg_rule.h new file mode 100644 index 0000000..f7cfcf3 --- /dev/null +++ b/entry/include/tsg_rule.h @@ -0,0 +1,46 @@ +#ifndef __TSG_RULE_H__ +#define __TSG_RULE_H__ + +#include <MESA/Maat_rule.h> +#include "tsg_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define MAX_DOAMIN_LEN 2048 + +struct _identify_info +{ + tsg_protocol_t proto; //enum _tsg_protocol (tsg_types.h) + int domain_len; + char domain[MAX_DOAMIN_LEN]; +}; + +typedef enum _PULL_RESULT_TYPE +{ + PULL_KNI_RESULT, + PULL_FW_RESULT +}PULL_RESULT_TYPE; + +extern Maat_feather_t g_tsg_maat_feather; + +int tsg_rule_init(const char *conffile); + +int tsg_scan_nesting_addr(Maat_feather_t maat_feather, const struct streaminfo *a_stream, tsg_protocol_t proto, scan_status_t *mid, Maat_rule_t*result, int result_num); + +//return 0 if failed, return >0 on success; +int tsg_pull_policy_result(struct streaminfo *a_stream, PULL_RESULT_TYPE pull_result_type, Maat_rule_t *result, int result_num, struct _identify_info *identify_info); + +//return -1 if failed, return 0 on success; +int tsg_shared_table_init(const char *conffile, Maat_feather_t maat_feather, void *logger); + +//return value: -1: failed, 0: not hit, >0: hit count +int tsg_scan_shared_policy(Maat_feather_t maat_feather, void *pkt, int pkt_len, Maat_rule_t *result, int result_num, struct _identify_info *identify_info, scan_status_t *mid, void *logger, int thread_seq); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/entry/include/tsg_types.h b/entry/include/tsg_types.h new file mode 100644 index 0000000..0967ef3 --- /dev/null +++ b/entry/include/tsg_types.h @@ -0,0 +1,109 @@ +#ifndef __TSG_TYPES_H__ +#define __TSG_TYPES_H__ + +typedef enum _tsg_opt +{ + LOG_OPT_HTTP_URL=1, + LOG_OPT_HTTP_HOST, + LOG_OPT_HTTP_REQUEST_LINE, + LOG_OPT_HTTP_RESPONSE_LINE, + LOG_OPT_HTTP_REQUEST_HEADER, + LOG_OPT_HTTP_RESPONSE_HEADER, + LOG_OPT_HTTP_REQUEST_BODY, + LOG_OPT_HTTP_RESPONSE_BODY, + LOG_OPT_HTTP_PROXY_FLAG, + LOG_OPT_HTTP_SEQUENCE, + LOG_OPT_HTTP_SNAPSHOT, + LOG_OPT_HTTP_COOKIE, + LOG_OPT_HTTP_REFERER, + LOG_OPT_HTTP_USER_AGENT, + LOG_OPT_HTTP_CONTENT_LENGTH, + LOG_OPT_HTTP_CONTENT_TYPE, + LOG_OPT_HTTP_SET_COOKIE, + LOG_OPT_HTTP_VERSION, + + LOG_OPT_MAIL_PROTOCOL_TYPE, + LOG_OPT_MAIL_SENDER, + LOG_OPT_MAIL_RECEIVER, + LOG_OPT_MAIL_SUBJECT, + LOG_OPT_MAIL_CONTENT, + LOG_OPT_MAIL_ATTACHMENT_NAME, + LOG_OPT_MAIL_ATTACHMENT_CONTENT, + LOG_OPT_MAIL_EML_FILE, + LOG_OPT_MAIL_SNAPSHOT, + LOG_OPT_MAIL_SUBJECT_CHARSET, + + LOG_OPT_DNS_MESSAGE_ID, + LOG_OPT_DNS_QR, + LOG_OPT_DNS_OPCODE, + LOG_OPT_DNS_AA, + LOG_OPT_DNS_TC, + LOG_OPT_DNS_RD, + LOG_OPT_DNS_RA, + LOG_OPT_DNS_RCODE, + LOG_OPT_DNS_QDCOUNT, + LOG_OPT_DNS_ANCOUNT, + LOG_OPT_DNS_NSCOUNT, + LOG_OPT_DNS_ARCOUNT, + LOG_OPT_DNS_QNAME, + LOG_OPT_DNS_QTYPE, + LOG_OPT_DNS_QCLASS, + LOG_OPT_DNS_CNAME, + LOG_OPT_DNS_SUB, + LOG_OPT_DNS_RR, + + LOG_OPT_SSL_VERSION, + LOG_OPT_SSL_SNI, + LOG_OPT_SSL_SAN, + LOG_OPT_SSL_CN, + LOG_OPT_SSL_PINNINGST, + LOG_OPT_SSL_INTERCEPT_STATE, + LOG_OPT_SSL_SERVER_SIDE_LATENCY, + LOG_OPT_SSL_CLINET_SIDE_LATENCY, + LOG_OPT_SSL_SERVER_SIDE_VERSION, + LOG_OPT_SSL_CLIENT_SIDE_VERSION, + LOG_OPT_SSL_CERT_VERIFY, + LOG_OPT_SSL_ERROR, + LOG_OPT_SSL_CON_LATENCY_MS, + + LOG_OPT_FTP_URL, + LOG_OPT_FTP_CONTENT, + + LOG_OPT_BGP_TYPE, + LOG_OPT_BGP_AS_NUM, + LOG_OPT_BGP_ROUTE, + + LOG_OPT_VOIP_CALLING_ACCOUNT, + LOG_OPT_VOIP_CALLED_ACCOUNT, + LOG_OPT_VOIP_CALLING_NUMBER, + LOG_OPT_VOIP_CALLED_NUMBER, + + LOG_OPT_RADIUS_PACKET_TYPE, + LOG_OPT_RADIUS_NAS_IP, + LOG_OPT_RADIUS_FRAMED_IP, + LOG_OPT_RADIUS_ACCOUNT, + LOG_OPT_RADIUS_SEESION_TIMEOUT, + LOG_OPT_RADIUS_IDLE_TIMEOUT, + LOG_OPT_RADIUS_ACCT_STATUS_TYPE, + LOG_OPT_RADIUS_ACCT_TERMINATE_CAUSE, + LOG_OPT_MAX +}tsg_opt_t; + +typedef enum _tsg_protocol +{ + PROTO_IPv4, + PROTO_IPv6, + PROTO_TCP, + PROTO_UDP, + PROTO_HTTP, + PROTO_MAIL, + PROTO_DNS, + PROTO_FTP, + PROTO_SSL, + PROTO_SIP, + PROTO_BGP, + PROTO_STREAMING_MEDIA, + PROTO_MAX +}tsg_protocol_t; + +#endif |
