Основные настройки Fedora Server

Материал из darklurker wiki
Версия от 18:01, 16 июля 2019; Akim (обсуждение | вклад) (Akim переименовал страницу Основные настройки Linux в Основные настройки Fedora Server без оставления перенаправления)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Пакеты

Подключаем enterprise репозиторий

sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
sudo yum install epel-release

Устанавливаем пакеты

sudo dnf install tar logwatch mailx smartmontools acpid ftp wget telnet nano vim ntp ntpdate iptables-services htop atop jq git sysstat

вместо менеджера пакета dnf можно использовать yum

Опционально пакеты:

rsyslog lynx screen unzip screenfetch dmidecode ioping


Отключаем firewalld

sudo systemctl stop firewalld
sudo systemctl disable firewalld

Настраиваем iptables. Читать - Настройка iptables

Загрузка

Отключаем графику в GRUB

в файл /etc/default/grub
echo "GRUB_GFXMODE=text" >>  /etc/default/grub
применяем
unset LANG
grub2-mkconfig -o /boot/grub2/grub.cfg

На системах, которые установлены на рейде, необходимо установить grub на все системные диски

grub2-install /dev/sda
grub2-install /dev/sdb

Конфигурация сети

Меняем IP, маску, отключаем DHCP

sudo vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

Перезагружаем сеть

sudo systemctl restart network

Имя сервера/рабочей станции

Переименовываем машину

sudo hostnamectl set-hostname New_HostName

Перезапускаем сервис

sudo systemctl restart systemd-hostnamed

Проверяем

hostnamectl status

Часовой пояс

Смотрим список зон

timedatectl list-timezones

Изменяем зону на необходимую

sudo timedatectl set-timezone Asia/Yekaterinburg

Проверяем

timedatectl

Если вместо русского языка кракозябры

Применяем

sudo localectl set-locale LANG=en_US.UTF-8

Проверяем

localectl

Устанавливаем англ. раскладку

sudo localectl set-keymap us


Mailx

Устанавливаем mailx

sudo dnf install mailx

Создаем ссылку на mailx для стандартной почты

ln -s /bin/mailx /bin/email

Редактируем файл конфигурации почты

nano /etc/mail.rc

Добавляем в конце для Google.Mail:

set smtp=smtps://smtp.gmail.com:465
set smtp-auth=login
set smtp-auth-user=USERNAME@YOURDOMAIN.COM
set smtp-auth-password=YOURPASSWORD
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/

для Яндекс.Почты:

set smtp=smtps://smtp.yandex.ru:465
#set smtp-use-starttls
set smtp-auth=login
set smtp-auth-user=<username>
set smtp-auth-password=<password>
set nss-config-dir=/etc/pki/nssdb
set ssl-verify=ignore
set from=<your-mail>


Проверяем отправку

echo "тело сообщения" | mail -v -s "тема сообщения" email@address
ключ -v показывает полностью процесс, его можно убрать.
если появится ошибка "Error in certificate: Peer's certificate issuer is not recognized.", то это не критично, сообщения по прежнему отправляется, игнорим.

Logwatch

Дефолтная конфигурация лежит по пути:

/usr/share/logwatch/default.conf/logwatch.conf

Удаляем ссылку на конфигурацию

rm -f /etc/logwatch/conf/logwatch.conf

Загружаем свою

sudo vim /etc/logwatch/conf/logwatch.conf
LogDir = /var/log
TmpDir = /var/cache/logwatch
Output = mail
Format = text
Encode = none
MailTo = username@domain.com
MailFrom = username@domain.com

# The default time range for the report...
# The current choices are All, Today, Yesterday
Range = yesterday

# The default detail level for the report.
# This can either be Low, Med, High or a number.
# Low = 0
# Med = 5
# High = 10
Detail = Med

# The 'Service' option expects either the name of a filter
# (in /usr/share/logwatch/scripts/services/*) or 'All'.
# The default service(s) to report on.  This should be left as All for
# most people.
Service = All
# You can also disable certain services (when specifying all)
Service = "-zz-network"     # Prevents execution of zz-network service, which
                            # prints useful network configuration info.
Service = "-zz-sys"         # Prevents execution of zz-sys service, which
                            # prints useful system configuration info.
Service = "-eximstats"      # Prevents execution of eximstats service, which
                            # is a wrapper for the eximstats program.
# If you only cared about FTP messages, you could use these 2 lines
# instead of the above:
#Service = ftpd-messages   # Processes ftpd messages in /var/log/messages
#Service = ftpd-xferlog    # Processes ftpd messages in /var/log/xferlog
# Maybe you only wanted reports on PAM messages, then you would use:
#Service = pam_pwdb        # PAM_pwdb messages - usually quite a bit
#Service = pam             # General PAM messages... usually not many

mailer = "/usr/bin/mailx -t"

SSH

Для начала необходимо настроить ssh, файл конфигурации находится по пути:

sudo vim /etc/ssh/sshd_config

Раскомментируем нужные нам строки:

Port 22
PermintRootLogin no //данная команда запрещает подключение рута по ssh, можно разрешить подставив yes 

Перезапускаем сервис sshd

sudo systemctl restart sshd

Проверим слушает ли сервер порт ssh

netstat -tulnp | grep '22'

Если да, то можно подключаться к серверу по паролю

ssh user@host

или

ssh -l user host

если ключи лежат в иной директории

ssh -i /home/user/keys/id_rsa user@host

Для большей безопасности рекомендуется подключаться по ssh только с помощью ключей без пароля.

Генерируем ключ на стороне клиента командой

ssh-keygen -t rsa -b 2048

При генерации нам предложит указать путь, по умолчанию будет дефолтный путь, который не желательно менять, чтобы все работало по умолчанию. Также предложит установить пароль на ключ, его необходимо оставить пустым, если не планируете использовать пароль (лучше использовать).

После генерации появятся два файла id_rsa id_rsa.pub id_rsa - закрытый ключ, который нельзя показывать

id_rsa.pub - открытый ключ, который можно дать пользователю, для дальнейшего подключения к серверу, например.

Эти ключи можно найти по следующим путям.

  • Для Windows:
C:\Users\username\.ssh
  • Для Linux:
/home/username/.ssh/

Теперь необходимо поместить содержимое файла id_rsa.pub на сервер в файл authorized_keys в домашнюю папку пользователя, который будет подключаться по ssh. Скопировать ключ можно командой:

ssh-copy-id user@server

либо используя scp


Теперь необходимо отредактировать конфигурацию sshd и убрать авторизацию по паролю и тд:

sudo vim /etc/ssh/sshd_config

Изменяем параметры в строках

PasswordAuthentication no

Также можно создать пользователей для удаленного подключения, запретить подключаться рутом и отфильтровать разрешенные подключения в конфиге ssh. С создание пользователя вопросов не должно возникать, по поводу отключения рута написано в этой статье выше, а вот за параметр, который разрешает подключаться только определенным юзерам отвечает AllowUsers

Переходим в редактирование конфига ssh:

sudo vim/etc/ssh/sshd_config

Ищем строку AllowUsers, если ее нет - создаем:

AllowUsers username

Сохраняем, перезапускаем sshd, проверяем.

Nanorc

Если vim вам не по силам, установите nano и настройте синтаксис (однако лучше учитесь юзать vim)

sudo dnf install nano nanorc

По желанию можно настроить цветовой синтаксис

nano /etc/nanorc
здесь в самом конце необходимо раскомментить нужную подсветку синтаксиса, например include "/usr/share/nano/php.nanorc"

Добавлять свою подсветку синтаксиса можно по пути

cd /usr/share/nano/
после добавления не забыть добавить в основном файле nanorc строчку с вашей кастомной подсветкой по примеру выше

Вариации и кастомные nanorc можно скачать здесь

Watchdog

Проверяем наличие включенной собаки

ls -la /dev/watchdog

Если есть, активируем

sudo dnf install watchdog
sed -i 's/#watchdog-device/watchdog-device/g' /etc/watchdog.conf
sudo systemctl enable watchdog
sudo systemctl start watchdog
sudo systemctl status watchdog

При желании проверяем работу (имитацией kernel panic)

echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger

Иногда может понадобиться отключение SELinux (в редких случаях)

Выполняем команду:

sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

Либо в несколько шагов

sudo vim /etc/sysconfig/selinux
SELINUX=disabled


Далее применяем команду

sudo setenforce 0


Удаляем SELinux

yum erase selinux-policy selinux-policy-targeted ModemManager iprutils ebtables