Я использую iptables на Ubuntu Server. Это веб-сервер на VPS.
Я хотел бы знать, если я должен ограничить скорость пакетов. Если так, что я должен ограничить скорость? И я должен сделать это глобально или по IP-адресу?
Ссылка
я видел людей, предлагающих это:
# Limit packet traffic on a TCP or UDP port:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -m limit --limit $lim/s --limit-burst $lb -j ACCEPT
# Limit established/related packet traffic:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit $lim/s --limit-burst $lb -j ACCEPT
Вышеупомянутое, глобальное ограничение скорости не кажется очень полезным, по крайней мере для случаев, которые я могу вообразить. Есть ли какой-нибудь случай, когда я должен ограничить скорость в глобальном масштабе?
Я считаю, что ограничение скорости на IP обычно лучше:
# Add the IP to the list:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -m recent --set --name RATELIMITED
# Drop if exceeded limit:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -m recent --update --seconds $sec --hitcount $hc --rttl --name RATELIMITED -j DROP
# Accept if inside limit:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -j ACCEPT
Дополнительный вопрос: Удаленные IP-адреса могут быть подделаны. Как правильно их ограничить?
Для этого добавлен еще один вопрос:
/server/340258/how-to-rate-limit-spoofed-ips-with-iptables
Цель, которой
я пытаюсь снизить риск некоторых D / DoS-атак и общих злоупотреблений.
Связанный
Как я могу оценить ограничение SSH соединений с iptables?
PS : я только что открыл связанный вопрос только для ICMP, и он включает ограничение скорости для этого протокола: iptables | Типы ICMP: какие из них (потенциально) вредны?
Проблема с -m limit - это ограничение всех пакетов TCP независимо от IP-адресов источника. Так что, если у вас есть низкое ограничение для пакетов синхронизации, таких как
только один клиент с командной строкой hping может отключить ваш сервер, отправив столько пакетов tcp с флагом SYN, потому что правило ограничения будет совпадать, и оно отбросит много пакетов независимо от IP-адресов источника. Лимит не имеет значения между хорошим трафиком и плохим трафиком. Это также снизит хороший входящий трафик.
hping может быть что-то вроде:
Лучше использовать hashlimit, чтобы ограничить количество входящих TCP-соединений на IP-адрес . Следующее правило будет соответствовать, только если будет получено 30 пакетов в секунду, уменьшая количество авторизованных пакетов на IP до 15 пакетов в секунду.
На самом деле, я убежден, что многие серверы, которые сегодня отключены, используются не из-за нехватки ресурсов во время атаки, а из-за того, что модуль limit отбрасывает весь входящий трафик.
источник
Обычно я ограничиваю правила ограничения скорости серверами, которые я ожидаю иметь:
Например, страница входа в панель управления хостингом, POP3, IMAP, SSH и т. Д. Я обычно оставляю службы HTTP широко открытыми и блокирую их только в случае возникновения проблемы.
Вы не хотите отбрасывать хороший веб-трафик. Ссылка на slashdot может отправить вам тонны трафика, и с глобальными правилами вы можете не осознавать проблему.
Что касается поддельных IP-адресов, они не могут быть заблокированы с помощью этого метода и, как правило, не являются проблемой, поскольку эти правила в основном направлены на ограничение установленных соединений TCP. С поддельным IP-адресом TCP-соединение никогда не может быть установлено.
источник