Привет друзья из DesdeLinux, то что обещали - это долг и вот пост про как максимизировать защиту систем Linux и оставайся таким сейф от злоумышленников, а также защита информации на ваших серверах, ПК или ноутбуках !!!!
начало
Фэйл2бан: - это приложение, написанное на Python для предотвращения вторжения в систему, которое действует, наказывая или блокируя удаленные соединения, которые пытаются получить доступ методом грубой силы.
Установка:
Fedora, RHEL, CentOS:
yum install fail2ban
Debian, Ubuntu:
apt-get install fail2ban
Настройка:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local
В части под названием [DEFAULT] мы раскомментируем и изменяем #bantime = 3600, оставляя его следующим образом:
#bantime = 3600 bantime = 604800
В части [sshd] мы вводим enabled = true, оставляя его так:
#enabled = true enabled = true
Сохраняем CTRL + O и закрываем CTRL + X
Запускаем сервис:
Fedora, RHEL, CentOS:
systemctl включить fail2ban.service systemctl start fail2ban.service
Debian, Ubuntu:
запуск службы fail2ban
Запретить root-доступ с помощью ssh:
Чтобы защитить нашу машину, мы собираемся запретить ssh через пользователя root. Для этого редактируем файл / etc / ssh / sshd_config следующим образом:
cp sshd_config sshd_config.bck nano / etc / ssh / sshd_config
Раскомментируем и меняем
#Protocol 2 Протокол 2
Раскомментируем и меняем
#PermitRootLogin да PermitRootLogin нет
Сохраняем CTRL + O и закрываем CTRL + X
Запускаем сервис:
Fedora, RHEL, CentOS:
systemctl включить sshd.service systemctl start sshd.service
Debian, Ubuntu:
запуск службы sshd
Запретить доступ к ssh-серверу с помощью пароля и разрешить ssh только с ключами RSA
Если мы хотим соединиться с ПК1 с Сервером1, первое, что нужно сделать, это сгенерировать наш ключ на ПК1. С нашим пользователем и без root на ПК1 выполняем:
ssh-keygen -t rsa -b 8192 (генерирует более чем безопасный ключ, поскольку обычно используются ключи от 1024 до 2048)
Получив пароль, мы загружаем его на Server1:
ssh-copy-id пользователь @ server_ip
Как только это будет сделано, мы собираемся подключиться к нашему серверу Server1 и изменить файл nano / etc / ssh / sshd_config с правами root:
Пользователь ssh @ Server1 nano / etc / ssh / sshd_config
Мы меняем строку с #PasswordAuthentication yes на это:
#PasswordAuthentication да
Пароль Аутентификация нет
Сохраняем CTRL + O и закрываем CTRL + X
Перезапускаем службу ssh:
Fedora, RHEL, CentOS:
systemctl перезапустить sshd.service
Debian, Ubuntu:
перезапуск службы sshd
Изменить порт прослушивания ssh
Снова редактируем / etc / ssh / sshd_config и в части, относящейся к порту, оставляем его так:
# Порт 22 Порт 2000 (или любой другой номер больше 2000. В наших примерах мы будем использовать это.)
Сохраняем CTRL + O и закрываем CTRL + X
Перезапускаем службу ssh:
Fedora, RHEL, CentOS:
systemctl перезапустить sshd.service
Debian, Ubuntu:
перезапуск службы sshd
Если они используют fail2ban, необходимо изменить конфигурацию sshd, настроив порт.
nano /etc/fail2ban/jail.local [sshd] port = ssh, 2000 [sshd-ddos] port = ssh, 2000 [dropbear] port = ssh, 2000 [selinux-ssh] port = ssh, 2000
Сохраняем CTRL + O и закрываем CTRL + X
Продлеваем услугу:
Fedora, RHEL, CentOS:
systemctl перезапуск fail2ban.service
Debian, Ubuntu:
перезапуск службы fail2ban
Межсетевые экраны
Федора, RHEL, CentOS:
Selinux и Iptables активированы по умолчанию в этих системах, и я рекомендую вам продолжить этот путь. Как открыть порт с помощью iptables? Давайте посмотрим, как открыть новый порт 2000 порта ssh, который мы изменили ранее:
Открыто:
нано / и т.д. / sysconfig / iptables
и мы модифицируем строку, относящуюся к ssh-порту 22 по умолчанию, и оставляем ее так:
# -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 2000 -j ACCEPT
Сохраняем CTRL + O и закрываем CTRL + X
Перезапускаем сервис:
systemctl перезапустить iptables
Дебиан, Убунту:
В Debian, Ubuntu и производных у нас есть брандмауэр UFW, который упростит нам жизнь, поскольку он очень легко управляет Netfilter.
Установка:
apt-get install ufw ufw enable
Чтобы увидеть статус открытых портов, мы выполняем:
ufw статус
Чтобы открыть порт (в нашем примере это будет новый порт ssh 2000):
ufw разрешить 2000
Чтобы запретить порт (в нашем случае это будет порт по умолчанию 22 ssh):
ufw deny 22 ufw delete deny 22
И готовые друзья. Таким образом они сохранят ваши машины в безопасности. Не забываем комментировать и до следующего раза: D.
и система шифрования, такая как: https://www.dyne.org/software/tomb/
А также удерживайте пользователей в своем доме, если они подключаются через tty:
http://olivier.sessink.nl/jailkit/index.html#intro
https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (легкий способ)
Намного лучше и безопаснее зашифровать всю файловую систему.
В следующем руководстве по безопасности в Linux я учту это: D.
Также было бы неплохо поговорить об усилении защиты ядра с помощью sysctl, об активации случайной кучи и Exec-Shield в ядре, которое его поддерживает, о предоставлении доступа к dmesg и файловой системе / proc, о запуске демона аудита, о включении защиты TCP. SYN, ограничить доступ к / dev / mem, отключить параметры стека TCP / IP, которые могут быть опасными или небезопасными для системы (перенаправление, эхо, маршрутизация от источника), использовать pam_cracklib для пользователей для генерации надежных паролей, важность использование системы MAC, такой как Tomoyo, AppArmor и SELinux.
очень полезно!!!! именно то, что я искал, спасибо 🙂
Добро пожаловать, друг :).
Если вы используете apache, не помешает добавить правила с помощью mod_rewrite, чтобы избежать ботов. Очень полезно
http://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/
а для nginx есть какая-то хитрость или конфигурация?
В debian 8 файл / etc / ssh / sshd_config уже имеет активный протокол 2, а функция PermitRootLogin имеет параметр без пароля (вы можете войти в root только с ключом аутентификации и с компьютера, на котором есть закрытый ключ)
pd в debian 8 firewalld, что оставляет его маленьким для ufw
Вы видели Ферм? Мне нравится, как определены правила.
http://ferm.foo-projects.org/download/examples/webserver.ferm
Что ж, я рад, что Debian 8 использует firewalld, так как он очень-очень-очень хорош ...
Остерегайтесь fail2ban, так как злоумышленник создает пакеты с IP-адресом локального компьютера и упрощает работу с DOS.
Man, IP-адрес локального компьютера и IP-адрес обратной связи исключаются из списка Fail2ban.
В противном случае у нас могут быть ложные срабатывания.
Хорошие и очень эффективные рекомендации… Конечно, в серверной среде, и если мы размещаем веб-сайт, это требует дополнительных шагов…. В настоящее время мы поддерживаем проект под названием JackTheStripper, который представляет собой не что иное, как скрипт bash, который подготавливает и защищает сервер с GNU / Linux в соответствии с лучшими практиками безопасности для веб-приложений ... вы можете узнать о проекте по адресу http://www.jsitech.com/jackthestripper ....
Хороший скрипт, хотя мне нравится сохранять значение kernel.randomize_va_space = 2
Хорошо, что перед запуском вы можете немного изменить его под свои нужды ... Здравствуйте ...
Здравствуйте, конечно, в моем сообщении речь идет о застрахованной базе, и каждая из них должна защищать себя более или менее в зависимости от служб, которые он установил в своих системах, таких как LAMP или FTP, SFTP, BIND и т. Д. :)
В следующем посте о безопасности я рассмотрю эти вопросы.
Спасибо за положительный отзыв :).
@petercheco, у вас отличные руководства, было бы неплохо руководство по шифрованию для системы FreeeBSD, я не знаю, когда вы собираетесь делать вторую часть о FreeBSD, о настройке и настройке рабочих столов, о Firewall, о создании и настройке беспроводной сети.
Привет, друг,
Я немного занят, как показывают нечастые публикации, но я сохраню это в следующей публикации о FreeBSD.
Приветствие :).
Что выровняли в комментариях, я понятия не имею, о чем вы говорите, никто xD
Отличная статья!
Эта мера безопасности подразумевает ограничение оборудования каким-либо образом?
Нет ... Нормальное использование системы вообще не ограничено.
И самое забавное (трагичное) состоит в том, что, как мы только что видели на машинах Lenovo, если в прошивку BIOS вмешивается вредоносное ПО, все ваши действия не имеют значения.
Если вы используете Windows, предустановленную производителем ...
ошибка: помните, что установили в прошивке bios, то есть запускается с системой при каждом перезапуске, до операционной системы, до демонов, в первую очередь, и не дает ничего с ней сделать. атак мало что можно сделать, поэтому идея uefi хороша в принципе.
Интересная статья, сегодня днем прочту ее внимательнее. Спасибо.
Пожалуйста :). Я рада.
Отличная статья, я весь день развлекался, читая ее. Мы ценим время, которое вы тратите на то, чтобы все очень тщательно объяснить,
Привет из Чили
Чарли
Привет Карлос,
Большое спасибо :).
Машины Lenovo, если кажется, что в прошивку BIOS вмешалось вредоносное ПО, машины (портативный ПК - настольный компьютер) всегда поставляются с установленной производителем Windows с Windows, с учетом вышеизложенного ... пост ...
Даже без этого все работает, поскольку вредоносное ПО создано для Windows, а не для Linux.
В iptables не хватает многих вещей и уловок, таких как головокружительный nmap, так что из всех открытых портов ложь, что это ПК с Windows, использующий ttl и размер окна, scanlogd, apache mod security, grsec, selinux или что-то в этом роде. Замените ftp на sftp, ограничьте количество подключений на IP к каждой службе в порту X, чтобы избежать того, что перед DDoS они оставят нас без служб, а также заблокируйте IP-адреса, которые отправляют больше, чем такое количество UDP, в течение такого количества секунд.
С примерами, которые вы представили, новый пользователь сошел бы с ума, читая их ... Нельзя поместить все в один пост. Сделаю несколько записей :).
Я получаю ошибку в archlinux в этот момент при запуске службы, я даю ей статус, и это выходит:
sudo systemctl статус fail2ban
● fail2ban.service - сервис Fail2Ban
Загружено: загружено (/usr/lib/systemd/system/fail2ban.service; включено; предустановка поставщика: отключено)
Активно: не удалось (Результат: start-limit) с пт 2015 03:20:01 CLST; 10с назад
Документы: man: fail2ban (1)
Процесс: 1695 ExecStart = / usr / bin / fail2ban-client -x start (code = exited, status = 255)
20 марта 01:10:01 Gundam systemd [1]: не удалось запустить службу Fail2Ban.
20 марта 01:10:01 Gundam systemd [1]: Unit fail2ban.service перешел в состояние ошибки.
20 марта 01:10:01 Gundam systemd [1]: fail2ban.service не удалось.
20 марта 01:10:01 Gundam systemd [1]: запрос на запуск повторяется слишком быстро для fail2ban… ice
20 марта 01:10:01 Gundam systemd [1]: не удалось запустить службу Fail2Ban.
20 марта 01:10:01 Gundam systemd [1]: Unit fail2ban.service перешел в состояние ошибки.
20 марта 01:10:01 Gundam systemd [1]: fail2ban.service не удалось.
Подсказка: некоторые строки имеют многоточие, используйте -l, чтобы отобразить их полностью.
некоторая помощь? D:
Привет, если вы включили fail2ban с помощью systemctl enable fail2ban.service и systemctl start fail2ban.service, проблема будет в созданной вами конфигурации jails. Пожалуйста, проверьте свой джейл и убедитесь, что все в порядке.
приветствия
Петерчеко
Прежде всего, хороший учебник. Многого не хватает, но вы сосредоточились на основах.
shini-kire, проверьте свой /var/log/fail2ban.log
Привет.
Спасибо @Maykel Franco :).
хорошо,
fail2ban должны ли они установить его на домашний компьютер или это больше для серверов ???
Спасибо.
Скорее для серверов, но если у вас есть Wi-Fi, доступный большему количеству людей, чем вы, это хорошо ...
Привет, друг, я думаю, что это хороший пост по безопасности в части короткого пожара в дистрибутивах Gnu / Linux, я пишу этот комментарий, потому что я делаю это в дистрибутиве Ubuntu 14.04, зная, что это уже 15.04, что происходит, это следующая проблема Я ввожу nano /etc/fail2ban/jail.local как root, и у меня нет визуализации в части sshd, и я сохраняю. В части под названием [DEFAULT] мы раскомментируем и изменяем #bantime = 3600 и
В части [sshd] мы вводим enabled = true, оставляя его так:
#включено = верно
включено = верно
Не похоже, что sshd может быть потому, что я работаю с предыдущей версией, спасибо