Linux
-Iptables 1.3.8 c поддержкой Connlimit
Недавно, обратился друг, который арендует сервер у Netdirect.de (сейчас это leaseweb.com) c небольшой проблемой, которая заключалась, в том, что после установки CentOS, обнаружилось, что нет поддержки Connlimit (Модуль ограничений количества сессий с одного ip адреса), на подобные команды: "iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 150 -j REJECT".
Был ответ: "iptables: Unknown error".
Как решалась проблема, описано ниже.
yum install gcc //устанавливаю компилятор, в моём случае его не было
yuminstallkernel-devel // Хиды
cd /usr/src/ // Переходим в директорию, там где будем шаманить
rpm -Uvh iptables-1.3.8-6.fc7.src.rpm //качаем и ставим RPM (можно найти на просторах Интернета iptables-1.3.8-6.fc7.src.rpm)
cd /usr/src/connlimit-1.3.8 //скачиваем архив модуля и распаковываем в данную директорию (можно найти на просторах Интернета connlimit-1.3.8.tar.gz)
rpm -e iptables-ipv6 system-config-securitylevel-tui firstboot-tui //удаляем
переходим в директорию, куда скачивали iptables-1.3.8-6.fc7.src.rpm
rpmbuild --rebuild iptables-1.3.8-6.fc7.src.rpm // Собираем iptables
rpm -Uvh /usr/src/redhat/RPMS/x86_64/iptables-1.3.8-6.x86_64.rpm //Ставим пакет
rpm -Uvh /usr/src/redhat/RPMS/x86_64/iptables-devel-1.3.8-6.x86_64.rpm // И devel
Теперь необходимо собрать модуль ядра:
Открываем /usr/src/connlimit-1.3.8/Makefile
KERNEL_SRC=/usr/src/kernels/2.6.18-238.9.1.el5-x86_64 //указываем путь до сорцов ядра
IPTABLES_SRC=/usr/src/redhat/SOURCES/iptables-1.3.8 //указываем путь до сорцов iptables
make есливсёок, то make install
всё)) Теперь у вас iptables 1.3.8 с connlimit :)
Модуль должен появится в lsmod.
Вводимправило: iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 150 -j REJECT
Данное правило, ограничивает количество сессий с одного IP на порт 80, в данном случае 150 коннектов
iptables-save > /etc/sysconfig/iptables //Сохраняем :)