Противодействие сканированию портов

Лабораторная работа посвящена инсталляции и конфигурированию программ обнаружения сканирования портов scanlogd и portsentry, и противодействию сканирования с помощью настройки фильтра пакетов.

Обнаружение сканирования портов

Проинсталлировать программу portsentry и настроить её так чтобы она фиксировала попытки просканировать порты хоста

Каким образом это делается

  1. Инсталляция программы.

    Проинсталлируйте программу portsentry принятым в операционной системе способом.

Таблица 6.2. Ключи программы portsentry

Ключ

Описание

-tcp

обычный режим работы. Portsentry прослушивает все неиспользуемые TCP-порты ниже PORTS_TCP

-udp

обычный режим работы. Portsentry прослушивает все неиспользуемые UDP-порты ниже PORTS_UDP

-stcp

обычный режим + обнаружение stelth-сканирования для TCP

-sudp

обычный режим + обнаружение stelth-сканирования для UDP

-atcp

Portsentry прослушивает все неиспользуемые TCP-порты ниже ADVANCED_PORTS_TCP

-audp

Portsentry прослушивает все неиспользуемые UDP-порты ниже ADVANCED_PORTS_UDP

Проинсталлировать программу scanlogd и настроить её так чтобы она фиксировала попытки просканировать порты хоста

  1. Инсталляция программы.

  2. Выключение portsentry

    Выключите программу portsentry (или другой детектор сканирования), если она используется.

    # /etc/init.d/portsentry stop
    Stopping anti portscan daemon: portsentry.
    

  3. Инсталляция scanlogd

    Проинсталлируйте программу scanlogd принятым в операционной системе способом.

    # apt-cache search scanlogd
    # apt-get install scanlogd
    Reading Package Lists... Done
    Building Dependency Tree... Done
    The following NEW packages will be installed:
      scanlogd
    0 upgraded, 1 newly installed, 0 to remove and 462 not upgraded.
    ...
    Adding new user `scanlogd' (112) with group `nogroup'.
    

  4. Добавление пользователя и группы scanlogd.

    Добавьте в систему учётную запись пользователя и группы, от имени которых будет работать scanlogd, если они не были добавлены автоматически.

    # pw groupadd scanlogd
    # pw useradd scanlogd -d /nonexistent -g scanlogd -s /sbin/nologin -c scanlogd
    

  5. Запуск scanlogd.

    Если scanlogd не был запущен автоматически, запустите его вручную:

    # /etc/init.d/scanlogd start
    Starting scanlogd: scanlogd.
    

  6. Проверка

    Просканируйте порты хоста с какого-либо другого хоста сети, и убедитесь, что scanlogd зафиксировал сканирование.

    # tail -f /var/log/syslog 1
    ...
    Oct 20 13:51:51 s_all@linux3 scanlogd: 192.168.15.21:62025 to 192.168.15.3 
        ports 80, 22, 3389, 113, 636, 21, 554, ..., f??pauxy, TOS 00 @16:51:51
    Oct 20 13:52:12 s_all@linux3 scanlogd: 192.168.15.21:41170 to 192.168.15.3 
        ports 3389, 389, 443, 23, 22, 256, 1723, 113, ..., Fsrpauxy, TOS 00 @13:52:12
    Oct 20 13:52:24 s_all@linux3 scanlogd: 192.168.15.21:51641 to 192.168.15.3 
        ports 53, 22, 80, 25, 3389, 1723, 554, 256, ..., Fsrpauxy, TOS 00 @13:52:24
    Oct 20 13:52:58 s_all@linux3 scanlogd: 192.168.15.21:44756 to 192.168.15.3 
        ports 256, 554, 53, 22, 389, 3389, 21, ..., FsrPaUxy, TOS 00 @13:52:58
    

    Сообщения могут попасть и в другой файл-журнал 1, в зависимости от настроек вашего демона системных сообщений. Сообщения отправляются от источника daemon с приоритетом info:

    daemon.info
    

  7. Decoy-сканирование

    При использовании почти всех распространённых методов сканировния (кроме метода connect) можно выполнить так называемое decoy-сканирование: сканирование с неверным обратным адресом. В этом случае использование детекторов сканирования оказывается неэффективным. Они фиксируют множество адресов-источников сканирования, из которых большинство неверно. В некоторых случаях настоящий адрес выполнявшего сканирования может вообще не попасть в журналы системы. Также decoy-сканирование может быть использовано для инициирования работы системы предотвращения сканирования. Если, например, на каком-то хосте трафик с адреса, с которого зафиксировано сканирование, автоматически блокируется, применяя decoy-сканирование, можно заблокировать доступ с этого хоста к важным хостам сети.

    В программе nmap decoy-сканирование включается с помощью ключа -D. Аргументом ключа является список, разделённых запятыми, IP-адресов. Эти адреса будут использоваться при сканировании в качестве обратных. Реальный адрес хоста, выполняющего сканирование, может быть указан в этом списке с помощью ключевого слова me. Если такое ключевое слово в списке отсутствует, адрес будет добавлен последним.

    При использовании такой команды будет выолпняться SYN-сканирование хоста m01, который зафиксирует сканирование с трёх адресов: нашего, адреса 1.2.3.4 и адреса 5.6.7.8:

    # nmap -sS -D 1.2.3.4,me,5.6.7.8 m01
    

    Обратные адреса можно генерировать случайным образом

    # nmap -sS -D \
    > `perl 'for (1..24) { print int(rand(255)),($_%4?".":","); }'`\
    > me\
    > `perl 'for (1..32) { print int(rand(255)),($_%4?".":","); }'` m01
    

    Команда nmap получит список из 8 адресов, четвёртым в котором будет стоять наш адрес, а остальные семь будут случайными.

Расширенная настройка фильтра пакетов

Настройте фильтр пакетов на вашем хосте так, чтобы невозможно было определить, какие порты на нём открыты не только с помощью простейших методов сканирования, таких как connect и SYN, но и всех остальных, которыми располагает nmap. Используйте динамическую фильтрацию трафика.

Настройте фильтр таким образом, чтобы сканирование можно было зафиксировать средствами самого фильтра.

© 2002-2005 Игорь Чубин
Учебный центр Сетевые Технологии, ug-ids, 2006-06-25
Слушатель отсутствует, ДЕМО-ВЕРСИЯ