Как настроить систему защиты от троллей?
- У меня есть веб-сайт или, возможно, IRC-сервер или что-то еще.
- Сервер хранит список всех уникальных посетителей (IP-адреса).
- У меня есть кнопка паники, которая при активации запрещает доступ всем посетителям, которых еще нет в списке.
Это должно остановить массовые набеги на троллей, не закрывая службу для постоянных клиентов.
Каков наилучший способ реализовать это на низком уровне, чтобы он не зависел от типа используемого сервера? Например, какой-нибудь iptables вуду или что-то еще?
Дистро это Ubuntu.
2 ответа
Вы можете написать скрипт, который позволяет только им, и отбрасывает все остальное, что-то вроде:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #to allow all established connections to continue, and to allow outgoing connections to get data back
iptables -A INPUT -i ethX -s {allowedIP#1} -j ACCEPT #allow first ip
iptables -A INPUT -i ethX -s {allowedIP#2} -j ACCEPT #..second
... #third and on
iptables -A INPUT -i ethX - -j DROP #drop everything else
Конечно, если ваш список IP-адресов очень велик, это превращается в источник ресурсов.
#!/usr/bin/bash
/sbin/iptables -A INPUT -m state --state NEW -i eth1 -p tcp --destination-port {YOURIRCPORT} -j DROP
Назовите это panickfw.sh
Для разблокировки создайте еще один аналогичный скрипт, который имеет:
/sbin/iptables -D INPUT -m state --state NEW -i eth1 -p tcp --destination-port {YOURIRCPORT} -j DROP
Вы можете настроить его так, чтобы использовать аргументы для выполнения любого правила.