Настройка CentOS 7

В этой статье пойдет разговор о настройке ОС перед началом ввода в эксплуатацию.
1) Настроим сеть
2) Изменим настройки ssh и firewall, настроим fail2ban для повышения безопасности
3) Настроим систему уведомлений на почту через сервера yandex’a
4) Настроим уведомления о доступных обновлениях

Настройка сети

1) Посмотрим доступные сетевые интерфейсы

# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:7d:46:b9 brd ff:ff:ff:ff:ff:ff

2) Откроем конфигурационный фаил интерфейса eth0

# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
#Имя интерфейса
ONBOOT=yes
#Включать при загрузке
BOOTPROTO=none
#Протокол при загрузке dhcp/static/none
NETWORK=192.168.211.0
#Адрес сети
NETMASK=255.255.255.0
#Маска сети
IPADDR=192.168.211.3
#IP Адрес хоста
DNS1=192.168.211.2
#DNS сервер
GATEWAY=192.168.211.2
#Шлюз
DEFROUTE=yes
#Да этот шлюз по умолчанию
USERCTL=no
#Запрещаем другим не root пользователям менять настройки

# systemctl restart network

Настройка безопасности

1) Отключить selenux

Желательно отключить selenux так как он может блокировать работу многих сервисов.
Или есть второй вариант – грамотно его настроить, но это в другой раз.

# vim /etc/sysconfig/selinux
#поменять значение SELINUX
SELINUX=disabled

2) Настроим firewalld

Добавим новое правило для нового порта sshd, 
# firewall-cmd --permanent --zone=public --add-port=44322/tcp

Должен будет измениться фаил /etc/firewalld/zones/public.xml

3) Настроим sshd на другой порт 

# vim /etc/ssh/sshd_config
#изменим с дефолтного 22 порта на другой
Port 44322
# systemctl restart sshd

4) Настроим fail2ban для защиты от перебора паролей к ssh

#установим fail2ban
# yum install fail2ban.noarch fail2ban-firewalld.noarch fail2ban-sendmail.noarch fail2ban-server.noarch fail2ban-systemd.noarch
#скопируем фаил настроек
# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
#добавим настройки для sshd
# vim /etc/fail2ban/jail.local
[sshd]
enabled = true
#вклюим fail2ban для ssh
action = iptables-multiport[name=SSH,port=44322]
#так как мы изменили порт по умолчанию, перенастроим fail2ban на другой порт ssh
logpath = %(sshd_log)s

#запустим fqil2ban
# systemctl start fail2ban
#добавим в автозагрзку
# systemctl enable fail2ban
#посмотрим состояние fail2ban
# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 1
| |- Total failed: 6
| `- File list: /var/log/secure
`- Actions
|- Currently banned: 0
|- Total banned: 2
`- Banned IP list:
#так же проверим новое правило в iptables
# iptables -L -v -n
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1835 124K f2b-SSH tcp — * * 0.0.0.0/0 0.0.0.0/0 multiport dports 44322

Настройка уведомлений

1) Настройка postfix

#установим поддержку sasl аутентификации
# yum reinstall cyrus-sasl-plain
#перейдем к настройке postfix

# vim /etc/postfix/main.cf
myhostname = test.localnet #имя сервера
inet_interfaces = localhost #запускать сервис на lo интерфейсе
inet_protocols = ipv4 #использовать только ipv4 протокол
relayhost = [smtp.yandex.ru]:587 #хост для relay
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay #укажим привзяку домена к конретному релеэю
smtp_sender_dependent_authentication = yes #аутентификация будет зависеть от того, с какого домена будет происходить отправка
smtp_generic_maps = hash:/etc/postfix/generic #фаил подмену локального имени и с которого должно быть отправлено письмо
append_dot_mydomain = no #не добавлять точку доменному имени
smtpd_tls_security_level = encrypt #шифрование may и encrypt – используется если сервер реле постоянно использует шифрование
smtpd_tls_auth_only = yes #передавать авторизационные данные только зашифрованными
broken_sasl_auth_clients = yes
smtp_sasl_auth_enable = yes #включить sasl аутентификацию
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd #фаил с описание учетных записей для отправки писем
smtp_sasl_security_options = noanonymous #более безопасным подход,защита TLS шифрованием сеанса
smtp_sasl_type = cyrus #какой плагин должен использовать postfix для sasl аутентификации
smtp_sasl_mechanism_filter = login #какой механизм авторизации использовать на удаленном сервер

smtp_tls_loglevel = 1
smtp_use_tls = yes
smtp_tls_scert_verifydepth = 4
smtp_tls_exclude_ciphers = aNULL
smtp_tls_mandatory_protocols = SSLv3, TLSv1
smtp_tls_CAfile = /etc/ssl/certYA.pem #tls сертификат yandex
smtp_helo_timeout = 15
smtp_connect_timeout = 15
smtp_data_init_timeout = 15
smtp_data_xfer_timeout = 15
smtp_data_done_timeout = 15
smtp_mail_timeout = 15
smtp_quit_timeout = 15
smtp_rcpt_timeout = 15
smtp_rset_timeout = 10
smtp_starttls_timeout = 15
smtp_xforward_timeout = 15

#создадим фаил сертификата yandex
# openssl s_client -starttls smtp -crlf -connect smtp.yandex.ru:587

#из вывода нам понадобиться только сертификат
—–BEGIN CERTIFICATE—–
MIIGeTCCBWGgAwIBAgIQE0EU3D2I+BSAZoLMDvIr1DANBgkqhkiG9w0BAQUFADB3
MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5B
LjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRswGQYD
VQQDExJDZXJ0dW0gTGV2ZWwgSVYgQ0EwHhcNMTMxMjEwMTAyMjM4WhcNMTYxMjA5
MTAyMjM4WjCBmjELMAkGA1UEBhMCUlUxEzARBgNVBAoMCllhbmRleCBMTEMxDDAK
BgNVBAsMA0lUTzEPMA0GA1UEBwwGTW9zY293MRswGQYDVQQIDBJSdXNzaWFuIEZl
ZGVyYXRpb24xFzAVBgNVBAMMDnNtdHAueWFuZGV4LnJ1MSEwHwYJKoZIhvcNAQkB
FhJwa2lAeWFuZGV4LXRlYW0ucnUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDs0+Go9ihLOt96aLf4hscMACZccUaovpmGVTndrkHYUAHGkF8fVh55bezF
tr+gWX0+WJ5NXSkDOr6y4ocRYLDs04uUZ1hQPPcclHGzUzW/tMmfcAGXRkaFTIkP
wOD69kAh9UrzAJWGqA7o8+kVLtueCzE5JmsEJRyXkanS7iPv6wDgLnPTZobVNb2t
I0H2KeSGgtXRsgqmVbZQ7VSLkU+iXX6v7FwwLyL+ZUuKZORGOjq2okOwqVzuC0Cg
OoJLGiFMSg54kXDz6BMGHXmMGLpcMxbBgX/jrIgYc0rQIkrwLQltosPU+xicbeFT
YvnYdh8ZtFbDC+w/5+1xXb6sBv+HAgMBAAGjggLbMIIC1zAMBgNVHRMBAf8EAjAA
MCwGA1UdHwQlMCMwIaAfoB2GG2h0dHA6Ly9jcmwuY2VydHVtLnBsL2w0LmNybDAf
BgNVHSMEGDAWgBTNSkbKA2WQ5jEQGoLGpRxe0VDPHzAdBgNVHQ4EFgQUk7Y1gZeQ
XPP4gwvGHoW8tzHUlFUwDgYDVR0PAQH/BAQDAgWgMFoGCCsGAQUFBwEBBE4wTDAh
BggrBgEFBQcwAYYVaHR0cDovL29jc3AuY2VydHVtLnBsMCcGCCsGAQUFBzAChhto
dHRwOi8vd3d3LmNlcnR1bS5wbC9sNC5jZXIwggE9BgNVHSAEggE0MIIBMDCCASwG
CiqEaAGG9ncCAgQwggEcMCUGCCsGAQUFBwIBFhlodHRwczovL3d3dy5jZXJ0dW0u
cGwvQ1BTMIHyBggrBgEFBQcCAjCB5TAgFhlVbml6ZXRvIFRlY2hub2xvZ2llcyBT
LkEuMAMCAQIagcBVc2FnZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN0cmljdGx5
IHN1YmplY3RlZCB0byB0aGUgQ0VSVFVNIENlcnRpZmljYXRpb24gUHJhY3RpY2Ug
U3RhdGVtZW50IChDUFMpIGluY29ycG9yYXRlZCBieSByZWZlcmVuY2UgaGVyZWlu
IGFuZCBpbiB0aGUgcmVwb3NpdG9yeSBhdCBodHRwczovL3d3dy5jZXJ0dW0ucGwv
cmVwb3NpdG9yeS4wHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBEGCWCG
SAGG+EIBAQQEAwIGwDB6BgNVHREEczBxgg5zbXRwLnlhbmRleC5ydYIPc210cC55
YW5kZXguY29tgg5zbXRwLnlhbmRleC5ieYIOc210cC55YW5kZXgua3qCDnNtdHAu
eWFuZGV4LnVhghJzbXRwLnlhbmRleC5jb20udHKCCnNtdHAueWEucnUwDQYJKoZI
hvcNAQEFBQADggEBANUBIrLMkKoHW4zYYacsy1wOuMZiwAG7pxin+UFPZNNPrpoN
Y6TgpgAN3b4IHDkUrQd01ww0dCw5Z7akgPjun9aYszF+mTAjEQ9S0JM8uHA6wPx+
f534rV7Sv6C2X8QmjxOvu9oGbEG3u64HVQIiqmRFH2rtZtPPZHFYK3SWLZAUwL3P
IDELM/Dn7P8hBlbjWSDHndtwYkaRRKLzoOs71+mMxecuBzSdoKMTwuhRXTb0zkaV
FH5SBk7OaQ5xn0E3sL2UnpwwvsIhb03zOqjTrR2UXO5r88PsTG1H50quJbGpUaBT
QvzoYDBJMDRJlVUwCd6++cIP261zTKBFdBxlpdw=
—–END CERTIFICATE—–

#отредактируем фил generic добавки туда строчку со своим доменом на pdd.yandex.ru
# vim /etc/postfix/generic
root support@exz.su

#отредактируем фаил /etc/postfix/sasl_passwd
# vim /etc/postfix/sasl_passwd
smtp.yandex.ru support@exz.su:123456
[smtp.yandex.ru] support@exz.su:123456 #аккаунт по умолчанию

#отредактируем фаил /etc/postfix/sender_relay
# vim /etc/postfix/sender_relay
@exz.su [smtp.yandex.ru]

#создадим postfix таблици
# cd /etc/postfix
# postmap generic sender_relay sasl_passwd

#отредактируем фил /etc/hostname
# vim /etc/hostname
test.localnet

#отредактируем фаил /etc/hosts
# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 test.localnet

#перезапустил postfix и добавим в автозагрузу
# systemctl restart postfix
# systemctl enable postfix

#проверим отправку писем через mailx
# yum install mailx
# echo “test” | mail -s test root@exz.su

2) Настройка уведомлений fail2ban

#настроим фил aliases что бы все письма приходившие руку попадали к нам
# vim /etc/aliases
root: root@exz.su

#настроим теперь fail2ban
# vim /etc/fail2ban/jail.local
#найдем в разделе DEFAULT строку action = %(action_)s и заменим ее
action = %(action_mw)s
#в описание jail’a sshd добавим к action строку
action = iptables-multiport[name=SSH,port=44322]
mail[name=ssh, dest=root@localhost]

#перезапустим fail2ban
# systemctl restart fail2ban

3) Настройка yum-cron для своевременного оповещения об обновлениях

# yum install yum-cron
# vim /etc/yum/yum-cron.conf

[commands]
update_messages = yes
download_updates = no
apply_updates = no
random_sleep = 360

[emitters]
system_name = test.localnet
emit_via = stdio
ouput_width = 80

[email]
email_from = root@localhost
email_to = root
email_host = localhost

[groups]
group_list = None
group_package_types = mandatory, default

[base]
debuglevel = -2
mdpolicy = group:main

#активируем проверку обновлений и запустим yum-cron
# systemctl enable yum-cron
# systemctl start yum-cron

 

3 thoughts on “Настройка CentOS 7

  1. Благодарю за подробное описание, попробую сегодня установить, надеюсь получится

  2. Pingback: Time Machine авторизация через Active Directory CentOS 7 | exz.su

  3. Pingback: Настройка CentOS 7 через chef-solo | exz.su

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *