Adelitusn.ru

ПК и Техника
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Настройка CentOS 7 для сервера 1С 8. 3

Настройка CentOS 7 для сервера 1С 8.3

После установки CentOS 7 приступим к ее настройке.

Для настройки системы воспользуемся подключением по SSH используя клиент PuTTy или другой SSH клиент.

Начальная настройка CentOS 7

Так как CentOS 7 у нас гостевая ОС ESXi 6.5, то нужно установить VMware tools:

Для дальнейшего удобства установим файловый менеджер Midnight Commander:

В CentOS 7 minimal все утилиты, такие как dig, host, nslookup, теперь включены в пакет bind-utils, поэтому установим этот пакет:

меняем значение SELINUX=enforcing на SELINUX=disabled . Сохраняем и выходим.
Для вступления изменений в силу перезагрузим ОС:

Настройка сетевого интерфейса сервера

Сервер 1С:Предприятие будет находится в пределах локальной сети и его вполне можно использовать с отключенным файрволом без большой угрозы безопасности.
Отключаем firewalld:

В файле /etc/hosts не должно быть записей формата localhost.localdomian или относящихся к IPv6, в случае отсутствия DNS-сервера, в нем должно быть прописано четкое соответствие IP-адрес сервера – FQDN имя – короткое имя. Пример правильного файла hosts:

127.0.0.1 localhost

192.168.xxx.yyy SERVER_NAME.DOMAIN.LOCAL SERVER_NAME

Что бы новые параметры вступили в силу нужно перезагрузить сервер.

После перезагрузки имя сервера должно разрешаться в IP-адрес.

Подключение репозиториев

Для инсталляции различных пакетов ПО необходимо подключить репозитории в CentOS. Добавим популярный EPEL:

Настройка и синхронизация времени

Настроим время сервера. Узнать, какое время на сервере можно с помощью команды date:

Чтобы сменить часовой пояс на +3, воспользуемся специальной утилитой, которая входит в комплект CentOS 7:

Установим утилиту для синхронизации времени chrony:

Запускаем chrony и добавляем в автозагрузку:

Установка дополнительных пакетов

Добавим несколько полезных утилит, которые могут пригодиться в процессе эксплуатации сервера.

iftop показывает в режиме реального времени загрузку сетевого интерфейса:

Диспетчер задач htop:

Установим также необходимые пакеты отсутствующие в поставке:

Скачиваем необходимые шрифты и устанавливаем их:

Публикация общей папки

Для удобства установим Samba и добавим в автозагрузку:

Далее создадим папку, к которую дадим общий доступ и настроим Samba:

Настроим Samba внеся в smb.conf следующий текст:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = Server1C
security = user
map to guest = bad user
dns proxy = no
guest account = nobody
browseable = yes

log file = /var/log/samba/log.%m
max log size = 50

[public]
comment = FS
path = /home/public
readonly = no
guest ok = yes
public = yes
guest only = yes
writable = yes

Добавляем Samba в автозагрузку:

Если не отключать Firewall, то нужно добавить следующие правила:

Установка веб сервера

Для работы сервисов, имеющих веб интерфейс, установим веб сервер Apache:

Добавляем apache в автозагрузку:

Запускаем apache в CentOS 7:

Проверяем, запустился ли сервер:

Установим популярные модули для php:

Выполним перезапуск apache:

Базовая настройка CentOS 7 закончена

Поделиться ссылкой:

Похожее

Настройка CentOS 7 для сервера 1С 8.3: 13 комментариев

Скажите. Вы когда-нибудь пробовали на такой связке формировать этикетки со штрих кодами. Интересуют управляемые формы. Суть в том, что на сервере нужна компонента, которая «нарисует» штрих код и отправит его клиенту. Такой компоненты там нет, и при попытке распечатать любой ШК клиенту выйдет сообщение об ошибке «Ошибка подключения компоненты».
В случае сервера на винде там все понятно, а вот под центом не могу найти где взять эту компоненту и как ее поставить.

Нет, не пробовал. У меня на данный момент похожая проблема с криптопровайдером. Под линуксом криптопровайдер не цепляется, тоже вываливается ошибка подключения динамической библиотеки. Я не уверен, но в Вашем случае скорее всего проблема подключения COM объектов, которые, как я понял, не поддерживаются в Linux. Возможно надо найти обработчик под CentOS.

День добрый.
Решили проблему с криптопровайдером?

Нет, забил. В итоге из-за ЭДО пришлось сервер 1с выносить отдельно на виртуальную машину с windows 10 с более частотным процессором

А что конкретно не работало? 1С отчетность для сдачи в ФНС ФСС и прочее или что-то свое?

Да, 1С отчетность. Мне нужно было чтобы сервер раздавал эцп, чтобы сотрудники не имели физ доступа к ней, но не сложилось

Добрый день.
Для чего служат пакеты из команды
yum install policycoreutils-python wget bzip2 ntp net-tools unixODBC ImageMagick fontconfig-devel ?
Как определили их необходимость?

policycoreutils-python — инструменты для работы с selinux, но selinux обычно отрубают;
wget — консольный менеджер загрузок, в статье используется для скачивания файла;
bzip2 — консольный архиватор;
ntp — сервер времени, думаю не нужен так как установлен chrony;
net-tools — сетевые утилиты например ifconfig;
unixODBC — компоненты для доступа к данным на основе ODBC, если нужно выгрузить/загрузить данные в сторонние базы не обязательно 1С;
ImageMagick — набор инструментов для работы с изображениями, нужен в тонком клиенте и наверно в web тоже;
fontconfig-devel — для работы со шрифтами, в данном случае с майкрософтовскими.
В целом статья полезна, сам настраиваю таким способом.

Да, 1С отчетность. Мне нужно было чтобы сервер раздавал эцп, чтобы сотрудники не имели физ доступа к ней, но не сложилось

Создаётся впечатление, что все авторы, описывающие установку CentOS в качестве сервера, не владеют ситуацией. Первое, что они предлагают, отключить SELinux и Firewall. А слабо, настроить SELinux? А где открытие портов? Для работы в с ОС Windows, коих подавляющее большинство в сетях, нужна Samba, а для её работы необходимо открыть порты 137, 138, 139, 443 и 445. Для возможности соединения с сервером, через Web интерфейс, необходимо открыть порт 80. Для удалённого управления сервером необходимо настроить SSH, а для исключения возможности несанкционированного доступа к серверу, поменять порт SSH, или на худой коней открыть порт по умолчанию и сформировать надёжный пароль, или доступ по публичному ключу. Где все это. Я даже на домашнем сервере всё это проделал и не отключал SELinux, а настроил её, включил разрешения для работы Samba и SSH, но только те, которые используются в домашней сети.

Читайте так же:
Специальная вставка в Excel

Спасибо за комментарий. Вы правы, мне этот «блог» нужен для того что бы инфа, которую я собрал в инете была под рукой и эти инструкции делал прежде всего для себя, естественно после успешного внедрения, и если здесь нет инфы о настройке защиты, значит я не нашёл нормальную инструкцию, а сам я ни разу не линуксоид. Да и в моем случае это работает в закрытом контуре сети, поэтому не стал разбираться с защитой. Если дополните будет очень хорошо!

Соглашусь. Если сервер работает только внутри сети и не смотрит наружу, то смысла настраивать все порты и SE не вижу. Больше мороки.

По моему я где-то написал, что не настраивал защиту по причине работы сервера в закрытой сети

Управление брандмауэром CentOS | Утилита system-config-firewall

Для конфигурирования межсетевого экрана в CentOS используют утилиту system-config-firewall, которая заменят текущий FirewallD.

Для этого уберем FirewallD из автозагрузочного сектора ОС:

sudo systemctl stop firewalld.service

sudo systemctl disable firewalld.service

Теперь установим утилиту для дальнейшей настройки:

sudo yum install system-config-firewall-tui

Конфигурирование брандмауэра

После инсталляции запустим первичную настройку:

На экране появится меню для выбора дальнейших действий:

Меню для выбора дальнейших действий

Скриншот №1. Меню для выбора дальнейших действий

Сначала включаем режим брандмауэра, а потом выбираем пункт «Настройка».

На втором шаге выбираем из перечня службы, которым открывается доступ во внешнюю сеть:

Открываем доступ во внешнюю сеть

Скриншот №2. Открываем доступ во внешнюю сеть

В нашем примере активируем DNS и FTP. Нажимаем «Вперед».

Следующий пункт предлагает добавить дополнительные порты, которые не относятся к стандартным:

Выбор дополнительных портов

Скриншот №3. Выбор дополнительных портов

Первый пункт добавляет порт «с нуля», т.е. пользователь самостоятельно прописывает параметры. Второй предназначен для правки существующих, а третий удаляет порт из перечня.

Например, создадим порт 8080 для протокола TCP следующим образом:

Порт 8080 для протокола TCP

Скриншот №4. Порт 8080 для протокола TCP

На третьем шаге представлен список сетевых интерфейсов на серверной платформе. Отмечаем только те пункты, для которых необходимо предоставить полный доступ во внешнюю сеть:

Список сетевых интерфейсов

Скриншот №5. Список сетевых интерфейсов

Следующее меню отвечает за предоставление функции NAT для сетевых интерфейсов. В терминологии CentOS она называется «Маскарад». Отмечаем пункт, для которого необходим данный режим:

Функция NAT для сетевых интерфейсов

Скриншот №6. Функция NAT для сетевых интерфейсов

Теперь настроим проброс портов. Конфигурирование аналогично пункту с добавлением новых портов.

Далее — фильтрация ICMP. Стандартная настройка не блокирует трафик. Если требуется запретить, выбираем пункт:

Фильтрация ICMP

Скриншот №7. Фильтрация ICMP

Последний шаг – создание правил. Добавляем собственные шаблоны, по которым файрвол будет обрабатывать трафик:

Добавление шаблонов

Скриншот №8. Добавление шаблонов

Для создания нового выбираем пункт один, в котором прописываем необходимые условия. Второй пункт это редактирование текущего шаблона, а третий — удаление выбранного правила. Нажимаем Закрыть для возврата в первоначальное меню.

Теперь выбираем «ОК» для активации внесенных изменений. Утилита покажет предупреждающее сообщение. Если все верно, то соглашаемся:

Активация внесенных изменений

Скриншот №9. Активация внесенных изменений

Установка и настройка VPN сервера на CentOS 7

В этой статье я рассмотрю на практике полный алгоритм настройки VPN сервера на примере CentOS 7.6. Мы одновременно включим и L2TP и PPTP сервер.

Для работы VPN в Linux необходимо настроить 3 слоя: IPsec, L2TP и PPP. Причем, PPP будет общий для L2TP и PPTP серверов. Настройка L2TP сложнее, чем PPTP. В ней:

  1. IPsec обеспечивает конфиденциальность сетевого соединения и авторизации клиента (системы)
  2. С L2TP туннель настроен так, что VPN трафик прозрачно проходит через IPsec
  3. PPP (протокол точка-точка) контролирует авторизацию пользователей

Настройка VPN PPTP

Перед началом установки непосредственно сервера я рекомендую обновить пакеты и установить Midnight Commander (mc) и VestaCP для удобства. Вместе с VestaCP поставится большая часть пакетов, поэтому часть команд ниже будут излишними, не пугайтесь. В mc удобнее редактировать конфиг файлы.

yum install -y epel-release yum install -y mc yum install -y net-tools

Далее необходимо отключить Selinux.
Система принудительного контроля Selinux отключается правкой конфигурационного файла /etc/sysconfig/selinux.

или заменяем значение командой sed:

sed -i ‘s/(^SELINUX=).*/SELINUX=disabled/’ /etc/sysconfig/selinux sed -i ‘s/(^SELINUX=).*/SELINUX=disabled/’ /etc/selinux/config

После перезагрузки проверьте статус SELinux командой « sestatus », Вы должны увидеть следующий вывод:

Переходим к установке PPTP VPN сервера и добавлении его в автозагрузку:

yum install -y ppp pptp pptpd pptp-setup chkconfig pptpd on

Далее настройка конфигов из консоли (копируем, вставляем и жмём «Enter»). Перед началом редактирования бэкапим каждый файл.

Файл /etc/pptpd.conf

cp /etc/pptpd.conf /etc/pptpd.conf.bak

  • localip — ip адрес из выбранной вами подсети, который будет являться локальным шлюзом для клиентов VPN.
  • remoteip — пул ip адресов для раздачи клиентам VPN.

Если на вашей машине несколько внешних IP адресов, то вы можете указать конкретный IP, по которому будет доступно подключение к VPN серверу. В конце файла добавьте:

ms-dns 8.8.8.8 ms-dns 8.8.4.4

Также добавляем метод mschap2: require-mschap-v2

cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak

В примере ниже «user» и «pass» можно заменить на свои.

cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak

chmod 600 /etc/ppp/chap-secrets

Редактирование данного файла преследует собою цель — изменение значения «0» на «1» net.ipv4.ip_forward = 1.

cp /etc/sysctl.conf /etc/sysctl.conf.bak

На этом установка и настройка VPN PPTP сервера закончена.

Осталось только «разобраться» с файерволом.

Удаляем firewalld (если не удален или не отключен):

Читайте так же:
Лучшие бесплатные программы для скрытия папок

systemctl stop firewalld systemctl disable firewalld

и вместо него ставим IPTABLES:

yum install iptables-services iptables

Включим автозапуск iptables:

systemctl enable iptables chmod +x /etc/rc.d/rc.local

Теперь процесс настройки IPTABLES подошёл к ответственному моменту — настройке конфигурации таблиц, включению маршрутизации и открытию TCP портов 1723 и 22. Необходимо добавить следующие строки в файл iptables:

*nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A POSTROUTING -o eth0 -j MASQUERADE COMMIT *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [853:222169] -A INPUT -m state —state RELATED,ESTABLISHED -j ACCEPT #-A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state —state NEW -m tcp —dport 22 -j ACCEPT -A INPUT -i eth0 -p tcp -m tcp —dport 1723 -j ACCEPT -A INPUT -i eth0 -p gre -j ACCEPT -A INPUT -j REJECT —reject-with icmp-host-prohibited -A INPUT -p gre -j ACCEPT -A INPUT -p tcp -m tcp —dport 1723 -j ACCEPT -A FORWARD -i ppp+ -o eth0 -j ACCEPT -A FORWARD -i eth0 -o ppp+ -j ACCEPT -A FORWARD -j REJECT —reject-with icmp-host-prohibited COMMIT

Cохраняем и перезапускаем всё: файерволл и сервер PPTP VPN.

service iptables save service iptables restart systemctl start pptpd

Обратите внимание, если при редактировании конфигурационного файла iptables не сохраняются настройки, а после перезагрузки файл принимает своё первоначальное значение, то для того, чтобы после редактирования файла изменения вступили в силу, необходимо перед редактированием отключить файервол iptables:

systemctl stop iptables

Затем отредактировать файл /etc/sysconfig/iptables, сохранить изменения

service iptables save

И, наконец, запустить сервиc

systemctl start iptables

Обратите внимание, что eth0 — имя вашего сетевого интерфейса. Вы можете узнать его с помощью команды ifconfig. Если вам необходимо, чтобы была локальная сеть между клиентами, подключенными к VPN, добавьте следующие правила в iptables путем выполнения следующих команд из консоли или непосредственно редактируя iptables файл (кому как нравится):

iptables —table nat —append POSTROUTING —out-interface ppp0 -j MASQUERADE iptables -I INPUT -s 172.16.0.0/24 -i ppp0 -j ACCEPT iptables —append FORWARD —in-interface eth0 -j ACCEPT

firewall-cmd —permanent —add-service=pptpd firewall-cmd —permanent —add-port=1723/tcp firewall-cmd —permanent —add-port=22/tcp firewall-cmd —permanent —add-service=ipsec firewall-cmd —permanent —add-service=l2tpd firewall-cmd —permanent —add-port=1701/udp firewall-cmd —permanent —add-port=4500/udp firewall-cmd —permanent —add-masquerade firewall-cmd —reload

ps ax | grep pptpd

Проверяем, слушается ли наш порт:

netstat -an | grep -i listen

Дополнительная команда для проверки статуса pptpd:

systemctl status pptpd

Настройка L2TP VPN

Второй уровень, протокол туннелирования второго уровня (L2TP), настраивается намного проще, чем IPsec, поэтому начнем с него. L2TP абсолютно небезопасен и не должен быть доступен вне соединения IPsec. При использовании iptables, примените следующие правила, чтобы заблокировать все соединения L2TP вне ipsec:

iptables -t filter -A INPUT -p udp -m policy —dir in —pol ipsec -m udp —dport l2tp -j ACCEPT iptables -t filter -A INPUT -p udp -m udp —dport l2tp -j REJECT —reject-with icmp-port-unreachable iptables -t filter -A OUTPUT -p udp -m policy —dir out —pol ipsec -m udp —sport l2tp -j ACCEPT iptables -t filter -A OUTPUT -p udp -m udp —sport l2tp -j REJECT —reject-with icmp-port-unreachable

yum install -y xl2tpd libreswan lsof

Бэкапим дефолтный конфиг:

cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.orig

Правим /etc/xl2tpd/xl2tpd.conf, указывая свои IP. В отличие от других серверов L2TP, xl2tpd может поддерживать пул IP-адресов без серверов DHCP или RADIUS.

В секцию [global] добавим (это обязательно для CentOS 6, не в 7.6 мне не потребовалось):

[global] ipsec saref = yes force userspace = yes [lns default] ip range = 172.21.118.2-172.21.118.254 local ip = 172.21.118.1 require authentication = yes name = LinuxVPN pppoptfile = /etc/ppp/options.xl2tpd

Для использования сервера RADIUS или DHCP, оставьте отключенными опции ip range и local ip . Если соединение нестабильно, попробуйте добавить length bit = yes в раздел lns default . Чтобы не использовать PPP аутентификацию, замените require authentication = yes на refuse authentication = yes .

Создаем новый файл options.xl2tpd опций с таким содержимым:

ipcp-accept-local ipcp-accept-remote ms-dns 8.8.8.8 ms-dns 8.8.4.4 auth idle 1800 mtu 1410 mru 1410 nodefaultroute debug proxyarp connect-delay 5000 name xl2tpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 persist logfile /var/log/xl2tpd.log

Настройка IPsec

Есть несколько вариантов и пакетов для настройки IPsec: ipsec-tools, LibreSwan (OpenSwan) и strongSwan. ipsec-tools (racoon) наименее функционален, но для тех, кто пришёл из *BSD, он может быть более близок. Однако, в отличие от *BSD, Linux не использует отдельный интерфейс для IPsec. strongSwan – это ответвление от FreeS/WAN. LibreSwan – ответвление от Openswan (который сам является ответвлением от FreeS/WAN) с сохранением его оригинальных разработчиков. Мы будем использовать именно LibreSwan, который мы уже ранее установили. Обход NAT установлен по умолчанию в файле конфигурации LibreSwan, таким образом никаких особых этапов настройки не требуется.

Желательно иметь каждую настройку VPN в своём собственном файле, что может быть сделано раскомментированием последней строки в /etc/ipsec.conf:

Основные конфигурационные файлы для LibreSwan это:

  • /etc/ipsec.conf – определяет параметры IPSEC-соединений и параметры подключений в целом;
  • /etc/ipsec.secrets – ключи и пароли для шифрования

Файл /etc/ipsec.conf разбит на разделы:

  • config setup – глобальные параметры и опции
  • conn %default – параметры ipsec-соединений по-умолчанию. Если в отдельных параметрах соединений не указан параметр, то используются параметры отсюда.

Например: conn SomeTunnel – раздел с параметрами соединения SomeTunnel

Файл /etc/ipsec.secrets содержит неограниченное количество типов ключей (паролей).

Основные параметры команды ipsec, которая управляет подключениями LibreSwan :

  • start|restart|stop;
  • ipsec status|statusall — для просмотра состояния IPSEC-соединений;
  • up|down|route|unroute — для управления IPSEC-соединений.
Читайте так же:
Импорт содержимого CSV-файла в Excel

Логи хранятся в /var/log/auth.log и /var/log/daemon.log.

Создаем файл настроек с таким содержимым:

conn L2TP-PSK-NAT rightsubnet=0.0.0.0/0 dpddelay=10 dpdtimeout=20 dpdaction=clear forceencaps=yes also=L2TP-PSK-noNAT conn L2TP-PSK-noNAT authby=secret pfs=no auto=add keyingtries=3 rekey=no ikelifetime=8h keylife=1h type=transport left=1.1.1.1 leftprotoport=17/1701 right=%any rightprotoport=17/%any

  • conn L2TP-PSK-NAT – служебное слово conn означает название соединения. После него будут параметры, которые характеризуют соединение.
  • left= и right= – адреса хостов. Слова символизируют то, что хосты находятся с разных сторон. Не имеет значения, в какой из них вы впишете свой адрес, система автоматически определит, какой из адресов относится к ее интерфейсу. Поэтому на разных хостах вполне можно использовать одинаковый конфиг. Вместо адреса можно использовать ключевое слово %any в виде right=%any. Тогда можно будет подключаться с любого адреса. Так выглядит общая конфигурация, которую можно использовать:
    left=%defaultroute
    leftprotoport=udp/l2tp
    leftid=@vpn.example.com
    right=%any
    rightprotoport=udp/%any
  • type=tunnel – тип соединения. Может принимать значения tunnel, transport или passthrough.
  • authby=secret – что будет использоваться в качестве ключа: PSK (парольное слово) или RSA (ключ)
  • auto=start – опция определяет, когда включать соединение. Может принимать значения: start (автоматически стартовать), add (стартовать в ответ на инициацию от другого хоста), ignore (игнорировать соединение), manual (стартовать вручную), route (назначение мне осталось непонятно, используется крайне редко).

Ну и так как мы задали тип авторизации с помощью PSK , то давайте запишем секретное слово в файл ipsec . secrets .

Ключ может быть задан строкой в кавычках или шестнадцатеричным числом. В следующем примере PUT_VPN_SERVER_IP должен быть заменён на IP-адрес сервера. Можно использовать доменное имя, но оно не рекомендовано разработчиками LibreSwan. Опция %any позволяет любым клиентам использовать этот PSK. Также можно IP не указывать как в нашей конфигурации выше.

Настройка Firewall CentOS 7

Основной брандмауэр в операционных системах Linux — это iptables. Но команды iptables сложны, и многим пользователям тяжело запомнить все опции и случаи, в которых их надо использовать. Поэтому разработчики дистрибутивов создают свои надстройки над iptables, которые помогают упростить управление фаерволом. У CentOS надстройка для управления iptables называется Firewalld.

У Firewalld есть несколько важных отличий, по сравнению с iptables. Здесь управление доступом к сети выполняется на уровне зон и сервисов, а не цепочек и правил. А также правила обновляются динамически, не прерывая запущенных сессий. В этой статье будет рассмотрена настройка Firewall CentOS 7 на примере Firewalld.

Основы использования Firewalld

Как я уже сказал выше, Firewalld работает не с цепочками правил, а с зонами. Каждому сетевому интерфейсу может быть присвоена определенная зона. Зона представляет из себя набор правил, ограничений и разрешений, которые применяются к этому сетевому интерфейсу. Для одного интерфейса может быть выбрана только одна зона. Разработчики создали несколько предустановленных зон:

  • drop — блокировать все входящие пакеты, разрешить только исходящие
  • block — в отличие от предыдущего варианта отправителю пакета будет отправлено сообщение по блокировке его пакета;
  • public — поддерживаются входящие соединения только для ssh и dhclient;
  • external — поддерживает NAT для скрытия внутренней сети;
  • internal — разрешены сервисы ssh, samba, mdns и dhcp;
  • dmz — используется для изолированных сервров, у которых нет доступа к сети. Разрешено только подключение по SSH;
  • work — разрешенны сервисы ssh и dhcp;
  • home — аналогично internal;
  • trusted — всё разрешено.

Таким образом, чтобы разрешить или запретить какой-либо сервис, вам достаточно добавить или удалить его из текущей зоны или сменить зону интерфейса на ту, где он разрешён. Можно провести аналогию с политикой действий по умолчанию для пакетов в iptables. Зона trusted имеет политику ACCEPT и разрешает все подключения, зона block имеет политику DENY, которая запрещает все подключения, а все остальные зоны можно считать наследниками зоны block, плюс в них уже предопределены правила разрешения сетевых подключений для некоторых сервисов.

Также у Firewalld есть два вида конфигурации:

  • runtime — действительна только до перезагрузки, все изменения, в которых явно не указано другое, применяются к этой конфигурации;
  • permanent — постоянные настройки, которые будут работать и после перезагрузки.

Теперь вы знаете всё необходимое, поэтому перейдём к утилите firewalld-cmd.

Синтаксис и опции firewall-cmd

Управлять настройками Firewalld можно как с помощью консольной утилиты firewall-cmd, так и в графическом интерфейсе. CentOS чаще всего используется на серверах, поэтому вам придётся работать в терминале. Давайте рассмотрим синтаксис утилиты:

firewall-cmd опции

Для управления зонами используется такой синтаксис:

firewall-cmd —конфигурация —zone=зона опции

В качестве конфигурации нужно указать опцию —permanent, чтобы сохранить изменения после перезагрузки или ничего не указывать, тогда изменения будут действительны только до перезагрузки. В качестве зоны используйте имя нужной зоны. Давайте рассмотрим опции утилиты:

  • —state — вывести состояние брандмауэра;
  • —reload — перезагрузить правила из постоянной конфигурации;
  • —complete-reload — жёсткая перезагрузка правил с разрывом всех соединений;
  • —runtime-to-permanent — перенести настройки конфигурации runtime в постоянную конфигурацию;
  • —permanent — использовать постоянную конфигурацию;
  • —get-default-zone — отобразить зону, используемую по умолчанию;
  • —set-default-zone — установить зону по умолчанию;
  • —get-active-zones — отобразить активные зоны;
  • —get-zones — отобразить все доступные зоны;
  • —get-services — вывести предопределенные сервисы;
  • —list-all-zones — вывести конфигурацию всех зон;
  • —new-zone — создать новую зону;
  • —delete-zone — удалить зону;
  • —list-all — вывести всё, что добавлено, из выбранной зоны;
  • —list-services — вывести все сервисы, добавленные к зоне;
  • —add-service — добавить сервис к зоне;
  • —remove-service — удалить сервис из зоны;
  • —list-ports — отобразить порты, добавленные к зоне;
  • —add-port — добавить порт к зоне;
  • —remove-port — удалить порт из зоны;
  • —query-port — показать, добавлен ли порт к зоне;
  • —list-protocols — вывести протоколы, добавленные к зоне;
  • —add-protocol — добавить протокол к зоне;
  • —remove-protocol — удалить протокол из зоны;
  • —list-source-ports — вывести порты источника, добавленные к зоне;
  • —add-source-port — добавить порт-источник к зоне;
  • —remove-source-port — удалить порт-источник из зоны;
  • —list-icmp-blocks — вывести список блокировок icmp;
  • —add-icmp-block — добавить блокировку icmp;
  • —add-icmp-block — удалить блокировку icmp;
  • —add-forward-port — добавить порт для перенаправления в NAT;
  • —remove-forward-port — удалить порт для перенаправления в NAT;
  • —add-masquerade — включить NAT;
  • —remove-masquerade — удалить NAT.
Читайте так же:
Zoom: скачиваем и устанавливаем клиент для конференций

Это далеко не все опции утилиты, но для этой статьи нам будет их достаточно.

Настройка Firewall в CentOS 7

1. Статус брандмауэра

Первым делом необходимо посмотреть состояние брандмауэра. Для этого выполните:

sudo systemctl status firewalld

Настройка Firewall CentOS 7

Если служба Firewalld отключена, то необходимо её включить:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Теперь нужно посмотреть, запущен ли Firewalld, с помощью команды firewall-cmd:

sudo firewall-cmd —state

Настройка Firewall CentOS 7

Если программа запущена и всё хорошо, то вы получите сообщение «running».

2. Управление зонами

Как вы уже поняли, зоны — это основной инструмент для управления сетевыми подключениями. Чтобы посмотреть зону по умолчанию, выполните:

sudo firewall-cmd —get-default-zone

Настройка Firewall CentOS 7

В моем случае это зона public. Вы можете изменить текущую зону с помощью опции —set-default-zone:

sudo firewall-cmd —set-default-zone=public

Настройка Firewall CentOS 7

Чтобы посмотреть, какие зоны используются для всех сетевых интерфейсов, выполните:

sudo firewall-cmd —get-active-zones

Настройка Firewall CentOS 7

В списке будут выведены зоны и интерфейсы, для которых они присвоены. Такой командой можно посмотреть конфигурацию для определённой зоны. Например, для зоны public:

sudo firewall-cmd —zone=public —list-all

Настройка Firewall CentOS 7

3. Настройка сервисов

Вы можете посмотреть все предопределенные сервисы командой:

sudo firewall-cmd —get-services

Настройка Firewall CentOS 7

Команда выведет все доступные сервисы, вы можете добавить любой из них к зоне, чтобы его разрешить. Например, разрешим подключение к http:

sudo firewall-cmd —zone=public —add-service=http —permanent

Настройка Firewall CentOS 7

А чтобы удалить этот сервис, выполните:

sudo firewall-cmd —zone=public —remove-service=http —permanent

В обоих случаях мы использовали опцию —permanent, чтобы конфигурация сохранялась после перезагрузки. После изменений нужно обновить правила:

sudo firewall-cmd —reload

Затем, если вы посмотрите конфигурацию зоны, то там появится добавленный сервис:

sudo firewall-cmd —zone=public —list-all

Настройка Firewall CentOS 7

4. Как открыть порт в Firewalld

Если для нужной вам программы нет сервиса, вы можете открыть её порт вручную. Для этого просто добавьте нужный порт к зоне. Например порт 8083:

sudo firewall-cmd —zone=public —add-port=8083/tcp —permanent

Настройка Firewall CentOS 7

Чтобы удалить этот порт из зоны, выполните:

sudo firewall-cmd —zone=public —remove-port=8083/tcp —permanent

Аналогично сервисам, чтобы открыть порт в firewall centos 7 надо перезагрузить брандмауэр.

sudo firewall-cmd —reload

Настройка Firewall CentOS 7

5. Проброс портов Firewalld

Проборс портов в Firewalld настраивается намного проще, чем в iptables. Если вам нужно, например, перенаправить трафик с порта 2223 на порт 22, достаточно добавить к зоне перенаправление:

sudo firewall-cmd —zone=public —add-forward-port=port=2223:proto=tcp:toport=22

Здесь перенаправление выполняется только на текущей машине. Если вы хотите настроить сеть NAT и пробрасывать порт на другую машину, то вам нужно сначала включить поддержку masquerade:

sudo firewall-cmd —zone=public —add-masquerade

Затем уже можно добавить порт:

sudo firewall-cmd —zone=publiс —add-forward-port=port=2223:proto=tcp:toport=22:toaddr=192.168.56.4

6. Расширенные правила

Если функциональности зон вам недостаточно, вы можете использовать расширенные правила. Общий синтаксис расширенных правил такой:

rule family = «семейтво» source значение destination значение log audit действие

Вот значение основных параметров:

  • В качестве семейства протоколов можно указать ipv4 или ipv6 или ничего не указывать, тогда правило будет применяться к обоим протоколам;
  • source и destination — это отправитель и получатель пакета. В качестве этих параметров может быть использован IP-адрес (address), сервис (service name), порт (port), протокол (protocol) и так далее;
  • log — позволяет логгировать прохождение пакетов, например в syslog. В этой настройке вы можете указать префикс строчки лога и уровень подробности логгирования;
  • audit — это альтернативный способ логгирования, когда сообщения будут отправляться в службу auditd.
  • Действие — это действие, которое необходимо выполнить с совпавшим пакетом. Доступны: accept, drop, reject, mark.

Давайте рассмотрим несколько примеров. Нам необходимо заблокировать доступ к серверу для пользователя с IP 135.152.53.5:

sudo firewall-cmd —zone=public —add-rich-rule ‘rule family=»ipv4″ source address=135.152.53.5 reject’

Настройка Firewall CentOS 7

Или нам нужно запретить для этого же пользователя только доступ к порту 22:

sudo firewall-cmd —zone=public —add-rich-rule ‘rule family=»ipv4″ source address=135.152.53.5 port port=22 protocol=tcp reject’

Посмотреть все расширенные правила можно командой:

sudo firewall-cmd —list-rich-rules

Настройка Firewall CentOS 7

Выводы

В этой статье мы разобрали, как выполняется настройка firewall в CentOS 7 и какие задачи можно с помощью него выполнить. Программой намного проще пользоваться, чем iptables, но по моему мнению надстройка фаервола от Ubuntu — ufw ещё проще в использовании.

Первичная настройка VDS на CentOS

Первичная настройка VDS на CentOS

Конфигурация сервера на CentOS зависит от задач, которые будет решать администратор. Однако есть базовые настройки, которые приходится выполнять вне зависимости от того, как будет в дальнейшем использоваться VDS. Речь идет об установке обновлений и региональных параметров, а также защите сервера.

В качестве примера настроим VDS с CentOS на Timeweb. Провайдер предоставляет удобную панель с консолью, которая поможет установить все необходимые параметры работы сервера.

Обновление системы CentOS

Сразу после установки обновляем систему. Открываем панель управления сервера, переходим на вкладку «Консоль» и авторизируемся под теми данными, которые хостер прислал в письме при создании сервера. Выполняем команду для обновления:

Важно: yum — пакетный менеджер, который используется в CentOS 7. В CentOS 8 вместо него уже dnf, но можно писать и yum — поддержка осталась.

Настройка автоматического обновления CentOS

Чтобы безопасность сервера была на высоком уровне, необходимо постоянно обновлять ядро с системными утилитами и сторонние пакеты. Необязательно ставить обновления в автоматическом режиме, достаточно просто проверять их наличие.

Читайте так же:
Пропорциональное масштабирование слоев

Автоматическая проверка обновления настраивается по-разному в зависимости от версии ОС. В CentsOS 7 используется утилита yum-cron. Устанавливается она из стандартного репозитория.

После установки создается задание на выполнение утилиты в /etc/cron.daily и /etc/cron.hourly. По умолчанию yum-cron скачивает обнаруженные обновления, но не устанавливает их. Администратор получает на локальный почтовый ящик письмо с информацией о наличии апдейтов. Дальше он сам решает, стоит ли их ставить.

Работа yum-cron настраивается через конфигурационные файлы, расположенные по адресу /etc/yum/yum-cron.conf и /etc/yum/yum-cron-hourly.conf. Например, можно указать параметры отправки сообщения, в том числе настроить использование стороннего почтового сервера.

На CentOS 8 для настройки обновлений используется утилита dnf-automatic. Первым делом ее нужно установить из стандартного репозитория:

Управляет запуском проверки обновлений по расписанию уже утилита systemd, у которой есть встроенный планировщик. Посмотрим таймеры автоматического запуска:

Если заданий нет, добавим таймер вручную:

По умолчанию таймер настроен на запуск dnf-automatic через час после загрузки VDS и ежедневное повторение процедуры. Конфигурационный файл таймера расположен по адресу /etc/systemd/system/multi-user.target.wants/dnf-automatic.timer.

Посмотреть и отредактировать конфигурационный файл dnf-automatic можно в /etc/dnf/automatic.conf. По умолчанию утилита только скачивает обновления, но не применяет их. Конфиги можно настроить так, как вам удобно.

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

Сначала узнаем, какое время настроено на сервере по умолчанию. Для этого выполняем команду

Изменить часовой пояс можно с помощью специальной утилиты, которая входит в состав systemd

Следующий шаг — проверка статуса службы обновления времени. Для этого выполняем команду

В CentOS для синхронизации времени с интернетом есть утилита chrony. В стандартной сборке она установлена по умолчанию, в минимальной конфигурации ОС ее нет.

Как видно из скриншота выше, на этом сервере время не синхронизируется. Установим утилиту chrony вручную:

Затем запускаем chrony и добавляем ее в список автозагрузки.

Проверяем статус утилиты.

Обращаем внимание на следующие строки:

System clock synchronized — должно быть значение «yes».

NTP service — должно быть значение «active».

После запуска утилиты chrony часы будут автоматически синхронизироваться с сервером времени в интернете.

VDS с бесплатным администрированием и поддержкой 24/7. Дарим 200 рублей на тест

Протестируй VDS Timeweb бесплатно: закажи сервер, сообщи поддержке промокод community200 и получи 200 рублей на баланс.

Настройка файрвола

Для защиты сервера от внешних угроз нужно настроить разрешения для входящего и исходящего трафика. Используем для этого iptables. Он запущен по умолчанию. Проверим текущие правила командой

Важно: прежде чем настраивать файрвол, проверяем наличие доступа к консоли сервера. В противном случае ошибка может привести к тому, что вы не сможете подключиться к VDS, так как межсетевой экран закроет порты.

В CentOS 7 для управления межсетевым экраном появилась новая утилита — firewalld. По сути, это надстройка над iptables. Ее можно отключить и воспользоваться файлом с правилами.

Ставим утилиты для iptables:

Создаем новый файл /etc/iptables.sh и добавляем в него следующие правила:

Это один из вариантов самописного скрипта для файрвола CentOS, который сделает использование системы на сервере более безопасным.

Затем делаем файл со скриптом исполняемым:

Проверяем, что правила теперь применяются:

Настройка SSH

Настраивать SSH нужно не только для безопасности, но и для удобства. По умолчанию SSH работает на 22 порту. Если его не поменять, то на сервере будет зафиксированы многочисленные попытки авторизации — это боты сканируют интернет и пытаются подобрать пароли к серверам. В реальности это не так опасно, но все равно отнимает ресурсы VDS, пусть и мизерные. Избавиться от подобной активности помогает простая смена номера порта.

Открываем файл /etc/ssh/sshd_config для редактирования:

В строке Port 22 убираем комментарий и меняем значение — с 22 на 51452 или другое.

Теперь нужно разрешить доступ к этому порту в файрволе. Открываем файл /etc/iptables.sh, находим строку $IPT -A INPUT -i $WAN -p tcp —dport 22 -j ACCEPT и вместо «22» вписываем «51452» или другой номер, который ранее назначили в конфиге SSH.

Для применения изменений перезапускаем sshd:

Подключение репозиториев в CentOS

В стандартной сборке есть не весь софт, который может понадобиться при разработке проекта. Чтобы инсталлировать дополнительное ПО, нужно предварительно подключить репозитории. Самый популярный вариант для CentOS — EPEL. Добавить его можно из стандартного репозитория одной командой

На CentOS 7 также полезным будет репозиторий REMI, который позволяет установить более свежие версии PHP по сравнению с теми, что есть в стандартном репозитории. Выполняем команду

Этих двух репозиториев хватает для выполнения стандартных задач. Другие подключаются уже под конкретные нужды, которые возникают при работе с сервером.

Настройка хранения истории

В стандартных настройках хранения истории команд есть ряд ограничений, которые делают ее использование неудобным:

сохраняется только последняя тысяча команд;

нет дат, только список в порядке выполнения;

файл со списком обновляется после завершения сессии, при параллельных сессиях часть команд может оказаться утерянной;

сохраняются все команды, хотя в хранении некоторых из них нет никакого смысла.

Список выполненных команд хранится в домашней директории в файле .bash_history. Его можно посмотреть через любой редактор. Для вывода списка можно выполнить в консоли следующую команду:

На экране появится пронумерованный список. Быстро перейти к конкретной команде можно с помощью фильтрации, например, так:

Этот запрос выделит все запуски команды yum, которые доступны в истории.

На этом базовую настройку VDS с CentOS на борту можно считать завершенной.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector