Блокировка вирусов и шифровальщиков с помощью Software Restriction Policies. Windows server 2018 как ограничить копирование файлов по расширению


Блокировка вирусов и шифровальщиков с помощью Software Restriction Policies

Продолжаем цикл статей о противодействии классу вирусов-шифровальщиков в корпоративной среде. В предыдущих частях мы рассмотрели  настройку защиты на файловых серверах с помощью FSRM и использования теневых снимков дисков для быстрого восстановления данных после атаки. Сегодня речь пойдет о способе предотвращения запуска исполняемых файлов вирусов-шифровальщиков (в том числе обычных вирусов и троянов) на ПК пользователей.

Помимо антивируса, еще одним барьером для предотвращения запуска вредоносного ПО на компьютерах пользователей могут быть политики ограниченного использования программ. В среде Windows это могут быть технология Software Restriction Policies  или AppLocker. Мы рассмотрим пример использования Software Restriction Policies   для защиты от вирусов.

Software Restriction Policies (SRP) предоставляют возможность разрешать или запрещать запуск исполняемых файлов с помощью локальной или доменной групповой политики.  Метод защиты от вирусов и шифровальщиков с помощью SRP предполагает запрет запуска файлов из определенных каталогов в пользовательском окружении, в которые, как правило, попадают файлы или архивы с вирусом. В подавляющем большинстве случаев файлы с вирусом, полученные из интернета или из электронный почты оказываются внутри каталога %APPDATA% профиля пользователя (в нем же находится папки %Temp% и Temporary Internet Files). В этом же каталоге хранятся распакованные временные копии архивов, когда пользователь не глядя открывает архив полученный по почте или скачанный с интернета.

При настройке SRP могут быть использованы две стратегии:

  • Разрешить запуск исполняемых файлов на компьютере только из определенных папок (как правило, это каталоги %Windir% и Program Files / Program Files x86) – это самый надежный метод, но требует длительного периода отладки и выявления нужного ПО, которое не работает в такой конфигурации
  • Запрет запуска исполняемых файлов из пользовательских каталогов, в которых в принципе не должно быть исполняемых файлов. Именно в этих каталогах в большинстве случаев оказываются файлы вируса при появлении на компьютере. Кроме того, у пользователя, не обладающего правами администратора, просто отсутствуют права на запись в каталоги системы кроме своих собственных. Поэтому вирус просто не сможет поместить свое тело куда-либо кроме директорий в профиле пользователя.

Мы рассмотрим создание SRP по второму варианту, как достаточно надежному и менее трудоемкому во внедрении.  Итак, создадим политику, блокирующую запуск файлов по определенным путям. На локальном компьютере это можно сделать с помощью консоли gpedit.msc, если политика должна использоваться в домене, нужно в консоли Group Policy Management  (gpmc.msc) создать новую политику и назначить ее на OU с компьютерами пользователей.

Примечание. Настоятельно рекомендуем перед внедрением SRP политик, протестировать их работу на группе тестовых компьютерах. В случае обнаружения легитимных программ, которые не запускаются из-за SRP, нужно добавить отдельные разрешительные правила.

В консоли редактора GPO перейдите в раздел Computer Configuration -> Windows Settings -> Security Settings . Щелкните ПКМ по Software Restriction Policies и выберите New Software Restriction Policies.

Выберите раздел Additional Rules, и создайте новое правило New Path Rule.

Создадим правило, запрещающее запуск исполняемых файлов с расширением *.exe из каталога %AppData%. Укажите следующие параметры правила:

  • Path: %AppData%\*.exe
  • Security Level: Disallowed
  • Description: Блокировка запуска exe файлов из папки %AppData%

Аналогичным образом нужно создать запрещающие правила для путей, перечисленных в таблице. Т.к. переменные окружения и пути  в Windows 2003/XP и Windows Vista/выше отличаются, в таблице указаны значения для соответствующих версий ОС. Если у вас в домене еще остались Windows 2003/XP, для них лучше создать отдельную политики и назначить ее на OU с компьютерами с использованием WMI фильтра GPO по типу ОС.

Описание
Windows XP и 2003Windows Vista/7/8/10, Windows Server 2008/2012
Запрет запуска файлов из %LocalAppData%%UserProfile%Local Settings*.exe%LocalAppData%\*.exe
Запрет запуска файлов из вложенных каталогов %AppData%:%AppData%\*\*.exe%AppData%\*\*.exe
Запрет запуска файлов из вложенных каталогов %LocalAppData%%UserProfile%\Local Settings\*\*.exe%LocalAppData%\*\*.exe
Запрет запуска exe файлов из архивов, открытых с помощью WinRAR %UserProfile%\Local Settings\Temp\Rar*\*.exe%LocalAppData%\Temp\Rar*\*.exe
Запрет запуска exe файлов из архивов, открытых с помощью 7zip %UserProfile%\Local Settings\Temp\7z*\*.exe%LocalAppData%\Temp\7z*\*.exe
Запрет запуска exe файлов из архивов, открытых с помощью WinZip %UserProfile%\Local Settings\Temp\wz*\*.exe%LocalAppData%\Temp\wz*\*.exe
Запрет запуска exe файлов из архивов, открытых с помощью встроенного архиватора Windows%UserProfile%\Local Settings\Temp\*.zip\*.exe%LocalAppData%\Temp\*.zip\*.exe
Запрет запуска exe файлов из каталога  %temp%%Temp%\*.exe%Temp%\*.exe
Запрет запуска exe  файлов из вложенных каталогов  %temp%%Temp%\*\*.exe%Temp%\*\*.exe
Опционально. Запрет запуска exe фалов из любых каталогов в профиле пользователя .

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

%UserProfile%\*\*.exeUserProfile%\*\*.exe

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

Как правило, также следует запретить запуск других расширений потенциально опасных файлов (*.bat,*.vbs, *.js, *.wsh  и т.п.), ведь вредоносный код может находиться не только в *.exe файлах. Для этого нужно изменить пути в правилах SPR , удалив вхождения *.exe. Таким образом, будет запрещен запуск всех исполняемых файлов и файлов сценариев в указанных каталогах. Список «опасных» расширений файлов задается в параметрах политики SRP в разделе Designated File Types. Как вы видите, в нем уже есть предустановленный список расширений исполняемых файлов и скриптов. Можете добавить или удалить определенные расширения.

Осталось проверить действие политики Software Restriction Policies на клиентском компьютере. Для этого обновите политики командой gpupdate /force и попробуйте запустить исполняемый *.exe файл из любого из указанных каталогов. Должно появиться сообщение об ошибке:

Your system administrator has blocked this program. For more info, contact your system administrator.

Попытки запуска исполняемых файлов из защищенных каталогов, которые были блокированы политиками SRP можно отслеживать с помощью журнала событий Windows.  Интересующие нас события находятся в разделе Application, и имеют Event ID 866, с источником SoftwareRestrictionPolicies и примерно таким текстом:

Access to C:\Users\root\AppData\Local\Temp\71E88B1F-3073-436E-A3D8-D577E72DA049\dismhost.exe has been restricted by your Administrator by location with policy rule {31f4dcb9-d39b-4df3-b682-1b83892c6db4} placed on path C:\Users\root\AppData\Local\Temp\*\*.exe.

Совет. В том случае, если политика мешает запуску нужного доверенного приложения, можно добавить это файл в исключения политики (создав новое правило, указывающее на этот *.exe файл со значением Unrestricted).

Итак, мы показали общий пример техники использования политики ограниченного использования программ (SRP или Applocker) для блокировки вирусов, шифровальщиков и троянов на  компьютерах пользователей. Рассматриваемая методик позволяет существенно усилить степень защиты систем от запуска вредоносного кода пользователями.

winitpro.ru

Резервное копирование в Windows Server 2008 R2 при помощи robocopy

В Windows Server 2008 R2 Microsoft значительно доработала и улучшила систему резервного копирования (как блочного, так и файлового). Появились следующие функции:

  • Улучшена поддержка резервного копирования на уровне файлов: теперь можно выбрать конкретные папки и файлы, которые нужно включить/исключить из бекапа.
  • Улучшена поддержка резервного копирования по сети: теперь появилась возможность выполнять резервное копирование на устройства NAS с запущенной службой доступа  к файлам Samba (бекап на уровне файлов полностью не поддерживается). Также поддерживается инкрементальное копирование, но только в том случае, если на получателе работает служба VVS.

Однако в связи с наличием ряда ограничений во встроенной процедуре выполнения бэкапа в Windows Server 2008 R2 Microsoft, можно воспользоваться сторонними утилитами, специальными программами для резервного копирования, или утилитой robocopy.

Robocopy расшифровывается как “Robust File Copy”, это утилита командной строки для осуществления репликации каталогов, данная утилита во многом похожа на команду  Unix – xcopy. Основное преимущество команды заключается в том, что она позволят выполнять копирование/перемещение только тех файлов, которые были изменены, что позволяет реализовать функцию инкрементального резервного копирования.

Синтаксис команды robocopy можно посмотреть, открыв командную строку и набрав:

robocopy /?

Например, мы хотим выполнить копирование всех новых фотографий на сетевой накопитель NAS. В нашем примере мы должны указать папку-источник, папку назначения и опции команды:

robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /MIR

Параметры “/MIR” означают, что нужно выполнить зеркальную копию, т.е. если я удалю фото в исходном каталоге, оно удалится и в моем бекапе.

Еще одной удобной функцией robocopy является возможность отложенного копирования, т.е. если папка источника или назначения не доступна, то копирование будет выполнено позднее. По-умолчанию, время ожидания 30 секунд, после которого будет еще 1000000 попуток скопировать файлы, в том случае, если мы хотим, например, выполнить повторное копирование через 15 секунд и повторить его только 5 раз, можно воспользоваться такой командой:

robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /MIR /R:5 /W:15 

Еще больше опция:

robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /Z /MIR /R:5 /W:15 /V /TS /FP /NP /LOG+:"C:\NASSync.log"

Приведенные параметры robocopy говорят о том, что необходимо делать подробный вывод результатов исполнения (/V), выводить метку времен (/TS), полный путь (/FP), не показывать шкалу прогресса (/NP), и выводить результаты в файл лога  (/LOG+). Для NAS, которые не поддерживают файловую систему NTFS, необходимо указывать параметр /FFT.

Для того, чтобы выполнять регулярное резервное копирование, можно воспользоваться планировщиком Windows — Task Scheduler. Запускаем планировщик, создаем новое задание Create Basic Task, в мастере указываем имя задания (например, backup) и нажимаем Next. На экране Trigger, указываем как часто нужно выполнять  резервное копирование. На вкладке Action указываем, что мы хотим запустить программу, нажимаем Next. Далее указываем имя программы, можно просто набрать robocopy, или указать полный путь к программе C:\Windows\System32\robocopy.exe. В окне с параметрами (Add arguments (optional)) мы должны указать аргументы команды robocopy.

Нажимаем Next и Finish.

Для того, чтобы проверить правильность работы задания, перейдем в планировщик, найдем в нем наше задание, правой кнопкой щелкнем по нему и выберем Run. После того, как задание будет выполнено, его статус можно найти в Last Run Result.

Рассмотрим различные сценарии и параметры использования robocopy.

1. Скопировать файлы, измененные за последние 5 дней (исключая сегодня).

robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /maxage:5 /minage:1

2. Переместить все файлы:

robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /move /e

3. Скопировать файлы за исключением скрытых (/xa:h):

robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /e /xa:h

или за исключением read-only (/ia:rs):

robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /ia:rs

При копировании также можно менять атрибуты файлов, при помощи опции A+ (добавить атрибут) or A- (удалить атрибут). Скопировать все файлы и задать им атрибут read-only:

robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /e /A+:r

4. Скопировать все файлы по шаблону (расширению), пустые папки не копировать:

robocopy "E:\Documents" "\\NAS\BACKUP\Documents" *.doc *.ppt /s

5. Скопировать все файлы размером от 1000 до 60000 байт:

robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /e /max:60000 /min:1000

6. Исключить из копирования папку AppData (/XD AppData):

Robocopy "C:\Users\Administrator" "\\NAS\BACKUP\Administrator" /MIR /XA:SH /XD AppData /XJD

7. Создать 32 потока (/MT:32) копирования файлов:

Robocopy "C:\Users\Administrator" \\NAS\BACKUP\Administrator /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /MT:32

В примере мы используем опцию /MT[:n], где n – это число от 1 до 128, которое определяет количество потоков. По умолчанию, если параметр /MT не указан, используется 8 потоков.

winitpro.ru

Копирование файлов по протоколу BITS с помощью Powershell

Как правило, в локальных (да и глобальных) сетях файлы между системами передаются с помощью протоколов SMB, FTP или HTTP. Проблема всех этих протоколов – сложности с докачкой больших файлов, которые могут усугубляться проблемами передачи данных по медленному или нестабильному каналу. Кроме того, при копировании файлов по этим протоколам обычно задействуется вся доступная пропускная способность канала связи между сервером и получателем, что может негативно сказаться на производительности сети и работе других приложения (не всегда возможно настроить корректные политики QoS). В этой статье рассмотрим возможность использования протокола BITS и PowerShell для копирования больших файлов по нестабильному или медленному каналу.

Протокол BITS

BITS или Background Intelligent Transfer service — (Фоновая интеллектуальная служба передачи) – это служба Windows, которая используется для передачи файлов между системами. Система обновлений Windows (в т.ч. WSUS сервера), SCCM точки распространения ПО – передают файлы на целевые компьютеры именно по этому протоколу.

С помощью протокола BITS можно передавать файлы между компьютерами (скачивать и закачивать файлы).

Преимущества использования протокола BITS :

  • BITS — интеллектуальный протокол, который при работе способен регулировать используемую полосу канала связи, чтобы не оказывать влияния на другие сетевые приложений. BITS может использовать только незанятую полосу пропускания канала и динамически изменять скорость передачи данных в процессе работы (если другие приложения увеличат утилизацию сети)
  • Загрузка файла может идти в фоновом режиме, незаметно для пользователя
  • Задание BITS в режиме докачки будет автоматически продолжено даже в случае разрывов связи или перезагрузок компьютера
  • На стороне получателя и сервера не обязательно требуется наличие развернутого IIS сервера

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

На заметку. Возможность перезапуска процедуры копирования файлов имеется в утилите robocopy.exe, позволяющей возобновить загрузку в случае обрыва соединения.

Требования к ОС и версии Powershell

Протокол BITS впервые был представлен еще в Windows XP, для управления заданиями BITS в которой можно было использовать утилиту bitsadmin.exe. Утилита все еще поддерживается, однако считается устаревшей. Для управления заданиями BITS предпочтительно использовать специальные командлеты Powershell.

Для работы по рассматриваемому сценарию нам потребуется ОС не ниже Windows Vista или Windows Server 2008 и PowerShell не ниже версии 2.0.

Совет. Возможно использовать и Windows Server 2003. В этом случае придется установить специальное обновлений KB 923845 и PowerShell V2.0

Поддержка BITS требуется как на стороне клиента, так и сервера.

Как скачать файл по протоколу BITS при помощи Powershell

Предположим нам требуется скачать файл, хранящийся на HTTP сервере IIS (http://10.2.2.148/erd65_32.iso). Предполагается, что к ресурсу возможен анонимный доступ (в дальнейшем мы рассмотрим доступ с аутентификацией)

В первую очередь загрузим в сессию PowerShell модуль поддержки BITS:

Import-Module BitsTransfer

После загрузки модуля, список всех доступных команд можно вывести так:

get-command *-BITS*

Как мы видим, доступно всего 8 командлетов.

Синхронная передача файлов BITS

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

Start-BitsTransfer –source  http://10.2.2.148/erd65_32.iso -destination c:\temp

Сообщение This is a file transfer that uses the Background Intelligent Transfer service (BITS) говорит о том, что начата скачка указанного файла по BITS.

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

Асинхронная передача файлов через BITS

Поток загрузки BITS можно запустить и в асинхронном режиме, для этого к рассмотренной выше команде нужно добавить параметр –asynchronous. В этом режиме, если что то случится (перезагрузка сервера, клиента, обрыв канала связи и пр.), задание автоматически продолжится и загрузка завершиться.

Start-BitsTransfer -source http://10.2.2.148/erd65_32.iso -destination c:\temp -asynchronous

Важно. По умолчанию Start-BitsTransfer работает с приоритетом Foreground (наивысший из возможных). Предполагается, что закачка, запущенная в этом режиме будет соревноваться с другими процессами за полосу пропускания канала. Чтобы избежать этого, нужно явно указать в качетве аргумента команды любой другой приоритет, например:  -Priority low

Start-BitsTransfer -source http://10.2.2.148/erd65_32.iso -destination c:\temp -asynchronous -Priority low

В этом случае на экран не отображается процесс выполнения команды передачи файла. Статус задания можно получить с помощью команды Get-BitsTransfer:

Get-BitsTransfer | fl

Команда возвращает статус передача (в данном случае передача окончена Transferred) информацию о количестве переданных байт и общем размере файла, времени создания и завершения задания.

Просмотреть статус всех заданий BITS в табличной форме:

Get-BitsTransfer | select DisplayName, BytesTotal, BytesTransferred, JobState | Format-Table -AutoSize

При использовании асинхронного режима передачи, создается временный файл с расширением TMP (по умолчанию скрыт в проводнике). Чтобы конвертировать его в исходный файл, нужно выполнить команду Complete-BitsTransfer:

Get-BitsTransfer | Complete-BitsTransfer

Задание закачки BITS после этого считается завершенным и пропадает из списка заданий.

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

Start-BitsTransfer -source http://10.2.2.148/erd65_32.iso -destination c:\temp -asynchronous -Priority low -Authentication NTLM -Credential Get-Credential

Чтобы было удобнее отслеживать результаты выполнения задания BITS, можно воспользоваться простым скриптом, который отслеживает выполение задание и выводит процент выполнения загрузки на экран. По окончании загрузки, скрипт преобразует файл в исходный формат:

Import-Module BitsTransfer$job = Start-BitsTransfer -Source http://10.2.2.148/erd65_32.iso -Destination c:\temp -Asynchronouswhile( ($job.JobState.ToString() -eq 'Transferring') -or ($job.JobState.ToString() -eq 'Connecting') ){Write-host $Job.JobState.ToString()$Pro = ($job.BytesTransferred / $job.BytesTotal) * 100Write-Host $Pro “%”Sleep 3}Complete-BitsTransfer -BitsJob $job

Копирование содержимого каталогов через BITS

Как мы уже говорили, для работы BITS не нужен Web сервер, это означает, что мы можем копировать файлы непосредственно с других Windows компьютеров или общих папок:

Start-BitsTransfer -Source \\msk-rep01\os\rhel-server-7.0-x86_64-dvd.iso -Destination c:\temp -Asynchronous

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

Import-Module BitsTransfer$Source="\\msk-rep01\os\"$Destination="c:\tmp\"$folders = Get-ChildItem -Name -Path $source -Directory -Recurse$job = Start-BitsTransfer -Source $Source\*.* -Destination $Destination -asynchronous -Priority lowwhile( ($job.JobState.ToString() -eq 'Transferring') -or ($job.JobState.ToString() -eq 'Connecting') ){Sleep 3}Complete-BitsTransfer -BitsJob $jobforeach ($i in $folders){$exists = Test-Path $Destination\$iif ($exists -eq $false) {New-Item $Destination\$i -ItemType Directory}$job = Start-BitsTransfer -Source $Source\$i\*.* -Destination $Destination\$i -asynchronous -Priority lowwhile( ($job.JobState.ToString() -eq 'Transferring') -or ($job.JobState.ToString() -eq 'Connecting') ){Sleep 3}Complete-BitsTransfer -BitsJob $job}

Таким образом, использование возможностей BITS представляет собой отличную альтернативу традиционному копированию файлов по протоколу SMB. В отличии от последнего, задание BITS на передачу файлов выполняется несмотря на разрывы связи и перезагрузки компьютеров, и не так загружает канал связи, не мешая работе других приложений. BITS будет оптимальным решением при передачи больших файлов с образами систем (iso файлов) и копирования файлов виртуальных машин.

winitpro.ru

охранение разрешений NTFS при копировании или перемещении файлов

Сохранение разрешений NTFS при копировании или перемещении файлов

В файловой системе NTFS каждый объект  (файл или папка) имеет свой список контроля доступа (Access Control List, ACL), в котором содержится информация о том, кто (или что) имеет доступ к объекту и какие операции разрешено (или запрещено) этому субъекту проводить над объектом. А что происходит с ACL при копировании или перемещении объекта? Попробуем это выяснить …

В качестве подопытного возьмем папку Temp в корне диска C.  Откроем свойства папки и посмотрим ее разрешения. Как видите, в списке доступа есть только группа локальных администраторов и пользователь kirill (то есть я :)).

 

Теперь возьмем нашу папку.

 

И помощью Проводника скопируем ее на компьютер SRV1, также в корень диска C.

 

Если посмотреть разрешения скопированной папки, то мы увидим, что они полностью изменились.

 

Для того чтобы понять, откуда взялись новые разрешения, пройдем в  дополнительные параметры безопасности папки (кнопка Advanced). Как видно из рисунка, все разрешения папки Temp унаследованы от диска С.

 

В этой ситуации нет ничего удивительного. По умолчанию разрешения NTFS сохраняются только при копировании\перемещении в пределах одного логического диска, или тома. Если же объект перемещается на другой диск того же (или другого) компьютера, то все разрешения заменяются наследуемыми от родительского объекта, которым в нашем случае и является диск C компьютера SRV1.

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

К сожалению, проводник Windows не умеет копировать разрешения файловой системы, для этого нам придется воспользоваться альтернативными средствами.

Утилита Icacls

Эта утилита специально предназначена для работы с ACL. В числе прочего она может сохранить список доступа указанного объекта в файл, а затем применить этот список к указанному объекту.

Открываем командную консоль и сохраняем ACL исходного каталога Temp со всем его содержимым (подкаталоги и файлы) в файл tempACL командой:

Icacls C:\Temp\* /save tempACL /t

 

По умолчанию утилита сохраняет файл в профиле пользователя — C:\Users\Имя_пользователя. Это обычный текстовый файл, который при желании можно открыть в Блокноте.

 

Перенесем созданный файл tempACL на SRV1 и восстановим из него ACL каталога Temp командой:

Icacls C:\temp /restore C:\tempACL

 

Затем еще раз посмотрим разрешения скопированой папки Temp и увидим, что справедливость восторжествовала 🙂 и исходные разрешения восстановлены.

 

Утилита Xcopy

Xcopy является продвинутым вариантом команды Copy  и в отличие от нее умеет работать с сетевыми путями, а также копировать сведения о владельце и данные ACL объекта.

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

Xcopy C:\Temp \\SRV1\C$\Temp /E /O 

 

Total Commander

Те, кто боится не любит работать в командной строке, могут воспользоваться файловым менеджером стороннего производителя, например  Total Commander. В нем при копировании\переносе есть возможность скопировать разрешения NTFS, просто отметив галочкой чекбокс «Copy NTFS permissions».

 

И в завершение один важный момент, который учитывать при перемещении файловых ресурсов — разрешения NTFS можно свободно переносить только в пределах одного домена или леса доменов. Если к примеру скопировать папку со списком доступа на компьютер, не входящий в домен, то получим интересную ситуацию: ACL перенесен, но в локальной базе учетных записей нет такого пользователя. В этом случае при просмотре разрешений мы увидим примерно такую картину:

 

windowsnotes.ru

Копирование файлов с помощью rsync

rsync в основном предназначен для удаленной синхронизации.rsync используется для выполнения операций резервного копирования в UNIX / Linux.rsync — это утилита, которая используется для синхронизации файлов и директорий двух различных локаций. Считается как одна из самых эффективных. Резервные копии можно создавать как на локальном сервере так и на удаленном.

Некоторые важные возможности rsync

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

Если имеется доступ по ssh к серверу, это наиболее простой способ для осуществления синхронизации.

Rsync по ssh — это частный случай использования, общий вид команды выглядит так:

rsync [ОПЦИИ] [ПОЛЬЗОВАТЕЛЬ@]СЕРВЕР:ИСТОЧНИК... [ПОЛУЧАТЕЛЬ] Pull (копирование файлов с удаленной системы на локальную)rsync [ОПЦИИ] ИСТОЧНИК 1 [ИСТОЧНИК N] [ПОЛЬЗОВАТЕЛЬ@]СЕРВЕР:ПОЛУЧАТЕЛЬ

Push (копирование файлов с локальной машины на удаленную)Обязательным параметром является «ИСТОЧНИК», их может быть несколько.

Рассмотрим несколько примеров:

Примеры:

Скопируется на сервер 192.168.1.1 содержимое папок /backup/file1/ /backup/file2/ в папку backup

# rsync -zavP /backup/file1/ /backup/file2/ [email protected]:/backup

В этом примере уже скопируются сами папки

# rsync -zavP /backup/file1/ /backup/file2/ [email protected]:/backup

Как ограничить скорость передачи файлов? Нужно поставить опцию --bwlimit :

# rsync -zavP --bwlimit=100 /backup/file1/ [email protected]:/backup

Как синхронизировать файлы с проверкой по контрольной сумме?

# rsync -сzavP /backup/file1/ [email protected]:/backup

Как скопировать файлы с удаленной машины на локальную?

# rsync -zavP [email protected]:/backup /backup/file1/

Как исключить файл или директорию при копировании?Исключаем директорию temp файл test.txt и все файлы с расширением tgz расположенные в /home/data

# rsync -azVP --exclude temp/ --exclude test.txt --exclude *.tgz /home/data/ [email protected]:/backup

Как  удалить файлы на приемнике, если их не существует на источнике?

# rsync -azVP --exclude /temp/ --exclude test.txt --exclude *.tgz --force --delete /home/data/ [email protected]:/backup

Исключаем директорию /temp файл test.txt и все файлы с расширением tgz расположенные в /home/data

Как использовать нестандартный порт ssh при копировании rsync?

# rsync -zavP '-e ssh -p 12345' /var/lib/ [email protected]:/backup# rsync --progress -avz -e ssh /home/ [email protected]:/home/

Копирует с локального хоста содержимое папки home, на хост adminunix.ru в папку home. Для аутентификации используется учетная запись root. В случае обрыва соединения во время копирования, достаточно просто повторить команду и копирование начнется с того места, когда произошел обрыв соединения.

rsync --progress --bwlimit=10 -avz -e ssh /home [email protected]:/home/

Небольшое изменение. Удаляем «/» после папки home и у нас уже копируется сама папка вместе со всем содержимым. Так же ограничиваем скорость копирования до 10кБ/с, что бы не забивать интернет канал.

Опции:-a, --archive режим архива, при использовании заменяет несколько ключей (-rlptgoD)

— n  отладочный режим-t, --times – обновлять время модификации файла на приёмной стороне. При отсутствии этой опции или -aстановиться неэффективной оптимизация передачи по времени изменения файлов-r рекурсивно. (Копирует все файлы, включая вложенные каталоги)-l при копировании сохраняет символические ссылки-p сохраняет права на файлы— t сохраняет время изменения файлов— g сохраняет группу файлов— o сохраняет владельца файлов (работает только из под root)— D сохраняет файлы устройств и специальны файлы— P,  отображение прогресса при копировании;— q,  не выводит сообщения об ошибках;— с, --checksum  проверка файлов по контрольной сумме, а по размеру и дате модификации. Дополнительная нагрузка на процессор, сильно увеличивает время синхронизации;— size-only – использование для сверки только размер файлов— ignore-errors,  продолжение копирования и удаления даже после появления ошибок;— max-delete,  максимальное число удаляемых за один раз файлов и каталогов;— files-from=FILE,  задается список файлов и директорий для копирования в файле;— numeric-ids – не транслировать имена владельца и группы в цифровые UID и GID, оставить на удалённой стороне номера как есть— R – использовать относительные пути при создании символических ссылок— A, --acls – сохранение списков ACL— H, --hard-links – сохранение жестких ссылок— S, --sparse – оптимизировать разреженные файлы— x, --one-file-system – не выходить за пределы текущей точки монтирования— u, update пропускать обновление файлов, которые новее исходных— h, human-readable вывод цифр в читаемом виде (Кб, Мб, Гб)-v verbose  подробные вывод операций (отладочной информации)-z сжатие файлов при копировании— compress-level — уровень сжатия— e ssh использовать при копировании ssh

– – progress показывает прогресс выполнения копирования--bwlimit=KBPS ограничивает скорость передачи файлов (Kbit/s)--del – удалить файлы в папке назначения которых нет в источнике (точная копия)– –delete-after удалить после. Если в основном месте был удален какой-то файл, или каталог,то после синхронизации в backup сервере, в каталоге он тоже будет удален– – password-file Путь, где находится файл с паролем.

Перед тем как запустить скрипт на рабочей машине, опробуйте всё в отладочном режиме, для этого используется ключ -n. В этом случае, rsync не будет менять или удалять файлы, но покажет, весь ход работы.

rsync -a --progress /home/ /mnt/export/

Копирует внутри одного компьютера содержимое папки home, в папку /mnt/export/. Подобное копирование применяется когда необходимо сохранить все права на перемещаемые файлы.

Читайте другие интересные статьи

adminunix.ru