express-jail
Version:
Express middleware which add malicious actors into a Fail2Ban jail
30 lines (27 loc) • 1.08 kB
TypeScript
import type {RequestHandler, Response, Request} from 'express'
export default function expressJailMiddleware(options?: Partial<ExpressJailMiddlewareOptions>) : RequestHandler & {
ban: (ip: string, context?: unknown) => Promise<void>;
bans: () => Promise<Array<{
ip: string;
from: Date;
time: number;
to: Date;
}>>;
hasBan: (ip: string) => Promise<boolean>;
on(event: 'ban', handler: (info: {ip: string, req?: Request, res?: Response}) => Promise<boolean>): void
on(event: 'banned', handler: (info: {ip: string, req?: Request, res?: Response}) => void): void
on(event: 'unban', handler: (info: {ip: string}) => Promise<boolean>): void
on(event: 'unbanned', handler: (info: {ip: string}) => void): void
setup: () => Promise<void>;
unban: (ip: string, context?: unknown) => Promise<void>;
version: () => Promise<string>;
};
interface ExpressJailMiddlewareOptions {
clientBinary: string[],
jail: string,
jailPorts: string,
minVersion: string,
paths: string[],
responseCode: number,
setup: boolean,
}