Сайт Системного администратора
Шпаргалка по параметрам fierwalld-cmd или опять настройка firewalld
Вот достаточно полное, хоть и краткое описание параметров утилиты firewalld-cmd которые позволяют управлять межсетевым экраном firewalld. По традиции большинство опций начинаются с символов —.
Получение справки:
Проверка статуса:
Перезагрузка:
Паника (внештатный режим):
Опции обработки зон:
Опции обработки интерфейсов:
Эти опции относятся только к одной конкретной зоне. Если используется —zone=<zone>, то они влияют на зону <zone>. Если —zone=<zone> опущен, то опции влияют на зону «по умолчанию» (смотрите —get-default-zone). Получить список предопределенных зон можно используя —get-zones. Имя интерфейса это строка длинной не более 16 символов, оно не может содержать », ‘/’, ‘!’ и ‘*’. [—zone=<zone>]
.Опции настройки и запроса зон:
Чтобы использовать эти параметры следует знать какие действия и когда можно использовать. Об этом написано ниже.
Варианты действий для использования с опциями настройки и запроса зон:
Эти действия (ACTION) используются в —add-ACTION, —remove-ACTION и —query-ACTION предыдущего раздела.
Постоянные параметры:
Постоянные параметры будут хранится в настройках и не исчезнут после перезагрузки. Так же их изменение вступят в силу только после перезагрузки или перезапуска системы.(Ключевое слово тут —permanent) Можно использовать:
Результат такой же как и при использовании временных параметров, только постоянный. 🙂
Ещё опции:
Эти опции служат для управления правилами на более низком уровне.
Шпаргалка по управлению сервисами CentOS 7 с systemd
Systemd – менеджер системы и сервисов в операционной системе Linux. При разработке eго стремились спроектировать обратно совместимым со скриптами инициализации SysV init и предоставить полезные функции, такие, как параллельный запуск системных сервисов во время загрузки, активацию демонов по требованию, поддержку снепшотов состояния системы и логику управления сервисами, основанную на зависимостях. В CentOS 7 systemd заменяет Upstart как систему инициализации по умолчанию.
В этой статье мы рассмотрим процесс управления сервисами в systemd для пользователя CentOS 7. Эти знания будут полезны и в других дистрибутивах, ведь systemd уже давно используется в Fedora и планируется в Ubuntu 14.10 и Debian 8. Хорошо это или нет — оставим за кадром.
В процессе чтения статьи вы можете попробовать systemd на классических VPS и облачных VPS от Infobox. Мы стремимся своевременно добавлять поддержку современных ОС, чтобы вы могли использовать последние технологии для более эффективной работы. Сама идея написания статьи родилась после очередного вопроса пользователей об использовании сервисов в CentOS 7.
Введение
Systemd приносит концепцию юнитов systemd. Юниты представлены конфигурационными файлами, размещенными в одной из директорий:
Юниты содержат информацию о системных сервисах, прослушиваемых сокетах, сохраненных снапшотах состояний системы и других обьектах, относящихся к системе инициализации.
Типы юнитов systemd:
Основные функции systemd в CentOS 7
Управление сервисами
В предыдущих версиях CentOS использовалась SysV или Upstart. Скрипты инициализации располагались в директории /etc/rc.d/init.d/. Такие скрипты обычно писались на Bash и позволяли администратору управлять состоянием сервисов и демонов. В CentOS 7 скрипты инициализации были заменены сервисными юнитами.
По способу использования сервисные юниты .service напоминают скрипты инициализации. Для просмотра, старта, остановки, перезагрузки, включения или выключения системных сервисов используется команда systemctl. Команды service и chkconfig по-прежнему включены в систему, но только по соображениям совместимости.
При использовании systemctl указывать расширение файла не обязательно.
Ниже представлены основные команды systemctl:
Работаем с целями (targets) Systemd
Предыдущие версии CentOS с SysV init или Upstart включали предопределенный набор уровней запуска (runlevels), которые представляли специфичные режимы для операций, пронумерованные от 0 до 6. В CentOS 7 концепция уровней запуска была заменена целями systemd.
Файлы целей systemd .target предназначены для группировки вместе других юнитов systemd через цепочку зависимостей. Например юнит graphical.target, использующийся для старта графической сессии, запускает системные сервисы GNOME Display Manager (gdm.service) и Accounts Service (accounts–daemon.service) и активирует multi–user.target. В свою очередь multi–user.target запускает другие системные сервисы, такие как Network Manager (NetworkManager.service) или D-Bus (dbus.service) и активирует другие целевые юниты basic.target.
В CentOS 7 присутствуют предопределенные цели, похожие на стандартный набор уровней запуска. По соображениям совместимости они также имеют алиасы на эти цели, которые напрямую отображаются в уровнях запуска SysV.
Команды runlevel и telinit по-прежнему доступны, но оставлены в системе по соображениям совместимости. Рекомендуется использовать systemctl для изменения или настройки системных целей.
Для определения, какой целевой юнит используется по умолчанию, полезна следующая команда: systemctl get–default.
Для просмотра всех загруженных целевых юнитов воспользуйтесь командой systemctl list-units —type target, а для просмотра вообще всех целевых юнитов командой: systemctl list-units —type target —all.
Для изменения цели по умолчанию поможет команда systemctl set-default name.target.
Для изменения текущей цели: systemctl isolate name.target. Команда запустит целевой юнит и все его зависимости и немедленно остановит все остальные.
Выключение и перезагрузка системы
В CentOS 7 systemctl заменяет значительное количество команд управления питанием. Прежние команды сохранены для совместимости, но рекомандуется использовать systemctl:
systemctl halt – останавливает систему
systemctl poweroff – выключает систему
systemctl reboot – перезагружает систему
Управление systemd на удаленной машине
Systemd позволяет управлять удаленной машиной по SSH. Для управления используйте команду:
systemctl —host user_name@host_name command, где user_name – имя пользователя, host_name – имя хоста, которым осуществляется удаленное управление, а command – выполняемая команда systemd.
Типичный systemd .service
Этот раздел поможет вам, если вам необходимо быстро сделать поддержку управления сервисом из systemd. Подробная информация о всех параметрах файла .service есть в соответствующем разделе документации по systemd.
[Unit]
Description=Daemon to detect crashing apps
After=syslog.target
[Service]
ExecStart=/usr/sbin/abrtd
Type=forking
[Install]
WantedBy=multi-user.target
Давайте посмотрим на секцию [Unit]. Она содержит общую информацию о сервисе. Такая секция есть не только в сервис-юнитах, но и в других юнитах (например при управлении устройствами, точками монтирования и т.д.). В нашем примере мы даем описание сервиса и указываем на то, что демон должен быть запущен после Syslog.
В следующей секции [Service] непосредственно содержится информация о нашем сервисе. Используемый параметр ExecStart указывает на исполняемый файл нашего сервиса. В Type мы указываем, как сервис уведомляет systemd об окончании запуска.
Финальная секция [Install] содержит информацию о цели, в которой сервис должен стартовать. В данном случае мы говорим, что сервис должен быть запущен, когда будет активирована цель multi–user.target.
Это минимальный работающий файл сервиса systemd. Написав свой, для тестирования скопируйте его в /etc/systemd/system/имя_сервиса.service. Выполните команды systemctl daemon-reload. Systemd узнает о сервисе и вы сможете его запустить.
Дополнительная информация
Отличное руководство по systemd от RedHat, положенное в основу этой статьи.
Документация по написанию своего сервис-юнита systemd.
«Systemd для администраторов» от разработчика systemd на русском языке.
Заключение
В этой статье мы научились управлять сервисами CentOS 7. Конечно, это далеко не единственная функция systemd и другие ее стороны будут рассмотрены в будущем. Сама ОС практически со времени релиза доступна на классических VPS и облачных VPS от Infobox. Попробуйте systemd прямо сейчас. Эти знания будут полезны в связи с переходом многих дистрибутивов на systemd.
Если вы обнаружили ошибку в статье, автор ее с удовольствием исправит. Пожалуйста напишите в ЛС или на почту о ней.
В случае, если вы не можете оставлять комментарии на Хабре, можно написать их в блоге Сообщества InfoboxCloud или в нашей группе в Facebook.
Успешного использования CentOS 7!
Установка и конфигурация Samba на CentOS 7
Автор Владимир Драч
Пятница, 26 Сентябрь 2014 00:00
Разберёмся, как сконфигурировать samba на CentOS 7 с анонимными и защищёнными samba-серверами. Samba является пакетом программ с открытым исходным кодом, который позволяет уверенно обращаться к файлам и принтерам на ОС, работающих по протоколу SMB/CIFS. Samba находится в свободном доступе, в отличие от других программ SMB/CIFS, и совместим, допускает возможность взаимодействия сетей, включающих сервера под управлением Linux/Unix, так и клиентов, работающими на Windows.
1 Предварительные замечания
В нашем случае установка сервера samba будет производиться на специально установленном сервере CentOS версии 7.0. Также нам понадобится ПК с установленным Windows для проверки доступности samba. В данном случае сервер под CentОS будет иметь имя хоста в виде linux.example.com и 192.168.0.100 в качестве IP-адреса.
Внимание: В Windows домен рабочей станции должен совпадать с доменом в CentOS.
Для проверки значения в Windows введите в командной строке следующее:
net config workstation
В нашем случае домен рабочей станции имеет значение HOME.
Убедитесь, что рабочая группа будет иметь одинаковое имя как под Linux, так и под Windows.
Для того, чтобы сделать доступным компьютер под Windows, необходимо добавить IP-адрес вашего сервера в hosts.
блокнот C:\Windows\System32\drivers\etc\hosts
В нашем случае введем следующее:
[…]
192.168.0.100 linux.example.com centos
Затем просто сохраним данное изменение.
2 Анонимный доступ средствами samba
Сначала установим samba с возможностью анонимного доступа. Для установки samba выполните следующую команду:
yum install samba samba-client samba-common
Таким образом вы установите samba актуальной версии.
Для того, чтобы сконфигурировать samba потребуется отредактировать файл /etc/samba/smb.conf, перед редактированием следует сделать резервное копирование оригинального файла /etc/samba/smb.conf.bak
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
Открываем для редактирования файл:
mcedit /etc/samba/smb.conf
Вносим изменения:
[global]
workgroup = HOME
server string = Samba Server %v
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
#===Share Definitions
[Anonymous]
path = /samba/anonymous
browsable =yes
writable = yes
guest ok = yes
read only = no
Почти всё готово, перезапускаемся:
mkdir -p /samba/anonymous
systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service
На данном этапе сетевой экран CentOS 7.0 заблокирует доступ службы samba, чтобы решить эту проблему, выполним следующее:
firewall-cmd —permanent —zone=public —add-service=samba
firewall-cmd —reload
Настроить сетевой экран по всем правилам поможет специальная статья.
Теперь вы можете обмениваться файлами Centos 7.0 с windows, для этого в командной строке Win+R необходимо выполнить \\centos:
Далее в windows откройте папку и попытайтесь создать текстовый документ, но при попытке создания документа появится сообщение об ошибке прав доступа.
Далее необходимо проверить права доступа для общего документа.
ls -l
drwxr-xr-x.
2 root root anonymous
Для получения прав доступа для анонимного пользователя введите следующее:
cd /samba
chmod -R 755 anonymous/
chown -R nobody:nobody anonymous/
ls -l anonymous/
total 0
drwxr-xr-x.
2 nobody nobody anonymous
Далее нам потребуется разрешение selinux для конфигурации samba:
chcon -t samba_share_t anonymous/
Теперь анонимный пользователь может создавать и просматривать cодержимое.
Можно выполнить встречную проверку следующим образом:
ls -l anonymous/
total 0
-rwxr—r—. 1 nobody nobody 0 anonymous.txt
[root samba]#
Создадим группу smbgrp и пользователя dve для доступа к samba-серверу с необходимой аутентификацией:
groupadd smbgrp
useradd dve -G smbgrp
smbpasswd -a dve
[root samba]# smbpasswd -a dve
New SMB password:<-вашsambaпароль
Retype new SMB password:<—вашsambaпароль
Added user dve.
[root samba]#
Создадим папку secured в /samba и предоставим соответствующие права доступа:
mkdir -p /samba/secured
cd /samba && chmod -R 777 secured/
Теперь нам снова понадобится разрешение Selinux:
cd /samba
chcon -t samba_share_t secured/
Снова редактируем файл конфигурации /etc/samba/smb.conf:
[…]
[secured]
path = /samba/secured
valid users = @smbgrp
guest ok = no
writable = yes
browsable = yes
Далее потребуется перезапуск
systemctl restart smb.service
systemctl restart nmb.service
Теперь проверяем настройки хитрой командой testparm
[root]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section «[Anonymous]»
Processing section «[secured]»
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions <—нажмитеENTER
[global]
netbios name = CENTOS
server string = Samba Server %v
map to guest = Bad User
dns proxy = No
idmap config * : backend = tdb
[Anonymous]
path = /samba/anonymous
read only = No
guest ok = Yes
[secured]
path = /samba/secured
valid users = @smbgrp
read only = No
[root samba]#
browsable = yes.
Вы снова столкнётесь с проблемой прав доступа. Для получения прав доступа пользователя dve выполним:
cd /samba
chown -R dve:smbgrp secured//
Теперь пользователь samba имеет права доступа для записи в папку.