概要
IP黑名單模組提供了動態IP黑名單的功能,此模組和其他的安全功能模組配合使用,可以實現當某個源IP地址在1秒內發生指定的攻擊次數時,將此IP地址加入到IP黑名單中,並阻斷此IP一段時間。
此模組在SEnginx 1.5.5以及以後的版本中提供。
命令
ip_blacklist
語法 ip_blacklist on/off
預設值 off
上下文 http
控制IP黑名單功能在全域性的開啟和關閉
示例:ip_blacklist on;
ip_blacklist_size
語法 ip_blacklist_size size
預設值 1024
指定IP黑名單的大小,size是黑名單的條數,也就是要儲存的IP數量。
示例:ip_blacklist_size 10240;
ip_blacklist_timeout
語法 ip_blacklist_timeout timeout
預設值 60
指定IP黑名單條目的超時時間,單位為秒。在超時時間範圍內的條目會被阻斷。
示例:ip_blacklist_timeout 120;
ip_blacklist_log
語法 ip_blacklist_log on/off
上下文 http/server/location
指定某個IP地址被加入到黑名單的時候,是否記錄日誌。注意,已經被加到黑名單中的IP地址引發的後續阻斷不會記錄日誌。
示例:ip_blacklist_log on;
ip_blacklist_show
語法 ip_blacklist_show
預設值
上下文 location
指定在某個location下開啟檢視IP黑名單的功能。
示例:lolocation /show_blacklist {
ip_blacklist_show;
}
ip_blacklist_flush
語法 ip_blacklist_flush
指定在某個location下開啟重新整理IP黑名單的功能。
示例:location /flush_blacklist {
ip_blacklist_flush;
然後在瀏覽器或者使用其他的http客戶端,如wget, curl等,訪問/flush_blacklist路徑,即可清空當前系統中的黑名單,例如:
curl http://1.1.1.1/flush_blacklist
此請求會返回狀態碼為444的應答,此應答沒有任何意義,僅是關閉連線而已。
ip_blacklist_mode
語法 ip_blacklist_mode sys/local
預設值 local
全域性指定黑名單的工作模式,分為2種:
1、系統命令模式(sys):指當某個IP地址達到加入黑名單的條件時,條用一條外部命令執行動作,例如將此IP地址加入到系統的iptables中,而SEnginx本身不進行黑名單的記錄。
2、本地模式(local):當某個IP地址達到加入黑名單的條件時,此IP地址會被記錄在SEnginx內部的黑名單列表上,後續的訪問會被在SEnginx處阻斷。
示例:使用系統命令模式:
ip_blacklist_mode sys;
使用SEnginx本地模式:
ip_blacklist_mode local;
ip_blacklist_syscmd
語法 ip_blacklist_syscmd [system command]
指定當IP黑名單的工作模式為sys時SEnginx需要執行的外部系統命令,IP地址在命令中以%V表示
示例:
指定一個指令碼來處理加入到黑名單的IP地址:
ip_blacklist_syscmd "sudo /path/to/a/scritp %V";
使用iptables來加入一個IP地址並阻斷:
ip_blacklist_syscmd "sudo /sbin/iptables -A INPUT -s %V -j DROP";
例子
和機器人緩解模組配合使用的例子
黑名單的次數在機器人模組中設定,下面的這個例子,是指同一IP地址的請求每秒超過10個時,並且這些請求都沒有透過機器人模組的挑戰,則加入黑名單中。http {
... ...
ip_blacklist on;
ip_blacklist_size 10240;
ip_blacklist_timeout 60;
ip_blacklist_log on;
server {
listen 80;
server_name localhost;
location /blacklist_flush {
location /blacklist_show {
location / {
robot_mitigation on;
robot_mitigation_mode js;
robot_mitigation_blacklist 10;
概要
IP黑名單模組提供了動態IP黑名單的功能,此模組和其他的安全功能模組配合使用,可以實現當某個源IP地址在1秒內發生指定的攻擊次數時,將此IP地址加入到IP黑名單中,並阻斷此IP一段時間。
此模組在SEnginx 1.5.5以及以後的版本中提供。
命令
ip_blacklist
語法 ip_blacklist on/off
預設值 off
上下文 http
控制IP黑名單功能在全域性的開啟和關閉
示例:ip_blacklist on;
ip_blacklist_size
語法 ip_blacklist_size size
預設值 1024
上下文 http
指定IP黑名單的大小,size是黑名單的條數,也就是要儲存的IP數量。
示例:ip_blacklist_size 10240;
ip_blacklist_timeout
語法 ip_blacklist_timeout timeout
預設值 60
上下文 http
指定IP黑名單條目的超時時間,單位為秒。在超時時間範圍內的條目會被阻斷。
示例:ip_blacklist_timeout 120;
ip_blacklist_log
語法 ip_blacklist_log on/off
預設值 off
上下文 http/server/location
指定某個IP地址被加入到黑名單的時候,是否記錄日誌。注意,已經被加到黑名單中的IP地址引發的後續阻斷不會記錄日誌。
示例:ip_blacklist_log on;
ip_blacklist_show
語法 ip_blacklist_show
預設值
上下文 location
指定在某個location下開啟檢視IP黑名單的功能。
示例:lolocation /show_blacklist {
ip_blacklist_show;
}
ip_blacklist_flush
語法 ip_blacklist_flush
預設值
上下文 location
指定在某個location下開啟重新整理IP黑名單的功能。
示例:location /flush_blacklist {
ip_blacklist_flush;
}
然後在瀏覽器或者使用其他的http客戶端,如wget, curl等,訪問/flush_blacklist路徑,即可清空當前系統中的黑名單,例如:
curl http://1.1.1.1/flush_blacklist
此請求會返回狀態碼為444的應答,此應答沒有任何意義,僅是關閉連線而已。
ip_blacklist_mode
語法 ip_blacklist_mode sys/local
預設值 local
上下文 http
全域性指定黑名單的工作模式,分為2種:
1、系統命令模式(sys):指當某個IP地址達到加入黑名單的條件時,條用一條外部命令執行動作,例如將此IP地址加入到系統的iptables中,而SEnginx本身不進行黑名單的記錄。
2、本地模式(local):當某個IP地址達到加入黑名單的條件時,此IP地址會被記錄在SEnginx內部的黑名單列表上,後續的訪問會被在SEnginx處阻斷。
示例:使用系統命令模式:
ip_blacklist_mode sys;
使用SEnginx本地模式:
ip_blacklist_mode local;
ip_blacklist_syscmd
語法 ip_blacklist_syscmd [system command]
預設值
上下文 http
指定當IP黑名單的工作模式為sys時SEnginx需要執行的外部系統命令,IP地址在命令中以%V表示
示例:
指定一個指令碼來處理加入到黑名單的IP地址:
ip_blacklist_syscmd "sudo /path/to/a/scritp %V";
使用iptables來加入一個IP地址並阻斷:
ip_blacklist_syscmd "sudo /sbin/iptables -A INPUT -s %V -j DROP";
例子
和機器人緩解模組配合使用的例子
黑名單的次數在機器人模組中設定,下面的這個例子,是指同一IP地址的請求每秒超過10個時,並且這些請求都沒有透過機器人模組的挑戰,則加入黑名單中。http {
... ...
ip_blacklist on;
ip_blacklist_size 10240;
ip_blacklist_timeout 60;
ip_blacklist_log on;
server {
listen 80;
server_name localhost;
location /blacklist_flush {
ip_blacklist_flush;
}
location /blacklist_show {
ip_blacklist_show;
}
location / {
... ...
robot_mitigation on;
robot_mitigation_mode js;
robot_mitigation_blacklist 10;
... ...
}
}
}