Сборки серверов

СливПлатные

Сейчас онлайн

  • 123sidvog
  • gfdgigdg
  • 6873673687368363636363636
  • Rasolan
  • kidVangan1110
  • VladimirKam
  • Zombikhak5
  • MrNatvies
  • DenchikRox
  • bobobo
  • Thesad546
  • ChildFreak
  • Skippy2323
  • aueunggoon
  • twkkkkkkk3332
  • Artemssas
  • TheBigGarry
  • Legenda_Space
  • Berezovski
  • SeaCore
  • kittavit123
  • Icecicerv
  • undefined322
  • dayahotik
  • Skyns1
  • Yarkxx
  • QuangDung
  • mewiiiil_0
  • NikiGGG888
  • hhgggn
  • chippp
  • MrFernOff
  • fcPlugins
  • NIKITOSSS1
  • TheFriken
  • claimee5945
  • blacksoulsminecraft
  • YunixDev
  • daed
  • Pablopt
  • asdasdasdusad
  • 7vahoo
  • JordyMaquinola
  • kizakuz
  • kotikstasika
  • логин.
  • xchristoffer
  • wawawaww66
  • Redkret
  • Люцик
  • RayMelhor
  • Iruka
  • Tanri
  • z0roday
  • Klavshan
  • NeyTM
  • Mona Lisa
  • TiM0ON
  • galaga
  • CRYYX
  • Xgamings11X
  • JohnUK
  • csgobladeproject
  • mаааааdss
  • krutnet
  • osukari
  • SyrnikInteractive
  • MaksimGoat
  • Soys41
  • Mioji
  • Padomipa
  • ioasduiqwen

Обеспечение безопасности сервера Linux

  • Автор темыBlack_Dragon
  • Дата начала
  • Black_Dragon
  • Хранитель порядка
  • 22 866
Обеспечение безопасности сервера linux

Всем привет
Это будет базовое руководство по обеспечению безопасности сервера Linux и будет охватывать Ubuntu, CentOS и Debian. Это руководство должно работать и на Red Hat, хотя это не гарантировано. Оно применимо к любым другим дистрибутивам, хотя методы, приведенные здесь, могут не работать на других дистрибутивах, и поиск подходящего метода может потребовать небольшого исследования. Это руководство применимо к любым выделенным серверам или VPS под управлением Linux, в которых у вас есть root-доступ к серверу.

Общие советы - Несколько общих советов:​

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

Советы по Minecraft - Некоторые советы по запуску сервера Minecraft на сервере Linux:​


Запустите свой сервер Minecraft с минимально возможным набором прав, обычно это обычная учетная запись пользователя с отключенным паролем. Чтобы отключить пароль, выполните следующую команду:
passwd -d

*Если вы не знаете, как создать учетную запись пользователя, ознакомьтесь с этим в разделе Аутентификация с открытым ключом ниже*.

Изменение пароля root - Рекомендуется изменить пароль root после получения информации, измените его на безопасный пароль с помощью команды: passwd.

Настройка пароля GRUB [относится к GRUB Legacy] - Пароль GRUB предотвращает физический доступ людей к вашему серверу, это полезно в случае взлома центра обработки данных.

Сначала введите следующую команду: grub-md5-crypt

Она попросит вас ввести пароль, выберите его и введите дважды. Вы получите MD5-хэш, обратите внимание на хэш и пароль, который вы ввели ранее.

Затем вам нужно будет отредактировать следующие файлы:
vi /boot/grub/menu.lst или vi /boot/grub/grub.conf

Оба файла связаны, поэтому вы можете редактировать любой из них, разницы нет. *

Добавьте следующее ниже timeout и выше splashimage, <md5-hash> должен быть заменен на тот, который вы получили ранее:
password --md5 <md5-hash>

При следующей перезагрузке вашего VPS/Dedicated Server у вас будет защищенный GRUB.

Просмотр прослушиваемых портов - Вы хотите, чтобы были запущены только те приложения, которые вы хотите запустить, команда для проверки запущенных программ и порта, который они прослушивают, следующая:

netstat -tupln

Список и удаление ненужных программ - Важно знать, что запущено в вашей системе, если есть приложение, которое вы не знаете и считаете ненужным, удалите его из системы с помощью следующих команд, не делайте этого, если вы просто считаете его ненужным, но не знаете, что делает программа. Чтобы просмотреть список установленных программ, используйте следующие команды:

yum list installed

или

dpkg -l

Чтобы удалить программу, выполните следующие команды и следуйте подсказкам на экране:
yum remove <пакет>

или

apt-get --purge remove <пакет>

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

Выполните следующие шаги для создания пользователя:
useradd <имя пользователя> // Создает пользователя
passwd <created-username> // Изменит пароль для пользователя, когда вы нажмете enter, он попросит ввести новый пароль
visudo // Редактирование файла sudoers

Добавьте следующее в открытый файл:
<созданное имя пользователя> ALL=(ALL) ALL

Переходим к аутентификации:​

vi /home/<Имя_Нового_Пользователя>/.ssh/authorized_keys

Добавьте в этот файл открытые ключи, к которым вы хотите иметь доступ, если вы хотите, чтобы доступ был только у вашего компьютера, найдите id_rsa.pub на вашем компьютере и скопируйте его содержимое.

Завершите аутентификацию с открытым ключом, выполнив следующие действия:

chmod 400 /home/<created user>/.ssh/authorized_keys

chown <created user>:<created user> /home/<created user> -R

Защита SSH​

Защита SSH - Защита SSH является ключевым моментом, если SSH не защищен, то ваш сервер уязвим для множества различных атак, включая перебор, который является методом, используемым для получения доступа к вашему бэкенду.

Во-первых, получите доступ к конфигурации SSH с помощью команды:

vi /etc/ssh/sshd_config

Если вы не знакомы с текстовым редактором vi, вам нужно нажать i, чтобы перейти в режим вставки, когда вы закончите редактировать файл, вам нужно будет нажать esc, а затем ввести :wq, после чего нажать клавишу Enter, это сохранит ваши изменения.

-> Используйте протокол SSH версии 2, убедитесь, что в вашей конфигурации есть цифра 2 рядом с протоколом.

-> Отключите аутентификацию по паролю, это необходимо для использования аутентификации по ключу SSH, которая будет описана позже. Отключите аутентификацию по паролю, добавив следующее в конфигурацию SSH:

PasswordAuthentication no

-> Измените порт SSH, поскольку большинство атак направлено на порт 22, измените его на более высокий, например 962. Помните, что с этого момента вам всегда нужно будет использовать этот порт при входе в систему, будь то SSH или SFTP.

> Разрешите доступ к вашему серверу только определенным пользователям, измените имя пользователя AllowUsers, чтобы включить имена пользователей, которым вы хотите предоставить доступ к SSH, разделяйте имена пользователей пробелом.

Примером множественных пользователей является: AllowUsers RedDragon Red_Dragon — Это позволяет пользователям с именами RedDragon и Red_Dragon входить в систему через SSH.


Если вы хотите еще больше безопасности, вы можете использовать что-то вроде этого, это блокирует пользователей на определенном IP:
AllowUsers RedDragon@<вашip> Red_Dragon@<другой-ip>*Red_Dragon@<вашip> RedDragon@<другой-ip>*

*Вам не нужно включать раздел "Другой ip", он нужен только в том случае, если вы собираетесь использовать несколько IP.

Установка MOTD и баннера​

-> Установка MOTD и баннера, это лишь сдерживающие факторы для потенциальных хакеров.

-> vi /etc/issue.net // Задает сообщение, которое будет видно пользователю перед подсказкой Password, это происходит после подключения пользователя к серверу, но до того, как пользователь введет свой пароль. Примером может быть:
Код:
Welcome to the {server-name} Dedicated Server, all connections are logged. Disconnect immediately if you are not an authorized user.

После настройки issue.net вам нужно будет зайти в конфигурацию SSH и внести изменения:
#Banner /some/path to Banner /etc/issue.net

-> vi /etc/motd // Задает сообщение, которое будет видно пользователю после входа в систему с именем пользователя и паролем, это сообщение может быть сообщением безопасности или общим сообщением для ваших администраторов, пример сообщения безопасности:
Код:
You have logged into a secure zone, your IP, login time, and username has been been sent to the server administrator!

Или дружеское сообщение следующего содержания:

Не забудьте проверить чат Skype сотрудников сегодня!

После настройки motd вам нужно будет зайти в конфигурацию SSH и изменить #motd, как мы это делали ранее с файлом issue.net.

После завершения изменений нам нужно перезапустить SSH с помощью команды:

/etc/init.d/sshd restart

*Примечание, не отключайтесь от текущего сеанса после выполнения этой команды, откройте новый TAB в вашей программе SSH и попытайтесь войти в систему, используя нового пользователя, и убедитесь, что вы можете войти. Если вы закроете предыдущее соединение и не сможете войти в систему, используя запланированную информацию, вам придется перезагрузить сервер, так как вы заблокировали себя.

SELinux​

SELinux - SELinux - это механизм безопасности ядра Linux, SELinux действует как исполнитель установленной политики безопасности, что обеспечивает безопасность вашего сервера независимо от того, есть ли у вас приложения, которые нарушают политику, или пользователи, которые действуют небрежно. SELinux способен обеспечить выполнение набора целей безопасности, которые вы хотите достичь для своей системы, он включает в себя широкий спектр опций обеспечения безопасности, начиная от ограничения доступа пользователей только к тем ресурсам, которые им необходимы для работы, до блокировки демонов, работающих в сети. Вы можете проверить состояние SELinux, используя:
sestatus или getenforce
* Он обычно включен на Red Hat и Fedora.

Enabled // SE Linux обеспечивает соблюдение политики
Disabled // SE Linux отключен
Permissive // SE Linux включен, но регистрирует только неудачные действия политики и не обеспечивает выполнение политики.

Если отключен, вы можете включить его с помощью:
setenforce enforcing

yum-cron​

yum-cron - yum cron - это инструмент, который по умолчанию запускается раз в день ночью, он проверяет наличие обновлений в ваших пакетах и обновляет их, это особенно полезно, если вы хотите убедиться, что у вас установлены все последние обновления, которые могут устранить уязвимости в системе безопасности. Чтобы запустить yum-cron, выполните следующие действия:

yum chkconfig yum-cron on

service yum-cron start

Если вышеописанное не работает, возможно, yum-cron не установлен в вашей системе, в этом случае вам нужно сделать следующее:

yum install yum-cron

Cronjobs​

Cronjobs - Если вы не используете cronjobs на вашем сервере, то лучше отключить их, вы можете отключить их с помощью следующей команды:

echo ALL >>/etc/cron.deny

IPV6​

IPV6 - Если вы не используете сеть IPV6, рекомендуется отключить ее, вы можете отключить ее с помощью следующих команд:

vi /etc/sysconfig/network

Затем добавьте в файл следующее:

Код:
NETWORKING_IPV6=no

IPV6INIT=no

Игнорирование запросов ping и broadcast​

Игнорировать запросы ping и broadcast - Вы можете игнорировать запросы ping и broadcast, используя следующие команды:

vi /etc/sysctl.conf

Затем добавьте следующее в файл:

Код:
net.ipv4.icmp_echo_ignore_broadcasts = 1

net.ipv4.icmp_echo_ignore_all = 1

Затем перезагрузите изменения с помощью:

sysctl -p

Отключение обнаружения USB​

Отключение обнаружения USB - вам не понадобится обнаружение USB, это защищает данные в случае нарушения центра обработки данных. Вы можете отключить обнаружение USB с помощью следующих команд:

vi /etc/modprobe.d/no-usb

Затем добавьте в файл следующее:
Код:
install usb-storage /bin/true

Logwatch​

Logwatch - регистрирует информацию о соединениях и отправляет ее вам по электронной почте. Чтобы установить logwatch, сделайте следующее:

apt-get install logwatch или yum install log watch // В зависимости от вашей ОС

vi /etc/cron.daily/00logwatch

Добавьте следующее к предыдущему файлу:
Код:
/usr/sbin/logwatch --output mail --mailto [email protected] --detail high // Replace [email protected] with your e-mail

IPTables​

IPTables - защита сетевых соединений, для настройки выполните следующие команды:

iptables -F // Удаляет все текущие правила

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP // Блокировать нулевые пакеты

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP // Блокировать атаки stn-flood

iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP // Блокировка пакетов XMAS

iptables -A INPUT -i lo -j ACCEPT // Добавляет интерфейс localhost

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT // Разрешает трафик веб-сервера

iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT // Разрешает трафик веб-сервера

iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT // Разрешает SMTP-трафик

iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT // Разрешает SMTP-трафик

iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT // Разрешает чтение электронной почты на сервере

iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT // Разрешает чтение электронной почты на сервере

iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT // Разрешает трафик IMAP

iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT // Разрешает IMAP-трафик

iptables -A INPUT -p tcp -m tcp --dport <установленный порт ssh> -j ACCEPT // Разрешает SSH-трафик по SSH

iptables -A INPUT -p tcp -s <ваш IP> -m tcp --dport <установленный порт ssh> -j ACCEPT // Защищает SSH кроме трафика на вашем IP, повторите для нескольких IP.

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT // Разрешает исходящий трафик

iptables -P OUTPUT ACCEPT

iptables -P INPUT DROP

iptables -L -n // Списки правил

iptables-save // Сохраняет IP-таблицы

service iptables restart // Применяет наши новые правила

* Вам нужно будет также разрешить порты в зависимости от того, на каких портах работает ваш сервер Minecraft.

DenyHosts​

DenyHosts [устарел, смотрите Fail2Ban, когда он будет добавлен] - Метод, помогающий бороться с нежелательным доступом на вашем сервере. Используйте следующие команды для настройки DenyHosts:

yum install denyhosts или apt-get install denyhosts // В зависимости от вашей ОС

vi /etc/hosts.allow // Открывает конфигурацию запрещенных хостов

Добавьте следующее в нижнюю часть файла, включите столько строк, сколько IP, которым вы не хотите запрещать попытки подключения, это предотвратит отказ в доступе для входа в систему из-за неудачных попыток входа. Вот пример того, что нужно добавить:
sshd: 127.0.0.1

sshd: 127.0.0.2

vi /etc/denyhosts.conf // Открывает основную конфигурацию запрета хостов

Измените ADMIN_EMAIL следующим образом

ADMIN_EMAIL = <ваш email>

Измените SMTP_FROM следующим образом

SMTP_FROM = DenyHosts <<ваш email>>.

Следующие две команды позволяют убедиться, что функция DenyHosts включена при перезагрузке сервера

chkconfig denyhosts on

service denyhosts start

Если вас интересует просмотр людей, пытающихся войти в систему, просмотрите журналы с помощью команды:

tail -f /var/log/secure

Если у вас есть заблокированный IP, который вы хотите разблокировать, вам нужно сделать следующее:

/etc/init.d/denyhosts stop // Остановка Deny Hosts

Отредактируйте следующие файлы, чтобы удалить IP-адрес:

vi /etc/hosts.deny

vi /var/lib/denyhosts/hosts

vi /var/lib/denyhosts/hosts-restricted

vi /var/lib/denyhosts/hosts-root

vi /var/lib/denyhosts/hosts-valid

vi /var/lib/denyhosts/users-hosts

Запустите Deny Hosts с помощью:

/etc/init.d/denyhosts start

Если вы хотите внести в белый список определенную группу статических IP-адресов, сделайте следующее:

vi /var/lib/denyhosts/allowed-hosts

Убедитесь, что вы не удаляете 127.0.0.1 из списка, никогда не блокируйте localhost, добавьте в новую строку все IP-адреса, которые вы хотите внести в белый список.
 
ВерхНиз