Привіт друзі з DesdeLinux, lo prometido es deuda y aquí va un post de як максимізувати захист систем Linux і залишатися таким сейф від зловмисників, а також захищаючи інформацію на ваших серверах, ПК чи ноутбуках !!!!
Comenzando
Fail2ban: це програма, написана на 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 увімкнено = true
Ми зберігаємо за допомогою CTRL + O і закриваємо за допомогою CTRL + X
Ми запускаємо послугу:
Fedora, RHEL, CentOS:
systemctl включити fail2ban.service systemctl запустити fail2ban.service
Debian, Ubuntu:
послуга fail2ban старт
Заборонити root-доступ за допомогою ssh:
Для захисту нашої машини ми збираємося заборонити ssh через кореневого користувача. Для цього ми редагуємо файл / etc / ssh / sshd_config таким чином:
cp sshd_config sshd_config.bck nano / etc / ssh / sshd_config
Ми коментуємо і змінюємось
# Протокол 2 Протокол 2
Ми коментуємо і змінюємось
#PermitRootLogin так PermitRootLogin ні
Ми зберігаємо за допомогою CTRL + O і закриваємо за допомогою CTRL + X
Ми запускаємо послугу:
Fedora, RHEL, CentOS:
systemctl включити sshd.service systemctl запустити sshd.service
Debian, Ubuntu:
служба sshd старт - -
Заборонити доступ до сервера ssh за допомогою ключа та дозволити ssh лише за допомогою ключів RSA
Якщо ми хочемо підключитися до PC1 до Server1, перше, що нам потрібно зробити, це сформувати наш ключ на PC1. З нашим користувачем і без root на PC1 ми виконуємо:
ssh-keygen -t rsa -b 8192 (це генерує більш ніж безпечний ключ, оскільки зазвичай використовуються ключі з 1024 по 2048)
Отримавши свій пароль, ми завантажуємо його на Server1:
ssh-copy-id user @ server_ip
Після цього ми збираємось підключитися до нашого Server1 та змінити файл nano / etc / ssh / sshd_config з правами root:
користувач ssh @ Server1 nano / etc / ssh / sshd_config
Ми змінюємо рядок, у якому написано #PasswordAuthentication, так:
#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:
перезапуск служби
брандмауер
Fedora, RHEL, CentOS:
Selinux та Iptables за замовчуванням активовані в цих системах, і я рекомендую вам продовжити цей шлях. Як відкрити порт за допомогою iptables? Давайте подивимося, як відкрити новий порт 2000 порту ssh, який ми раніше змінювали:
Відчинено:
nano / etc / 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
Ми перезапускаємо послугу:
перезапустити iptables
Debian, Ubuntu:
У Debian або Ubuntu та похідних файлах ми маємо брандмауер UFW, який полегшить нам життя, оскільки він дуже легко управляє Netfilter.
Установка:
apt-get install ufw ufw enable
Щоб побачити стан відкритих портів, які ми виконуємо:
статус ufw
Щоб відкрити порт (у нашому прикладі це буде новий порт ssh 2000):
ufw дозволити 2000
Щоб заборонити порт (у нашому випадку це буде порт за замовчуванням 22 ssh):
ufw відмовити 22 ufw видалити відмовити 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 використовує брандмауер, оскільки це дуже і дуже добре ...
Остерігайтеся fail2ban, який зловмисник виробляє пакети за допомогою ip локального ПК і робить DOS дуже простим.
Людина, IP локального ПК та IP із зворотним зв'язком виключаються зі списку Fail2ban.
Якщо ні, ми можемо мати помилкові спрацьовування.
Хороші та дуже ефективні рекомендації ... Звичайно, в серверному середовищі, і якщо ми розміщуємо веб-сайт, це передбачає додаткові кроки…. В даний час ми підтримуємо проект під назвою JackTheStripper, який є не що інше, як bash Script, який готує та захищає сервер за допомогою GNU / Linux, дотримуючись найкращих практик безпеки для веб-додатків ... Ви можете дізнатись про проект за адресою http://www.jsitech.com/jackthestripper ....
Хороший сценарій, хоча я люблю зберігати значення kernel.randomize_va_space = 2
Хороша річ полягає в тому, що перед запуском ви можете трохи змінити його відповідно до своїх потреб ..... A Привіт ...
Привіт, звичайно, мій пост стосується застрахованої бази, і кожен з них повинен захищати себе більш-менш залежно від послуг, які він встановив у своїх системах, таких як LAMP або FTP, SFTP, BIND та багато іншого:)…
У наступному дописі про безпеку я розгляну ці питання.
Дякуємо за позитивні відгуки :).
@petercheco, ваші путівники чудові, було б непогано довідник із шифрування для системи FreeeBSD, я не знаю, коли ви збираєтеся робити другу частину про FreeBSD, про конфігурацію та налаштування робочих столів, про брандмауер, про створення та налаштування бездротової мережі.
Привіт друже,
Я трохи зайнятий, як показує рідкісний допис, але я пам’ятаю це для наступного допису FreeBSD.
Вітання :).
Це вирівняно в коментарях, я поняття не маю, про що ви говорите, ніхто xD
Чудова стаття!
Ця дія безпеки передбачає будь-яке обмеження обладнання?
Ні ... Нормальне використання системи зовсім не обмежене.
І найцікавішим (трагічним) є те, що, як ми щойно побачили на машинах Lenovo, якщо вбудоване програмне забезпечення BIOS втручається в шкідливе програмне забезпечення, нічого, що ви робите, не має значення.
Поки ви використовуєте попередньо встановлену виробником Windows ...
помилка: пам’ятайте, що вони встановили її в прошивку BIOS, тобто вона починається з системи при кожному перезавантаженні, перед операційною системою, перед демонами, перш за все, і це не дозволяє вам робити щось проти цього. атак мало що можна зробити, саме тому ідея uefi в принципі хороша.
Цікава стаття, я уважніше прочитаю її сьогодні вдень. Дякую.
Ласкаво просимо :). Я радий.
Чудова стаття, я розважав себе весь день, читаючи її. Час, який ви витрачаєте, щоб дуже ретельно пояснити все, цінується,
Вітаю з Чилі
Карлос
Привіт Карлосе,
Дуже дякую :).
Машини Lenovo, якщо вбудоване програмне забезпечення BIOS втручається у зловмисне програмне забезпечення, машини (портативний ПК-настільний комп'ютер) завжди постачаються з Windows виробником, враховуючи вищезазначене ... чи відповідає пост… .petercheco?
Навіть не роблячи всього цього, це працює, оскільки шкідливе програмне забезпечення створено для Windows, а не для Linux.
У iptables бракує багатьох речей і прийомів, таких як запаморочливий nmap, щоб з усіх відкритих портів, брехня, що це ПК з Windows, що використовує ttl та розмір вікна, scanlogd, Apache Mod Security, grsec, selinux або щось подібне. Замініть ftp на sftp, обмежте кількість підключень на IP до кожної служби в порту X, щоб уникнути того, що перед DDoS вони залишать нас без послуг, а також заблокуйте IP-адреси, які надсилають більше стільки UDP за стільки секунд.
На прикладах, які ви подали, новий користувач збожеволів, читаючи його ... Ви не можете розмістити все в одному дописі. Я зроблю кілька записів :).
Я отримую помилку в archlinux в цей момент, коли надаю службу запуску, я надаю їй статус, і це виходить:
sudo systemctl статус
● fail2ban.service - служба Fail2Ban
Завантажено: завантажено (/usr/lib/systemd/system/fail2ban.service; увімкнено; попередньо встановлені постачальники: вимкнено)
Активний: не вдалося (Результат: старт-ліміт) з пт. 2015-03-20 01:10:01 CLST; 1 с тому
Документи: man: fail2ban (1)
Процес: 1695 ExecStart = / usr / bin / fail2ban-client -x start (код = вийшов, статус = 255)
20 березня 01:10:01 Gundam systemd [1]: Не вдалося запустити службу Fail2Ban.
20 березня 01:10:01 Gundam systemd [1]: Блок 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]: Блок fail2ban.service увійшов у невдалий стан.
20 березня 01:10:01 Gundam systemd [1]: fail2ban.service не вдалося.
Підказка: деякі рядки були еліпсизованими, використовуйте -l для повного відображення.
якась допомога? D:
Привіт, якщо ви увімкнули fail2ban за допомогою systemctl enable fail2ban.service та systemctl start fail2ban.service, проблема буде у конфігурації тюрем, яку ви зробили. Будь ласка, перевірте свою тюрму та переконайтесь, що все в порядку.
вітання
Петерчеко
Перш за все хороший підручник. Багато речей бракує, але ви зосередилися на основних принципах.
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, залишаючи це так:
#enabled = істина
увімкнено = вірно
Не схоже, що sshd може бути таким, оскільки я працюю з попередньою версією, дякую