Максимізуйте безпеку на GNU / Linux

Привіт друзі з 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.


Залиште свій коментар

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

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   грішник - сказав він

    та система шифрування, така як: https://www.dyne.org/software/tomb/

    1.    грішник - сказав він

      А також користувачів клітки у вашому домі, якщо вони підключаються tty:
      http://olivier.sessink.nl/jailkit/index.html#intro
      https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (простий спосіб)

    2.    Юкітеру - сказав він

      Набагато краще і безпечніше зашифрувати всю файлову систему.

    3.    петерчеко - сказав він

      Для наступного підручника з питань безпеки в Linux я візьму це до уваги: ​​D.

      1.    Юкітеру - сказав він

        Також було б непогано поговорити про зміцнення ядра через sysctl, активацію випадкової купи та Exec-Shield в ядрах, які її підтримують, надання доступу до dmesg та файлової системи / proc, запуск демона аудиту, увімкнення захисту TCP SYN, обмежити доступ до / dev / mem, вимкнути параметри стеку TCP / IP, які можуть бути небезпечними або погіршити безпеку системи (перенаправлення, ехо, маршрутизація джерела), використовувати pam_cracklib для користувачів для створення надійних паролів, важливість використання системи MAC, таких як Tomoyo, AppArmor та SELinux.

  2.   Кук - сказав він

    дуже корисний!!!! саме те, що я шукав, дякую 🙂

    1.    петерчеко - сказав він

      Ласкаво просимо друг :).

  3.   ангельський клинок - сказав він

    Якщо використовується apache, не завадить додавати правила за допомогою mod_rewrite, щоб уникнути ботів. Дуже корисний

    http://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/

    1.    роло - сказав він

      а для nginx є якийсь фокус чи конфігурація?

  4.   роло - сказав він

    У debian 8 у файлі / etc / ssh / sshd_config вже активний Протокол 2, а функція PermitRootLogin має опцію без пароля (ви можете ввести root лише за допомогою ключа автентифікації та з комп'ютера, що має приватний ключ)

    pd у debian 8 firewalld прибув, що залишає його малим для ufw

    1.    dhunter - сказав він

      Ви бачили ферму? Мені подобається, як визначаються правила.

      http://ferm.foo-projects.org/download/examples/webserver.ferm

    2.    петерчеко - сказав він

      Ну, я радий, що Debian 8 використовує брандмауер, оскільки це дуже і дуже добре ...

  5.   dhunter - сказав він

    Остерігайтеся fail2ban, який зловмисник виробляє пакети за допомогою ip локального ПК і робить DOS дуже простим.

    1.    Гері - сказав він

      Людина, IP локального ПК та IP із зворотним зв'язком виключаються зі списку Fail2ban.
      Якщо ні, ми можемо мати помилкові спрацьовування.

  6.   Джейсон Сото - сказав він

    Хороші та дуже ефективні рекомендації ... Звичайно, в серверному середовищі, і якщо ми розміщуємо веб-сайт, це передбачає додаткові кроки…. В даний час ми підтримуємо проект під назвою JackTheStripper, який є не що інше, як bash Script, який готує та захищає сервер за допомогою GNU / Linux, дотримуючись найкращих практик безпеки для веб-додатків ... Ви можете дізнатись про проект за адресою http://www.jsitech.com/jackthestripper ....

    1.    Юкітеру - сказав він

      Хороший сценарій, хоча я люблю зберігати значення kernel.randomize_va_space = 2

      1.    Джейсон Сото - сказав він

        Хороша річ полягає в тому, що перед запуском ви можете трохи змінити його відповідно до своїх потреб ..... A Привіт ...

    2.    петерчеко - сказав він

      Привіт, звичайно, мій пост стосується застрахованої бази, і кожен з них повинен захищати себе більш-менш залежно від послуг, які він встановив у своїх системах, таких як LAMP або FTP, SFTP, BIND та багато іншого:)…

      У наступному дописі про безпеку я розгляну ці питання.

      Дякуємо за позитивні відгуки :).

  7.   ближній - сказав він

    @petercheco, ваші путівники чудові, було б непогано довідник із шифрування для системи FreeeBSD, я не знаю, коли ви збираєтеся робити другу частину про FreeBSD, про конфігурацію та налаштування робочих столів, про брандмауер, про створення та налаштування бездротової мережі.

    1.    петерчеко - сказав він

      Привіт друже,
      Я трохи зайнятий, як показує рідкісний допис, але я пам’ятаю це для наступного допису FreeBSD.

      Вітання :).

  8.   Солрак Rainbowarrior - сказав він

    Це вирівняно в коментарях, я поняття не маю, про що ви говорите, ніхто xD
    Чудова стаття!

  9.   ксуніл - сказав він

    Ця дія безпеки передбачає будь-яке обмеження обладнання?

    1.    петерчеко - сказав він

      Ні ... Нормальне використання системи зовсім не обмежене.

  10.   грішник - сказав він

    І найцікавішим (трагічним) є те, що, як ми щойно побачили на машинах Lenovo, якщо вбудоване програмне забезпечення BIOS втручається в шкідливе програмне забезпечення, нічого, що ви робите, не має значення.

    1.    петерчеко - сказав він

      Поки ви використовуєте попередньо встановлену виробником Windows ...

      1.    грішник - сказав він

        помилка: пам’ятайте, що вони встановили її в прошивку BIOS, тобто вона починається з системи при кожному перезавантаженні, перед операційною системою, перед демонами, перш за все, і це не дозволяє вам робити щось проти цього. атак мало що можна зробити, саме тому ідея uefi в принципі хороша.

  11.   Пабло - сказав він

    Цікава стаття, я уважніше прочитаю її сьогодні вдень. Дякую.

    1.    петерчеко - сказав він

      Ласкаво просимо :). Я радий.

  12.   Карлос Бест - сказав він

    Чудова стаття, я розважав себе весь день, читаючи її. Час, який ви витрачаєте, щоб дуже ретельно пояснити все, цінується,

    Вітаю з Чилі
    Карлос

    1.    петерчеко - сказав він

      Привіт Карлосе,
      Дуже дякую :).

  13.   Брайон - сказав він

    Машини Lenovo, якщо вбудоване програмне забезпечення BIOS втручається у зловмисне програмне забезпечення, машини (портативний ПК-настільний комп'ютер) завжди постачаються з Windows виробником, враховуючи вищезазначене ... чи відповідає пост… .petercheco?

    1.    Юкітеру - сказав він

      Навіть не роблячи всього цього, це працює, оскільки шкідливе програмне забезпечення створено для Windows, а не для Linux.

  14.   SynFlag - сказав він

    У iptables бракує багатьох речей і прийомів, таких як запаморочливий nmap, щоб з усіх відкритих портів, брехня, що це ПК з Windows, що використовує ttl та розмір вікна, scanlogd, Apache Mod Security, grsec, selinux або щось подібне. Замініть ftp на sftp, обмежте кількість підключень на IP до кожної служби в порту X, щоб уникнути того, що перед DDoS вони залишать нас без послуг, а також заблокуйте IP-адреси, які надсилають більше стільки UDP за стільки секунд.

    1.    петерчеко - сказав він

      На прикладах, які ви подали, новий користувач збожеволів, читаючи його ... Ви не можете розмістити все в одному дописі. Я зроблю кілька записів :).

  15.   шині-кіре - сказав він

    Я отримую помилку в 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:

    1.    петерчеко - сказав він

      Привіт, якщо ви увімкнули fail2ban за допомогою systemctl enable fail2ban.service та systemctl start fail2ban.service, проблема буде у конфігурації тюрем, яку ви зробили. Будь ласка, перевірте свою тюрму та переконайтесь, що все в порядку.

      вітання
      Петерчеко

      1.    Майкель Франко - сказав він

        Перш за все хороший підручник. Багато речей бракує, але ви зосередилися на основних принципах.

        shini-kire, перевірте свій /var/log/fail2ban.log

        Привіт.

      2.    петерчеко - сказав він

        Дякую @Maykel Franco :).

  16.   jony127 - сказав він

    добре,

    fail2ban вони повинні встановити його на домашньому ПК або це більше для серверів ???

    Спасибо.

    1.    петерчеко - сказав він

      Швидше для серверів, але якщо ви користуєтеся Wi-Fi, доступним для більшої кількості людей, ніж ви, це добре ...

  17.   Родріго - сказав він

    Привіт, друже, я думаю, що це хороший пост безпеки в частині короткої пожежі в дистрибутивах Gnu / Linux, я пишу цей коментар, тому що я роблю це в дистрибутиві Ubuntu 14.04, знаючи, що це вже в 15.04, що відбувається, це наступна проблема Я ввожу nano /etc/fail2ban/jail.local як root, і я не маю візуалізації в частині sshd і зберігаю. У частині під назвою [DEFAULT] ми коментуємо та модифікуємо #bantime = 3600 та
    У частині [sshd] ми вводимо enabled = true, залишаючи це так:
    #enabled = істина
    увімкнено = вірно
    Не схоже, що sshd може бути таким, оскільки я працюю з попередньою версією, дякую