Установка IPSET, TARPIT и т.д. на Squeeze

Честно скопи-пастил отсюда 🙂

# aptitude update && aptitude install module-assistant xtables-addons-source
# m-a prepare
# m-a auto-install xtables-addons-source
# depmod -a

Новые таржеты для iptables:

  • CHAOS: randomly use REJECT, DELUDE or TARPIT targets.
    This will fool network scanners by returning random results
  • DELUDE: always reply to a SYN by a SYN-ACK. This will fool TCP half-open discovery
  • DHCPADDR: replace a MAC address from and to a VMware host
  • IPMARK: mark a packet, based on its IP address
  • LOGMARK: log packet and mark to syslog
  • SYSRQ: trigger a sysreq over the network (sending a saK over the network looks like a real funny ida
  • TARPIT: try to slow down (or DoS) remote host by capturing the session and holding it for a long time, using a 0-bytes TCP window. Run that on port 25 if you have no mail server to slow down spammers 😉

Новые совпадения (matches) для iptables:
condition: match on boolean value stored in /proc/net/nf_condition/name
dhcpaddr: match the DHCP Client Host address in a DHCP message
fuzzy: match a rate limit based on a fuzzy logic controller
geoip: match a packet by its source or destination country
ipp2p: match (certain) p2p protocols
quota2: named counters
pknock: port knock
.... и другие.

У себя собрал, но запустить в работу еще руки не дошли.

Очередная лажа с ядром.

Итак, вот что я сегодня выкопал.
Локальная уязвимость в ядре позволяет устроить ДоС.

Проверил на ядрах центоса, дебиана. Результат везде один - отказ в обслуживани. Запущенный процесс не убивается, никак.
Помогает физический ребут 🙂

В оригинале:

Simple kernel attack using socketpair. easy, 100% reproductiblle, works under guest. no way to protect 🙁
Process become in state 'Running' but not killalble via kill -KILL.
eat 100% CPU, eat all available internal file descriptors in kernel

Вот так.
Найдено здесь.
фикс: использовать grsecurity или патчить ядро.

Как закрыть sshd без iptables

Если лень возиться с iptables, то ограничить доступ к ssh (и не только) можно и без iptables.

Для этого достаточно дописать несколько строк в файлы
/etc/hosts.allow
/etc/hosts.deny

Например, открываем доступ к sshd с ip 192.168.1.12 и 192.168.250.250, а для остальных доступ к sshd будет закрыт.
Добавляем в файл /etc/hosts.allow строку, где указаны разрешенные ip:

sshd: 192.168.1.12, 192.168.250.250

А в файле /etc/hosts.deny закрываем доступ всем, кроме разрешенных:

sshd: ALL

При попытке подключения с неразрешенного хоста получим ответ:

# ssh 192.168.0.1
ssh_exchange_identification: Connection closed by remote host

А если подключаться с разрешенного, то увидим приглашение ssh.

# ssh 192.168.0.1
user@host's password:

Вот такой простой способ 🙂
Таким же способом, например, можно разрешить/запретить коннекты с mysqld, nfs или другим сервисам.

CSF FireWall + DirectAdmin

ConfigServer сделали интеграцию CSF фаирвола с панелью управления хостингом DirectAdmin.

При установке скрипт проверяет необходимые параметры и сам интегрируется в администртивную часть DirectAdmin-а. Все просто и удобно. Настройки CSF фаирвола будут доступны для редактирования в административной части хостинг-панели.

Итак, устанавливаем:

wget http://www.configserver.com/free/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

После установки запускем скрипт для проверки необходимых модулей в iptables:

# perl /etc/csf/csftest.pl
Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing ipt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK

RESULT: csf should function on this server

При установке скрипт автоматически делает преднастройку первоначального конфигурационного файла.
После инсталляции можно приступить к более тонкой настройке параметров либо прямо в файле /etc/csf.conf, либо в панели управления.
Скиншоты GUI посмотреть можно тут, тут и тут

CSF великолепно работает как с панелями так и без них, CSF Firewall интегрируется в такие панели как: Cpanel, DirectAdmin, Webmin

CSF Firewall

CSF Firewall от ConfigServer

updated: 19.02.2009

Достаточно продвинутый скрипт. Имеет множество функций и работает практически под всеми версиями linux (RedHat/CentOS/Fedora, OpenSUSE, Debian/Ubuntu,Mandriva 2009)

Возможности:

  • Straight-forward SPI iptables firewall script
  • Daemon process that checks for login authentication failures for:
    • Courier imap, Dovecot, uw-imap, Kerio
    • openSSH
    • cPanel, WHM, Webmail (cPanel servers only)
    • Pure-pftd, vsftpd, Proftpd
    • Password protected web pages (htpasswd)
    • Mod_security failures (v1 and v2)
    • Suhosin failures
    • Exim SMTP AUTH
    • Custom login failures with separate log file and regular expression matching
  • POP3/IMAP login tracking to enforce logins per hour
  • SSH login notification
  • SU login notification
  • Excessive connection blocking
  • UI Integration for cPanel, DirectAdmin and Webmin
  • Easy upgrade between versions from within cPAnel/WHM, DirectAdmin or Webmin
  • Easy upgrade between versions from shell
  • Pre-configured to work on a cPanel server with all the standard cPanel ports open
  • Pre-configured to work on a DirectAdmin server with all the standard DirectAdmin ports open
  • Auto-configures the SSH port if it's non-standard on installation
  • Block traffic on unused server IP addresses - helps reduce the risk to your server
  • Alert when end-user scripts sending excessive emails per hour - for identifying spamming scripts
  • Suspicious process reporting - reports potential exploits running on the server
  • Excessive user processes reporting
  • Excessive user process usage reporting and optional termination
  • Suspicious file reporting - reports potential exploit files in /tmp and similar directories
  • Directory and file watching - reports if a watched directory or a file changes
  • Block traffic on the DShield Block List and the Spamhaus DROP List
  • BOGON packet protection
  • Pre-configured settings for Low, Medium or High firewall security (cPanel servers only)
  • Works with multiple ethernet devices
  • Server Security Check - Performs a basic security and settings check on the server (via cPanel/DirectAdmin/Webmin UI)
  • Allow Dynamic DNS IP addresses - always allow your IP address even if it changes whenever you connect to the internet
  • Alert sent if server load average remains high for a specified length of time
  • mod_security log reporting (if installed)
  • Email relay tracking - tracks all email sent through the server and issues alerts for excessive usage (cPanel servers only)
  • IDS (Intrusion Detection System) - the last line of detection alerts you to changes to system and application binaries
  • SYN Flood protection
  • Ping of death protection
  • Port Scan tracking and blocking
  • Permanent and Temporary (with TTL) IP blocking
  • Exploit checks
  • Account modification tracking - sends alerts if an account entry is modified, e.g. if the password is changed or the login shell
  • Shared syslog aware
  • Передустановкой следует удалить скрипты APF+BFD, если они используются.

    Установка проста: скачиваем последний архив, распаковываем и запускаем файл install.sh

    wget http://www.configserver.com/free/csf.tgz
    tar -xzf csf.tgz
    cd csf
    sh install.sh

    После установки следует поправить конфиг фаирвола "под себя".

    .... продолжение следует ....

APF (Advanced Policy Firewall)

Достаточно известный firewall под названием APF (Advanced Policy Firewall)
APF - надстройка над iptables и распространяется по лицензии GNU GENERAL PUBLIC LICENSE.
Уверенно работает на следующих ОС:
Redhat Enterprise AS/ES 2+
CentOS Any
Fedora Core Any
Slackware 8.0+
Debian GNU/Linux 3.0+
Suse Linux 8.1+
Unbuntu Any
TurboLinux Server 9+
TurboLinux Fuji (Desktop)
RedHat Linux 7.3,8,9

APF достаточно прост в установке и использовании.
Итак:

# wget http://www.r-fx.ca/downloads/apf-current.tar.gz
# tar -xvf ./apf-current.tar.gz
# cd apf-9.6-5
# ./install.sh
Installing APF 9.6-5: Completed.

Installation Details:
Install path: /etc/apf/
Config path: /etc/apf/conf.apf
Executable path: /usr/local/sbin/apf

Далее, в конфигурационном файле /etc/apf/apf.conf необходимо сделать некоторые правки.
Каждый параметр в конфигурационном файле достаточно подробно расписан и разобраться за что он отвечает, думаю, не составит особого труда.
Некоторые моменты:
DEVEL_MODE="1"
включается для проверки работоспособности фаирвола. Если все настроено правильно, данный параметр нужно установить в "0", иначе фаирвол будет остановлен через 5 минут после старта.

Описываем входящие порты:
IG_TCP_CPORTS="20,21,25,53,80,110,143,443,587,2222,465,993,995"
# 2222 - для панели directAdmin
# 587 - дополнительный smtp порт для exim-a

Описываем исходящие порты:
EG_TCP_CPORTS="21,25,80,443,43,35000_35999"
# 35000_35999 порты для работы proftpd в пассивном режиме
# эти порты должны соответствовать тем, которые указаны в настройках proftpd

Старт:
apf -s
Остановка:
apf -f
Блокировать определённый IP адрес:
apf -d 123.123.123.123 comments
Разблокировать определённый IP адрес:
apf -u 123.123.123.123

Более подробно о командах и конфигурации описано в файле: /etc/apf/doc.README.apf

Довольно часто AFP используют совместно с BFD (Brute Force Detection)
BFD - это shell-скрипт, который сканирует логи (apache, sshd, ftp) на предмет несанкционированного доступа, подбора паролей и т.д. и при превышении заданных значений - блокирует IP с помощью APF.
Подробнее в README на сайте.

...... продолжение следует....