ql_firewall.h 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #ifndef __QL_FIREWALL_H__
  2. #define __QL_FIREWALL_H__
  3. /*
  4. RTOS 基于LWIP的IDS检测原理简介:
  5. 数据处理位置:
  6. 在modem网络与lwip input数据入口处添加IDS检测逻辑,符合规则的数据包将会送给lwip继续处理
  7. 检测逻辑简介:
  8. 一、攻击检测会自动过滤非法数据包如:
  9. 1.回环IP地址攻击
  10. 2.源端口为0的攻击行为
  11. 3.TCP非法Flags攻击
  12. 二、黑白名单处理:
  13. 1.白名单:上层应用层开启用到的端口号会加入访问白名单数据送入后可以提交给lwip
  14. 2.黑名单:未使用的端口号被外网访问则在满足一定门限之后加入到黑名单并记录访问日志
  15. 三、门限简介:
  16. QL_TCP_BLACKLIST_CLEAN_TIME TCP黑名单自动清空定时时间
  17. QL_TCP_RECORD_LIST_CLEAN_TIME TCP访问IPlist表清除时间
  18. QL_ICMP_BLACKLIST_CLEAN_TIME ICMP黑名单自动清空定时时间
  19. QL_ICMP_RECORD_LIST_CLEAN_TIME ICMP访问IPlist表清除时间
  20. QL_TCP_ACCESS_PERCENTAGE 防止端口扫描正确访问端口号百分比(现有原理上慢速攻击无法检测 eg:1s一次端口扫描)
  21. QL_ICMP_INPUT_INTERVAL ICMP风暴攻击间隔百分比(现有原理上慢速攻击无法检测 eg:500ms一次ICMP)
  22. */
  23. typedef enum
  24. {
  25. QL_TCP_FIREWALL_ENABLE = 0,
  26. QL_TCP_BLACKLIST_CLEAN_TIME= 1,
  27. QL_TCP_RECORD_LIST_CLEAN_TIME,
  28. QL_ICMP_BLACKLIST_CLEAN_TIME,
  29. QL_ICMP_RECORD_LIST_CLEAN_TIME,
  30. QL_TCP_ACCESS_PERCENTAGE,
  31. QL_TCP_INPUT_SCALE = 6,
  32. QL_ICMP_INPUT_SCALE,
  33. QL_ICMP_INPUT_INTERVAL,
  34. QL_FIREWALL_CONFIG_MAX
  35. }ql_firewall_config_type;
  36. /*****************************************************************
  37. * Function: ql_firewall_disable
  38. *
  39. * Description: 获取firewall检测门限值
  40. *
  41. * Parameters:
  42. * config 模式
  43. * value 要调整的数值
  44. * Return:
  45. * void 无
  46. *
  47. *****************************************************************/
  48. int ql_firewall_get_config(ql_firewall_config_type config);
  49. /*****************************************************************
  50. * Function: ql_firewall_disable
  51. *
  52. * Description: 配置firewall检测门限值
  53. *
  54. * Parameters:
  55. * config 模式
  56. * value 要调整的数值
  57. * Return:
  58. * void 无
  59. *
  60. *****************************************************************/
  61. void ql_firewall_set_config(ql_firewall_config_type config, int value);
  62. /*****************************************************************
  63. * Function: ql_firewall_enable
  64. *
  65. * Description: 启动firewall功能,默认只需要调用enable即可,后台均有以调试好的默认配置
  66. * 无需调用config进行相关配置。
  67. *
  68. * Parameters:
  69. * enbale 0 关闭IDS检测防攻击功能
  70. * 1 开启IDS检测攻击功能
  71. * Return:
  72. * void
  73. *
  74. *****************************************************************/
  75. void ql_firewall_enable(int enable);
  76. #endif