, я бы предположил, что если psad
обнаруживает атаки сканирования с какого-то гнусного IP-адреса, он полностью блокирует его на время, установленное в AUTO_BLOCK_TIMEOUT
.
Если вы просто хотите заблокировать атаки сканирования, то из руководства я бы сказал, что вы можете вместо этого использовать этот тайм-аут:
SCAN_TIMEOUT 3600;
выдержка
SCAN_TIMEOUT
Определяет количество секунд, которое psad будет использовать для тайм-аута сканирования ( или другой подозрительный трафик), связанный с отдельными IP-адресами. По умолчанию значение 3600 секунд (один час). Обратите внимание, что SCAN_TIMEOUT используется только если ENABLE_PERSISTENCE установлен в "N".
Если вы посмотрите FAQ , на самом деле там есть раздел, который отговаривает вас от использования psad
таким образом.
3.3. Рекомендуется ли установить ENABLE_AUTO_IDS = "Y", чтобы автоматически блокировать сканирование?
В общем, нет, и эта функция по умолчанию отключена. Причина для это то, что сканирование может быть подделано с любого IP-адреса (см. -S вариант для nmap). Если psad настроен на автоматическую блокировку сканирования тогда злоумышленник может подделать сканирование, скажем, с www.yahoo.com, а затем вы будете анализировать свой набор правил брандмауэра, чтобы понять, почему вы не можете просмотрите веб-сайт Yahoo (или вы можете просто выполнить "psad --Flush", чтобы удалите все автоматически сгенерированные правила брандмауэра). Также расширенное сканирование метод, называемый TCP Idle Scan, требует, чтобы сканированные пакеты подделка злоумышленником с, казалось бы, несвязанного IP-адреса из точка зрения на цель. Nmap реализует сканирование в режиме ожидания с помощью параметра -sI вариант, и хорошее объяснение техники можно найти здесь .
Изучая документацию, я не понимаю, как вы могли бы этого добиться, кроме как путем создания собственных правил, которые будут использоваться при обнаружении атаки.
выдержка
IPTABLES_AUTO_RULENUM
Определяет конкретный номер правила, которое psad будет использовать для добавления автоматически сгенерированные правила блокировки iptables в INPUT, OUTPUT и Цепочки FORWARD (ENABLE_AUTO_IDS должно быть установлено в "Y", чтобы это ключевое слово использоваться). Значение по умолчанию - «1».
Если вам нужно что-то вроде переменной шаблона, вы можете eval
расширить...
A=/dir
B=\$A/bin
eval echo $B
A=/other
eval echo $B
Переменные не ведут себя так. То, что вы хотите, это функция :
B () {
echo "$A/bin"
}
A=/dir
echo $(B)
A=/other
echo $(B)
ksh93 имеет ограниченную форму этого, где переменная может быть косвенной ссылкой на другую переменную:
$ A=/dir
$ typeset -n B=A
$ echo $B
/dir
$ A=/other
$ echo $B
/other
Ни одна из обычных оболочек не имеет переменных, расширение которых происходит дважды. Bash имеет косвенную функцию REALNCE, аналогичную тому, что в KSH, но с различным синтаксисом: вам необходимо указать, что вам нужна косвенная ссылка на момент доступа, а не во время определения.
$ A=/dir
$ B=A
$ echo ${!B}
/dir
$ A=/other
$ echo ${!B}
/other
В общем, значение переменной изменяется только при нанесении ему. Если вы хотите что-то, что пересматривается каждый раз, когда вы его доступаете, извлекают выходной сигнал команды .
Если то, что вы хотите, это динамически изменить значение переменных, используемых другими программами, такими как Путь
и LD_LIBRARY_PATH
, это невозможно, независимо от того, какая расширенная функция Отказ После начала программы его переменные среды являются теми, которые он получил, когда он начал; Изменение значения в оболочке не повлияет на значения в процессе, который уже работает.
Если вы хотите изменить значения этих переменных на основе некоторых событий, вы можете сделать это, запустив код оболочки. Например, вы можете заставить Bash запустить какой-то код каждый раз, когда он отображает подсказку или , когда текущий каталог меняется . Опять же, это не повлияет на программы, которые уже работают.