У меня есть проект по обеспечению безопасности Ubuntu Server, насколько я могу. Сервер является сервером веб-хостинга. На сервере будут работать LAMP, Mail и DNS.
У меня есть проект по обеспечению безопасности Ubuntu Server, насколько я могу. Сервер является сервером веб-хостинга. На сервере будут работать LAMP, Mail и DNS.
Ответы:
Вот список того, что я делаю для защиты своего сервера.
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.
iptables
правилами, чтобы запретить внешний доступ к любой службе, которую вы не собираетесь использовать, если у вас Настройка мяча, которая требует продвинутых маршрутов и прочее.
/ dev / shm может использоваться для атаки на работающий сервис, такой как httpd. Измените / etc / fstab, чтобы сделать его более безопасным.
Откройте окно терминала и введите следующее:
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
Откройте Терминал и введите следующее:
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 о нарушающих работу хостах, атакованных пользователях и подозрительных входах в систему.
Откройте Терминал и введите следующее:
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, Courier, FTP и многие другие.
Fail2ban сканирует файлы журналов и блокирует IP-адреса, которые показывают вредоносные признаки - слишком много сбоев паролей, поиск эксплойтов и т. Д.
Обычно Fail2Ban затем используется для обновления правил брандмауэра, чтобы отклонять IP-адреса в течение заданного промежутка времени, хотя любое другое произвольное действие также может быть настроено. Из коробки Fail2Ban поставляется с фильтрами для различных сервисов (apache, courier, ftp, ssh и т. Д.).
Откройте Терминал и введите следующее:
sudo apt-get install fail2ban
После установки отредактируйте файл конфигурации /etc/fail2ban/jail.local и при необходимости создайте правила фильтрации.
Для редактирования настроек откройте окно терминала и введите:
sudo vi /etc/fail2ban/jail.conf
Активируйте все службы, которые вы хотите, чтобы fail2ban отслеживал, изменив enabled = false на * enabled = true *
Например, если вы хотите включить мониторинг SSH и запретить тюрьму, найдите строку ниже и измените значение с false на true . Это оно.
[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 в основном делают одно и то же - проверяют вашу систему на наличие руткитов. Нет вреда в использовании обоих.
Откройте Терминал и введите следующее:
sudo apt-get install rkhunter chkrootkit
Для запуска chkrootkit откройте окно терминала и введите:
sudo chkrootkit
Для обновления и запуска RKHunter. Откройте Терминал и введите следующее
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
Nmap («Network Mapper») - бесплатная утилита с открытым исходным кодом для обнаружения сети и аудита безопасности.
Откройте Терминал и введите следующее:
sudo apt-get install nmap
Сканирование вашей системы на наличие открытых портов с помощью:
nmap -v -sT localhost
SYN сканирование со следующим:
sudo nmap -v -sS localhost
Logwatch - это настраиваемая система анализа журналов. Logwatch анализирует журналы вашей системы и создает отчет, анализируя указанные вами области. Logwatch прост в использовании и будет работать сразу же на большинстве систем.
Откройте Терминал и введите следующее:
sudo apt-get install logwatch libdate-manip-perl
Для просмотра вывода logwatch используйте less:
sudo logwatch | less
Чтобы отправить отчет по журналу за последние 7 дней на адрес электронной почты, введите следующее и замените mail@domain.com требуемым адресом электронной почты. :
sudo logwatch --mailto mail@domain.com --output mail --format html --range 'between -7 days and today'
Tiger - это инструмент безопасности, который можно использовать как для аудита безопасности, так и для обнаружения вторжений.
Откройте Терминал и введите следующее:
sudo apt-get install tiger
Для запуска тигра введите:
sudo tiger
Весь вывод Tiger можно найти в / var / log / tiger
Чтобы просмотреть отчеты о безопасности тигра, откройте Терминал и введите следующее:
sudo less /var/log/tiger/security.report.*
magic_quotes_gpc = On
. Магические кавычки были объявлены устаревшими, а затем удалены: php.net/manual/en/security.magicquotes.whynot.php
Так как вы сказали, что это веб-хостинг-сервер ... Я хотел бы поделиться своим лучшим опытом и 5-летним опытом работы в сфере веб-хостинга.
Исходя из моего прошлого опыта, вместо того, чтобы сразу переходить в ад конфигурации, вы должны сначала собрать низко висящий виноград безопасности, как указано в данной статье.
Поскольку у вас есть 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.**
brute force attacks
и dictionary attacks
.. Случайный длинный пароль - единственный способ обезопасить себя от таких атак.
Воспользуйтесь проектом Bastille Linux.
Он предоставляет интерактивный инструмент для выполнения дополнительных мер по усилению безопасности, чтобы повысить общую безопасность и уменьшить вероятность компрометации вашей системы Ubuntu (от Bastille Linux ).
Он предлагает функции оценки и отчетности, так что он может сказать вам, какие части системы не заблокированы. Он проверяет систему только для чтения, сообщая о состоянии каждого из ее элементов защиты. Например, Бастилия может проверить, заблокирован ли DNS-сервер в тюрьме chroot, отключен ли telnet, или даже если пароли должны быть большой длины. Вы можете посмотреть на веб-только демо это через эту ссылку (более можете информацию ).
Предварительный просмотр демо-версии в Интернете можно получить здесь .
Используйте nmap
на всех интерфейсах на машине, чтобы вы знали, какие сервисы вы используете на своей машине. Это важный инструмент для безопасности.
Удалите все службы, которые вам не нужны, на внешних интерфейсах. Вы можете настроить MySQL для прослушивания только на определенных интерфейсах, таких как localhost.
Используйте ufw для защиты вашей службы SSH (и, возможно, других), чтобы она не допускала слишком много (неудачных) соединений в минуту с одной и той же машины. Это усложнит атаки методом грубой силы. Менять номер порта не так уж и полезно, просто неизвестность, нет безопасности.
Будьте ограничены с количеством учетных записей на вашем компьютере. Также не устанавливайте больше пакетов / программ, чем вы на самом деле используете. Устанавливайте только X11-клиенты, но не X11-сервер.
Разрешить ssh-вход в систему только с цифровыми сертификатами, без пароля. Это также сделает атаки грубой силы трудными / невозможными.
Я также обратился бы к документу Debian Benchmarks, в котором содержится значительное количество процедур и процессов для усиления защиты операционной системы, которые будут применяться к Ubuntu, поскольку он является производным от Debian. Я бы также проконсультировался:
Безопасность всегда идет с ценой. Установка реалистичных границ поможет вам в достижении ваших целей. Я хотел бы рассмотреть следующие аспекты:
Проверяя все ссылки, которые размещены здесь, я думаю, что эта должна быть добавлена. Здесь подробно рассказывается не только о настройке программного обеспечения, но и о плане безопасности. Как плюс, каждая команда для выполнения объясняется с источником к нему.
Я недавно сделал пост об этом, как обезопасить Ubuntu 16.04-18.04. Эти шаги включают в себя:
Замените пароль Войти авторизованными ключами Установите брандмауэр на вашем сервере Linux
и еще немного. https://hostup.org/blog/how-to-secure-a-ubuntu-linux-server-in-3-simple-steps/