Чтение онлайн

ЖАНРЫ

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

#

ALL: 192.168.1.1

ftpd: 192.168.1.2, 192.168.1.3

Если вам нужно целой сети позволить доступ к какому-либо сервису, то можно указать неполный адрес:

ftpd: 192.168.1.

В данной строке разрешен доступ к ftpd-сервису всем компьютерам сети 192.168.1.x (последнее число адреса не указано, значит, оно может быть любым).

Как видите, использовать файлы /etc/hosts.allow и /etc/hosts.deny намного проще, потому что не требуется прописывать правила для входящих и исходящих пакетов. Но возможности этих

файлов слишком ограничены и намного меньше, чем у любого сетевого экрана.

Я рекомендую использовать файлы /etc/hosts.allow и /etc/hosts.deny для решения временных проблем безопасности. Если найдена уязвимость в каком- либо сервисе, то его легко обойти через установки в файле /etc/hosts.deny. Если вы заметили попытку атаки с какого-нибудь IP-адреса, запретите на пару часов любые подключения с него, но опять же используя файл /etc/hosts.deny.

Почему нежелательно играть с цепочками сетевого экрана? Случайное удаление или добавление ошибочной записи может нарушить работу сервера или понизить его безопасность. Именно поэтому временные правила я не рекомендую устанавливать в сетевом экране.

4.15. Советы по конфигурированию Firewall

Конфигурирование сетевого экрана достаточно индивидуально и зависит от конкретных задач, решаемых сервером. Но все же дам некоторые рекомендации, которым надо следовать во время настройки:

□ изначально необходимо все запретить. К хорошему быстро привыкаешь, и если открыть что-то лишнее, то потом отучить пользователей будет трудно, и процесс закрытия сервиса будет проходить с большими сложностями;

□ если есть возможность, необходимо запретить все типы ICMP-сообщений, особенно ping. Мы еще не раз будем говорить об опасности сканирования сети с помощью ICMP-пакетов;

□ запретить доступ к 111 порту. На нем работает portmapper, который необходим для удаленного вызова процедур (RPC, Remote Procedure Call) на сервере и получения результата. С помощью утилиты rpcinfo хакер может узнать, какие RPC-сервисы работают на вашем сервере. Например, выполните следующую команду:

rpcinfo -р localhost

Результатом будет примерно следующее:

Program vers proto port

Программ вер проток порт

100000 2 tcp 111 portmapper

100000 2 udp 111 portmapper

100024 1 udp 32768 status

100024 1 tcp 32768 status

391002 2 tcp 32769 sgi_fam

Как видите, одна команда может выдать достаточно много информации, поэтому 111 порт необходимо закрыть;

□ для облегчения управления доступом к портам разделите открытые ресурсы на две категории:

 • для всеобщего просмотра, в том числе и пользователями Интернета;

 • только для использования внутри сети. Например, такие сервисы, как ftp и telnet, несут в себе опасность, потому что позволяют закачивать файлы на сервер и выполнять на нем команды. Если пользователям Интернета нет необходимости в этих службах, то следует их явно запретить для внешних подключений.

4.16. Повышение привилегий

В заключение рассмотрения темы безопасности необходимо подробно познакомиться с командой

sudo
, которая позволяет выполнять программы от имени другого пользователя.

Мы уже говорили в разд. 2.7 о

том, что нельзя работать в системе под учетной записью администратора. Это опасно по следующим причинам:

□ программы, запущенные вами таким образом, работают с правами администратора. При наличии уязвимости хакер сможет ею воспользоваться для получения полных прав;

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

Если у вас в системе нет пользователя, не обладающего правами администратора, то добавьте его сейчас. Теперь войдите в систему под его учетной записью и попробуйте просмотреть файл /etc/shadow, например, с помощью следующей команды:

cat /etc/shadow

В ответ на это вы должны получить сообщение о недостатке прав доступа. Теперь выполните ту же команду через

sudo
:

sudo cat /etc/shadow

Вы увидите сообщение о том, что ваша учетная запись отсутствует в файле

/etc/sudoers
, в котором прописываются разрешения на использование команды
sudo
. Пример содержимого этого конфигурационного файла приведен в листинге 4.2.

Листинг 4.2. Содержимое конфигурационного файла /etc/sudoers

# sudoers file.

# Файл sudoers

# This file MUST be edited with the 'visudo' command as root.

# Этот файл должен редактироваться с помощью команды 'visudo'

# от имени root

# See the sudoers man page for the details on how to write a sudoers file.

# Смотрите страницу sudoers руководства, где имеется подробная информация по использованию sudoers-файла.

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

# User privilege specification

root ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands

# %wheel ALL=(ALL) ALL

# Same thing without a password

# %wheel ALL=(ALL) NOPASSWD: ALL

# Samples

# %users ALL=/sb.in/mount /cdrom,/sbin/umount /cdrom

# %users localhost=/sbin/shutdown -h now

В этом файле только одна строка без комментария:

root ALL=(ALL) ALL

Она состоит из трех параметров:

□ имя — пользователь (или группа), которому разрешено выполнять определенную команду. Я рекомендую указывать конкретных пользователей. Хакер может стать участником группы и, не обладая при этом частными привилегиями, получит доступ к выполнению опасных команд;

Поделиться с друзьями: