Советы по безопасности в системах GNU / Linux

Я готовил этот пост для мой блог какое-то время мне предлагали в DesdeLinux, и из-за нехватки времени он не смог или не захотел. Если я немного ленив ????. Но теперь они бастуют, как говорят на Кубе ...

Это сборник основных правил безопасности для системных администраторов, в данном случае для тех, кто, как и я, управляет сетями / системами на основе GNU / Linux ... Их может быть больше, а на самом деле больше, это всего лишь образец мои блуждания по миру Linux ...

0- Держите наши системы в курсе последних обновлений безопасности.

0.1- Списки рассылки критических обновлений [Советник по безопасности Slackware, Советник по безопасности Debian, в моем случае]

1- Отсутствие физического доступа к серверам со стороны постороннего персонала.

1.1- Применить пароль к BIOS наших серверов

1.2- Нет загрузки с CD / DVD

1.3- Пароль в GRUB / Lilo

2- Хорошая политика паролей, буквенно-цифровые символы и другие.

2.1- Срок действия паролей [Password Aging] с помощью команды «chage», а также количество дней между сменой пароля и датой последнего изменения.

2.2- Избегайте использования предыдущих паролей:

в /etc/pam.d/common-password

password sufficient pam_unix.so use_auth ok md5 shadow remember 10

Вот как вы меняете пароль, и он напоминает вам о последних 10 паролях, которые были у пользователя.

3- Хорошая политика управления / сегментации нашей сети [маршрутизаторы, коммутаторы, vlan] и межсетевого экрана, а также правила фильтрации INPUT, OUTPUT, FORWARD [NAT, SNAT, DNAT]

4- Включите использование оболочек [/ etc / shells]. Пользователи, которым не нужно входить в систему, получают / bin / false или / bin / nologin.

5- Блокировать пользователей при неудачном входе в систему [журнал ошибок], а также контролировать системную учетную запись пользователя.

passwd -l pepe -> заблокировать пользователя pepe passwd -v pepe -> разблокировать пользователя pepe

6- Включите использование «sudo», НИКОГДА не входите в систему как root по ssh, «НИКОГДА». Фактически, для достижения этой цели вам необходимо отредактировать конфигурацию ssh. Используйте публичные / приватные ключи на своих серверах с помощью sudo.

7- Применяйте в наших системах «Принцип наименьших привилегий».

8- Время от времени проверяйте наши службы [netstat -lptun] для каждого из наших серверов. Добавьте инструменты мониторинга, которые могут помочь нам в этой задаче [Nagios, Cacti, Munin, Monit, Ntop, Zabbix].

9- Установите IDS, Snort / AcidBase, Snotby, Barnyard, OSSEC.

10- Nmap - ваш друг, используйте его для проверки вашей подсети / подсетей.

11- Хорошие практики безопасности в OpenSSH, Apache2, Nginx, MySQL, PostgreSQL, Postfix, Squid, Samba, LDAP [наиболее часто используемые] и некоторых других службах, которые вам нужны в вашей сети.

12- Шифруйте все коммуникации, пока это возможно в наших системах, SSL, gnuTLS, StarTTLS, дайджест и т. Д. А если вы обрабатываете конфиденциальную информацию, зашифруйте свой жесткий диск !!!

13- Обновите наши почтовые серверы с помощью последних правил безопасности, черного списка и защиты от спама.

14- Ведение журнала активности в наших системах с помощью logwatch и logcheck.

15- Знание и использование таких инструментов, как top, sar, vmstat, free и других.

sar -> отчет о деятельности системы vmstat -> процессы, память, система, ввод / вывод, активность процессора и т. д. iostat -> состояние ввода / вывода процессора mpstat -> состояние и использование многопроцессора pmap -> использование памяти свободными процессами -> память iptraf -> трафик в реальном времени нашей сети ethstatus -> консольный монитор статистики ethernet etherape -> графический сетевой монитор ss -> состояние сокета [tcp socket info, udp, raw sockets, DCCP Sockets] tcpdump -> подробный анализ трафика vnstat -> монитор сетевого трафика выбранных интерфейсов mtr -> инструмент диагностики и анализа перегрузки в сетях ethtool -> статистика сетевых карт

А пока это все. Я знаю, что есть тысяча и одно предложение по безопасности в этом типе среды, но это те, которые поразили меня больше всего, или что в какой-то момент мне пришлось применить / упражняться в среде, которую я администрировал .

Объятия, и я надеюсь, что они тебе пригодятся 😀


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Корацуки сказал

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

    1.    Юкитеру сказал

      Я бы добавил:

      1.- Применить правила sysctl для предотвращения доступа к dmesg, / proc, SysRQ, назначить PID1 ядру, включить защиту для жестких и мягких символических ссылок, защиту стеков TCP / IP для IPv4 и IPv6, активировать полную VDSO для максимальных указателей рандомизации и выделение пространства памяти и повышение устойчивости к переполнению буфера.

      2.- Создайте межсетевые экраны типа SPI (Stateful Package Inspect), чтобы предотвратить доступ к системе не созданным или ранее разрешенным соединениям.

      3.- Если у вас нет служб, которые гарантируют подключения с повышенными привилегиями из удаленного места, просто отмените доступ к ним с помощью access.conf или, в случае неудачи, разрешите доступ только определенному пользователю или группе.

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

      5.- TCPWrappers - ваш друг, если вы находитесь в системе с его поддержкой, его использование не повредит, поэтому вы можете запретить доступ с любого хоста, если он не был предварительно настроен в системе.

      6.- Создайте ключи SSH RSA длиной не менее 2048 бит или лучше 4096 бит с буквенно-цифровыми ключами длиной более 16 символов.

      7.- Насколько вы готовы к написанию? Проверка разрешений на чтение и запись для ваших каталогов - это совсем неплохо и это лучший способ избежать несанкционированного доступа в многопользовательских средах, не говоря уже о том, что это затрудняет получение доступа к информации, которую вы делаете, при определенных несанкционированных доступах. не хочу, чтобы они этого не видели.

      8.- Смонтируйте любой внешний раздел, который этого не заслуживает, с параметрами noexec, nosuid, nodev.

      9.- Используйте такие инструменты, как rkhunter и chkrootkit, чтобы периодически проверять, что в системе не установлен руткит или вредоносное ПО. Разумная мера, если вы один из тех, кто устанавливает что-то из небезопасных репозиториев, из PPA или просто компилирует код с ненадежных сайтов.

      1.    Корацуки сказал

        Эммм, вкусно… Хороший комментарий, добавляйте ребят… 😀

    2.    Уильям Морено Рейес сказал

      Применить обязательный контроль доступа с SElinux?

  2.   АрмандоФ сказал

    очень хорошая статья

    1.    Корацуки сказал

      Спасибо, друг

  3.   Жоако сказал

    Здравствуйте, а если я обычный пользователь, мне следует использовать su или sudo?
    Я использую su, потому что мне не нравится sudo, потому что любой, у кого есть мой пароль пользователя, может изменить что угодно в системе, вместо этого с помощью su no.

    1.    Корацуки сказал

      На вашем ПК использовать su не беспокоит, вы можете использовать его без проблем, на серверах настоятельно рекомендуется отключить использование su и использовать sudo, многие говорят, что это связано с фактом аудита, кто что выполнил command и sudo выполняет эту задачу ... Я, в частности, на своем компьютере использую его, как и вы ...

      1.    Жоако сказал

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

    2.    Эндрю сказал

      Интересная статья, я шифрую некоторые файлы с помощью gnu-gpg, как и с минимальными привилегиями, на случай, если вы хотите выполнить, например, двоичный файл неизвестного происхождения, потерянный в огромном море информации на диске, как мне удалить доступ к определенным функциям?

      1.    Корацуки сказал

        Я в долгу перед вами, хотя я думаю, что вы должны запускать только sudo / root, программы, которые являются надежными, то есть они исходят из вашего репо ...

      2.    Юкитеру сказал

        Я помню, как читал, что есть способ включить возможности root в руководстве по GNU / Linux и UNIX, если я найду его, то поставлю 😀

      3.    Юкитеру сказал
      4.    клоун сказал

        и клетки chown для запуска неизвестных двоичных файлов?

    3.    Юкитеру сказал

      Всегда лучше использовать sudo.

    4.    Elav сказал

      Или вы можете использовать sudo, но ограничив время запоминания пароля.

  4.   Кевин Родригес сказал

    Подобные инструменты, которые я использую для мониторинга компьютера, «iotop» вместо «iostat», «htop» отличный диспетчер задач, «iftop» мониторинг пропускной способности.

  5.   монитолинукс сказал

    многие подумают, что это преувеличение, но я уже видел атаки с целью включения сервера в ботнет.

    https://twitter.com/monitolinux/status/594235592260636672/photo/1

    ps: Китайские попрошайки и их попытки взломать мой сервер.

  6.   клоун сказал

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

  7.   Диаб сказал

    Использование команды ps также отлично подходит для мониторинга и может быть частью действий по проверке недостатков безопасности. команда ps -ef выводит список всех процессов, он похож на верхний, но показывает некоторые отличия. установка iptraf - еще один инструмент, который может работать.

  8.   Клаудио Х. Консепсьон Сертад сказал

    Хороший вклад.

    Я бы добавил: SELinux или Apparmor, в зависимости от дистрибутива, всегда включены.

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

    Приветствие.

  9.   GnuLinux ?? сказал

    1. Как зашифровать всю файловую систему? стоило того??
    2. Нужно ли его расшифровывать каждый раз при обновлении системы?
    3. Является ли шифрование всей файловой системы машины тем же, что и шифрование любого другого файла?

    1.    Юкитеру сказал

      Как вы показываете, что знаете, о чем говорите?

  10.   НАУТИЛУС сказал

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

  11.   Toño сказал

    Лучшая и самая удобная политика безопасности - не быть параноиком.
    Попробуйте, это безошибочно.

  12.   ангелбениты сказал

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

    Я ищу команду для разблокировки от ssh ... любое предложение