Як захистити Linux сервер
Безкоштовна операційна система Linux стає все більш популярною. З ростом її популярності зростає активність хакерів по злому Linux серверів і їх використання для розсилки спаму, шахрайства та інших неправомірних дій.
Кроки
1
Працюйте з Linux через термінал. Будь-яка програма, покликана полегшити ваше взаємодія з системою (через графічний інтерфейс), послаблює захист системи і уповільнює її. Описані дії мають на увазі, що ви вмієте працювати з терміналом.2
Командою Lsof (або аналогічної) перевірте відкриті порти.
ns003: ~ # lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
named 17829 root 4u IPv6 12689530 UDP *: 34327
named 17829 root 6u IPv4 12689531 UDP *: 34329
named 17829 root 20u IPv4 12689526 UDP ns003.unternet.net:domain
named 17829 root 21u IPv4 12689527 TCP ns003.unternet.net:domain (LISTEN)
named 17829 root 22u IPv4 12689528 UDP 209.40.205.146:domain
named 17829 root 23u IPv4 12689529 TCP 209.40.205.146:domain (LISTEN)
lighttpd 17841 www-data 4u IPv4 12689564 TCP *: www (LISTEN)
sshd 17860 root 3u IPv6 12689580 TCP *: ssh (LISTEN)
sshd 17880 root 3u IPv6 12689629 TCP *: 8899 (LISTEN)
sshd 30435 root 4u IPv6 74368139 TCP 209.40.205.146:8899->dsl-189-130-12-20.prod-infinitum.com.mx:3262 (ESTABLISHED)3
Закрийте всі невідомих або непотрібних сервісів, використовуючи відповідні команди вашого дистрибутива Linux (наприклад, в Debian використовуйте update-rc.d), або відредагуйте файл /etc/inetd.conf або /etc/xinetd.d/*. Поряд з цим позбудьтеся від будь-яких утиліт, встановлених серверним провайдером для системного адміністрування, наприклад, Plesk.4
Не допускайте вхід з-під рута на первинний SSHd порт 22 (задайте PermitRootLogin як «no»). Налаштуйте вторинний порт на вхід з-під рута (тільки із загальними ключами, без пароля):- Скопіюйте файл sshd_config в root_sshd_config і відредагуйте новий файл наступним чином:
- Port: Поміняйте 22 на інше число, наприклад, 8899 (не використовуйте це число! Візьміть інше!).
- PermitRootLogin: Поміняйте «no» на «yes».
- AllowUsers root: Вставте цю строку- якщо вона вже є, змініть її на «allow only root logins on this port».
- ChallengeResponseAuthentication no: Розкоментуйте цей рядок і переконайтеся, що вона містить «no», а не «yes».
- Введіть команду
sshd -D -f / etc / ssh / root_sshd_config
і переконайтеся, що вона працює правильно- для цього спробуйте увійти з іншого комп`ютера (ви повинні були створити спільний ключ аутентифікації для двох комп`ютерів), використовуючи
ssh -p8899 [email protected]
Якщо команда працює правильно, то до вищеописаної (sshd) команді додайте control-C, щоб зупинити sshd демон, а потім в кінець файлу / etc / inittab додайте наступне:
rssh: 2345: respawn: sshd -D -f / etc / ssh / root_sshd_config - Перезапустіть задачу ініціалізації: # Init q. Це запустить ssh демон у фоновому режимі і автоматично перезапустить його у випадку невдачі.
- Скопіюйте файл sshd_config в root_sshd_config і відредагуйте новий файл наступним чином:
Поради
- Регулярно оновлюйте операційну систему, щоб закрити її уразливості. В Debian: apt-get upgrade
- Отримуйте інформацію про вразливості з сайту https://securityfocus.com/ та інших відповідних сайтів.
- Спробуйте встановити Grsecurity та / або SELinux та / або AppArmour та / або PaX.
- Перевіряйте журнали реєстрації подій, щоб дізнатися про атаки на ваш сервер. / Var / log / auth або /var/log/auth.log є файлами, де можна дізнатися про спроби проникнення:
Jan 18 10:48:46 ns003 sshd [23829]: Illegal user rosa from :: ffff: 58.29.238.252
Jan 18 10:48:49 ns003 sshd [23833]: Illegal user rosemarie from :: ffff: 58.29.238.252
Jan 18 10:48:51 ns003 sshd [23838]: Illegal user ruth from :: ffff: 58.29.238.252
Jan 18 10:48:54 ns003 sshd [23840]: Illegal user sabine from :: ffff: 58.29.238.252
Jan 18 10:48:57 ns003 sshd [23845]: Illegal user sandra from :: ffff: 58.29.238.252
Попередження
- Ви не можете повністю убезпечити сервер. Тому створюйте резервні копії всіх важливих файлів і майте запасний план дій.
- Не довіряйте серверу, який був зламаний. Хакер має доступ до всієї системи, коли він отримує права суперкористувача.