Compare commits

..

7 Commits

Author SHA1 Message Date
f2ac486d24 去除未使用的头文件定义 2024-07-19 13:59:16 +08:00
ab10389228 Merge branch 'master' into dev 2024-07-18 17:58:26 +08:00
99893d8c3d 优化 2024-07-18 17:04:00 +08:00
4aa0d3eac7 Merge branch 'dev' 2024-05-28 11:19:38 +08:00
130dad7ffa 修改错误 2024-05-22 15:35:14 +08:00
fa2ea1f83c Merge branch 'dev' 2024-05-22 15:26:08 +08:00
950bd28f60 修改帮助文件 2023-10-14 09:02:29 +08:00
6 changed files with 34 additions and 51 deletions

View File

@@ -17,7 +17,7 @@ Debian
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
apt -y install libclamav-dev libip4tc-dev libcurl4-openssl-dev #(或者libcurl4-gnutls-dev)
apt -y install libsystemd-dev libjson-c-dev libpcre2-dev clamav-freshclam
apt -y install libltdl-dev libmspack-dev
apt -y install libltdl-dev libmspack-dev cmake
freshclam # 更新病毒库(必要)
@@ -89,6 +89,8 @@ May 22 2024 15:05:59 Compile、link.
```text
配置文件
global {
DAEMON = "off"; // on开启后台运行,off不开启
TIME = "1"; // 睡眠时间(大于等于1,单位秒)
PUBLIC_IP = "http://inet-ip.aixiao.me/"; // 获取公网IP
@@ -109,9 +111,9 @@ global {
IP2REGION = 1; // 是否使用本地 ip2region 地址定位库(1使用,非1不使用)
REGION_LIST = "河南 郑州 上海"; // 地域列表(空格隔开)
NGINX = 0; // 是否启用Nginx白名单
NGINX_LOG_FILE= "/var/log/nginx/access.log"; // Nginx 日志文件
NGINX_REGION_LIST = "中国 河南 郑州 上海 内网"; // 地域列表(空格隔开)
NGINX = 1; // 是否启用Nginx白名单
NGINX_LOG_FILE= "/usr/local/nginx/logs/access.log"; // Nginx 日志文件
NGINX_REGION_LIST = "中国 河南 郑州 上海 内网"; // 地域列表(空格隔开)
IS_DING_WEBHOOK = 0; // 开启叮叮告警(1开启,非1关闭)
PHONE = "15565979082"; // @的人手机号

View File

@@ -1 +1 @@
{"rustc_fingerprint":5376818386984183904,"outputs":{"14371922958718593042":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/usr\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.71.1\nbinary: rustc\ncommit-hash: unknown\ncommit-date: unknown\nhost: x86_64-unknown-linux-gnu\nrelease: 1.71.1\nLLVM version: 16.0.6\n","stderr":""},"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/usr\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""}},"successes":{}}
{"rustc_fingerprint":14922234637089372062,"outputs":{"14371922958718593042":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/usr\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/usr\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.79.0\nbinary: rustc\ncommit-hash: unknown\ncommit-date: unknown\nhost: x86_64-unknown-linux-gnu\nrelease: 1.79.0\nLLVM version: 17.0.6\n","stderr":""}},"successes":{}}

48
conf.c
View File

@@ -120,11 +120,6 @@ static void parse_global_module(char *content, conf * conf)
return;
}
if (strcasecmp(var, "IS_QQMAIL") == 0) {
val_begin_len = val_end - val_begin;
conf->IS_QQMAIL = atoi(val_begin);
}
if (strcasecmp(var, "RECV_MAIL") == 0) {
val_begin_len = val_end - val_begin;
if (copy_new_mem(val_begin, val_begin_len, &conf->RECV_MAIL) != 0)
@@ -277,31 +272,29 @@ void read_conf(char *filename, conf * configure)
void free_conf(conf * conf)
{
if (conf->DAEMON)
free(conf->DAEMON);
if (conf->PHONE)
if (conf->PHONE != NULL)
free(conf->PHONE);
if (conf->DING_WEBHOOK)
if (conf->DING_WEBHOOK != NULL)
free(conf->DING_WEBHOOK);
if (conf->RECV_MAIL)
if (conf->RECV_MAIL != NULL)
free(conf->RECV_MAIL);
if (conf->PUBLIC_IP)
if (conf->PUBLIC_IP != NULL)
free(conf->PUBLIC_IP);
if (conf->IPV4_WHITE_LIST)
if (conf->IPV4_WHITE_LIST != NULL)
free(conf->IPV4_WHITE_LIST);
if (conf->REGION_LIST)
if (conf->REGION_LIST != NULL)
free(conf->REGION_LIST);
if (conf->CLAMAV_TIME)
if (conf->CLAMAV_TIME != NULL)
free(conf->CLAMAV_TIME);
if (conf->CLAMAV_ARG)
if (conf->CLAMAV_ARG != NULL)
free(conf->CLAMAV_ARG);
// NGINX
if (conf->NGINX_LOG_FILE)
if (conf->NGINX_LOG_FILE != NULL)
free(conf->NGINX_LOG_FILE);
if (conf->NGINX_REGION_LIST)
if (conf->NGINX_REGION_LIST != NULL)
free(conf->NGINX_REGION_LIST);
return;
@@ -309,37 +302,36 @@ void free_conf(conf * conf)
void ptintf_conf(conf * conf)
{
if (conf->DAEMON)
if (conf->DAEMON != NULL)
printf("DAEMON %s\n", conf->DAEMON);
printf("TIME %d\n", conf->TIME);
printf("IS_MAIL %d\n", conf->IS_MAIL);
printf("IS_DING_WEBHOOK %d\n", conf->IS_DING_WEBHOOK);
if (conf->PHONE)
if (conf->PHONE != NULL)
printf("PHONE %s\n", conf->PHONE);
if (conf->DING_WEBHOOK)
if (conf->DING_WEBHOOK != NULL)
printf("DING_WEBHOOK %s\n", conf->DING_WEBHOOK);
printf("IS_QQMAIL %d\n", conf->IS_QQMAIL);
if (conf->RECV_MAIL)
if (conf->RECV_MAIL != NULL)
printf("RECV_MAIL %s\n", conf->RECV_MAIL);
if (conf->PUBLIC_IP)
if (conf->PUBLIC_IP != NULL)
printf("PUBLIC_IP %s\n", conf->PUBLIC_IP);
printf("IPV4_RESTRICTION %d\n", conf->IPV4_RESTRICTION);
if (conf->IPV4_WHITE_LIST)
if (conf->IPV4_WHITE_LIST != NULL)
printf("IPV4_WHITE_LIST %s\n", conf->IPV4_WHITE_LIST);
printf("REGION %d\n", conf->REGION);
if (conf->REGION_LIST)
if (conf->REGION_LIST != NULL)
printf("REGION_LIST %s\n", conf->REGION_LIST);
if (conf->CLAMAV_ARG)
if (conf->CLAMAV_ARG != NULL)
printf("CLAMAV_ARG %s %d\n", conf->CLAMAV_ARG, conf->CLAMAV_ARG_LEN);
// Nginx
if (conf->NGINX_LOG_FILE)
if (conf->NGINX_LOG_FILE != NULL)
printf("CLAMAV_ARG %s %d\n", conf->NGINX_LOG_FILE, conf->NGINX_LOG_FILE_LEN);
if (conf->NGINX_REGION_LIST)
if (conf->NGINX_REGION_LIST != NULL)
printf("CLAMAV_ARG %s %d\n", conf->NGINX_REGION_LIST, conf->NGINX_REGION_LIST_LEN);
}

6
conf.h
View File

@@ -46,17 +46,13 @@ typedef struct CONF
char *NGINX_REGION_LIST;
int NGINX_REGION_LIST_LEN;
int IS_MAIL;
// 钉钉
int IS_DING_WEBHOOK;
char *PHONE;
char *DING_WEBHOOK;
// 第三方邮箱
int IS_QQMAIL;
//char *SEND_QQ;
//char *QQMAIL_KEY;
int IS_MAIL;
char *RECV_MAIL;
} conf;

View File

@@ -1,4 +1,6 @@
global {
DAEMON = "off"; // on开启后台运行,off不开启
TIME = "1"; // 睡眠时间(大于等于1,单位秒)
PUBLIC_IP = "http://inet-ip.aixiao.me/"; // 获取公网IP
@@ -19,9 +21,9 @@ global {
IP2REGION = 1; // 是否使用本地 ip2region 地址定位库(1使用,非1不使用)
REGION_LIST = "河南 郑州 上海"; // 地域列表(空格隔开)
NGINX = 0; // 是否启用Nginx白名单
NGINX_LOG_FILE= "/var/log/nginx/access.log"; // Nginx 日志文件
NGINX_REGION_LIST = "中国 河南 郑州 上海 内网"; // 地域列表(空格隔开)
NGINX = 1; // 是否启用Nginx白名单
NGINX_LOG_FILE= "/usr/local/nginx/logs/access.log"; // Nginx 日志文件
NGINX_REGION_LIST = "中国 河南 郑州 上海 内网"; // 地域列表(空格隔开)
IS_DING_WEBHOOK = 0; // 开启叮叮告警(1开启,非1关闭)
PHONE = "15565979082"; // @的人手机号

View File

@@ -54,14 +54,5 @@ typedef struct now_next_time
#define WHITELIST_IP_NUM 1024
#define BUILD(fmt...) do { fprintf(stderr,"%s %s ",__DATE__,__TIME__); fprintf(stderr, ##fmt); } while(0)
#define AWK " | awk -v num=%d '{a[$1]+=1;} END {for(i in a){if (a[i] >= num) {print i;}}}' "
#define GE_10 "grep -E \"^$(LC_ALL=\"C\" date \"+%h\").$(LC_ALL=\"C\" date \"+%d\")\" /var/log/auth.log | grep failure | grep rhost"
#define LE_10 "grep -E \"^$(LC_ALL=\"C\" date \"+%h\")..$(LC_ALL=\"C\" date | awk '{print $3}')\" /var/log/auth.log | grep failure | grep rhost"
#define CENTOS_GE_10 "grep -E \"^$(LC_ALL=\"C\" date \"+%h\").$(LC_ALL=\"C\" date \"+%d\")\" /var/log/secure | grep failure | grep rhost"
#define CENTOS_LE_10 "grep -E \"^$(LC_ALL=\"C\" date \"+%h\")..$(LC_ALL=\"C\" date | awk '{print $3}')\" /var/log/secure | grep failure | grep rhost"
#endif