У меня есть проект по обеспечению безопасности Ubuntu Server. Сервер является сервером веб-хостинга. На сервере будут работать LAMP, Mail и DNS.
Я бы также обратился к документу CIS Debian Benchmarks , в котором содержится значительное количество процедур и процессов для усиления защиты операционной системы, которые будут применяться к Ubuntu, поскольку она является производной от Debian. Я также посоветовался бы:
Вот список того, что я делаю для защиты своего сервера.
sudo ufw enable
) и разрешите только те порты, которые действительно используются. (sudo ufw allow 80
) sudo apt-get install denyhosts
) Еще несколько вещей для рассмотрения. Большинство людей забывают о физическом доступе. Все конфигурации программного обеспечения в мире ничего не значат, если я смогу физически войти с LiveCD и украсть ваши данные. Остерегайтесь социальной инженерии. Задайте вопросы, чтобы проверить, кто разговаривает по телефону, и убедитесь, что у них есть разрешение на выполнение запроса, который они делают.
Так как я все еще «новый» пользователь, я не могу опубликовать более 2 ссылок. Вы можете прочитать больше об этой теме здесь: https://help.ubuntu.com/12.04/serverguide/index.html и обратить особое внимание на https://help.ubuntu.com /12.04/serverguide/security.html
Используйте проект Bastille Linux.
Он предоставляет интерактивный инструмент для выполнения дополнительных мер по усилению безопасности для повышения общей безопасности и снижения уязвимости компрометации для вашей системы Ubuntu (из Bastille Linux ).
Он предлагает функции оценки и отчетности, так что он может сказать вам, какие части системы не заблокированы. Он проверяет систему только для чтения, сообщая о состоянии каждого из ее элементов защиты. Например, Бастилия может проверить, заблокирован ли DNS-сервер в тюрьме chroot, отключен ли telnet, или даже если пароли должны быть большой длины. Вы можете посмотреть демо-версию этого веб-сайта по этой ссылке (подробнее info ).
Предварительный просмотр демо (только) в Интернете можно получить здесь здесь .
Используйте nmap
на всех интерфейсах на машине, чтобы вы знали, какие сервисы вы используете на своей машине. Это важный инструмент для безопасности.
Удалите все службы, которые вам не нужны, на внешних интерфейсах. Вы можете настроить MySQL так, чтобы он прослушивал только определенные интерфейсы, например localhost.
Используйте ufw для защиты вашей службы SSH (и, возможно, других), чтобы она не допускала слишком много (неудачных) соединений в минуту с одной и той же машины. Это усложнит атаки методом грубой силы. Изменить номер порта не так уж и полезно, просто неизвестность, нет безопасности.
Будьте ограничены количеством учетных записей на вашем компьютере. Также не устанавливайте больше пакетов / программ, чем вы на самом деле используете. Устанавливайте только X11-клиенты, но не X11-сервер.
Разрешить ssh-вход в систему только с цифровыми сертификатами, пароль отсутствует . Это также сделает атаки грубой силы трудными / невозможными.
/dev/shm может использоваться в нападении на рабочий сервис, такой как httpd. Измените/etc/fstab для создания этого более безопасным.
Откройте Terminal Window и введите следующее:
sudo vi /etc/fstab
Добавьте следующую строку и сохраните. Необходимо будет перезагрузить для этой установки для вступления в силу:
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0
/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
Откройте Terminal и введите следующее:
sudo vi /etc/host.conf
Добавьте или отредактируйте следующие строки:
order bind,hosts
nospoof on
Отредактируйте файл 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
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 более совершенствуется, чем 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 в основном делают то же самое - проверяет Вашу систему на руткиты. Никакой вред в использовании обоих.
Откройте Terminal и введите следующее:
sudo apt-get install rkhunter chkrootkit
Для выполнения chkrootkit, откройте окно терминала и войдите:
sudo chkrootkit
Обновить и выполнить RKHunter. Откройте Terminal и введите следующее
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
Nmap ("Сетевой Картопостроитель") является свободной и утилитой с открытым исходным кодом для аудита безопасности и обнаружения сети.
Откройте Terminal и введите следующее:
sudo apt-get install nmap
Просканируйте свою систему для открытых портов с:
nmap -v -sT localhost
SYN, сканирующий со следующим:
sudo nmap -v -sS localhost
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.*
Поскольку вы сказали, что это веб-хостинг-сервер ... Я хотел бы поделиться своими лучшими практиками и опытом 5 долгих лет в области веб-хостинга. [ 1123]
Исходя из моего прошлого опыта, вместо того, чтобы сразу же попадать в ад конфигурации, вам следует сначала собрать низко висящий виноград безопасности, как указано в данной статье.
Поскольку у вас LAMP, таким образом, вы должны быть очень осторожны в отношении PHP и его настроек php.ini. Это хорошая ссылка для защиты PHP. PHP обладает сверхспособностями, которые могут стать петлей безопасности, если не настроены должным образом.
Вы можете использовать задание cron , чтобы проверить, когда ваши файлы были изменены без вашего разрешения и, возможно, взломаны; используя эту работу cron . Я предпочитаю Notepad ++ сравнивать результаты cron (напрямую загрузите электронную почту cron с вашего веб-сервера и откройте в Notepad ++).
Если вы хотите установить SEM, то лучше всего выбрать cPanel (хотя и платную). Webmin и zpanel являются очень хорошими бесплатными альтернативами. Webmin лучше, потому что он по крайней мере использует самозаверяющие сертификаты и добавляет безопасность.
Если вы хотите, чтобы что-то работало прямо из коробки, вы можете перейти на Linux под ключ. Он основан на Ubuntu, чрезвычайно прост в реализации и гибок в соответствии с вашими потребностями. С очень небольшим усилием вы получаете безопасность из коробки. Это их стек LAMP . Я лично использую и предпочитаю только это.
Если вы начинаете с нуля, вы также можете установить ISPconfig3. Инструкция Здесь .
вы можете проверить свою безопасность, пытаясь проникнуть в вашу безопасность , используя Back-Track-Linux .
хранят сложные длинные и случайные пароли. Не храните их на ПК. Запишите их. Используйте live CD для доступа к этим логинам.
получить программное обеспечение для защиты от перебора , например fail2ban.
Не запускайте тех демонов, которые вам не нужны.
Заблокировать все ненужные порты . будьте предельно осторожны с портом SSH (22).
Получите статический IP-адрес в системе, через которую вы собираетесь управлять сервером. Сделать большинство вещей из IP-блока и разрешить доступ только вашему конкретному IP к таким местам конфигурации, как порт 22.
В конце дня ... работайте с полной душой, не становитесь эмоциональными с установкой, и применение здравого смысла выводит вас далеко за пределы.
**My heartiest best wishes to you. good luck.**
Безопасность всегда идет с ценой. Установка реалистичных границ поможет вам в достижении ваших целей. Я хотел бы рассмотреть следующие аспекты:
Проверяя все ссылки, которые размещены здесь, я думаю, что эта должна быть добавлена. Здесь подробно рассказывается не только о настройке программного обеспечения, но и о плане безопасности. Как плюс, каждая команда, которую нужно выполнить, объясняется с источником к ней.
Я недавно сделал сообщение об этом, как обезопасить Ubuntu 16.04-18.04. Эти шаги включают в себя:
Замена пароля для входа в систему авторизованными ключами Установите брандмауэр на вашем сервере Linux
и некоторые другие. https://hostup.org/blog/how-to-secure-a-ubuntu-linux-server-in-3-simple-steps/
В дополнение ко всему, что уже было сказано, вы можете использовать apt install snoopy
и отправлять все свои файлы системного журнала на внешний сервер журналов.
Таким образом вы можете помочь злоумышленнику, если он добьется успеха, не остаться незамеченным. Удаленные журналы означают, что злоумышленник должен взломать другую систему, чтобы скрыть свои следы.
Это полезно для проведения криминалистической экспертизы уже взломанной системы.