20 реальных шагов по усилению безопаcности Linux

Cs_linux_Deep_15.7_site-5020-a511a1.png

Чтобы обеспечить повышенный уровень безопасности системы, зачастую можно не прибегать к дорогостоящим специализированным средствам защиты. Добиться этого можно за счет грамотного конфигурирования уже имеющихся штатных механизмов защиты. Рассмотрим действия, которые может выполнить любой системный администратор, чтобы обезопасить Linux-систему.

№ 1. Избегайте использования FTP, Telnet и Rlogin/Rsh

В большинстве вариантов конфигурации сетей можно в той же самой сети с помощью сниффера пакетов (packet sniffer) перехватывать имена пользователей, пароли, команды FTP/Telnet/RSH и пересылаемые файлы. Общим решением проблемы является использование OpenSSH, SFTP или FTPS (FTP поверх SSL), которые добавляют к FTP либо SSL, либо шифрование TLS. Для того, чтобы удалить NIS, rsh и другие устаревшие сервисы, наберите следующую команду:

# yum erase inetd xinetd ypserv tftp-server telnet-server rsh-serve

№ 2. Минимизируйте количество установленных приложений для минимизации числа уязвимостей

Вам действительно нужны все виды установленных веб-сервисов? Избегайте устанавливать ненужные приложения с тем, чтобы избежать уязвимостей, имеющихся в этих приложениях. Воспользуйтесь менеджером пакетов RPM, таким как as yum, либо apt-get and/or dpkg to review для просмотра всего набора установленных в системе программ. Удалите все ненужные пакеты.

# yum list installed


# yum list packageName


# yum remove packageName

или

# dpkg --list


# dpkg --info packageName


# apt-get remove packageName

№ 3. Один сетевой сервис на каждую систему или экземпляр виртуальной машины

Запускайте различные сетевые сервисы на отдельных серверах или отдельных экземплярах виртуальной машины. Это снизит количество сервисов, которые могут подвергнуться опасности. Например, если атакующий успешно попадает внутрь сервиса Apache , он также сможет получить доступ ко всему серверу, в том числе и к другим сервисам, таким как MySQL, почтовый сервер и т. п.

№ 4. Поддерживайте ядро Linux и программы в обновлённом состоянии

Применение всех патчей безопасности является важной частью работы по поддержанию сервера Linux. В Linux есть все необходимые средства для поддержания вашей системы всегда в обновлённом состоянии и для легкого перехода к следующим версиям. Все обновления, касающиеся безопасности, должны изучаться и устанавливаться сразу, как для этого появится возможность. Для того, чтобы установить все обновления, касающиеся безопасности, опять воспользуйтесь менеджером пакетов RPM, таким как yum или apt-get и/или dpkg:

# yum update 

или

# apt-get update && apt-get upgrade

Вы можете сконфигурировать Red hat/CentOS/Fedora Linux так, что yum будет посылать вам по e-mail напоминание о том, что есть обновление. Другая возможность – выполнять все обновления, относящиеся к безопасности, как задания для cron. Под Debian/Ubuntu Linux вы можете использовать apticron для отсылки напоминаний, касающихся безопасности.

№ 5: Используйте расширения Linux, повышающие безопасность

Linux поставляется с различными патчами по безопасности, которые можно использовать с тем, чтобы защитится от неверно работающих или подвергнувшихся атаке программ. Если можно, то используйте SELinux и другие расширения Linux, повышающие безопасность, в которых уже есть средства ограничения при работе с сетью и другие программы. Например, в SELinux имеется большое количество политик безопасности, которые реализованы в ядре SELinux.

№ 6. Политика пользовательских паролей и сильные пароли

Используйте команды useradd/usermod для того, чтобы создавать и работать с регистрационными записями пользователей. Удостоверьтесь в том, что вы используете политику применения хороших и сильных паролей. Например, длина хорошего пароля должна быть не менее 8 символов и в нём должны присутствовать прописные и строчные буквы, цифры, специальные символы и т. п. Самое главное – подобрать пароль, который вы можете запомнить. Используйте такие инструментальные средства, как John the ripper для поиска на вашем сервере слабых пользовательских паролей. Используйте pam_cracklib.so для того, чтобы проверять устойчивость пароля против его подбора по словарю.

№ 7. Запретите прямой доступ в систему с правами root

Никогда не входите в систему как пользователь root. Для выполнения команд уровня root, если это потребуется, вам следует пользоваться командой sudo. Команда sudo существенно повышает безопасность системы и не требует раздавать пароль root другим пользователям и администраторам. Команда sudo также предоставляет простые средства для аудита и отслеживания событий.

№ 8. Защитите сервер от физического доступа к нему

Вы должны защитить консоли Linux-серверов от физического доступа к системе. Сконфигурируйте BIOS и запретите загружаться с таких внешних устройств, как DVDs/CDs/USB. Установите пароль BIOS и пароль загрузки grub с тем, чтобы защитить эти настройки. Все системные блоки должны быть сосредоточены в специально отведённом для этого помещении и персонал, прежде чем получить доступ к вашему серверу, должен пройти в службе безопасности определенную проверку.

№ 9. Отключите ненужные сервисы

Отключите все ненужные сервисы и демоны (сервисы, запускающиеся в фоновом режиме). Вам нужно будет удалить все ненужные сервисы, запускаемые при старте системы. Для того, чтобы получить список всех сервисов, запускаемых на уровне запуска 3 (run level # 3) во время загрузки системы, наберите следующую команду:

# chkconfig --list | grep '3:on'

Чтобы отключить сервис, введите:

# service serviceName stop


# chkconfig serviceName off

№ 10. Удалите X Window

X Window на сервере не нужен. Так что, нет необходимости запускать X Window на вашем специализированном почтовом или веб-сервере (Apache). Для того, чтобы повысить безопасность и улучшить работоспособность системы, вы можете отключить и удалить X Window. Отредактируйте файл /etc/inittab и установите уровень запуска (run level) равным 3. Наконец, удалите систему X Window, для этого введите следующую команду:

# yum groupremove "X Window System"

№ 11. Сконфигурируйте Iptables и используйте TCPWrapper-ы

Iptables является пользовательским приложением, которое позволит вам сконфигурировать брандмауэр (Netfilter), имеющийся в ядре Linux. Используйте брандмауэр для фильтрации и пропуска только нужного трафика. Также используйте TTCPWrapper-ы – кросс-хостинговые сетевые системы ACL (листы контроля доступа), применяемые для фильтрации доступа из сети в Интернет. С помощью Iptables вы сможете предотвратить многие атаки вида denial of service.

№ 12. Обезопасьте доступ к файлу ядра Linux /etc/sysctl.conf

Для конфигурирования параметров ядра во время его работы используется файл /etc/sysctl.conf. Linux во время загрузки использует настройки, считываемые из файла /etc/sysctl.conf. Пример файла /etc/sysctl.conf:

# Turn on execshield

kernel.exec-shield=1

kernel.randomize_va_space=1

# Enable IP spoofing protection

# Disable IP source routing

net.ipv4.conf.all.rp_filter=1

# Ignoring broadcasts request

net.ipv4.conf.all.accept_source_route=0

net.ipv4.icmp_ignore_bogus_error_messages=1

net.ipv4.icmp_echo_ignore_broadcasts=1
# Make sure spoofed packets get logged

net.ipv4.conf.all.log_martians = 1

№ 13. Используйте различные дисковые разделы

Размещение файлов операционной системы отдельно от пользовательских файлов может, как результат, улучшить работу системы и повысить её безопасность. Удостоверьтесь в том, что следующие файловые системы смонтированы на отдельных разделах диска:

/usr
/home
/var and /var/tmp
/tmp

Создайте отдельные разделы для корневых директорий серверов Apache и FTP. Отредактируйте файл /etc/fstab и не забудьте добавить следующее конфигурационные параметры: – noexec – не разрешается исполнять бинарные файлы (предотвращается исполнение бинарных файлов, но разрешается исполнять скрипты); – nodev – не разрешается указывать посимвольные и специальные устройства (предотвращается использование файлов устройств, таких как zero, sda и т. д); – nosuid – не разрешается иметь доступ для SUID/SGID (предотвращается изменение битов идентификатора пользователя и идентификатора группы).

Пример монтирования /etc/fstab раздела /dev/sda5 (корневой директорий сервера ftp), для которого ограничен пользовательский доступ:

/dev/sda5  /ftpdata          ext3    defaults,nosuid,nodev,noexec 1 2

№ 14. Отключите IPv6

Версия 6 протокола Интернет (IPv6), которая заменяет версию 4 (IPv4), представляет собой новый слой организации протокола TCP/IP, что даёт массу преимуществ. В настоящее время нет хороших инструментальных средств, с помощью которых можно было бы проверить безопасность системы, работающей через сеть по протоколу IPv6. В большинстве дистрибутивов Linux протокол IPv6 по умолчанию включен. Взломщики могут воспользоваться и перенаправить трафик по IPv6, поскольку большинство администраторов не осуществляют его мониторинг. Если конфигурация сети не требует использования протокола IPv6, то отключите его, в противном случае сконфигурируйте брандмауэр Linux для работы с IPv6.

№ 15. Уберите все ненужные бинарные файлы SUID и SGID

Если установлены права доступа SUID/SGID и файл, согласно SUID/SGID, исполняемый, то его можно использовать неправильно, что может быть причиной неверной работы системы или проблем с безопасностью. Любой локальный или удалённый пользователь может использовать такой файл. Поэтому нужно знать обо всех таких файлах. Используйте команду find следующим образом:

See all set user id files:

find / -perm +4000

find / -perm +2000

# See all group id files

find / \( -perm -4000 -o -perm -2000 \) -print

# Or combine both in a single command

find / -path -prune -o -type f -perm +6000 -ls

Вам нужно изучить каждое сообщение о таком файле.

№ 16. Используйте централизованный сервис идентификации

Без централизованной системы авторизации идентификационные данные о пользователе могут стать противоречивыми, и это может привести к устареванию полномочий и появлению забытых регистрационных записей, которые следует удалять в первую очередь. Централизованная служба аутентификации позволит вам осуществлять под Linux/UNIX централизованное обслуживание всех регистрационных записей и идентификационные данных. Вы сможете обеспечивать синхронизацию идентификационных данных между серверами. Не используйте для централизованной идентификации сервис NIS. Используйте OpenLDAP для клиентов и серверов.

№ 17. Протоколирование и аудит

Для того, чтобы собирать сведения о попытках взлома системы и проникновения в неё, вам нужно настроить протоколирование и аудит. По умолчанию системный журнал syslog сохраняет свои данные в директории /var/log/. Полезно также все разузнать о неверном конфигурировании программ, которое могут открыть вашу систему для различных атак. № 17.1. Использование Logwatch/Logcheck для отслеживания подозрительных записей в системном журнале. Читайте свои журналы с помощью logwatch или logcheck. Эти инструменты облегчат вам анализ журналов. Вы будете получать по почте подробные отчеты о необычных записях, обнаруженных в системном журнале syslog. Пример отчета по syslog:

 ################### Logwatch 7.3 (03/24/06) ####################

        Processing Initiated: Fri Oct 30 04:02:03 2009

( 2009-Oct-29 )

        Date Range Processed: yesterday
                              Period is day.

Logfiles for Host: www-52.nixcraft.net.in

      Detail Level of Output: 0
              Type of Output: unformatted

--------------------- Named Begin ------------------------ 

  ################################################################## 


 **Unmatched Entries**

general: info: zone XXXXXX.com/IN: refresh: retry limit for master ttttttttttttttttttt#53 exceeded (source ::#0): 3 Time(s)

    general: info: zone XXXXXX.com/IN: Transfer started.: 3 Time(s)
    general: info: zone XXXXXX.com/IN: Transfer started.: 4 Time(s)

---------------------- Named End ------------------------- 

    general: info: zone XXXXXX.com/IN: refresh: retry limit for master ttttttttttttttttttt#53 exceeded (source ::#0): 4 Time(s)


  --------------------- iptables firewall Begin ------------------------ 

 Logged 87 packets on interface eth0

---------------------- iptables firewall End ------------------------- 

   From 58.y.xxx.ww - 1 packet to tcp(8080)
   From 59.www.zzz.yyy - 1 packet to tcp(22)
   From 60.32.nnn.yyy - 2 packets to tcp(45633)
   From 222.xxx.ttt.zz - 5 packets to tcp(8000,8080,8800) 


 --------------------- SSHD Begin ------------------------ 


/dev/sda3             450G  185G  241G  44% /

 Users logging in through sshd:
    root:
       123.xxx.ttt.zzz: 6 times

 ---------------------- SSHD End ------------------------- 

 --------------------- Disk Space Begin ------------------------ 

 Filesystem            Size  Used Avail Use% Mounted on



 /dev/sda1              99M   35M   60M  37% /boot

 ---------------------- Disk Space End ------------------------- 


###################### Logwatch End #########################

Замечание: результат вывода приведен с сокращениями.

№ 18. Обеспечьте безопасность сервера OpenSSH

Для удалённого доступа в систему и удалённой передачи файлов рекомендуется использовать протокол SSH. Однако протокол ssh открыт для многих атак.

№ 19. Установите и используйте систему обнаружения вторжений

Система обнаружения сетевого вторжения (network intrusion detection system – NIDS) – это система обнаружения вторжения, которая с помощью мониторинга сетевого трафика пытается зафиксировать злонамеренную активность, такую как атаки вида denial of service (отказ в обслуживании), сканирование портов и даже попытки проникновения в компьютер.

Хороший практический подход – прежде, чем система будет подключена к сети в режиме эксплуатации, развернуть любую интегрированную программную систему проверки. Если возможно, то прежде, чем система будет подключена какой-либо сети, установите пакет AIDE. AIDE является кросс-хостинговой системой обнаружения вторжения (host-based intrusion detection system – HIDS). Она может осуществлять мониторинг и анализ процессов, происходящих внутри самих компьютерных систем.

Snort является программой, предназначенной для обнаружения вторжений, которая может выполнять протоколирование на уровне сетевых пакетов и в режиме реального времени делать анализ трафика в IP-сетях.

№ 20. Защитите файлы, директории и почтовые ящики

В Linux предлагаются различные варианты защиты против несанкционированного доступа к данным. Использование прав доступа к файлу и методика MAC (Mandatory Access Control – принудительное управление доступом) предотвращают несанкционированный доступ к данным. Однако права доступа, устанавливаемые Linux, бесполезны, если атакующий имеет физический доступ к компьютеру и может перенести жёсткий диск компьютера на другую систему с тем, чтобы скопировать и проанализировать интересующие его данные. Вы можете легко защитить Linux-файлы и дисковые разделы с помощью специальных инструментальных средств.

Оригинал.

Автор
0 комментариев
Для комментирования необходимо авторизоваться