Найти в Дзене

CentOS 7, 8, Настройка после установки.

В данной статье речь пойдет о первоначальной настройке серверной ОС CentOS 7 и 8 версиях после установки. 1. Установка необходимых пакетов Теперь обновим систему и установим необходимый приклад:
# yum -y update Если возникнет ошибка: Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist То в CentOS 8 сначала требуется прописать репозиторий, выполним:
# cd /etc/yum.repos.d/
# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* # yum -y update
# yum -y install epel-release
# yum -y install mc net-tools bind-utils nano wget bzip2 traceroute gdisk htop iftop atop lsof chrony git unzip Включаем подсветку в MC
# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax
cp: overwrite '/usr/share/mc/syntax/unknown.syntax'? y 2. Настройка синхронизация времени (NTP) Проверим текущее время на сервере:
# date
Оглавление

В данной статье речь пойдет о первоначальной настройке серверной ОС CentOS 7 и 8 версиях после установки.

1. Установка необходимых пакетов

Теперь обновим систему и установим необходимый приклад:
# yum -y update

Если возникнет ошибка:
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
То в CentOS 8 сначала требуется прописать репозиторий, выполним:
# cd /etc/yum.repos.d/
# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

# yum -y update
# yum -y install epel-release
# yum -y install mc net-tools bind-utils nano wget bzip2 traceroute gdisk htop iftop atop lsof chrony git unzip

Включаем подсветку в MC
# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax
cp: overwrite '/usr/share/mc/syntax/unknown.syntax'?
y

2. Настройка синхронизация времени (NTP)

Проверим текущее время на сервере:
# date

Установим часовой пояс:
# timedatectl set-timezone Europe/Moscow

Включим и добавим в автозагрузку утилиту Crony для синхронизации времени:
# systemctl start chronyd && systemctl enable chronyd && systemctl status chronyd

Проверяем
# timedatectl

Изменить конфигурацию NTP можно в /etc/chrony.conf
После внесения изменений выполните:

3. Отключить SELinux

Отключите SELinux, внеся правки в /etc/sysconfig/selinux
# nano /etc/sysconfig/selinux
меняем значение:
SELINUX=disabled

# reboot или # setenforce 0

4. Сетевые параметры

Зададими Hostname нашему серверу
# hostnamectl set-hostname
New_HostName
# systemctl restart systemd-hostnamed

Для возможности управления сетевыми настройками с помощью конфигурационных файлов, установим пакет network-scripts:
# yum -y install network-scripts

Зададим сетевые настройки в конфигурационном файле ifcfg-eth0, где eth0 - имя сетевого интерфейса. Узнать сетевые интерфейсы можно командой # ifconfig
# nano /etc/sysconfig/network-scripts/ifcfg-eth0

Для настроек по DHCP:

TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"

Настройки статического ip адреса:

TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=192.168.1.10
DNS1=
192.168.1.1
DNS2=172.16.10.112
PREFIX=24
GATEWAY=192.168.1.1

# systemctl restart network

5. Отключение firewalld с заменой на iptables

Отключение firewalld
# systemctl stop firewalld && systemctl disable firewalld

Установка iptables
# yum -y install iptables-services

Добавить iptables в автозагрузку и запустить:
# systemctl enable iptables.service && systemctl start iptables.service

Для управления правилами фаервола создать скрипт.
# nano /etc/iptables.sh

#!/bin/bash
# Задаем переменные
export IPT="iptables"
export LAN=eth0
export LAN_IP=192.168.1.10

# Очищаем все цепочки правил
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Запрещаем все, что не разрешено
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# Разрешаем localhost и локалку
$IPT -A INPUT -i lo -j ACCEPT
# $IPT -A INPUT -i $LAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# $IPT -A OUTPUT -o $LAN -j ACCEPT

# Разрешаем пинги
$IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# Разрешаем исходящие подключения сервера
$IPT -A OUTPUT -o $LAN -j ACCEPT

# Разрешаем установленные подключения
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Отбрасываем неопознанные пакеты
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Отбрасываем нулевые пакеты
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

# Закрываемся от syn-flood атак
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Открываем порты
$IPT -A INPUT -i $LAN -p tcp --dport 22 -j ACCEPT # SSH

# Включаем логирование, теперь заблокированные пакеты
# вы сможете отследить в файле /var/log/messages
$IPT -N block_in
$IPT -N block_out
$IPT -N block_fw
$IPT -A INPUT -j block_in
$IPT -A OUTPUT -j block_out
$IPT -A FORWARD -j block_fw
$IPT -A block_in -j LOG --log-level info --log-prefix "--IN--BLOCK"
$IPT -A block_in -j DROP
$IPT -A block_out -j LOG --log-level info --log-prefix "--OUT--BLOCK"
$IPT -A block_out -j DROP
$IPT -A block_fw -j LOG --log-level info --log-prefix "--FW--BLOCK"
$IPT -A block_fw -j DROP

# Сохраняем правила
/sbin/iptables-save > /etc/sysconfig/iptables

Сохраняем скрипт, делаем исполняемым и запускаем:
# chmod 0740 /etc/iptables.sh
# /etc/iptables.sh

Вывести цепочку применяемых правил можно командой:
# iptables -L -v -n

Если не нужен фаервол то можно его отключить
# systemctl stop iptables.service && systemctl disable iptables.service