suricata记录一

在suricata应用层解析上,常常能看到这个类型AppProto,下面介绍它的定义。
AppProto的定义在app-layer-protos.h中,如下:

typedef uint16_t AppProto;

其中就是一个16位的无符号整型,指代的应用层协议如下:

enum AppProtoEnum {
    ALPROTO_UNKNOWN = 0,
    ALPROTO_HTTP,
    ALPROTO_FTP,
    ALPROTO_SMTP,
    ALPROTO_TLS, /* SSLv2, SSLv3 & TLSv1 */
    ALPROTO_SSH,
    ALPROTO_IMAP,
    ALPROTO_MSN,
    ALPROTO_JABBER,
    ALPROTO_SMB,
    ALPROTO_SMB2,
    ALPROTO_DCERPC,
    ALPROTO_IRC,

    ALPROTO_DNS,
    ALPROTO_MODBUS,
    ALPROTO_ENIP,
    ALPROTO_DNP3,
    ALPROTO_NFS,
    ALPROTO_NTP,
    ALPROTO_TEMPLATE,

    /* used by the probing parser when alproto detection fails
     * permanently for that particular stream */
    ALPROTO_FAILED,
#ifdef UNITTESTS
    ALPROTO_TEST,
#endif /* UNITESTS */
    /* keep last */
    ALPROTO_MAX,
};

就是一个枚举,未检测时为 ALPROTO_UNKNOWN = 0,其他的协议如HTTP为1,FTP为2,依次类推。如果是不支持的协议,则返回ALPROTO_FAILED。

你可能感兴趣的:(suricata)