Как может я соединения SSH ограничения скорости с iptables?

Это - округляющаяся проблема. Например, на одной из моих машин:

devtest:~# free -m
             total       used       free     shared    buffers     cached
Mem:          7881       2780       5100          0         26       2417
-/+ buffers/cache:        336       7545
Swap:         7632          0       7632
devtest:~# free -g
             total       used       free     shared    buffers     cached
Mem:             7          2          4          0          0          2
-/+ buffers/cache:          0          7
Swap:            7          0          7

7 881 мебибайт - на самом деле ~7.70 гибибайт, но free -g округляет в меньшую сторону до 7, а не до 8. Аналогично существует ~4.98 гибибайта свободной памяти, но free -g округляет это в меньшую сторону до 4 не до 5.

Общая память, о которой сообщают free не включает память, к которой не может получить доступ ядро (в случае сервера выше должного к ограничениям чипсета, не позволяющим последнему блоку 8 ГБ, имеет использоваться, в некоторых случаях видеокарта машины может требовать некоторой RAM, если это не имеет своего собственного), и при этом это не сообщает о маленьком блоке RAM, в которую распаковано ядро при начальной загрузке (так на одном из меньших VMs на хосте, выше которого имеет 128M выделенный, свободный только сообщает о 126,616 K, 123 М (где это на самом деле больше похоже на 123,6 М), или 0 G) - таким образом, Вы никогда не будете рассматривать то же значение как свою физическую общую RAM в free -g.

В Вашем случае free видит 1 982,7 М или 1.94 G, которые это округляет в меньшую сторону до 1.

4
задан 8 August 2011 в 23:08
1 ответ

Просто добавьте следующее:

-A INPUT -p tcp --dport 2020 -m state --state NEW -j ACCEPT

... прямо после этих двух строк:

-A INPUT -p tcp --dport 2020 -m state --state NEW -m recent --set --name SSH
-A INPUT -p tcp --dport 2020 -m state --state NEW -m recent --update --seconds 120 --hitcount 8 --rttl --name SSH -j DROP

Кроме того, необходимо думать о задаче крона, которая уберет/proc/net/ipt_recent/SSH (ipt_recent может быть xt_recent на более новых платформах), время от времени, в случае, если Вы заблокированы.

Править: Ваше правило, заказывая взгляды, немного нечетные мне, на вашем месте, я пошел бы с чем-то вроде этого:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

# Loopback interface
-A INPUT -i lo -j ACCEPT

# ICMP traffic
-A INPUT -p icmp --icmp-type any -j ACCEPT

# Already established connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH
-A INPUT -p tcp --dport 2020 -m state --state NEW -m recent --set --name SSH
-A INPUT -p tcp --dport 2020 -m state --state NEW -m recent --update --seconds 120 --hitcount 8 --rttl --name SSH -j DROP
-A INPUT -p tcp --dport 2020 -m state --state NEW -j ACCEPT

# Web services
-A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
-A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
-A INPUT -p tcp --dport 8088 -m state --state NEW -j ACCEPT

# Reject everything else
-A INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT
9
ответ дан 3 December 2019 в 02:46

Теги

Похожие вопросы