iptables (Couldn't load match `iplimit':/lib/xtables/libipt_iplimit.so:)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

BigBrother
Сообщения: 436
Статус: ¯\_(ツ)_/¯
ОС: linux based

iptables

Сообщение BigBrother »

uname -a
Linux sub 2.6.31-14-server #48-Ubuntu SMP Fri Oct 16 15:07:34 UTC 2009 x86_64 GNU/Linux

правило вида

Код: Выделить всё

#Максимум 10 одновременных соединений с одного IP
/sbin/iptables -A INPUT -p tcp --dport 80 -m iplimit --iplimit-above 10 -j REJECT

вызывает ошибку вида:

Код: Выделить всё

iptables v1.4.4: Couldn't load match `iplimit':/lib/xtables/libipt_iplimit.so: cannot open shared object file: No such file or directory

Как подгрузить нужный ему модуль, без перезборки ядра?

Спасибо сказали:
Аватара пользователя
*Sasha*
Сообщения: 2519
Статус: Мимо шёл
ОС: Debian

Re: iptables

Сообщение *Sasha* »

А так?

Код: Выделить всё

iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT
Спасибо сказали:
BigBrother
Сообщения: 436
Статус: ¯\_(ツ)_/¯
ОС: linux based

Re: iptables

Сообщение BigBrother »

*Sasha* писал(а):
30.04.2010 19:03
А так?

Код: Выделить всё

iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT

так работает, а какая разница?

Вот мой набор правил

Код: Выделить всё

/sbin/iptables -F INPUT # Очищаем цепочку INPUT
   /sbin/iptables -F OUTPUT # Очищаем цепочку OUTPUT
   /sbin/iptables -F FORWARD # Очищаем цепочку FORWARD
   /sbin/iptables -F lim1
   /sbin/iptables -F ssh_brute_check
   /sbin/iptables -F ssh_knock

   /sbin/iptables -P INPUT DROP #Что не разрешено — то запрещено
   /sbin/iptables -P OUTPUT DROP
   /sbin/iptables -P FORWARD DROP
   /sbin/iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.248 -j ACCEPT
   /sbin/iptables -A OUTPUT -d 192.168.1.0/24 -s 192.168.1.248 -j ACCEPT
   /sbin/iptables -A INPUT -p icmp -j ACCEPT
   /sbin/iptables -A OUTPUT -p icmp -j ACCEPT

   /sbin/iptables -A INPUT -p tcp --dport 80 -m string --string "GET /setting." --algo kmp -j DROP
   #Далее можно поставить ограничение по количеству одновременных соединений
   #Лимит на 20 запросов в секунду для интерфейса eth0
   /sbin/iptables --new-chain lim1
   /sbin/iptables --insert OUTPUT 1 -p tcp --destination-port 80 -o eth0 --jump lim1
   /sbin/iptables --append lim1 -m limit --limit 20/sec --jump RETURN
   /sbin/iptables --append lim1 --jump DROP
   #Максимум 10 одновременных соединений с одного IP
   /sbin/iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT
   #Блокировка более 10 SYN
   /sbin/iptables -I INPUT -p tcp --syn --dport 80 -j DROP -m connlimit --connlimit-above 10
   #20 соединений на сеть класса С
   /sbin/iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j REJECT

   #Правило будет препятствовать спуфингу от нашего имени. Ведь если мы получаем пакет с установленными флагами SYN #и ACK (такой комбинацией флагов обладает только ответ на SYN-пакет) по еще не открытому соединению, это #означает, что кто-то послал другому хосту SYN-пакет от нашего имени, и ответ пришел к нам. Конечно, #злоумышленнику предстоит еще угадать номер последовательности, но лучше не предоставлять ему такого шанса. Согласно приведенному правилу, наш хост ответит RST-пакетом, после получения которого атакуемый хост закроет #соединение. Добавление такого правила в конфигурацию фаервола настоятельно рекомендуется, потому что если #злоумышленнику удастся осуществить спуфинг-атаку от вашего имени, при расследовании этого эпизода следы приведут к вам
   /sbin/iptables -I INPUT -m conntrack --ctstate NEW,INVALID -p tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset

 #Блокирование bruteforce-атак (подбор пароля вслепую) на SSH и аналогичные сервисы. Все попытки открыть новое SSH-соединение проверяются, и с одного IP-адреса можно открывать не более 2 соединений за 10 минут. Обратите внимание, что за одно соединение злоумышленник может проверить несколько #паролей — число попыток аутентификации до обрыва соединения задает параметр MaxAuthTries в файле /etc/ssh/sshd_config. По умолчанию это число #равно 6, так что в нашем примере злоумышленник сможет проверять не более 12 паролей за 10 минут.
   /sbin/iptables -N ssh_brute_check # Создаем цепочку для проверки попыток соединений на защищаемый порт
   # Если за последние 10 минут (600 секунд) с одного адреса было 3 или более новых соединений — блокируем этот адрес
   /sbin/iptables -A ssh_brute_check -m recent --update --seconds 300 --hitcount 3 -j DROP
   # В противном случае — разрешаем, и при этом заносим в список
   /sbin/iptables -A ssh_brute_check -m recent --set -j ACCEPT
   /sbin/iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Разрешаем пакеты по установленным соединениям
   #Все попытки открыть новое соединение по SSH направляем на проверку
   /sbin/iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 22 -j ssh_brute_check
   # Здесь можно разрешать те порты, для которых такая проверка не нужна. Например, HTTP
   /sbin/iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 80 -j ACCEPT

   #Защита от сканирования портов (заметим, что кроме критерия recent для этой задачи можно также использовать критерии psd и lscan из комплекта
   #xtables-addons). Все пакеты, попадающие на нерабочие порты сервера, регистрируются. После нескольких таких попыток за заданный интервал времени #адрес их источника блокируется. Проверка TTL добавлена для защиты от блокировки легитимных клиентов после спуфинга злоумышленником от их #имени. Хотя, с другой стороны, эта мера позволяет ему обойти защиту от сканирования, выставляя своим пакетам различный TTL. Так что вопрос о #нужности этой проверки в вашем конкретном случае вам придется решать самостоятельно. # Если за последний час было 10 или более запросов на нерабочие порты — блокируем
   /sbin/iptables -A INPUT -m recent --rcheck --seconds 3600 --hitcount 10 --rttl -j RETURN
   # Если за последнюю минуту было 2 или более запросов на нерабочие порты — блокируем
   /sbin/iptables -A INPUT -m recent --rcheck --seconds 60 --hitcount 2 --rttl -j RETURN
   # Разрешаем рабочие порты
   /sbin/iptables -A INPUT -m conntrack --ctstate NEW -p tcp -m multiport --dport 22,80,3000,3001 -j ACCEPT
   /sbin/iptables -A INPUT -m conntrack --ctstate NEW -p udp -m multiport --dport 53 -j ACCEPT
   # Всех, кто ломится в нерабочие порты — регистрируем
   /sbin/iptables -A INPUT -m recent --set

  # Port knocking — метод защиты портов, при котором доступ к определенному порту с отдельно взятого IP-адреса открывается после серии пакетов на
  #заданную последовательность портов с заданными интервалами. Обычно эта задача решается при помощи демона knockd либо критерия pknock из комплекта #xtables-addons. Несколько самых простых вариантов такой защиты можно организовать и средствами критерия recent. Самое простое — открывать порт ssh (22) после стука в заданный высокий порт:
  /sbin/iptables -N ssh_knock # Создаем цепочку для проверки попыток соединений на защищаемый порт
  # Если за последние 60 секунд было 2 и более стука — блокируем, на всякий случай
  /sbin/iptables -A ssh_knock -m recent --rcheck --seconds 60 --hitcount 2 -j RETURN
  # Если за последние 10 секунд стук в нужный порт был — разрешить соединение
  /sbin/iptables -A ssh_knock -m recent --rcheck --seconds 10 -j ACCEPT
  /sbin/iptables -F INPUT # Очищаем цепочку INPUT
  /sbin/iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Разрешаем пакеты по установленным соединениям
  # Все попытки открыть новое соединение по SSH направляем на проверку
  /sbin/iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 22 -j ssh_knock
  # Здесь мы добавляем правило для регистрации стука
  /sbin/iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 27520 -m recent --set
  # Опять же на всякий случай — при стуке в соседние порты закрываем SSH
  /sbin/iptables -A INPUT -m conntrack --ctstate NEW -p tcp -m multiport --dport 27519,27521 -m recent --remove
  #Даже в таком простом примере присутствуют жесткие меры защиты: защищаемый порт (22) открывается на 10 секунд после стука в заданный порт (27520), при #этом более одного стука в этот порт в течение минуты считается ошибкой. Также стук в соседние с заданным порты сразу закрывает защищаемый порт. Это  #делается в целях защиты от подбора стука.


# Silently Drop Stealth Scans
 # All of the bits are cleared
 /sbin/iptables -A INPUT -p icmp --icmp-type timestamp-request -j DROP
 /sbin/iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
 # SYN and FIN are both set
 /sbin/iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
 # SYN and RST are both set
 /sbin/iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
 # FIN and RST are both set
 /sbin/iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
 # FIN is the only bit set, without the expected accompanying ACK
 /sbin/iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
 # PSH is the only bit set, without the expected accompanying ACK
  /sbin/iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
 # URG is the only bit set, without the expected accompanying ACK
 /sbin/iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP



где я накосячил, что web server - apache2, выдает такое сообщение, когда пробую достучатся к нему с наружи

Код: Выделить всё

Network Error (tcp_error)

A communication error occurred: "Operation timed out"
The Web Server may be down, too busy, or experiencing other problems preventing it from responding to requests. You may wish to try again at a later time.

For assistance, contact your network support team.


Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: iptables

Сообщение sash-kan »

BigBrother писал(а):
30.04.2010 19:30
apache2, выдает такое сообщение
apache ли это выдаёт?
см. вывод
$ wget -SO /dev/null http://...
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: