Linux / Сеть и коммутация / Безопасность
Рассмотрим вариант блокировки спама с использованием автоматически генерируемого и обновляемого списка блокировки IP адресов.mkdir /tmp/ufw_rulesДля удобства работы мы так-же генерируем адаптированый список для фаервола ufw, его можно загрузить в созданный каталог:wget -P /tmp/ufw_rules/ http://it-git.ru/dst/ufw_before.rulesДалее для простоты условно разобем исходный файл before.rules на два:wget -P /tmp/ufw_rules/ http://it-git.ru/dst/tmp1_before.rules
wget -P /tmp/ufw_rules/ http://it-git.ru/dst/tmp2_before.rules#!/bin/bash
cd /tmp/ufw_rules/
rm ufw_before.rules
wget http://it-git.ru/dst/ufw_before.rules
cat /dev/null > /etc/ufw/before.rules
cat tmp1_before.rules ufw_before.rules tmp2_before.rules >> /etc/ufw/before.rules
service ufw restart
/file/remove blacklist_mikrotik.rsc
/ip/firewall/address-list/remove [find list=blacklist comment=IT-GIT]
/tool fetch url="http://it-git.ru/dst/blacklist_mikrotik.rsc" mode=http;
/import file-name=blacklist_mikrotik.rscПеред выполнение данного скрипта, желательно сначала загрузить через консоль:/tool fetch url="http://it-git.ru/dst/blacklist_mikrotik.rsc" mode=http;ip firewall address-list
:local update do={
:do {
:local data ([:tool fetch url=$url output=user as-value]->"data")
remove [find list=blacklist comment=$description]
:while ([:len $data]!=0) do={
:if ([:pick $data 0 [:find $data "\n"]]~"^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}") do={
:do {add list=blacklist address=([:pick $data 0 [:find $data $delimiter]].$cidr) comment=$description timeout=1d} on-error={}
}
:set data [:pick $data ([:find $data "\n"]+1) [:len $data]]
}
} on-error={:log warning "Address list <$description> update failed"}
}
$update url=http://it-git.ru/dst/spamers.list description="Spamer ip IT-GIT" delimiter=("\n")/system script run ИМЯ_Скрипта/ip firewall raw
add action=drop chain=prerouting in-interface=ether1 src-address-list=blacklistЧто такое IT-GIT?
«IT» — это не просто технологии, а целый мир инноваций и решений, направленных на преодоление сложностей. Мы представляем экспертность в области информационных технологий и широкой технологической экосистемы, стремясь к постоянному развитию и совершенствованию.
«Git» — это отсылка к одной из самых популярных систем контроля версий, которая обеспечивает эффективное сотрудничество, быструю итерацию и надежное управление сложными проектами. Мы стремимся объединить и поделиться опытом и идеями специалистов в сфере технологий, создавая пространство для обмена знаниями.
Инновационные технологии + совместный опыт экспертов в области технологий = путь к успеху!