Что можно сделать для защиты Ubuntu Server?

У меня есть проект по обеспечению безопасности Ubuntu Server. Сервер является сервером веб-хостинга. На сервере будут работать LAMP, Mail и DNS.

35
задан 28 June 2012 в 03:55

9 ответов

Я бы также обратился к документу CIS Debian Benchmarks , в котором содержится значительное количество процедур и процессов для усиления защиты операционной системы, которые будут применяться к Ubuntu, поскольку она является производной от Debian. Я также посоветовался бы:

0
ответ дан 28 June 2012 в 03:55

Вот список того, что я делаю для защиты своего сервера.

  1. Включите UFW (sudo ufw enable) и разрешите только те порты, которые действительно используются. (sudo ufw allow 80)
  2. Убедитесь, что MySQL разрешает соединения только с localhost.
  3. Включить TLS в почтовых службах. Даже если это самоподписанный сертификат. Вы не хотите, чтобы пароли отправлялись в открытом виде.
  4. Установите блокировщики ssh bruteforce, например, denyhosts или fail2ban. (sudo apt-get install denyhosts)
  5. Изучите возможность только входа в систему на основе ключей ssh.
  6. Изучите AppArmor. Если вы используете довольно ванильные конфигурации, то это чрезвычайно просто. Просто убедитесь, что он включен. Это поможет уменьшить эксплойты нулевого дня.
  7. В зависимости от физического доступа к серверу, вы можете даже захотеть посмотреть на шифрование данных на жестком диске.
  8. Следуйте другим рекомендациям по этой ссылке. РЕДАКТИРОВАТЬ: я забыл отредактировать это, когда у меня не было достаточно репутации, чтобы добавить больше ссылок. Ссылка, указанная здесь, является последней ссылкой ниже.
  9. Никогда не доверяйте своим пользователям. Если у вас есть несколько пользователей с доступом к системе, заблокируйте их. Если вам нужно предоставить им доступ к sudo, дайте им только то, что им нужно.
  10. Используйте здравый смысл. Подумайте очень серьезно о том, как вы попали бы, если бы вы были когда-либо заблокированы. Затем закройте эти отверстия.

Еще несколько вещей для рассмотрения. Большинство людей забывают о физическом доступе. Все конфигурации программного обеспечения в мире ничего не значат, если я смогу физически войти с LiveCD и украсть ваши данные. Остерегайтесь социальной инженерии. Задайте вопросы, чтобы проверить, кто разговаривает по телефону, и убедитесь, что у них есть разрешение на выполнение запроса, который они делают.

Так как я все еще «новый» пользователь, я не могу опубликовать более 2 ссылок. Вы можете прочитать больше об этой теме здесь: https://help.ubuntu.com/12.04/serverguide/index.html и обратить особое внимание на https://help.ubuntu.com /12.04/serverguide/security.html

0
ответ дан 28 June 2012 в 03:55

Используйте проект Bastille Linux.

Он предоставляет интерактивный инструмент для выполнения дополнительных мер по усилению безопасности для повышения общей безопасности и снижения уязвимости компрометации для вашей системы Ubuntu (из Bastille Linux ).

Он предлагает функции оценки и отчетности, так что он может сказать вам, какие части системы не заблокированы. Он проверяет систему только для чтения, сообщая о состоянии каждого из ее элементов защиты. Например, Бастилия может проверить, заблокирован ли DNS-сервер в тюрьме chroot, отключен ли telnet, или даже если пароли должны быть большой длины. Вы можете посмотреть демо-версию этого веб-сайта по этой ссылке (подробнее info ).

Предварительный просмотр демо (только) в Интернете можно получить здесь здесь .

BastillleLinux

0
ответ дан 28 June 2012 в 03:55

Используйте nmap на всех интерфейсах на машине, чтобы вы знали, какие сервисы вы используете на своей машине. Это важный инструмент для безопасности.

Удалите все службы, которые вам не нужны, на внешних интерфейсах. Вы можете настроить MySQL так, чтобы он прослушивал только определенные интерфейсы, например localhost.

Используйте ufw для защиты вашей службы SSH (и, возможно, других), чтобы она не допускала слишком много (неудачных) соединений в минуту с одной и той же машины. Это усложнит атаки методом грубой силы. Изменить номер порта не так уж и полезно, просто неизвестность, нет безопасности.

Будьте ограничены количеством учетных записей на вашем компьютере. Также не устанавливайте больше пакетов / программ, чем вы на самом деле используете. Устанавливайте только X11-клиенты, но не X11-сервер.

Разрешить ssh-вход в систему только с цифровыми сертификатами, пароль отсутствует . Это также сделает атаки грубой силы трудными / невозможными.

0
ответ дан 28 June 2012 в 03:55

Безопасная общая память

/dev/shm может использоваться в нападении на рабочий сервис, такой как httpd. Измените/etc/fstab для создания этого более безопасным.

Откройте Terminal Window и введите следующее:

sudo vi /etc/fstab

Добавьте следующую строку и сохраните. Необходимо будет перезагрузить для этой установки для вступления в силу:

tmpfs     /dev/shm     tmpfs     defaults,noexec,nosuid     0     0

Укрепите сеть с sysctl настройками

/etc/sysctl.conf файл содержит все sysctl настройки. Предотвратите маршрутизацию от источника входящих пакетов и зарегистрируйтесь, уродливый IP вводят следующее в окно терминала

sudo vi /etc/sysctl.conf

Отредактируйте/etc/sysctl.conf файл и не прокомментируйте или добавьте следующие строки:

# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0 
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0

# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5

# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0 
net.ipv6.conf.default.accept_redirects = 0

# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1

Для перезагрузки sysctl с последними изменениями войдите:

sudo sysctl -p

Предотвратите IP-спуфинг

Откройте Terminal и введите следующее:

sudo vi /etc/host.conf

Добавьте или отредактируйте следующие строки:

order bind,hosts
nospoof on

Укрепите PHP для безопасности

Отредактируйте файл php.ini:

sudo vi /etc/php5/apache2/php.ini

Добавьте или отредактируйте следующие строки:

disable_functions = exec,system,shell_exec,passthru
register_globals = Off
expose_php = Off
magic_quotes_gpc = On

Веб-приложение брандмауэр - ModSecurity

http://www.thefanclub.co.za/how-to/how-install-apache2-modsecurity-and-modevasive-ubuntu-1204-lts-server

Защитите от DDOS (Отказ в обслуживании) нападения - ModEvasive

http://www.thefanclub.co.za/how-to/how-install-apache2-modsecurity-and-modevasive-ubuntu-1204-lts-server

Журналы сканирования и запрещают подозрительные хосты - DenyHosts и Fail2Ban

@DenyHosts

DenyHosts является программой Python, на которую автоматически блоки SSH нападают путем добавления записей в/etc/hosts.deny. DenyHosts также сообщит администраторам Linux об оскорблении хостов, подвергшихся нападению пользователей и подозрительных логинов.

Откройте Terminal и введите следующее:

sudo apt-get install denyhosts

После редактирования установки конфигурационный файл/etc/denyhosts.conf и изменение электронная почта и другие настройки как требуется.

Для изменения администраторских почтовых настроек, откройте окно терминала и войдите:

sudo vi /etc/denyhosts.conf

Измените следующие значения как требуется на Вашем сервере:

ADMIN_EMAIL = root@localhost
SMTP_HOST = localhost
SMTP_PORT = 25
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
SMTP_FROM = DenyHosts nobody@localhost
#SYSLOG_REPORT=YES 

Fail2Ban

Fail2ban более совершенствуется, чем DenyHosts, поскольку он расширяет журнал, контролирующий до других сервисов включая SSH, Apache, Курьера, FTP, и т.д.

Fail2ban сканирует файлы журнала и запрещает дюйм/с, которые показывают злонамеренные знаки - слишком много ошибок пароля, ищущих использование, и т.д.

Обычно Fail2Ban затем раньше обновлял правила брандмауэра отклонить IP-адреса для указанного количества времени, хотя любой произвольное другое действие мог также быть настроен. Из поля Fail2Ban идет с фильтрами для различных сервисов (апач, курьер, ftp, ssh, и т.д.).

Откройте Terminal и введите следующее:

sudo apt-get install fail2ban

После редактирования установки конфигурационный файл/etc/fail2ban/jail.local и создают правила фильтра как требуется.

Для изменения настроек, откройте окно терминала и войдите:

sudo vi /etc/fail2ban/jail.conf

Активируйте все сервисы, которые Вы хотели бы, чтобы fail2ban контролировал путем изменения, включил =, ложь к *включила = верный*

Например, если требуется включить SSH контролирующую и запрещающую тюрьму, найти ниже строку, и изменение включило от лжи до истинного. Вот именно.

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3

Если требуется получить электронные письма от Fail2Ban, если хосты запрещаются, изменяют следующую строку на адрес электронной почты.

destemail = root@localhost

и измените следующую строку от:

action = %(action_)s

кому:

action = %(action_mwl)s

Можно также создать фильтры правила для различных сервисов, которые Вы хотели бы, чтобы fail2ban контролировал, который не предоставляется по умолчанию.

sudo vi /etc/fail2ban/jail.local

Хорошие инструкции относительно того, как настроить fail2ban и создать различные фильтры, могут быть найдены на HowtoForge - щелкните здесь для примера

При выполнении с конфигурацией перезапуска Fail2Ban сервис с:

sudo /etc/init.d/fail2ban restart

Можно также проверить состояние с.

sudo fail2ban-client status

Проверьте на руткиты - RKHunter и CHKRootKit.

И RKHunter и CHKRootkit в основном делают то же самое - проверяет Вашу систему на руткиты. Никакой вред в использовании обоих.

Откройте Terminal и введите следующее:

sudo apt-get install rkhunter chkrootkit

Для выполнения chkrootkit, откройте окно терминала и войдите:

sudo chkrootkit

Обновить и выполнить RKHunter. Откройте Terminal и введите следующее

sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check

Просканируйте открытые порты - Nmap

Nmap ("Сетевой Картопостроитель") является свободной и утилитой с открытым исходным кодом для аудита безопасности и обнаружения сети.

Откройте Terminal и введите следующее:

sudo apt-get install nmap

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

nmap -v -sT localhost

SYN, сканирующий со следующим:

sudo nmap -v -sS localhost

Проанализируйте системные Файлы журнала - LogWatch

Logwatch является настраиваемой системой анализа журнала. Logwatch анализирует через журналы Вашей системы и создает анализ отчета области, которые Вы указываете. Logwatch прост в использовании и будет работать правильно из пакета в большинстве систем.

Откройте Terminal и введите следующее:

sudo apt-get install logwatch libdate-manip-perl

Для просмотра вывода logwatch используют меньше:

sudo logwatch | less

Для пользования электронной почтой отчета о logwatch за прошедшие 7 дней на адрес электронной почты введите следующее и замените mail@domain.com необходимой электронной почтой.:

sudo logwatch --mailto mail@domain.com --output mail --format html --range 'between -7 days and today' 

Контролируйте свою безопасность системы - Тигр.

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

Откройте Terminal и введите следующее:

sudo apt-get install tiger

Для выполнения тигра, войдите:

sudo tiger

Весь вывод Тигра может быть найден в/var/log/tiger

Для просмотра отчетов безопасности тигра откройте Terminal и введите следующее:

sudo less /var/log/tiger/security.report.*

Для большего количества справки

13
ответ дан 28 June 2012 в 03:55

Поскольку вы сказали, что это веб-хостинг-сервер ... Я хотел бы поделиться своими лучшими практиками и опытом 5 долгих лет в области веб-хостинга. [ 1123]

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

  2. Поскольку у вас LAMP, таким образом, вы должны быть очень осторожны в отношении PHP и его настроек php.ini. Это хорошая ссылка для защиты PHP. PHP обладает сверхспособностями, которые могут стать петлей безопасности, если не настроены должным образом.

  3. Вы можете использовать задание cron , чтобы проверить, когда ваши файлы были изменены без вашего разрешения и, возможно, взломаны; используя эту работу cron . Я предпочитаю Notepad ++ сравнивать результаты cron (напрямую загрузите электронную почту cron с вашего веб-сервера и откройте в Notepad ++).

  4. Если вы хотите установить SEM, то лучше всего выбрать cPanel (хотя и платную). Webmin и zpanel являются очень хорошими бесплатными альтернативами. Webmin лучше, потому что он по крайней мере использует самозаверяющие сертификаты и добавляет безопасность.

  5. Если вы хотите, чтобы что-то работало прямо из коробки, вы можете перейти на Linux под ключ. Он основан на Ubuntu, чрезвычайно прост в реализации и гибок в соответствии с вашими потребностями. С очень небольшим усилием вы получаете безопасность из коробки. Это их стек LAMP . Я лично использую и предпочитаю только это.

  6. Если вы начинаете с нуля, вы также можете установить ISPconfig3. Инструкция Здесь .

  7. вы можете проверить свою безопасность, пытаясь проникнуть в вашу безопасность , используя Back-Track-Linux .

  8. хранят сложные длинные и случайные пароли. Не храните их на ПК. Запишите их. Используйте live CD для доступа к этим логинам.

  9. получить программное обеспечение для защиты от перебора , например fail2ban.

  10. Не запускайте тех демонов, которые вам не нужны.

  11. Заблокировать все ненужные порты . будьте предельно осторожны с портом SSH (22).

  12. Получите статический IP-адрес в системе, через которую вы собираетесь управлять сервером. Сделать большинство вещей из IP-блока и разрешить доступ только вашему конкретному IP к таким местам конфигурации, как порт 22.

В конце дня ... работайте с полной душой, не становитесь эмоциональными с установкой, и применение здравого смысла выводит вас далеко за пределы.

**My heartiest best wishes to you. good luck.**
0
ответ дан 28 June 2012 в 03:55

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

  • Против того, что вы защищаете себя (какой тип злодея, каков его бюджет)?
  • Каковы ваши векторы атаки?
  • [ 116]

    Проверяя все ссылки, которые размещены здесь, я думаю, что эта должна быть добавлена. Здесь подробно рассказывается не только о настройке программного обеспечения, но и о плане безопасности. Как плюс, каждая команда, которую нужно выполнить, объясняется с источником к ней.

    Защита веб-сервера Ubuntu в Xenial 16.04

0
ответ дан 28 June 2012 в 03:55

Я недавно сделал сообщение об этом, как обезопасить Ubuntu 16.04-18.04. Эти шаги включают в себя:

Замена пароля для входа в систему авторизованными ключами Установите брандмауэр на вашем сервере Linux

и некоторые другие. https://hostup.org/blog/how-to-secure-a-ubuntu-linux-server-in-3-simple-steps/

0
ответ дан 28 June 2012 в 03:55

В дополнение ко всему, что уже было сказано, вы можете использовать apt install snoopy и отправлять все свои файлы системного журнала на внешний сервер журналов.

Таким образом вы можете помочь злоумышленнику, если он добьется успеха, не остаться незамеченным. Удаленные журналы означают, что злоумышленник должен взломать другую систему, чтобы скрыть свои следы.

Это полезно для проведения криминалистической экспертизы уже взломанной системы.

0
ответ дан 28 January 2020 в 09:16

Другие вопросы по тегам:

Похожие вопросы: