mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-29 17:28:55 +00:00
295 lines
6.7 KiB
PHP
295 lines
6.7 KiB
PHP
<?php
|
|
|
|
return [
|
|
|
|
/*
|
|
* Enable / disable firewall
|
|
*
|
|
*/
|
|
|
|
'enabled' => env('FIREWALL_ENABLED', true),
|
|
|
|
/*
|
|
* Whitelisted and blacklisted IP addresses, ranges, countries, files and/or files of files
|
|
*
|
|
* Examples of IP address, hosts, country codes and CIDRs
|
|
* '127.0.0.1',
|
|
* '192.168.17.0/24'
|
|
* '127.0.0.1/255.255.255.255'
|
|
* '10.0.0.1-10.0.0.255'
|
|
* '172.17.*.*'
|
|
* 'country:br'
|
|
* 'host:google.com',
|
|
* storage_path().DIRECTORY_SEPARATOR.'blacklisted.txt', // a file with IPs, one per line
|
|
*/
|
|
|
|
'blacklist' => [
|
|
],
|
|
|
|
'whitelist' => [
|
|
],
|
|
|
|
/*
|
|
* Response action for blocked responses
|
|
*
|
|
*/
|
|
|
|
'responses' => [
|
|
'blacklist' => [
|
|
'code' => 403, // 200 = log && notify, but keep pages rendering
|
|
|
|
'message' => null,
|
|
|
|
'view' => null,
|
|
|
|
'redirect_to' => null,
|
|
|
|
'abort' => false, // return abort() instead of Response::make() - disabled by default
|
|
],
|
|
|
|
'whitelist' => [
|
|
'code' => 403, // 200 = log && notify, but keep pages rendering
|
|
|
|
'message' => null,
|
|
|
|
'view' => null,
|
|
|
|
'redirect_to' => null,
|
|
|
|
'abort' => false, // return abort() instead of Response::make() - disabled by default
|
|
],
|
|
],
|
|
|
|
/*
|
|
* Do you wish to redirect non whitelisted accesses to an error page?
|
|
*
|
|
* You can use a route name (coming.soon) or url (/coming/soon);
|
|
*
|
|
*/
|
|
|
|
'redirect_non_whitelisted_to' => null,
|
|
|
|
/*
|
|
* How long should we keep IP addresses in cache?
|
|
*
|
|
* This is a general client IP addresses cache. When the user hits your ssytem his/her IP address
|
|
* is searched and cached for the desired time. Finding an IP address contained in a CIDR
|
|
* range (172.17.0.0/24, for instance) can be a "slow", caching it improves performance.
|
|
*
|
|
*/
|
|
|
|
'cache_expire_time' => 60, // minutes
|
|
|
|
/*
|
|
* How long should we keep lists of IP addresses in cache?
|
|
*
|
|
* This is the list cache. Database lists can take some time to load and process,
|
|
* caching it, if you are not making frequent changes to your lists, may improve firewall speed a lot.
|
|
*/
|
|
|
|
'ip_list_cache_expire_time' => 0, // minutes - disabled by default
|
|
|
|
/*
|
|
* Send suspicious events to log?
|
|
*
|
|
*/
|
|
|
|
'enable_log' => true,
|
|
|
|
/*
|
|
* Search by range allow you to store ranges of addresses in
|
|
* your black and whitelist:
|
|
*
|
|
* 192.168.17.0/24 or
|
|
* 127.0.0.1/255.255.255.255 or
|
|
* 10.0.0.1-10.0.0.255 or
|
|
* 172.17.*.*
|
|
*
|
|
* Note that range searches may be slow and waste memory, this is why
|
|
* it is disabled by default.
|
|
*
|
|
*/
|
|
|
|
'enable_range_search' => true,
|
|
|
|
/*
|
|
* Search by country range allow you to store country ids in your
|
|
* your black and whitelist:
|
|
*
|
|
* php artisan firewall:whitelist country:us
|
|
* php artisan firewall:blacklist country:cn
|
|
*
|
|
*/
|
|
|
|
'enable_country_search' => true,
|
|
|
|
/*
|
|
* Should Firewall use the database?
|
|
*/
|
|
|
|
'use_database' => true,
|
|
|
|
/*
|
|
* Models
|
|
*
|
|
* When using the "eloquent" driver, we need to know which Eloquent models
|
|
* should be used.
|
|
*
|
|
*/
|
|
|
|
'firewall_model' => 'PragmaRX\Firewall\Vendor\Laravel\Models\Firewall',
|
|
|
|
/*
|
|
* Session object binding in the IoC Container
|
|
*
|
|
* When blacklisting IPs for the current session, Firewall
|
|
* will need to instantiate the session object.
|
|
*
|
|
*/
|
|
|
|
'session_binding' => 'session',
|
|
|
|
/*
|
|
* GeoIp2 database path.
|
|
*
|
|
* To get a fresh version of this file, use the command
|
|
*
|
|
* php artisan firewall:updategeoip
|
|
*
|
|
*/
|
|
|
|
'geoip_database_path' => __DIR__.'/geoip', //storage_path('geoip'),
|
|
|
|
/*
|
|
* Block suspicious attacks
|
|
*/
|
|
|
|
'attack_blocker' => [
|
|
|
|
'enabled' => [
|
|
'ip' => true,
|
|
|
|
'country' => false,
|
|
],
|
|
|
|
'cache_key_prefix' => 'firewall-attack-blocker',
|
|
|
|
'allowed_frequency' => [
|
|
|
|
'ip' => [
|
|
'requests' => 10,
|
|
|
|
'seconds' => 1 * 60, // 1 minute
|
|
],
|
|
|
|
'country' => [
|
|
'requests' => 3000,
|
|
|
|
'seconds' => 2 * 60, // 2 minutes
|
|
],
|
|
|
|
],
|
|
|
|
'action' => [
|
|
|
|
'ip' => [
|
|
'blacklist_unknown' => true,
|
|
|
|
'blacklist_whitelisted' => false,
|
|
],
|
|
|
|
'country' => [
|
|
'blacklist_unknown' => false,
|
|
|
|
'blacklist_whitelisted' => false,
|
|
],
|
|
|
|
],
|
|
|
|
'response' => [
|
|
'code' => 403, // 200 = log && notify, but keep pages rendering
|
|
|
|
'message' => null,
|
|
|
|
'view' => null,
|
|
|
|
'redirect_to' => null,
|
|
|
|
'abort' => false, // return abort() instead of Response::make() - disabled by default
|
|
],
|
|
|
|
],
|
|
|
|
'notifications' => [
|
|
'enabled' => true,
|
|
|
|
'message' => [
|
|
'title' => 'User agent',
|
|
|
|
'message' => "A possible attack on '%s' has been detected from %s",
|
|
|
|
'request_count' => [
|
|
'title' => 'Request count',
|
|
|
|
'message' => 'Received %s requests in the last %s seconds. Timestamp of first request: %s',
|
|
],
|
|
|
|
'uri' => [
|
|
'title' => 'First URI offended',
|
|
],
|
|
|
|
'blacklisted' => [
|
|
'title' => 'Was it blacklisted?',
|
|
],
|
|
|
|
'user_agent' => [
|
|
'title' => 'User agent',
|
|
],
|
|
|
|
'geolocation' => [
|
|
'title' => 'Geolocation',
|
|
|
|
'field_latitude' => 'Latitude',
|
|
|
|
'field_longitude' => 'Longitude',
|
|
|
|
'field_country_code' => 'Country code',
|
|
|
|
'field_country_name' => 'Country name',
|
|
|
|
'field_city' => 'City',
|
|
],
|
|
],
|
|
|
|
'route' => '',
|
|
|
|
'from' => [
|
|
'name' => 'Laravel Firewall',
|
|
|
|
'address' => 'firewall@mydomain.com',
|
|
|
|
'icon_emoji' => ':fire:',
|
|
],
|
|
|
|
'users' => [
|
|
'model' => PragmaRX\Firewall\Vendor\Laravel\Models\User::class,
|
|
|
|
'emails' => [
|
|
config('nntmux.admin_email'),
|
|
],
|
|
],
|
|
|
|
'channels' => [
|
|
'slack' => [
|
|
'enabled' => false,
|
|
'sender' => PragmaRX\Firewall\Notifications\Channels\Slack::class,
|
|
],
|
|
|
|
'mail' => [
|
|
'enabled' => true,
|
|
'sender' => PragmaRX\Firewall\Notifications\Channels\Mail::class,
|
|
],
|
|
],
|
|
],
|
|
];
|