Укрепление - это процесс уменьшения уязвимостей и защиты системы от возможных точек атаки. Снижение уязвимостей включает удаление ненужных служб, имен пользователей и логинов, а также отключение ненужных портов. В этой статье мы покажем вам, как можно укрепить сервер Ubuntu.
Требования
Сервер Ubuntu 14.04 LTS с установленным Open SSH.
Начало работы: Обновите систему
После установки любой операционной системы необходимо поддерживать систему в актуальном состоянии. Это уменьшит количество известных уязвимостей в вашей системе.
Для Ubuntu 14.04 выполните следующее:
sudoapt-get updatesudoapt-get upgradesudoapt-get autoremovesudoapt-get autoclean
Включить автоматические обновления безопасности
Включение автоматических обновлений может быть очень важным для защиты вашего сервера. Чтобы установить "автоматические обновления", запустите
sudo apt- получить установку автоматические обновления
Чтобы включить его, выполните следующую команду:
sudo dpkg-reconfigure - плуг автоматические обновления
Это создаст файл "/etc/apt/apt.conf.d/20auto-upgrades", показанный ниже.
APT :: Periodic :: Update-Package-Lists "1"; APT :: Periodic :: Unattended-Upgrade "1";
Создайте "теневого пользователя" с помощью sudo powers
Использование "теневого пользователя" вместо учетной записи root необходимо по соображениям безопасности. Вы можете создать пользователя, которого другим пользователям будет нелегко угадать. В этом руководстве мы будем использовать "maketech111" в качестве имени пользователя.
Чтобы создать пользователя, выполните следующую команду:
sudo useradd -d/home/maketech111 -s/bin/bash-m maketech111
Чтобы предоставить пользователю доступ к sudo, выполните следующую команду:
sudo usermod -a-Gsudo maketech111
Чтобы установить пароль, выполните следующую команду:
sudo passwd maketech111
Примечание. Убедитесь, что ваш пароль состоит не менее чем из восьми символов и содержит сложную комбинацию цифр, букв и знаков препинания.
Чтобы удалить запрос пароля для sudo, отредактируйте файл sudoers.
sudonano/etc/sudoers
Добавьте / отредактируйте, как описано ниже.
maketech111 ALL=(ALL) NOPASSWD: ALL
Сохраните файл и выйдите.
Отключить корневую учетную запись
Отключение учетной записи root необходимо по соображениям безопасности.
Чтобы отключить учетную запись root, используйте следующую команду:
sudopasswd-l root
Если вам нужно повторно включить учетную запись, выполните следующую команду:
sudopasswd-u root
Добавить раздел подкачки
Некоторые серверы Ubuntu не настроены с помощью МЕНЯТЬ. SWAP используется, когда объем общей физической памяти (RAM) заполнен.
Чтобы проверить наличие места для подкачки, выполните следующую команду:
sudo swapon - s
Если файла SWAP нет, вы должны получить следующий результат.
Приоритет используемого размера типа имени файла
Чтобы создать файл подкачки размером 4 ГБ, вам нужно будет использовать команду "dd".
sudoddif=/dev/zero of=/swapfile bs=4M count=1000
Чтобы настроить файл SWAP, выполните следующую команду:
sudo mkswap / файл подкачки
Чтобы активировать файл подкачки, запустите
sudo swapon /swapfilesudo swapon -s
Это будет выглядеть следующим образом:
Filename Type Size Used Priority/swapfile file40960000-1
Чтобы включить его постоянно, отредактируйте файл "/ etc / fstab".
sudonano/etc/fstab
Добавьте следующую строку:
/swapfile swap swap defaults 00
Повышение производительности SWAP
Установите правильное значение обмен, чтобы повысить общую производительность системы.
Вы можете сделать это с помощью следующей команды:
sudoecho0>>/proc/sys/vm/swappinesssudoecho vm.swappiness=0>>/etc/sysctl.conf
Перезагрузите систему, чтобы проверить, правильно ли активирован SWAP.
Отключить IPv6
Рекомендуется отключить IPv6, поскольку он вызывает проблемы с медленным интернет-соединением.
Чтобы отключить IPv6, отредактируйте файл "/etc/sysctl.conf".
sudonano/etc/sysctl.conf
Отредактируйте, как описано ниже:
net.ipv6.conf.all.disable_ipv6=1net.ipv6.conf.default.disable_ipv6=1net.ipv6.conf.lo.disable_ipv6=1
Чтобы перезагрузить конфигурацию, запустите
sudo sysctl - p
Отключить IRQBALANCE
IRQBALANCE используется для распределения аппаратных прерываний по нескольким ЦП для повышения производительности системы. Рекомендуется отключить IRQBALANCE, чтобы избежать аппаратных прерываний в ваших потоках.
Чтобы отключить IRQBALANCE, отредактируйте "/ etc / default / irqbalance"
sudonano/etc/default/irqbalance
и измените значение ENABLED на 0:
ВКЛЮЧЕНО= 0
Исправить ошибку OpenSSL heartbleed
Heartbleed - серьезная уязвимость в OpenSSL. Это позволяет удаленному пользователю производить утечку памяти в блоках размером до 64 КБ. Затем хакеры могут получить закрытые ключи для расшифровки любых данных, таких как имя пользователя и пароли.
Ошибка Heartbleed была обнаружена в OpenSSL 1.0.1 и присутствует в следующих версиях:
- 1.0.1
- 1.0.1a
- 1.0.1b
- 1.0.1c
- 1.0.1d
- 1.0.1e
- 1.0.1f
Чтобы проверить версию OpenSSL в вашей системе, выполните следующие команды:
sudo openssl version -vsudo openssl version -b
Это выведет что-то вроде следующего:
OpenSSL 1.0.1 10 Mar 2012built on: Wed Jan 218:45:51 UTC 2015
Если дата старше "Пн, 7 апреля, 20:33:29 UTC 2014", а версия - "1.0.1", значит, ваша система уязвима для ошибки Heartbleed.
Чтобы исправить эту ошибку, обновите OpenSSL до последней версии и запустите
sudoapt-get updatesudoapt-get upgrade openssl libssl-devsudoapt-cache policy openssl libssl-dev
Теперь проверьте версию и запустите
sudo openssl version - b
Это выведет что-то вроде следующего:
built on: Mon Apr 720:31:55 UTC 2014
Защитите консоль, общую память, / tmp и / var / tmp
Защитите консоль
По умолчанию в вашей системе включено множество терминалов. Вы можете разрешить только один терминал и отключить другие терминалы.
Чтобы разрешить только "tty1" и отключить другие терминалы, отредактируйте файл "/ etc / securetty".
sudonano/etc/securetty
Добавьте / отредактируйте следующие строки:
tty1#tty2#tty3#tty4# etc ...
Чтобы защитить файл "/ etc / securetty", измените права доступа к файлу и выполните следующие команды:
sudochown root:root /etc/securettysudochmod 0600 /etc/securetty
Безопасная общая память
Любой пользователь может использовать разделяемую память для атаки на работающую службу, такую как apache или httpd. По умолчанию общая память монтируется для чтения и записи с разрешением на выполнение.
Чтобы сделать его более безопасным, отредактируйте файл "/ etc / fstab".
sudonano/etc/fstab
Добавьте следующую строку:
tmpfs /run/shm tmpfs ro,noexec,nosuid 00
Чтобы внести изменения без перезагрузки, вы можете запустить
sudomount-a
Безопасные / tmp и / var / tmp
Временные каталоги, такие как / tmp, / var / tmp и / dev / shm, открывают злоумышленникам возможность предоставить место для запуска сценариев и вредоносных исполняемых файлов.
Безопасная папка / tmp
Создайте файл файловой системы размером 1 ГБ для раздела / tmp.
sudoddif=/dev/zero of=/usr/tmpDSK bs=1024count=1024000sudo mkfs.ext4 /usr/tmpDSK
Создайте резервную копию текущей папки / tmp:
sudocp-avr/tmp /tmpbackup
Смонтируйте новый раздел / tmp и установите правильные разрешения.
sudomount-t tmpfs -o loop,noexec,nosuid,rw /usr/tmpDSK /tmpsudochmod1777/tmp
Скопируйте данные из резервной папки и удалите резервную папку.
sudocp-avr/tmpbackup/*/tmp/sudorm-rf/tmpbackup
Установите / tmp в fbtab.
sudonano/etc/fstab
Добавьте следующую строку:
/usr/tmpDSK /tmp tmpfs loop,nosuid,noexec,rw 00
Проверьте свою запись в fstab.
sudomount-a
Безопасный / var / tmp:
Некоторое программное обеспечение использует эту папку как временную, поэтому мы также должны защитить ее.
Чтобы защитить / var / tmp, создайте символическую ссылку, которая указывает / var / tmp на / tmp.
sudomv/var/tmp /var/tmpoldsudoln-s/tmp /var/tmpsudocp-avr/var/tmpold/*/tmp/
Установите ограничения безопасности и отключите нежелательные службы
Установите ограничения безопасности
Чтобы защитить вашу систему от атак вилкой бомбы, вы должны установить лимит процесса для ваших пользователей.
Чтобы настроить это, отредактируйте файл "/etc/security/limits.conf",
sudonano/etc/security/limits.conf
и отредактируйте следующую строку:
user1 hard nproc 100@group1 hard nproc 20
Это предотвратит использование пользователями определенной группы максимум двадцати процессов и максимизирует количество процессов до ста для пользователя user1.
Отключите ненужные сервисы
Многие службы в Ubuntu занимают память и дисковое пространство, которые могут вам понадобиться. Отключение или удаление ненужных служб может улучшить общую производительность системы.
Чтобы узнать, какие службы запущены в данный момент, выполните следующую команду:
sudo initctl list |grep running
Вы можете отключить его, выполнив эту команду.
sudo update-rc.d -f service_name removesudoapt-get purge service_name
Исправить уязвимость Shellshock Bash:
Уязвимость Shellshock позволяет хакерам назначать переменные среды Bash и получать несанкционированный доступ к системе. Эту уязвимость очень легко использовать.
Чтобы проверить уязвимость системы, выполните следующую команду:
sudoenvi='() { :;}; echo Your system is Bash vulnerable'bash-c"echo Bash vulnerability test"
Если вы видите результат ниже, это означает, что ваша система уязвима.
Ваша система уязвима для Bash. Уязвимость в Bash test
Чтобы исправить эту уязвимость, выполните следующую команду:
sudoapt-get update ; sudoapt-get install--only-upgradebash
Если вы снова запустите команду, вы увидите:
bash: warning: VAR: ignoring function definition attemptbash: error importing function definition for`VAR'Bash vulnerability test
Заключение:
Здесь мы объяснили основные вещи, которые вы можете сделать, чтобы укрепить Ubuntu. Теперь вы должны иметь достаточное представление об основных методах обеспечения безопасности, которые вы можете реализовать на своем сервере Ubuntu. Надеюсь, этот пост будет вам полезен.
Справка: руководство по усилению защиты Ubuntu.
6 комментариев
Комментарии закрыты.
Не отключайте irqbalance
потому что
http://serverfault.com/questions/513807/is-there-still-a-use-for-irqbalance-on-modern-hardware
Отличное написание. Спасибо
Спасибо, Том.
"Включение автоматических обновлений может быть очень важным для защиты вашего сервера"
Поскольку обновления выполняются автоматически, вы не можете их контролировать. Плохое обновление может автоматически испортить вашу систему.
"Добавить раздел SWAP"
Как добавление раздела SWAP помогает повысить безопасность?
Не следует ли использовать visudo для редактирования файла sudoers, а не nano?
Привет, драконий пасть,
visudo проверяет синтаксическую ошибку, чтобы убедиться, что вы ничего не испортили. если вы что-то напутали, sudo перестанет работать.
nano - это простой текстовый редактор. он не проверяет синтаксические ошибки.
поэтому, если вы являетесь опытным пользователем, вы можете использовать любой редактор, но если вы обычный пользователь, вам всегда следует использовать visudo.
Привет, драконий пасть,
Раздел подкачки увеличивает объем доступной памяти без увеличения объема оперативной памяти. Если ваша память полностью заполнена, любые дополнительные приложения будут запускаться из раздела подкачки, а не из памяти. Это улучшит производительность вашей системы.