21 Спосіб забезпечення безпеки openssh, убунтовод про ubuntu

OpenSSH це реалізація протоколу SSH. OpenSSH використовується для віддаленого входу, створення бекапів, віддаленого файлового трансферу через scp або sftp і багато іншого. SSH ідеально підходить для того, щоб зберегти конфіденційність і цілісність даних, що передаються між двома мережами або системами. Однак, основною перевагою є сервер аутентифікації, який може працювати за допомогою публічних ключів. Час від часу з'являються новини про 0-day exploit для OpenSSH. Тут же викладено кілька методів, які дозволять вам підвищити безпеку OpenSSH сервера, не дивлячись на такі новини.

Стандартні файли налаштувань і порт SSH:

  • / Etc / ssh / sshd_config - конфігураційний файл сервера OpenSSH
  • / Etc / ssh / ssh_config - конфігураційний файл клієнта OpenSSH
/.ssh/ - призначені для користувача конфігураційні директорії
  • 1: Вимкніть OpenSSH сервер

    chkconfig sshd off yum erase openssh-server

    Debian / Ubuntu Linux користувачі можуть відключити і видалити за допомогою утиліти apt-get:

    apt-get remove openssh-server

    Так само вам ймовірно буде потрібно оновити налаштування вашого firewall'а (iptables), щоб видалити правила для ssh. Для CentOS / RHEL / Fedora редагуйте файли / etc / sysconfig / iptables і / etc / sysconfig / ip6tables. Після закінчення перезапустите iptables:

    service iptables restart service ip6tables restart

    Для користувачів Debian / Ubuntu це, як правило, один файл - /etc/init.d/iptables. Після редагування якого сміливо перезапускаємо firewall.

    7: Вимкніть доступ root через SSH

    Це означає що доступ користувача root через ssh поверх мережі не потрібен. Звичайні користувачі можуть використовувати утиліти su або sudo (краще) щоб підвищити права до рівня root. Це дозволяє бути впевненим в отриманні інформації про те, хто запускав привілейовані команди на системі через sudo. Для відключення входу root користувача через SSH поновіть sshd_config зі слід. рядком:

    Вище представлений стандартний зразок, проконсультуйтеся з юридичним відділом для більш точного вітання.

    9: Налаштуйте firewall на порту ssh (22)

    Ви повинні налаштувати firewall для ssh порту (22) оновивши конфігурації iptables або ж pf firewall. Зазвичай, сервер OpenSSH повинен приймати тільки вхідні з'єднання вашої мережі або інший віддаленої мережі.

    Налаштування iptables

    Змініть ваш / etc / sysconfig / iptables (для користувачів Redhat) для підтвердження з'єднань тільки з мережами 192.168.1.0/24 і 202.54.1.5/29:

    -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -s 202.54.1.5/29 -m state --state NEW -p tcp --dport 22 -j ACCEPT

    Якщо ви використовуєте IPv6, не забудьте відредагувати / etc / sysconfig / ip6tables (для користувачів Redhat):

    -A RH-Firewall-1-INPUT -s ipv6network :: / ipv6mask -m tcp -p tcp --dport 22 -j ACCEPT

    Замінивши ipv6network :: / ipv6mask вашим IPv6 діапазоном.

    У разі інших дистрибутивів, таких як Debian, нічого принципово не змінюється. Потрібно також додати подібні правила в INPUT ланцюжок.

    Налаштування * BSD PF Firewall

    Якщо ви використовуєте PF firewall налаштуйте /etc/pf.conf наступним чином:

    pass in on $ ext_if inet proto tcp from to $ ssh_server_ip port ssh flags S / SA synproxy state

    10: Змініть порт SSH і обмежте використовуваний IP

    Port 300 ListenAddress 192.168.1.5 ListenAddress 202.54.1.5

    11: Використовуйте сильні паролі і ключі

    Неможливо оцінити наскільки важливо використовувати сильні паролі і ключі. Brute-Force атака працює якщо ви використовуєте паролі, які ґрунтуються на даних з словників. Є також спеціальні розширені «словники», які можуть містити найбільш популярні паролі. Вони називаються rainbow tables. Ви можете змусити користувачів уникати паролі схильні подібним атакам і виявляти слабкі паролі за допомогою утиліти John the Ripper. Ось приклад генератора випадкових паролів, написаних на баші (покладіть його в ваш

    genpasswd 16 uw8CnDVMwC6vOKgW

    12: Використовуйте публічні ключі для аутентифікації

    Використовуйте пару ключів публічний / приватний з пральний захистом для приватного ключа. Подивіться як використовувати аутентифікацію засновану на RSA і DSA і ніколи не використовуйте порожній ключ (без passphrase) для логіна.

    13: Використовуйте Keychain для аутентифікації

    Keychain це спеціальний bash-скрипт створений для зручності і гнучкості використання аутентифікації на ключах. Він може дати деякі фішки безпеки навіть на ключі без passphrase. Дізнайтеся як встановити та використовувати keychain утиліти.

    14: Обмежте SSHD за допомогою chroot (Замкніть користувачів в їх домашніх директоріях)

    За замовчуванням користувачам дозволено гуляти по директоріях сервера, навіть таким як / etc, / bin / і іншим. Ви можете захистити ssh використовуючи chroot або спеціальні утиліти начебто rssh. Але з виходом OpenSSH версій 4.8p1 або 4.9p1 вам більше не потрібно сподіватися на такі сторонні рішення. Подивіться в цей пост щоб дізнатися про нову директиві ChrootDirectory блокує користувачів в їх власних домашніх директоріях.

    15: Використовуйте TCP Wrapper'и

    Схожі статті