Шпаргалка по firewall-cmd

Шпаргалка по параметрам fierwalld-cmd или опять настройка firewalld

Вот достаточно полное, хоть и краткое описание параметров утилиты firewalld-cmd которые позволяют управлять межсетевым экраном firewalld. По традиции большинство опций начинаются с символов —.

Получение справки:

  • -h, —help — Возвращает описание опций firewall-cmd.
  • -V, —version — Возвращает версию firewalld.

Проверка статуса:

  • —state Проверяет активен ли демон firewalld. Возвращает код 0 если демон активен или NOT_RUNNING если демон не запущен. Так же выводит информацию в стандартный поток STDOUT

Перезагрузка:

  • —reload — Перезагружает правила межсетевого экрана с сохранением информации о состоянии.
  • —complete-reload — Полностью перезагружает межсетевой экран, в том числе перезагружает модули ядра (netfilter)/ Очевидно что все соединения будут сброшены и временные правила потеряны. Эта перезагрузка для особо неприятных случаев.

Паника (внештатный режим):

  • —panic-on — Включае режим паники. Все входящие и исходящие пакеты без исключения отбрасываются, все соединения со временем разрываются. Идеально подходит на случай обнаружения взлома или иных серьёзных проблем.
  • —panic-off — Отключить режим паники. Брэндмауер начинает работать в штатном режиме, некоторые соединения могут быть восстановлены, если режим паники длился меньше время смерти для этих соединений.
  • —query-panic — Возвращает 0 если режим паники включен и 1 если выключен.

Опции обработки зон:

  • —get-default-zone — Возвращает зону по умолчанию для соединений и интерфейсов (Изначально по умолчанию public).
  • —set-default-zone=<zone> — Устанавливает зону по умолчанию для соединений и интерфейсов (Для которых зона не была установлена). Это постоянные изменения.
  • —get-zones — Возвращает предопределенных зон служб используя пробелы в качестве разделителя.
  • —get-services — Возвращает список стандартных служб используя пробелы в качестве разделителя.
  • —get-icmptypes — Возвращает список предопределенных типов ICMP используя пробелы в качестве разделителя
  • —get-active-zones — Возвращает список активных в настоящее время зон вместе с интерфейсами в этих зонах в формате:
    <zone1>: <interface1> <interface2> ..
    <zone2>: <interface3> ..
  • —get-zone-of-interface=<interface> — Возвращает зону которой пренадлежит интерфейс <interface> или ничего, если интерфейсу не назначена зона.
  • —list-all-zones — Возвращает список всех действий во всех зонах в формате:
    <zone>
    interfaces: <interface1> ..
    services: <service1> ..
    ports: <port1> ..
    forward-ports: <forward port1> ..
    icmp-blocks: <icmp type1> ..

Опции обработки интерфейсов:

Эти опции относятся только к одной конкретной зоне. Если используется —zone=<zone>, то они влияют на зону <zone>. Если —zone=<zone> опущен, то опции влияют на зону «по умолчанию» (смотрите —get-default-zone). Получить список предопределенных зон можно используя —get-zones. Имя интерфейса это строка длинной не более 16 символов, оно не может содержать », ‘/’, ‘!’ и ‘*’. [—zone=<zone>]

  • -list-interfaces — Возвращает список интерфейсов которые пренадлежат к зоне <zone>. Если параметр —zone опущен, то используется зона «по умолчанию». [—zone=<zone>]
  • —add-interface=<interface> — Добавляет интерфейс <interface> в зону <zone>. Если параметр —zone опущен, то используется зона «по умолчанию».
  • [—zone=<zone>] { —change-interface=<interface> | —change —zone=<interface> } — Изменить зону интерфейса<interface> принадлежащего зоне <zone>. Если параметр —zone опущен, то используется зона «по умолчанию». Если старая и новая зона совпадают то команда ничего не делает и не возвращает ошибки. Если интерфейс не принадлежал ранее к этой зоне то он будет в неё добавлен, как при использовании параметра —add-interface.
  • [—zone=<zone>]—query-interface=<interface> — Возвращает 0 если интерфейс <interface> принадлежит к зоне <zone> и 1 если не пренадлежит.
  • [—zone=<zone>]—remove-interface=<interface> — Удаляет интерфейс<interface> из зоны <zone>.Если параметр —zone опущен, то используется зона «по умолчанию»

.Опции настройки и запроса зон:

Чтобы использовать эти параметры следует знать какие действия и когда можно использовать. Об этом написано ниже.

  • [—zone=<zone>] —add-ACTION [—timeout=<seconds>] — Добавить действиеACTION для зоны <zone>. Эта опция может быть указана несколько раз. Если параметр —zone опущен, то используется зона «по умолчанию».Чтобы получить зону по умолчанию используется —get-default-zone. Если указан тайм-аут то действие ACTION будет активно указанное количество секунд и затем удалено.
  • [—zone=<zone>] —remove-ACTION — Удалить действие ACTION из зоны<zone>. Эта опция может быть указан несколько раз. Если параметр —zone опущен, то используется зона «по умолчанию». Если действие было добавлено с указанием тайм-аута, оно всё равно будет удалено.
  • [—zone=<zone>] —query-ACTION — Возвращает 0 если действие ACTION было добавлено для зоны <zone> и 1 в противном случае. Если параметр —zone опущен, то используется зона «по умолчанию».
  • [—zone=<zone>] —add-masquerade [—timeout=<seconds>] — Включить маскарад для зоны<zone>. Если параметр —zone опущен, то используется зона «по умолчанию». Если указан тайм-аут, маскарадинг будет активным в течение указанного количества секунд.
  • [—zone=<zone>] —remove-masquerade — Отключить маскарад для зоны <zone>. Если параметр —zone опущен, то используется зона «по умолчанию». Если маскарадинг был включен с тайм-аут, он всё равно будет отключен.
  • [—zone=<zone>] —query-masquerade — Возвращает 0 если маскарадинг включен для зоны <zone> и 1 в противном случае.Если параметр —zone опущен, то используется зона «по умолчанию».
  • [—zone=<zone>] —list-services — Возвращает список сервисов добавлены в зону <zone> разделенный пробелами. Если параметр —zone опущен, то используется зона «по умолчанию». Чтобы получить список всех предустановленных сервисов используйте —get-services.
  • [—zone=<zone>] —list-ports— Возвращает список портов добавленных в зону <zone> разделённый пробелами.Списрок имеет формат: <port>[-<port>]/<protocol>, где в качестве порта может быть указан диапазон портов.Если параметр —zone опущен, то используется зона «по умолчанию».
  • [—zone=<zone>]—list-icmp-blocks — Список типов ICMP пакетов добавлнных в зону <zone> разделенный пробелами. Если параметр —zone опущен, то используется зона «по умолчанию». Для получения списка всех предопределенных типов ICMP используйте —get-icmptypes.
  • [—zone=<zone>] —list-forward-ports — Возвращает список всех «проброшенных» портов добавленных в зону<zone>.Если параметр —zone опущен, то используется зона «по умолчанию».
  • [—zone=<zone>] —list-all — Возвращает список всех действий добавленных или включенных в зону <zone>. Если параметр —zone опущен, то используется зона «по умолчанию».

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

Эти действия (ACTION) используются в —add-ACTION, —remove-ACTION и —query-ACTION предыдущего раздела.

  • service=<service> — Использовать одну из стандартных служб. Для получения списка всех стандартных служб используйте —get-services.
  • port=<port>[-<port>]/<protocol> — Использовать порт <port> или диапазон портов <port>-<port> для работы протоколы. Порт — это номер порта от 1 до 65535. Протокол может быть TCP или UDP.
  • icmp-block=<icmptype> — .Использовать предопределенные типы ICMP пакетов. Для получения списка всех предопределенных типов ICMP используйте —get-icmptypes.
  • forward-port=port=<port>[-<port>]:proto=<protocol>:toport=<port>[-<port>] — Использовать порт при переадресации пакетов. Указываются исходный и целевой порты или диапазоны портов для протокола. Протоколом может быть UDP или TCP. Проброс осуществляется с локального порта port на локальный toport.
  • forward-port=port=<port>[-<port>]:proto=<protocol>:toaddr=<address> — Проброс локального порта port в тот же порт на хосте toaddr.
  • forward-port=port=<port>[-<port>]:proto=<protocol>:toport=<port>[-<port>]:toaddr=<address> — Проброс локального порта port в порт toport на хосте

Постоянные параметры:

Постоянные параметры будут хранится в настройках и не исчезнут после перезагрузки. Так же их изменение вступят в силу только после перезагрузки или перезапуска системы.(Ключевое слово тут —permanent) Можно использовать:

  • —permanent { —get-zones | —get-services | —get-icmptypes }
  • —permanent [—zone=<zone>] { —list-services | —list-ports | —list-icmp-blocks | —list-forward-ports }
  • —permanent [—zone=<zone>] { —add-ACTION | —remove-ACTION | —query-ACTION }
  • —permanent [—zone=<zone>] { —add-masquerade | —remove-masquerade |—query-masquerade }

Результат такой же как и при использовании временных параметров, только постоянный. 🙂

Ещё опции:

Эти опции служат для управления правилами на более низком уровне.

  • —direct—passthrough { ipv4 | ipv6 | eb } <args> — Передача команд через фаервол. Аргументом <args> могут быть любые агрументы командной строки допрустимые в iptables, ip6tables и ebtables.
  • —direct—add-chain { ipv4 | ipv6 | eb } <table> <chain> — Добавить новую цепочку <chain> в таблицу <table>.
  • —direct—remove-chain { ipv4 | ipv6 | eb } <table> <chain> — Удалить цепочку <chain> из таблицы <table>.
  • —direct—query-chain { ipv4 | ipv6 | eb } <table> <chain> — Возвращает 0 если цепочка с именем <chain> присутствует в таблице <table> и 1 в противном случае.
  • —direct—get-chains { ipv4 | ipv6 | eb } <table> — Возвращает все цепочки содержащиеся в таблице <table> в виде списка разделенного пробелами.
  • —direct—add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args> — Добавить правило <args> в цепочку <chain> таблицы <table>.Приоритет используется для задания позиции правила в цепи. Правило с приоритетом 0 добавляется на самый верх цепи. Чем больше приоритет, тем ниже правило расположено в цепочке. Порядок расположения правил с одинаковым приоритетом может менятся и поэтому не предсказуем. Не стоит назначать одинаковый приоритет правилам.
  • —direct—remove-rule { ipv4 | ipv6 | eb } <table> <chain> <args> -Удалить правило <args> из цепочки <chain> в таблице <table>.
  • —direct—query-rule { ipv4 | ipv6 | eb } <table> <chain> <args> — Возвращает 0 если правило <args> существует в цепочке <chain> таблицы <table> и 1 в противном случае.
  • —direct—get-rules { ipv4 | ipv6 | eb } <table> <chain> — Возвращает все правила цепочки <chain> в таблице <table> в виде строк.

Шпаргалка по Cenos 7

Шпаргалка по управлению сервисами CentOS 7 с systemd

Блог компании Infobox

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. Юниты представлены конфигурационными файлами, размещенными в одной из директорий:

  • /usr/lib/systemd/system/– юниты из установленных пакетов RPM.
  • /run/systemd/system/— юниты, созданные в рантайме. Этот каталог приоритетнее каталога с установленными юнитами из пакетов.
  • /etc/systemd/system/— юниты, созданные и управляемые системным администратором. Этот каталог приоритетнее каталога юнитов, созданных в рантайме.

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

Типы юнитов systemd:

  • .service– системный сервис
  • .target— группа юнитов systemd
  • .automount – точка автомонтирования файловой системы
  • .device– файл устройства, распознанного ядром
  • .mount– точка монтирования файловой системы
  • .path– файл или директория в файловой системе
  • .scope– процесс, созданный извне
  • .slice– группа иерархически организованных юнитов, управляющая системными процессами
  • .snapshot– сохраненное состояние менеджера systemd
  • .socket– сокет межпроцессного взаимодействия
  • .swap– Свап-устройство или свап-файл (файл подкачки)
  • .timer– таймер systemd

 

Основные функции systemd в CentOS 7

 

  • Активация, основанная на сокетах. Во время загрузки systemd прослушивает сокеты для всех системных сервисов, поддерживает этот тип активации и передает сокеты этим сервисам сразу после старта сервисов. Это позволяет systemd не только запускать сервисы параллельно, но также дает возможность перезапускать сервисы без потери любых отправленных им сообщений, пока сервисы были недоступны. Соответствующий сокет остается доступным и все сообщения выстраиваются в очередь.
  • Активация, основанная на D-Bus. Системные сервисы, использующие D–Bus для межпроцессного взаимодействия, могут быть запущены по требованию, когда клиентское приложение пытается связаться с ними.
  • Активация, основанная на девайсах. Системные сервисы, поддерживающие активацию, основанную на девайсах, могут быть запущены, когда определенный тип оборудования подключается или становится доступным.
  • Активация, основанная на путях. Системные сервисы могут поддерживать этот вид активации, если изменяется состояние папки или директории.
  • Снепшоты системных состояний. Система может сохранять состояние всех юнитов и восстанавливать предыдущее состояние системы.
  • Управление точками монтирования и автомонтирования. Systemd отслеживает и управляет точками монтирования и автомонтирования.
  • Агрессивная параллелизацияSystemd запускает системные сервисы параллельно из-за использования активации, основанной на сокетах. В комбинации с сервисами, поддерживающими активацию по требованию, параллельная активация значительно уменьшает время загрузки системы.
  • Транзакционная логика активации юнитов. До активации и деактивации юнитов systemd вычисляет их зависимости, создает временную транзакцию и проверяет целостность этой транзакции. Если транзакция нецелостная, systemd автоматически пытается исправить ее и удалить не требующиеся задания из нее до формирования сообщения об ошибке.
  • Обратная совместимость с инициализацией SysV. SystemD полностью поддерживает скрипты инициализации SysV, как описано в спецификации Linux Standard Base (LSB), что упрощает переход на systemd.

 

Управление сервисами
В предыдущих версиях CentOS использовалась SysV или Upstart. Скрипты инициализации располагались в директории /etc/rc.d/init.d/. Такие скрипты обычно писались на Bash и позволяли администратору управлять состоянием сервисов и демонов. В CentOS 7 скрипты инициализации были заменены сервисными юнитами.

По способу использования сервисные юниты .service напоминают скрипты инициализации. Для просмотра, старта, остановки, перезагрузки, включения или выключения системных сервисов используется команда systemctl. Команды service и chkconfig по-прежнему включены в систему, но только по соображениям совместимости.

При использовании systemctl указывать расширение файла не обязательно.

Ниже представлены основные команды systemctl:

  • systemctl start name.service– запуск сервиса.
  • systemctl stop name.service— остановка сервиса
  • systemctl restart name.service— перезапуск сервиса
  • systemctl try-restart name.service— перезапуск сервиса только, если он запущен
  • systemctl reload name.service— перезагрузка конфигурации сервиса
  • systemctl status name.service— проверка, запущен ли сервис с детальным выводом состояния сервиса
  • systemctl is-active name.service— проверка, запущен ли сервис с простым ответом: active или inactive
  • systemctl list-units —type service —all– отображение статуса всех сервисов
  • systemctl enable name.service– активирует сервис (позволяет стартовать во время запуска системы)
  • systemctl disable name.service– деактивирует сервис
  • systemctl reenable name.service– деактивирует сервис и сразу активирует его
  • systemctl is–enabled name.service– проверяет, активирован ли сервис
  • systemctl list-unit-files —type service– отображает все сервисы и проверяет, какие из них активированы
  • systemctl mask name.service– заменяет файл сервиса симлинком на /dev/null, делая юнит недоступным для systemd
  • systemctl unmask name.service– возвращает файл сервиса, делая юнит доступным для systemd

 

Работаем с целями (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.

  • target (runlevel0.target)– завершение работы и отключение системы
  • target (runlevel1.target)– настройка оболочки восстановления
  • multi–user.target (runlevel2.target, runlevel3.target, runlevel4.target)– настройка неграфической многопользовательской системы
  • target (runlevel5.target)– настройка графической многопользовательской системы
  • target (runlevel6.target)– выключение и перезагрузка системы

Команды 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

Установка и конфигурация 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]#

  1. Защищённый 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 имеет права доступа для записи в папку.