Теперь, больше чем когда-либо, мы живем в мире, где организации постоянно подвергаются атакам на безопасность, мотивированным приобретением высокочувствительных и конфиденциальных данных, которые имеют огромную ценность и приносят огромное финансовое вознаграждение.
Довольно удивительно, что несмотря на высокий риск подвергнуться потенциально разрушительному кибератаке, большинство компаний плохо подготовлены или просто игнорируют красные флаги, часто с разрушительными последствиями.
В 2016 году Equifax пережил катастрофическую утечку данных, в результате которой были похищены миллионы высоко конфиденциальных записей клиентов вследствие серии просчетов в области безопасности. Подробный отчет показал, что утечка данных могла быть предотвращена, если бы правильные меры безопасности были реализованы сотрудниками службы безопасности Equifax.
Фактически, за несколько месяцев до утечки, Equifax был предупрежден о потенциальной уязвимости в их веб-портале, которая могла бы подорвать их безопасность, но, к сожалению, предупреждение осталось невниманным с тяжелыми последствиями. Многие другие крупные корпорации стали жертвами атак, которые продолжают расти в сложности с каждым моментом.
Мы не можем достаточно подчеркнуть, насколько важна безопасность вашей системы Linux. Вы можете не быть крупным финансовым институтом, который является потенциальной целью для атак, но это не означает, что вы должны опускать бдительность.
Безопасность должна быть на первом месте, когда вы настраиваете свой сервер Linux, особенно если он будет подключен к интернету и будет удаленно доступен. Наличие базовых навыков безопасности необходимо для защиты вашего сервера Linux.
В этом руководстве мы сосредоточимся на некоторых основных мерах безопасности, которые вы можете принять, чтобы защитить вашу систему от злоумышленников.
Векторы кибератак
Злоумышленники будут использовать различные методики атаки, чтобы получить доступ к вашему серверу Linux. Прежде чем мы углубимся в некоторые меры, которые вы можете принять, чтобы защитить вашу систему, давайте рассмотрим некоторые распространенные векторы атак, которые хакеры могут использовать для вторжения в системы.
1. Атаки методом подбора паролей
A brute-force attack is an attack where the hacker uses trial and error to guess the login credentials of the user. Usually, the intruder will use automated scripts to continuously gain entry until the right combination of the username and password is obtained. This kind of attack is most effective where weak & easily guessable passwords are used.
2. Слабые учетные данные
Как уже отмечалось ранее, слабые учетные данные, такие как короткие и легко угадываемые пароли, например password1234, представляют потенциальный риск для вашей системы. Чем короче и менее сложен пароль, тем выше шансы компрометации вашей системы.
3. Фишинг
Фишинг – это метод социальной инженерии, при котором злоумышленник отправляет жертве электронное письмо, которое кажется, что пришло от законного учреждения или от кого-то, кого вы знаете или с кем ведете дела.
Обычно в письме содержатся инструкции, которые подталкивают жертву к разглашению конфиденциальной информации, или может содержаться ссылка, перенаправляющая их на поддельный сайт, выдающий себя за сайт компании. Как только жертва пытается войти в систему, их учетные данные перехватываются атакующим.
4. вредоносное ПО
Вредоносное ПО – это сокращение от “зловредное программное обеспечение”. Оно охватывает широкий спектр коварных приложений, таких как вирусы, троянские кони, черви и программы-вымогатели, которые предназначены для быстрого распространения и удержания системы жертвы в заложниках в обмен на выкуп.
Такие атаки могут быть парализующими и могут привести к остановке деятельности организации. Некоторые вредоносные программы могут быть внедрены в документы, такие как изображения, видео, документы Word или PowerPoint, и упакованы в фишинговое письмо.
5. атаки типа “отказ в обслуживании” (DoS)
A DoS attack is an attack that limits or impacts the availability of a server or computer system. The hacker floods the server with traffic or ping packets that render the server inaccessible to users for prolonged durations.
A DDoS (Distributed Denial of Service) attack is a kind of DoS that employs multiple systems that flood a target with traffic rendered it unavailable.
6. атаки путем внедрения SQL
Акроним для языка структурированных запросов, SQL – это язык, используемый для взаимодействия с базами данных. Он позволяет пользователям создавать, удалять и обновлять записи в базе данных. Многие серверы хранят данные в реляционных базах данных, которые используют SQL для взаимодействия с базой данных.
Атака путем внедрения SQL использует известную уязвимость SQL, которая заставляет сервер раскрывать конфиденциальную информацию о базе данных, которую в противном случае он не стал бы раскрывать, путем внедрения зловредного SQL-кода. Это представляет огромный риск, если база данных хранит персональную идентифицирующую информацию, такую как номера кредитных карт, номера социального страхования и пароли.
7. Атака “человек посередине”
Обычно сокращенно обозначаемый как MITM, атака человек-посередине заключается в том, что злоумышленник перехватывает информацию между двумя точками с целью подслушивания или изменения трафика между двумя сторонами. Цель состоит в том, чтобы шпионить за жертвой, портить данные или красть конфиденциальную информацию.
Основные советы по обеспечению безопасности вашего сервера Linux
После рассмотрения потенциальных ворот, через которые злоумышленник может проникнуть в вашу систему, давайте рассмотрим некоторые основные меры, которые вы можете предпринять для защиты вашей системы.
1. Физическая безопасность
Физическое местоположение и безопасность вашего сервера обычно не уделяется много внимания, однако, если вы собираетесь разместить свой сервер в локальной среде, это обычно является местом, с которого следует начать.
Важно обеспечить, чтобы ваш сервер был надежно защищен в дата-центре с резервным питанием, избыточным интернет-соединением и достаточным охлаждением. Доступ в дата-центр должен быть ограничен только для авторизованного персонала.
2. Обновите репозитории системы и пакеты
После настройки сервера первым шагом является обновление репозиториев и программных пакетов следующим образом. Обновление пакета исправляет любые бреши, которые могут присутствовать в существующих версиях приложений.
Для Ubuntu / Debian дистрибутивов:
$ sudo apt update -y $ sudo apt upgrade -y
Для RHEL / CentOS дистрибутивов:
$ sudo yum upgrade -y
3. Включите брандмауэр
A firewall is an application that filters incoming and outgoing traffic. You need to install a robust firewall such as the UFW firewall and enable it to only allow the required services and their corresponding ports.
Например, вы можете установить его на Ubuntu с помощью команды:
$ sudo apt install ufw
Развернуть
$ sudo ufw enable
Для разрешения сервиса, такого как HTTPS, выполните команду;
$ sudo ufw allow https
В качестве альтернативы вы можете разрешить соответствующий порт, который является 443.
$ sudo ufw allow 443/tcp
Затем перезагрузите для того, чтобы изменения вступили в силу.
$ sudo ufw reload
Для проверки статуса вашего брандмауэра, включая разрешенные сервисы и открытые порты, выполните
$ sudo ufw status
4. Отключить ненужные сервисы/порты
Кроме того, рассмотрите возможность отключения любых неиспользуемых или ненужных сервисов и портов на брандмауэре. Наличие нескольких портов, которые не используются, только увеличивает атакующую среду.
5. Защитить протокол SSH
По умолчанию настройки SSH небезопасны, и поэтому требуются некоторые изменения. Убедитесь, что применяются следующие настройки:
- Отключить удаленный вход root-пользователя.
- Включить аутентификацию SSH без пароля с использованием публичных/частных ключей SSH.
Для первого пункта отредактируйте файл /etc/ssh/sshd_config и измените следующие параметры, чтобы они выглядели, как показано.
PermitRootLogin no
Как только вы отключите удаленный вход root-пользователя, создайте обычного пользователя и назначьте привилегии sudo. Например.
$ sudo adduser user $ sudo usermod -aG sudo user
Чтобы включить аутентификацию без пароля, сначала перейдите на другой компьютер под управлением Linux – предпочтительно на ваш компьютер и сгенерируйте пару ключей SSH.
$ ssh-keygen
Затем скопируйте публичный ключ на ваш сервер
$ ssh-copy-id user@server-IP
После входа убедитесь, что отключена аутентификация по паролю, редактируя файл /etc/ssh/sshd_config и изменяя указанный параметр.
PasswordAuthentication no
Будьте осторожны, не потеряйте свой приватный ключ ssh, так как это единственный способ, которым вы сможете войти. Берегите его и, желательно, сделайте резервную копию в облаке.
Наконец, перезапустите SSH, чтобы внести изменения
$ sudo systemctl restart sshd
Краткое содержание
В мире, где киберугрозы постоянно развиваются, безопасность должна быть приоритетом высокого уровня, когда вы начинаете настраивать свой сервер Linux. В этом руководстве мы рассмотрели некоторые из основных мер безопасности, которые вы можете предпринять для укрепления вашего сервера. В следующей теме мы углубимся и рассмотрим дополнительные шаги, которые вы можете предпринять для защиты вашего сервера.