Server unix: С чего начать настройку любого UNIX сервера
Содержание
С чего начать настройку любого UNIX сервера
Обновлено: Опубликовано:
Термины по теме: UNIX, Linux, FreeBSD, Ubuntu, CentOS
Описанные ниже действия рекомендуется выполнить в первую очередь после установки операционной системы на базе UNIX (например, DEB-base: Astra Linux, Ubuntu, Debian и RPM-base: Rocky Linux, РЕД ОС, CentOS, а также FreeBSD) вне зависимости от того, как планируется ее использовать. Также мы рассмотрим некоторые нюансы при работе с контейнерами.
Стоит учитывать, что контейнерная виртуализация решает разные задачи — идеологически, есть контейнеры для процессов (например, docker и podman), а есть контейнеры с полноценными операционными системами (например, LXD и systemd-nspawn). Нижеописанные действия меньше подходят контейнерам для процессов и больше последним.
Обновление системы
Работа с пользователями
Задать имя сервера
Настройка времени и его обновления
Обновление корневых сертификатов
Настройка vi
Автозавершение ввода команд
Утилиты гостевой операционной системы
Безопасность
1.
Обновление и репозитории
На чистой системе рекомендуется сразу установить все обновления, которые доступны для системы из ее родных репозиториев. Наши действия будут различаться в зависимости от используемой операционной системы.
Rocky Linux / CentOS / Red Hat / Fedora
yum update
Если каждый раз при установке и обновлении пакетов система подвисает на этапе:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Значит могут быть проблемы при подключении к серверам для определения скорости. В итоге, это только будет увеличивать время ожидания.
Данную проверку можно отключить. Открываем файл:
vi /etc/yum/pluginconf.d/fastestmirror.conf
И приводим к виду опцию:
enabled=0
Ubuntu
Обновляем кэш репозиториев и выполняем обновление:
apt update && apt upgrade
Debian
Чаще всего, репозиторий Debian не настроен. Открываем файл:
vi /etc/apt/sources.list
И приводим его к виду:
deb http://deb. debian.org/debian/ bullseye main
deb-src http://deb.debian.org/debian/ bullseye main
deb http://security.debian.org/debian-security bullseye-security main contrib
deb-src http://security.debian.org/debian-security bullseye-security main contrib
deb http://deb.debian.org/debian/ bullseye-updates main contrib
deb-src http://deb.debian.org/debian/ bullseye-updates main contrib
* обратите внимание, что bullseye — кодовое название 11 версии. Вы должны подставить свое значение:
- Debian 11 — bullseye.
- Debian 10 — buster.
- Debian 9 — stretch.
После можно вводить:
apt update && apt upgrade
Astra Linux
Для данной системы по умолчанию нет подключенных онлайн репозиториев — установка возможна только с установочного носителя. Лучше это сразу отредактировать. Для этого откроем файл:
vi /etc/apt/sources. list
Поставим комментарий для CDROM:
#deb cdrom…
и добавим репозитории. Строки, которые нужно прописать стоит посмотреть на сайте разработчика, например, для Astra Linux SE 1.7:
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free
Теперь можно выполнить обновление:
apt update && apt upgrade
Мы можем получить ошибку Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown. Could not handshake: Error in the certificate verification. Она возникает из-за устаревших корневых сертификатов. Сложность в том, что для обновления данных сертификатор нам нужны некоторые пакеты и рабочие репозитории, поэтому для обхода проблемы сы создадим файл:
vi /etc/apt/apt.conf.d/99-verify-peer.conf
Acquire::https::dl. astralinux.ru::Verify-Peer «false»;
* где dl.astralinux.ru — адрес репозитория, для которого необходимо отключить проверку сертификата.
После снова попробуем выполнить обновление:
apt update && apt upgrade
FreeBSD
pkg update && pkg upgrade
2. Работа с пользователями
Задаем пароль для пользователя root следующей командой:
passwd root
Создаем нового пользователя для работы с сервером.
а) если Rocky Linux / CentOS:
useradd kdo -G wheel -m
* где kdo — имя учетной записи; wheel — группа, которая позволяет входить в систему в привилегированном режиме (su).
б) если Astra Linux / Debian / Ubuntu:
useradd kdo -G sudo -m
* где kdo — имя учетной записи; sudo — группа, которая позволяет запускать команды в привилегированном (sudo) режиме.
в) если BSD:
pw useradd kdo -G wheel -m
После того, как создали пользователя, обязательно задаем пароль.
Это можно сделать командой:
passwd kdo
3. Имя сервера
Предположим, имя нашего компьютера должно быть server.dmosk.ru. В зависимости от типа системы, наши действия будут различаться.
а) Для Linux:
hostnamectl set-hostname server.dmosk.ru
б) Для BSD:
ee /etc/rc.local
hostname=»server.dmosk.ru»
в) Для контейнеров.
В контейнерах недоступна подсистема systemd, поэтому такие команды, как hostnamectl там не работают. Редактируем файл:
vi /etc/hostname
server.dmosk.ru
После перезагрузки сервер поменяет имя. Чтобы поменять его сразу, дополнительно вводим команду:
hostname server.dmosk.ru
4. Правильное время
Многие сервисы завязаны на время — от него зависит корректность их работы. Да и, в принципе, неправильное время — не удобно.
Посмотреть текущее время и часовой пояс можно командой:
date
Настройка состоит из двух шагов: указания подходящей временной зоны и запуска приложения для синхронизации времени.
Настраиваем временную зону
а) В большинстве систем Linux это можно сделать командой:
timedatectl set-timezone Europe/Moscow
* В данном примере мы задаем зону по московскому времени. Список всех доступных зон можно посмотреть командой timedatectl list-timezones. Если мы увидим только одну зону UTC, скорее всего, у нас установлена минимальная версия Ubuntu. Для установки всех зон вводим apt install tzdata.
б) В контейнерах и системах без systemd:
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
* В данном примере мы задаем зону по московскому времени. Список всех доступных зон можно посмотреть командой ls /usr/share/zoneinfo.
Синхронизация времени
Устанавливаем утилиту для синхронизации времени, разрешаем запуск демона и стартуем его.
а) если на системе Astra Linux / Ubuntu / Debian:
apt install chrony
systemctl enable chrony
б) если на системе Rocky Linux / CentOS / Red Hat / Fedora:
yum install chrony
systemctl enable chronyd —now
5. Обновление корневых сертификатов
Для корректной работы по зашифрованному каналу связи, необходимо, чтобы на нашем сервере были свежие корневые сертификаты. В противном случае, мы будем получать предупреждения о попытках установить соединение с небезопасным сервером. Это приведем к тому, что некоторые команды не будут отрабатывать или будут требоваться с нашей стороны дополнительные действия.
Установка корневых сертификатов отличается для разных дистрибутивов Linux.
а) для систем на базе DEB (Astra Linux, Debian, Ubuntu, Mint):
apt install wget
wget http://ftp. ru.debian.org/debian/pool/main/c/ca-certificates/ca-certificates_20230311_all.deb
dpkg -i ca-certificates_*_all.deb
update-ca-certificates
rm -f ca-certificates_*_all.deb
б) для систем на базе RPM (Rocky Linux, CentOS):
yum install ca-certificates
update-ca-trust
Подробнее об установке корневых сертификатов в инструкции Обновление корневых сертификатов на Linux.
6. Настройка vi (Astra Linux, Debian или Ubuntu)
Некоторые дистрибутивы Linux используют версию vi, с которой работать не совсем удобно. Как правило, это относится к системам на основе deb.
Многие пользователи используют другие редакторы, например, nano. Но если мы хотим использовать, именно, vi, попробуем сделать работу с ним приятнее.
Tiny vi
Ставим пакет:
apt install vim vim-tiny
Вводим команду, чтобы для текущего сеанса использоватся не стандартный vi, а тюнингованный:
alias vi=»vim.tiny»
Также добавим это же в файл:
echo ‘alias vi=»vim. tiny»‘ >> ~/.bashrc
Готово.
Set paste (вставка json и yaml)
При вставке текста с форматом специального назначения, например json и yaml, vi неправильно определяет синтаксис, что приводит к сбиванию формата строк.
Для решения проблемы нужно ввести команду :set paste.
Можно немного упростить процесс — добавляем в конфиг опцию set pastetoggle=<F3>.
а) для настройки всем пользователям:
vi /etc/vim/vimrc
б) только для текущего:
vi ~/.vimrc
Добавим строку:
set pastetoggle=<F3>
* в данном примере мы настроим быструю клавишу F3, при нажатии которой мы введем опцию set paste.
Теперь переходим в редактор, нажимаем F3, переходим в режим вставки (i) — можно вставлять код.
Позиция курсора после выхода из vim
В Debian и некоторых программах подключения по SSH (например, Putty) после выхода из редактора vi, позиция курсора оказывается в верхней части экрана и на него накладывается предыдущий текст. Данное поведение мешает работать.
Для решения проблемы открываем на редактирование:
а) для настройки всем пользователям:
vi /etc/vim/vimrc
б) только для текущего:
vi ~/.vimrc
Добавим строку:
set t_ti= t_te=
7. Автозавершение ввода команд
Значительно упрощает работу с консолью. Выполняется только на Linux — на BSD настроен по умолчанию.
Открываем на редактирование следующий файл:
vi /etc/inputrc +999
И добавляем:
set show-all-if-ambiguous On
«\e[A»: history-search-backward
«\e[B»: history-search-forward
Выходим из системы и входим снова для применения настроек.
8. Утилиты гостевой системы для виртуальных машин
Если наш компьютер является виртуальной машиной, не забываем установить гостевые утилиты. Они позволяют повысить производительность системы, а также дают дополнительные возможности, например, получение дополнительной информации о виртуальной среде из хоста виртуализации или мягкую перезагрузку.
Для каждой системы виртуализации свои методы установки утилит. Читайте о них подробнее в других инструкциях:
1. Установка и настройка Proxmox VE.
2. Пошаговая инструкция по установке VMware Tools на Linux.
9. Безопасность
Для Debian или Ubuntu стоит настроить брандмауэр. А для Rocky Linux / CentOS — отключить SELinux (если только мы не собираемся его настраивать).
Iptables (Debian / Ubuntu)
По умолчанию, в системах на базе deb брандмауэр работает по принципу полного разрешения. Желательно, это поправить.
Для начала убедимся в наличие необходимых для этого утилит:
apt install iptables iptables-persistent
* где:
- iptables — утилита управления правилами netfilter.
- iptables-persistent — утилита для сохранения правил для iptables.
Теперь выполним стартовые настройки.
Разрешаем SSH:
iptables -I INPUT -p tcp —dport 22 -j ACCEPT
* если мы подключаемся к SSH по нестандартному порту, то меняе 22 на нужное значение!
Создаем правила для нормальной работы apt или yum:
iptables -I INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
Разрешаем ICMP (для выполнения команды ping):
iptables -I INPUT -p icmp -j ACCEPT
Разрешаем все входящие на адрес локальной петли:
iptables -I INPUT -i lo -j ACCEPT
Ставим политику запрета на входящие и разрешаем все исходящие:
iptables -P INPUT DROP
Для сохранения правил вводим команду:
netfilter-persistent save
О других вариантах сохранения правил в iptables читайте в инструкции Настройка netfilter с помощью iptables. SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
Подробнее в инструкции Как отключить SELinux. Если мы хотим его настроить, читаем инструкцию Настройка SELinux в CentOS.
Fail2ban
На все серверы, к которым можно подключиться из сети Интернет по ssh стоит установить Fail2ban. Данное средство защиты поможет предотвратить подбор пароля для подключения к нашему серверу (по крайней мере, сильно усложнит задачу взломщику).
Подробнее про работу данной программы рассказано в инструкции Настройка и использование Fail2ban на Linux. В рамказ данного руководства мы ограничимся установкой и запуском.
Команда для развертывания зависит от дистрибутива Linux.
а) RPM: Rocky Linux / CentOS:
yum install epel-release
yum install fail2ban
б) Deb: Ubuntu / Debian:
apt install fail2ban
По умолчанию, fail2ban настроен для защиты ssh на порту 22. Нам нужно только убедиться, что он запущен:
systemctl enable fail2ban —now
И убедиться, что правило существует:
fail2ban-client status
Мы должны увидеть что-то на подобие:
Status
|- Number of jail: 1
`- Jail list: sshd
Если команда покажет ошибку или не вернет никакого результат, то для пакета вашей системы нет стартовых настроек и их нужно выполнить самоу. Подробнее о настройке fail2ban можно прочитать в инструкции Настройка и использование Fail2ban на Linux.
С чего начать настройку любого UNIX сервера
Обновлено: Опубликовано:
Термины по теме: UNIX, Linux, FreeBSD, Ubuntu, CentOS
Описанные ниже действия рекомендуется выполнить в первую очередь после установки операционной системы на базе UNIX (например, DEB-base: Astra Linux, Ubuntu, Debian и RPM-base: Rocky Linux, РЕД ОС, CentOS, а также FreeBSD) вне зависимости от того, как планируется ее использовать. Также мы рассмотрим некоторые нюансы при работе с контейнерами.
Стоит учитывать, что контейнерная виртуализация решает разные задачи — идеологически, есть контейнеры для процессов (например, docker и podman), а есть контейнеры с полноценными операционными системами (например, LXD и systemd-nspawn). Нижеописанные действия меньше подходят контейнерам для процессов и больше последним.
Обновление системы
Работа с пользователями
Задать имя сервера
Настройка времени и его обновления
Обновление корневых сертификатов
Настройка vi
Автозавершение ввода команд
Утилиты гостевой операционной системы
Безопасность
1. Обновление и репозитории
На чистой системе рекомендуется сразу установить все обновления, которые доступны для системы из ее родных репозиториев. Наши действия будут различаться в зависимости от используемой операционной системы.
Rocky Linux / CentOS / Red Hat / Fedora
yum update
Если каждый раз при установке и обновлении пакетов система подвисает на этапе:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Значит могут быть проблемы при подключении к серверам для определения скорости. В итоге, это только будет увеличивать время ожидания.
Данную проверку можно отключить. Открываем файл:
vi /etc/yum/pluginconf.d/fastestmirror.conf
И приводим к виду опцию:
enabled=0
Ubuntu
Обновляем кэш репозиториев и выполняем обновление:
apt update && apt upgrade
Debian
Чаще всего, репозиторий Debian не настроен. Открываем файл:
vi /etc/apt/sources.list
И приводим его к виду:
deb http://deb.debian.org/debian/ bullseye main
deb-src http://deb.debian.org/debian/ bullseye main
deb http://security.debian.org/debian-security bullseye-security main contrib
deb-src http://security.debian.org/debian-security bullseye-security main contrib
deb http://deb.debian.org/debian/ bullseye-updates main contrib
deb-src http://deb.debian.org/debian/ bullseye-updates main contrib
* обратите внимание, что bullseye — кодовое название 11 версии. Вы должны подставить свое значение:
- Debian 11 — bullseye.
- Debian 10 — buster.
- Debian 9 — stretch.
После можно вводить:
apt update && apt upgrade
Astra Linux
Для данной системы по умолчанию нет подключенных онлайн репозиториев — установка возможна только с установочного носителя. Лучше это сразу отредактировать. Для этого откроем файл:
vi /etc/apt/sources.list
Поставим комментарий для CDROM:
#deb cdrom…
и добавим репозитории. Строки, которые нужно прописать стоит посмотреть на сайте разработчика, например, для Astra Linux SE 1.7:
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free
Теперь можно выполнить обновление:
apt update && apt upgrade
Мы можем получить ошибку Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown. Could not handshake: Error in the certificate verification. Она возникает из-за устаревших корневых сертификатов. Сложность в том, что для обновления данных сертификатор нам нужны некоторые пакеты и рабочие репозитории, поэтому для обхода проблемы сы создадим файл:
vi /etc/apt/apt.conf.d/99-verify-peer.conf
Acquire::https::dl.astralinux.ru::Verify-Peer «false»;
* где dl.astralinux.ru — адрес репозитория, для которого необходимо отключить проверку сертификата.
После снова попробуем выполнить обновление:
apt update && apt upgrade
FreeBSD
pkg update && pkg upgrade
2. Работа с пользователями
Задаем пароль для пользователя root следующей командой:
passwd root
Создаем нового пользователя для работы с сервером.
а) если Rocky Linux / CentOS:
useradd kdo -G wheel -m
* где kdo — имя учетной записи; wheel — группа, которая позволяет входить в систему в привилегированном режиме (su).
б) если Astra Linux / Debian / Ubuntu:
useradd kdo -G sudo -m
* где kdo — имя учетной записи; sudo — группа, которая позволяет запускать команды в привилегированном (sudo) режиме.
в) если BSD:
pw useradd kdo -G wheel -m
После того, как создали пользователя, обязательно задаем пароль.
Это можно сделать командой:
passwd kdo
3. Имя сервера
Предположим, имя нашего компьютера должно быть server.dmosk.ru. В зависимости от типа системы, наши действия будут различаться.
а) Для Linux:
hostnamectl set-hostname server.dmosk.ru
б) Для BSD:
ee /etc/rc.local
hostname=»server.dmosk.ru»
в) Для контейнеров.
В контейнерах недоступна подсистема systemd, поэтому такие команды, как hostnamectl там не работают. Редактируем файл:
vi /etc/hostname
server. dmosk.ru
После перезагрузки сервер поменяет имя. Чтобы поменять его сразу, дополнительно вводим команду:
hostname server.dmosk.ru
4. Правильное время
Многие сервисы завязаны на время — от него зависит корректность их работы. Да и, в принципе, неправильное время — не удобно.
Посмотреть текущее время и часовой пояс можно командой:
date
Настройка состоит из двух шагов: указания подходящей временной зоны и запуска приложения для синхронизации времени.
Настраиваем временную зону
а) В большинстве систем Linux это можно сделать командой:
timedatectl set-timezone Europe/Moscow
* В данном примере мы задаем зону по московскому времени. Список всех доступных зон можно посмотреть командой timedatectl list-timezones. Если мы увидим только одну зону UTC, скорее всего, у нас установлена минимальная версия Ubuntu. Для установки всех зон вводим apt install tzdata.
б) В контейнерах и системах без systemd:
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
* В данном примере мы задаем зону по московскому времени. Список всех доступных зон можно посмотреть командой ls /usr/share/zoneinfo.
Синхронизация времени
Устанавливаем утилиту для синхронизации времени, разрешаем запуск демона и стартуем его.
а) если на системе Astra Linux / Ubuntu / Debian:
apt install chrony
systemctl enable chrony
б) если на системе Rocky Linux / CentOS / Red Hat / Fedora:
yum install chrony
systemctl enable chronyd —now
5. Обновление корневых сертификатов
Для корректной работы по зашифрованному каналу связи, необходимо, чтобы на нашем сервере были свежие корневые сертификаты. В противном случае, мы будем получать предупреждения о попытках установить соединение с небезопасным сервером. Это приведем к тому, что некоторые команды не будут отрабатывать или будут требоваться с нашей стороны дополнительные действия.
Установка корневых сертификатов отличается для разных дистрибутивов Linux.
а) для систем на базе DEB (Astra Linux, Debian, Ubuntu, Mint):
apt install wget
wget http://ftp.ru.debian.org/debian/pool/main/c/ca-certificates/ca-certificates_20230311_all.deb
dpkg -i ca-certificates_*_all.deb
update-ca-certificates
rm -f ca-certificates_*_all.deb
б) для систем на базе RPM (Rocky Linux, CentOS):
yum install ca-certificates
update-ca-trust
Подробнее об установке корневых сертификатов в инструкции Обновление корневых сертификатов на Linux.
6. Настройка vi (Astra Linux, Debian или Ubuntu)
Некоторые дистрибутивы Linux используют версию vi, с которой работать не совсем удобно. Как правило, это относится к системам на основе deb.
Многие пользователи используют другие редакторы, например, nano. Но если мы хотим использовать, именно, vi, попробуем сделать работу с ним приятнее.
Tiny vi
Ставим пакет:
apt install vim vim-tiny
Вводим команду, чтобы для текущего сеанса использоватся не стандартный vi, а тюнингованный:
alias vi=»vim.tiny»
Также добавим это же в файл:
echo ‘alias vi=»vim.tiny»‘ >> ~/.bashrc
Готово.
Set paste (вставка json и yaml)
При вставке текста с форматом специального назначения, например json и yaml, vi неправильно определяет синтаксис, что приводит к сбиванию формата строк.
Для решения проблемы нужно ввести команду :set paste.
Можно немного упростить процесс — добавляем в конфиг опцию set pastetoggle=<F3>.
а) для настройки всем пользователям:
vi /etc/vim/vimrc
б) только для текущего:
vi ~/.vimrc
Добавим строку:
set pastetoggle=<F3>
* в данном примере мы настроим быструю клавишу F3, при нажатии которой мы введем опцию set paste.
Теперь переходим в редактор, нажимаем F3, переходим в режим вставки (i) — можно вставлять код.
Позиция курсора после выхода из vim
В Debian и некоторых программах подключения по SSH (например, Putty) после выхода из редактора vi, позиция курсора оказывается в верхней части экрана и на него накладывается предыдущий текст. Данное поведение мешает работать.
Для решения проблемы открываем на редактирование:
а) для настройки всем пользователям:
vi /etc/vim/vimrc
б) только для текущего:
vi ~/.vimrc
Добавим строку:
set t_ti= t_te=
7. Автозавершение ввода команд
Значительно упрощает работу с консолью. Выполняется только на Linux — на BSD настроен по умолчанию.
Открываем на редактирование следующий файл:
vi /etc/inputrc +999
И добавляем:
set show-all-if-ambiguous On
«\e[A»: history-search-backward
«\e[B»: history-search-forward
Выходим из системы и входим снова для применения настроек.
8. Утилиты гостевой системы для виртуальных машин
Если наш компьютер является виртуальной машиной, не забываем установить гостевые утилиты. Они позволяют повысить производительность системы, а также дают дополнительные возможности, например, получение дополнительной информации о виртуальной среде из хоста виртуализации или мягкую перезагрузку.
Для каждой системы виртуализации свои методы установки утилит. Читайте о них подробнее в других инструкциях:
1. Установка и настройка Proxmox VE.
2. Пошаговая инструкция по установке VMware Tools на Linux.
9. Безопасность
Для Debian или Ubuntu стоит настроить брандмауэр. А для Rocky Linux / CentOS — отключить SELinux (если только мы не собираемся его настраивать).
Iptables (Debian / Ubuntu)
По умолчанию, в системах на базе deb брандмауэр работает по принципу полного разрешения. Желательно, это поправить.
Для начала убедимся в наличие необходимых для этого утилит:
apt install iptables iptables-persistent
* где:
- iptables — утилита управления правилами netfilter.
- iptables-persistent — утилита для сохранения правил для iptables.
Теперь выполним стартовые настройки.
Разрешаем SSH:
iptables -I INPUT -p tcp —dport 22 -j ACCEPT
* если мы подключаемся к SSH по нестандартному порту, то меняе 22 на нужное значение!
Создаем правила для нормальной работы apt или yum:
iptables -I INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
Разрешаем ICMP (для выполнения команды ping):
iptables -I INPUT -p icmp -j ACCEPT
Разрешаем все входящие на адрес локальной петли:
iptables -I INPUT -i lo -j ACCEPT
Ставим политику запрета на входящие и разрешаем все исходящие:
iptables -P INPUT DROP
Для сохранения правил вводим команду:
netfilter-persistent save
О других вариантах сохранения правил в iptables читайте в инструкции Настройка netfilter с помощью iptables.
Firewalld (Rocky Linux / CentOS)
В системах на базе RPM брандмауэр работает на запрет пакетов и не требует начальной настройки. SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
Подробнее в инструкции Как отключить SELinux. Если мы хотим его настроить, читаем инструкцию Настройка SELinux в CentOS.
Fail2ban
На все серверы, к которым можно подключиться из сети Интернет по ssh стоит установить Fail2ban. Данное средство защиты поможет предотвратить подбор пароля для подключения к нашему серверу (по крайней мере, сильно усложнит задачу взломщику).
Подробнее про работу данной программы рассказано в инструкции Настройка и использование Fail2ban на Linux. В рамказ данного руководства мы ограничимся установкой и запуском.
Команда для развертывания зависит от дистрибутива Linux.
а) RPM: Rocky Linux / CentOS:
yum install epel-release
yum install fail2ban
б) Deb: Ubuntu / Debian:
apt install fail2ban
По умолчанию, fail2ban настроен для защиты ssh на порту 22. Нам нужно только убедиться, что он запущен:
systemctl enable fail2ban —now
И убедиться, что правило существует:
fail2ban-client status
Мы должны увидеть что-то на подобие:
Status
|- Number of jail: 1
`- Jail list: sshd
Если команда покажет ошибку или не вернет никакого результат, то для пакета вашей системы нет стартовых настроек и их нужно выполнить самоу. Подробнее о настройке fail2ban можно прочитать в инструкции Настройка и использование Fail2ban на Linux.
Мы можем указать httpd % httpd -d /usr/www/site.toddle Поскольку вы будете много печатать, имеет смысл скопировать Сделайте go работоспособным и запустите его, набрав % chmod +x /usr/local/bin/go % перейти Это запускает Apache в фоновом режиме. Убедитесь, что он работает % пс-вспомогательный Эта Unix-утилита
Рано или поздно ты % убить PID В качестве альтернативы, поскольку Apache записывает свой PID в файл … убить `cat /usr/www/site.toddle/logs/httpd. pid` Вы можете предпочесть более общие версии этих скриптов httpd -d `pwd` и стоп пароль | путь чтения убить `кошку $path/logs/httpd.pid` Или, если вы не планируете возиться с множеством разных использование: ./apachectl (старт|стоп|перезапуск|полный статус|статус|изящный|конфигурационный тест|помощь)
Когда мы набрали ./go, ничего не произошло, [<дата>]:'mod_unique_id: невозможно получить hostbyname ("myname.my.domain") В нашем случае эта проблема возникла из-за странного способа запуска 10.0.0.2 мое имя.мой.домен мое имя , где 10.0.0.2 — это IP-адрес, который мы использовали для тестирования. Однако на этом наши беды еще не закончились. Когда мы перезапустили [<дата>] — не удалось определить имя пользователя по uid Это означает больше
2.4.1. Веб-пользователь и веб-группа Средство Введите имя пользователя [a-z0-9]: webuser Введите полное имя []: webuser Введите дату оболочки bash csh no sh tcsh [csh]: no Uid [ какое-то число ]: Группа входа в систему webuser [webuser]: webgroup Группа входа: ''webgroup'.q. Пригласить веб-пользователя в другие группы: гость нет [нет]: Введите пароль []: пароль Затем вы получите отчет: Имя:webuser Пароль: пароль Полное имя: веб-пользователь Uid: какой-то номер Группы:веб-группа ГЛАВНАЯ:/дом/веб-пользователь оболочка/несуществующий ХОРОШО? (д/н) [д]: отправить сообщение ''webuser' и: нет маршрута second_mail_address [no]: Добавить что-нибудь к сообщению по умолчанию (y/n) [n]: Отправить сообщение (д/н) [д]: n Добавить другого пользователя? (y/n) [y]: n Биты скрипта после OK действительно Пользователь webuser Group webgroup Ниже приведены интересные директивы. 2.4.1.1. ПользовательПользователь unix-userid По умолчанию: Пользователь #-1 Конфигурация сервера, виртуальный хост Пользователь
Пользователь не должен иметь привилегий, позволяющих ему или ей получить доступ 2.4.1.1.1. Примечания Если вы запускаете сервер в качестве пользователя, отличного от root , он 2.4.1.1.2. Безопасность Не устанавливать пользователя (или группу) 2.4.1.2. |
2.3. сайт.toddle | 2.5. Настройка сервера Win32 |
Copyright © 2001 O’Reilly & Associates. Все права защищены.
Защитите свой сервер Linux/Unix | Документация ITS
Если вам разрешен доступ к конфиденциальным корпоративным данным или их хранение с использованием сервера, которым вы управляете, пожалуйста, соблюдайте минимальные требования, указанные ниже.
Обратите внимание, что, хотя эти инструкции в целом применимы к большинству систем Unix/Linux, показанные конкретные инструкции актуальны для Red Hat Enterprise Linux 7. Вы можете использовать текстовый редактор командной строки по вашему выбору; примеры использования «нано» показаны ниже.
Содержание
- Начните с CIS-CAT
- Ознакомьтесь с руководством по конфиденциальным данным и минимальными требованиями к информационной безопасности
- Конфигурация и управление
- Доступ и учетные записи
- Мониторинг
- Соединения
- Что еще нужно учитывать
Начните с CIS-CAT
Компания Information Assurance (IA) рекомендует начать процесс укрепления университетских серверов, рабочих станций или баз данных, запустив инструмент оценки конфигурации Center for Internet Security — CIS-CAT. Инструмент просканирует вашу систему, сравнит ее с предустановленным эталоном, а затем создаст отчет, который поможет направить дальнейшие усилия по укреплению безопасности. Информацию о версии инструмента для единой системы обмена сообщениями см. в CIS-CAT для систем UM.
Ознакомьтесь с Руководством по конфиденциальным данным и Минимальными требованиями к информационной безопасности
Используйте Руководство по конфиденциальным данным , чтобы убедиться, что ваш сервер имеет право на доступ или поддержку типов конфиденциальных данных, которые он хранит или обрабатывает. Если вы получаете доступ к данным, классифицированным как Restricted или High , или храните их на своем сервере, вам следует проконсультироваться с IA, обратившись в сервисный центр ITS.
Используйте Минимальные требования к информационной безопасности для систем, приложений и данных, чтобы просмотреть сводку требований, изложенных в политике информационной безопасности UM (SPG 601. 27) и стандартах ИТ-безопасности UM.
Конфигурация и управление
Включить полное шифрование диска.
Полное шифрование диска рекомендуется для всех серверов UM, а для некоторых требуется. Для систем, хранящих конфиденциальные данные, обратитесь к шифрованию (DS-15) для требований к шифрованию данных UM. Шифрование можно использовать для целых дисков, разделов диска или каталогов и файлов, а также включить его во время установки и настройки операционной системы.
Установите уведомление об использовании системы или входе в систему, которое ссылается на SPG 601.07.
Чтобы настроить отображение баннера при каждой попытке подключения по ssh до попытка входа в систему:
- Откройте окно терминала и введите команду:
sudo nano /etc/issue.net - Добавьте образец сообщения. Вот, например, хороший текст уведомления для сервера, поддерживаемого университетом:
**************************************************** *********************************
* Это сеть Мичиганского университета.
* Вы должны быть авторизованы для использования этих ресурсов. Несанкционированное или преступное использование
* запрещено. Используя эти ресурсы, вы соглашаетесь соблюдать
* «Ответственное использование информационных ресурсов (SPG 601.07)» в дополнение ко всем
* соответствующим законам штата и федеральным законам.
* http://spg.umich.edu/policy/601.07
************************************* ******************************************************* **> - Отредактируйте конфигурации ssh с помощью команды:
судо нано /etc/ssh/sshd_config - Найдите Banner в файле и раскомментируйте строку, в которой он появляется.
- Добавить новую строку:
Баннер /etc/issue.net - Выйдите из nano, нажав ctrl+x и , нажав y , чтобы сохранить.
Ваше сообщение будет отображаться при всех попытках входа в систему.
Настройте заставку так, чтобы она активировалась после определенного периода бездействия и требовала ввода пароля для ее разблокировки.
Чтобы настроить заставку в RHEL 7:
- Создайте файл /etc/dconf/db/local.d/00-screensaver со следующим содержимым:
[org/gnome/desktop/session
idle-delay=uint32 180[org/gnome/desktop/screensaver]
lock-enabled=true
lock-delay=uint32 300# Установите оба значения на желаемое количество секунд
- Чтобы запретить пользователям изменять эти настройки, создайте /etc/dconf/db/local.db/locks/screensaver с содержимым:
/org/gnome/desktop/session/idle-delay
/org/gnome/desktop/screensaver/lock-delay - Обновите базу данных dconf с помощью команды: dconf update
Установите и используйте расширенное программное обеспечение для защиты конечных точек.
UM-Ann Arbor, UM-Dearborn и UM-Flint используют CrowdStrike Falcon для улучшенной защиты конечных точек. На всех принадлежащих UM системах (операционные системы Windows, macOS и Linux, будь то рабочие станции или серверы) должен быть установлен CrowdStrike Falcon. Для получения дополнительной информации см. CrowdStrike Falcon для юнитов.
Настройте свой хост для синхронизации времени в качестве клиента Network Time Protocol.
Многие интернет-сервисы полагаются на точность часов компьютера. Кроме того, точные отметки времени/даты в зарегистрированных действиях помогают любому криминалистическому анализу и устранению неполадок в системе.
Chrony является демоном NTP по умолчанию в RHEL 7.
1. Установите пакет chrony , если он отсутствует
2. Настройте /etc/chrony.conf так, чтобы он указывал на серверы ntp университета, добавив следующие строки:
сервер ntp1.itd.umich.edu
сервер ntp2.itd.umich.edu
сервер ntp3.itd.umich.edu
3. Включите и запустите хронографию emon с помощью команды:
sudo systemctl enable --now chronyd
Обновите службы и приложения в течение 30 дней после официального выпуска исправления безопасности поставщиком.
Чтобы настроить автоматические обновления:
- Установите пакет yum-cron
- Настройка /etc/yum/yum-cron.conf
- Настройте update_cmd с помощью следующих команд:
- update_cmd = по умолчанию – вытащить все обновления; эквивалент ‘yum upgrade’
- update_cmd = security – извлекать только пакеты, отмеченные как обновления безопасности в метаданных yum; эквивалент ‘yum —security update’
- update_cmd = security-severity:Critical — извлекать только критические исправления безопасности; эквивалент ‘yum —sec-severity=критическое обновление’ 908:00
- Задайте настройки электронной почты. Любые обновления пакетов будут отправлены по электронной почте указанным получателям.
- Включите службу yum-cron , выполнив:
$ sudo systemctl enable yum-cron.service
Сделайте резервную копию ваших данных.
Университет предлагает услугу MiBackup для резервного копирования серверов. Запись Руководства по конфиденциальным данным для MiBackup содержит подробные сведения о том, для каких типов данных можно или нельзя создавать резервные копии с помощью службы MiBackup.
Рекомендации по резервному копированию
- Определите подходящее расписание резервного копирования на основе того, как часто изменяются данные, хранящиеся в системе.
- Самая последняя полная резервная копия системы должна храниться вне офиса на случай аварии.
- Выполняйте одно полное резервное копирование системы один раз в неделю, а дифференциальные резервные копии — через день. Запланируйте резервное копирование на периоды, когда система не используется, чтобы обеспечить захват всех файлов и избежать проблем с производительностью. 908:00
- Тестовая система регулярно восстанавливается с использованием резервных копий.
Назначьте статический или зарезервируйте IP-адрес DHCP и зарегистрируйте DNS-имя для своего сервера.
Рекомендуется использовать ITS DNS. Кроме того, настройте обратный DNS для сервера и каждой службы, размещенной на сервере. Включите контактную информацию электронной почты в запись DNS. Вы можете получить доступ к Proteus через Bluecat, чтобы добавить эту информацию. Если вам нужна помощь, свяжитесь с мастером хоста UM.
Избегайте запуска локальных версий служб, таких как DHCP, NTP и DNS, которые ITS предоставляет централизованно.
Локальные версии этих служб могут создавать уязвимости для эксплойтов или атак.
Запросите сертификат сервера SSL и разрешите его использование веб-сервером.
Вы можете заказать сертификат сервера SSL в UMWeb. Не используйте сертификаты по умолчанию в рабочей среде.
Отключите все неиспользуемые или ненужные функции сервера или службы/приложения.
Если их нельзя отключить, используйте брандмауэр для ограничения доступа к службам, которые могут быть установлены/включены основными службами, например DNS или NTP, к IP-пространству кампуса UM.
Найдите серверы в центре обработки данных, обслуживаемом ITS.
ITS предоставляет услуги центров обработки данных и может размещать ваши серверы с помощью таких служб, как MiDatabase или MiServer.
Если вы не можете использовать центр обработки данных, обслуживаемый ITS, следуйте этим ожиданиям:
- Безопасный доступ к физическому серверу . Держите свой сервер в физически запертом пространстве. Не держите свой сервер в общедоступном месте.
- Поддержание постоянной мощности . Для сохранности серверного оборудования и данных, хранящихся на нем, используйте источник бесперебойного питания для питания сервера. 908:00
Доступ и учетные записи
Требовать пароль для доступа к машине и однопользовательской загрузки.
Следуйте этим рекомендациям по созданию надежного пароля. Неавторизованный доступ не должен быть разрешен, будь то неаутентифицированные веб-серверы, анонимные ftp-серверы или открытые сетевые ресурсы, которые разрешают доступ к файловой системе сервера.
Требовать аутентификацию по паролю
- Откройте окно терминала и скопируйте папку аутентификации системы в рабочий каталог с помощью этой команды:
sudo cp /etc/pam.d/system-auth /etc/pam.d/system-auth.ORI - Отредактируйте файл, введя следующую команду:
sudo nano /etc/pam.d/system-auth - Найдите строку, которая гласит:
достаточно auth /lib/security/pam_unix.so likeauth nullok
remove nullok , чтобы строка выглядела следующим образом: - Выход из nano с помощью ctrl+x и нажмите y, чтобы сохранить .
Измените пароли по умолчанию или предоставленные поставщиком на безопасные и уникальные пароли.
Всегда меняйте пароли на собственные. IA рекомендует использовать диспетчер паролей для создания и отслеживания безопасных паролей.
Требовать от новых пользователей изменить пароль по умолчанию.
Когда вы предоставляете пользователю доступ к машине, важно, чтобы он установил свой собственный пароль учетной записи, а не придерживался пароля по умолчанию. Установите это требование для каждого пользователя.
- Откройте окно терминала и введите следующую команду:
sudo chage -d 0 {имя пользователя}
Эта команда применима только к локальным учетным записям.
Отключить или удалить гостевые учетные записи и учетные записи по умолчанию.
Рекомендуется не разрешать гостевым учетным записям, учетным записям по умолчанию или общим учетным записям доступ к машине. Убедитесь, что в файле /etc/passwd нет подозрительных учетных записей.
Отключить вход root / su — и реализовать sudo.
Внедрение sudo позволит привилегированный доступ по мере необходимости и будет регистрировать все такие действия и связывать определенные действия с конкретными людьми. Он также позволяет избежать общих корневых учетных записей, что может затруднить безопасное лишение доступа для отдельных лиц или предотвратить инциденты безопасности, связанные со скомпрометированными учетными данными.
Примечание: Многие дистрибутивы Linux уже реализуют функцию входа в систему без полномочий root и принудительно используют sudo. Если используемый вами дистрибутив еще не поддерживает sudo, установите пакет sudo и настройте его соответствующим образом (убедитесь, что «su -» не переключает пользователя на root. Рассмотрим bash, vi и другие приложения, которые могут работать с root).
Запрет удаленного входа в систему с правами root по протоколу SSH
- Откройте окно терминала и отредактируйте файл конфигурации демона SSH /etc/ssh/sshd_config с помощью этой команды:
sudo nano /etc/ssh/sshd_config - Найдите строку, которая гласит:
PermitRootLogin yes
и измените ее на эту:
PermitRootLogin no - Выйдите из nano с помощью ctrl+x и нажмите y, чтобы сохранить .
- Остановите и перезапустите SSH Daemon с помощью следующих команд:
service sshd stop
service sshd start
По возможности ограничивайте доступ к серверу и приложениям.
- Ограничить доступ к приложению через группы или sudo. Создайте учетную запись исключительно для демона с определенными ограниченными правами.
- Не используйте административные учетные записи или учетные записи уровня root для запуска демона или служб.
- Учетные записи, которые получают доступ к серверу или управляют им, должны иметь минимальные разрешения, необходимые для выполнения соответствующих функций. (т. е. указать, кто может, а кто не может запускать задания cron) 908:00
Требовать централизованную аутентификацию.
Избегайте использования локальных учетных записей для аутентификации в любой службе или приложении, размещенном на вашем сервере, или в самом демоне сервера. Вместо этого используйте учетные записи на основе каталогов, например учетные записи U-M Kerberos. Не разрешайте аутентификацию с общими учетными записями.
Внедрение процедур управления жизненным циклом учетной записи.
Незамедлительно отключите доступ сотрудников и соавторов, которым больше не требуется доступ к серверу или приложениям.
Удалите опцию ctrl-alt-del для перезапуска сервера.
Чтобы отключить стандартное поведение Ctrl-Alt-Del при перезагрузке машины в системе без графического интерфейса:
systemctl mask ctrl-alt-del.target
интерфейс:
- Создайте /etc/dconf/db/local.d/00-disable-CAD со следующим содержимым:
[org/gnome/settings-daemon/plugins/media-keys] logout='' - Обновление база данных dconf с помощью команды:
обновление dconf
Начиная с RHEL 7.4, также существует действие CtrlAltDelBurstAction для определения поведения системы при нескольких последовательных нажатиях Ctrl-Alt-Delete.
Чтобы отключить любой ответ, отредактируйте строку CtrlAltDelBurstAction в /etc/systemd/system.conf , чтобы сказать:
CtrlAltDelBurstAction=none
Принудительное время ожидания сеанса.
Регулярно отключайте сеансы, простаивающие более двух часов, с помощью запланированного задания или других методов.
Приведенный ниже файл автоматического выхода реализует 120-минутный тайм-аут бездействия для оболочки /bin/bash по умолчанию . Обратите внимание, что TMOUT можно установить на 300, чтобы реализовать 5-минутный тайм-аут простоя и так далее.
- Открыть окно терминала.
- Создайте файл с именем /etc/profile.d/autologout.sh , введя следующую команду:
sudo touch /etc/profile.d/autologout.sh - Отредактируйте файл с помощью этой команды:
sudo nano /etc/profile.d/autologout.sh - Добавить следующее:
TMOUT=7200
только чтение TMOUT
экспорт TMOUT - Выйдите из nano с помощью ctrl+x и нажмите y для сохранения.
- Установите разрешения с помощью этой команды:
sudo chmod +x /etc/profile.d/autologout.sh
Приведенный ниже файл автоматического выхода реализует 120-минутный тайм-аут простоя для оболочки C.
- Открыть окно терминала.
- Создайте файл с именем /etc/profile.d/autologout.csh введя эту команду:
sudo touch /etc/profile.d/autologout.csh - Отредактируйте файл с помощью этой команды:
sudo nano /etc/profile.d/autologout.csh - Добавьте следующее:
# Выйдите из системы через 2 часа, как рекомендовано
# https://safecomputing.umich.edu/hardening
set -r autologout=120 - Выйдите из nano с помощью ctrl+x и нажмите y для сохранения.
- Установите разрешения с помощью этой команды:
sudo chmod +x /etc/profile.d/autologout.csh
Если вам нужно оставить сеанс открытым , вы можете запустить «screen» или «top», чтобы предотвратить бездействие сеанса и выход из системы. Это следует делать только в случае необходимости, чтобы автовыход не мешал вашей работе.
Включите двухфакторную аутентификацию, особенно если система будет хранить конфиденциальные данные.
Чтобы реализовать двухфакторную аутентификацию с помощью Duo, см. инструкции: Указания по установке Duo Unix SSH
Мониторинг
Настройте ведение журнала для уникальных служб и системный журнал для самой серверной системы.
При использовании удаленного ведения журнала убедитесь, что данные шифруются при передаче.
Чтобы настроить журнал аудита службы
- Если вы этого не сделали, установите пакет syslog с помощью этой команды:
sudo yum -y install rsyslog - Редактировать конфигурации системного журнала с помощью этой команды:
судо нано /etc/rsyslog.conf - Чтобы включить прослушивание портов UDP и TCP, удалите символ комментария # перед каждым оператором $ModLoad и каждым оператором ServerRun , чтобы получить следующее:
$ModLoad Input
$UDPServerR ип 514
. .....
$ModLoad imtcp
$InputTCPServerRun 514 - Выйдите из nano с помощью ctrl+x и нажмите y, чтобы сохранить .
- Перезапустите службу syslog , чтобы изменения вступили в силу с помощью этой команды:
sudo service rsyslog restart - Настройте машину для отправки журналов на центральный сервер, открыв конфигурации системного журнала с помощью этой команды:
sudo nano /etc/rsyslog.conf - В конце файла добавьте следующую строку, чтобы указать журнал сообщений клиента на сервер:
*.info;mail.none;authpriv.none;cron.none @192.168.0.105 - Выйдите из nano с помощью ctrl+x и нажмите y, чтобы сохранить .
Обратите внимание, что вы можете указать имя хоста или IP-адрес. Все журналы сообщений будут отправлены на центральный сервер, а также скопированы локально.
Зарегистрируйте аутентификацию для служб или приложений, размещенных на вашем сервере, с помощью централизованной системы ведения журнала.
Не забудьте включить аудит неудачных и успешных попыток входа в систему.
Включить Enforcing SELinux или Permissive SELinux, если ограничения не позволяют использовать принудительный режим.
Увеличьте размер журнала аудита, чтобы учесть возросшую активность на сервере.
Настройте журналы, чтобы каждый день запускать новый файл журнала и сохранять файлы журналов как минимум за последние 30 дней.
Настройте уведомления для оповещения владельца или администратора системы об остановке или перезапуске системы.
Оповещения должны отправляться группе (несколько человек), если это возможно.
Мониторинг модификаций файловой системы на наличие несанкционированных изменений.
Используйте службу проверки целостности двоичных файлов, например Tripwire или Aide.
Отслеживание и обнаружение попыток подбора пароля
Используйте такую службу, как Fail2ban, для отслеживания журналов на наличие неудачных попыток удаленного доступа и предотвращения атак методом подбора пароля.
Мониторинг с помощью Fail2ban
- Откройте окно терминала.
- Если вы еще не установили Fail2ban , установите его с помощью этой команды:
sudo yum install fail2ban - Скопируйте файл конфигурации для редактирования с помощью этой команды:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local - Измените файл конфигурации с помощью этой команды:
sudo nano /etc/fail2ban/jail.local
Значений по умолчанию должно быть достаточно для большинства серверов, но вы можете настроить такие функции, как время бана, попытки до бана и какие адреса всегда заблокирован. Подробные инструкции о том, как это сделать, включены в /etc/fail2ban/jail.conf . - Выйти из nano с помощью ctrl+x и нажмите y, чтобы сохранить .
Сообщать об инцидентах безопасности.
Если ваш сервер или связанные с ним устройства были скомпрометированы, украдены или иным образом получили несанкционированный доступ, сообщите об этом как об инциденте безопасности.
Подключения
Включите локальный брандмауэр, если он не включен по умолчанию.
Firewalld является брандмауэром по умолчанию в RHEL 7. Если он не установлен, установите его с помощью команды:
yum install firewalld
Убедитесь, что он включен с помощью команды:
systemctl enable --now firewalld
Список подсетей UM можно найти в UMnet , чтобы помочь настроить брандмауэр для доступа к ресурсам UM.
Отключите неиспользуемые дополнительные сетевые подключения, такие как Wi-Fi или Bluetooth.
Отключить беспроводную связь
- Откройте окно терминала.
- Используйте следующую команду для списка всех интерфейсов, использующих беспроводное соединение :
ifconfig -a - Просмотрите список и отключите все неиспользуемые. Изменить /etc/sysconfig/network-scripts/ifcfg-$DEVICENAME (где $DEVICENAME — это устройство для отключения), чтобы навсегда отключить беспроводную связь на устройстве. Вам может потребоваться отключить несколько устройств, в зависимости от вашей конкретной системы.
Отключить Bluetooth
Чтобы отключить автоматическую загрузку модулей ядра Bluetooth:
echo "install bnep /bin/true" >> /etc/modprobe.d/disable-bluetooth.conf
echo "установить bluetooth /bin/true" >> /etc/modprobe.d/disable-bluetooth.conf
echo "установить btusb /bin/true" >> /etc/modprobe.d/disable-bluetooth.conf
Затем вы можете / также отключить службу Bluetooth с помощью: systemctl disable bluetooth.service
Другие службы, которые вы можете отключить:
- cupsd или lpd (если не запущен принтер)
- xinetd
Безопасное подключение к серверу.
Не используйте незащищенные протоколы или протоколы с открытым текстом для аутентификации на сервере. Если необходимо использовать небезопасные методы, ограничьте доступ к серверу определенными IP-адресами или сетью кампуса UM с помощью iptables. Используйте туннель SSH или другой метод шифрования для защиты данных при передаче.
Службы/протоколы открытого текста, которых следует избегать
Избегайте использования этих служб/протоколов открытого текста для подключения к серверу Linux:
- FTP
- Телнет
- и т. д.
Если у вас есть экономическое обоснование использования одной из этих служб/протоколов, и вы должны ограничить доступ к определенным сетям и IP-адресам при их использовании.
Безопасное копирование файлов между системами
- Для безопасного копирования файлов между системами настоятельно рекомендуется использовать команду scp. Эта команда используется в форме:
scp [электронная почта защищена]:foobar.txt /some/local/directory
Где scp [электронная почта защищена]:foobar.txt /some/local/directory это ваш пункт назначения, foobar.txt это файл, который вы которые вы пытаетесь отправить, а /some/local/directory — это целевой каталог в целевом аккаунте.
Ограничьте сетевой доступ к службам только вашей локальной сетью или сетями кампуса UM
Используйте брандмауэр локального или сетевого шлюза, чтобы ограничить подключения из неизвестных и нежелательных мест. Запустите сканирование портов системы, чтобы убедиться, что порты защищены должным образом.
Требуются VPN-подключения.
Настройте брандмауэр (iptables), чтобы разрешить доступ из виртуальной частной сети (VPN) UM и соответствующих сетей кампуса.
Настройте брандмауэр для разрешения доступа к VPN
- Откройте окно терминала.
- Сначала сбросьте старые правила с помощью этой команды:
iptables -F - Заблокируйте все, кроме правил, которые вы собираетесь создать, с помощью следующих трех команд:
iptables -P INPUT DROP
iptables -P ПЕРЕДАЧА
iptables -P ВЫХОД DROP - Разрешить петлевой доступ с помощью этих двух команд:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT - Примите UM VPN с помощью этой команды:
iptables -A INPUT -s 141. 213.168.0/21 -j ACCEPT - Наконец, убедитесь, что весь входящий и исходящий трафик использует VPN с помощью следующих команд:
iptables -A INPUT -j ACCEPT -p udp s Y.Y.Y.Y --sport 1194
iptables -A OUTPUT -j ACCEPT -p udp d Y.Y.Y.Y --dport 1194 - Сохраните правила iptables в файл, загружаемый службой iptables:
iptables-save > /etc/sysconfig/iptables - Запустите iptables с помощью этой команды:
запуск службы iptables
Дополнительную информацию о подсетях UM можно найти на UMnet.
Ограничение доступа к картам управления удаленным доступом
Ограничьте доступ к таким устройствам, как интерфейсы IPMI, используемые системными администраторами для внешнего управления. Ограничьте доступ к сетям кампуса UM и потребуйте использования VPN UM для доступа за пределами кампуса.
Другие вещи, которые следует учитывать
Ограничьте прямое монтирование NFS определенными IP-адресами кампуса.
При использовании сетевой файловой системы (NFS) используйте NFS версии 4 или выше и ограничьте прямое подключение кампусом. По умолчанию для монтирования NFS используется «сжатый корень», убедитесь, что он настроен именно так. монтирование nfs root_squash .
При необходимости ограничьте пользовательские ресурсы и процессы.
Будь то RHEL или какой-либо другой вариант Unix, отслеживайте и ограничивайте пользовательские ресурсы и процессы. Например, это помогает предотвратить форк-бомбы.
Разделение жесткого диска.
Изолируйте конфиденциальные данные на отдельных разделах жесткого диска. Изолируйте загрузочные и важные файлы ОС в отдельных разделах и убедитесь, что загрузочный раздел настроен только для чтения, чтобы снизить риск несанкционированного изменения загрузочных файлов (доступ только для записи root).
Ограничить источник загрузки в BIOS.
Настройте BIOS для отключения загрузки с CD/DVD, внешних устройств (USB) или с дисковода гибких дисков, если физическая безопасность сервера может быть скомпрометирована, и установите пароль BIOS для дальнейшего ограничения доступа к системе.
Добавить пароль загрузчика (GRUB 2)
- Запустите команду
grub2-setpassword
от имени пользователя root: - ~]# grub2-setpassword
- Введите и подтвердите пароль:
Введите пароль:
Подтвердите пароль:
- Запустите команду
Следуя этой процедуре, создается файл /boot/grub2/user.cfg
, содержащий хэш пароля. Пользователь для этого пароля, root
, определяется в файле /boot/grub2/grub.cfg
. С этим изменением для изменения загрузочной записи во время загрузки необходимо указать имя пользователя root
и пароль.
Регулярно сканируйте сервер на наличие уязвимостей.
IIA предлагает ежемесячное бесплатное сканирование уязвимостей.
Централизованное управление антивирусом и утилитами обновления.
Это особенно важно, если серверная сеть большая или распределенная. CrowdStrike Falcon будет вести журналы защиты конечных точек для систем, на которых он запущен.