Включите файл и печать, совместно использующую командную строку - как включить его только для profile=private

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

Одним путем Вы могли сделать, это должно выполнить два sshd экземпляра на сервере с отдельными конфигурациями и на различных портах. Используйте iptables для предоставления доступа к одному серверу в одном интерфейсе и один на другом, Набор один, чтобы позволить паролям только и один позволять открытый ключ только.

3
задан 19 June 2013 в 14:35
6 ответов

Вы активируете предустановленное правило, и я предполагаю, что в предустановленном правиле есть Профиль = любой .

Сначала попробуйте следующее:

netsh advfirewall firewall set rule group="File and Printer Sharing" new profile=private
2
ответ дан 3 December 2019 в 05:28
netsh advfirewall firewall set rule name="File and Printer Sharing (SMB-In)" dir=in profile=public|private|domain new enable=Yes|No

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

netsh advfirewall firewall set rule name="File and Printer Sharing (SMB-In)" dir=in new enable=Yes

Имя правила должно быть изменено на вашем местном языке, например :

netsh advfirewall firewall set rule name="檔案及印表機共用 (SMB-In)" dir=in profile=private new enable=Yes

Не забудьте запустить от имени администратора .

4
ответ дан 3 December 2019 в 05:28

Обращаясь к теме, встречаются редкие случаи, когда использование названий на местном языке не работает, т.е. Польский Udostępnianie plików i drukarek (SMB - ruch przychodzący) = Общий доступ к файлам и принтерам (SMB-In) . Я считаю, что это как-то связано с обработкой UTF-8 в netsh, поскольку есть сообщения о том, что использование netsh для подключения к сетям Wi-Fi с именем UTF иногда тоже не работает.

В этих случаях используйте PowerShell Set-NetFirewallRule и независимый от языка параметр "Name" (в данном случае FPS-SMB-In-TCP ). Используйте команду Get-NetFirewallRule , чтобы получить все правильные имена для ваших правил.

0
ответ дан 3 December 2019 в 05:28

Введите это в командной строке PowerShell с повышенными привилегиями:

Set-NetFirewallRule -DisplayGroup "File And Printer Sharing" -Enabled True -Profile Private

У меня это сработало в Windows 10 1703

0
ответ дан 3 December 2019 в 05:28

Основываясь на ответе Малдера , чтобы включить его для частного режима, его необходимо установить специально для каждого правила в «Брандмауэр Защитника Windows в режиме повышенной безопасности».

Для запуска брандмауэра Защитника Windows в режиме повышенной безопасности

Выполните следующее в административном окне Powershell ..., чтобы просмотреть возможные правила:
& "C:\WINDOWS\system32\mmc.exe" "C:\WINDOWS\system32\wf.msc" 

Чтобы разрешить доступ к файлам / печати только в частной сети

Выполните следующее в административном окне Powershell.

# Allow access to administrative shares through firewall [Ref: https://serverfault.com/a/968310/336668]

$ruleDisplayNames = "File and Printer Sharing (Echo Request - ICMPv4-In)", `
  "File and Printer Sharing (Echo Request - ICMPv6-In)",  `
  "File and Printer Sharing (LLMNR-UDP-In)",  `
  "File and Printer Sharing (NB-Datagram-In)",  `
  "File and Printer Sharing (NB-Name-In)",  `
  "File and Printer Sharing (SMB-In)",  `
  "File and Printer Sharing (Spooler Service - RPC)",  `
  "File and Printer Sharing (Spooler Service - RPC-EPMAP)", `
  "File and Printer Sharing (NB-Session-In)"

$rules = Get-NetFirewallRule | Where {$ruleDisplayNames -contains $_.DisplayName -and $_.Profile -ne "Domain"} 

# The default rules have the non-Domain rule apply for both Public and
#  Private. This updates the rule to be Private only
$rules | Set-NetFirewallRule -Profile Private

# Enable the rule -- i.e. grant the eexception (allow through firewall)
$rules | Enable-NetFirewallRule  
0
ответ дан 3 December 2019 в 05:28

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

Get-NetFirewallRule -DisplayGroup "File and Printer Sharing" -Direction In | where Profile -CLike "*Private*" | Enable-NetFirewallRule

Get-NetFirewallRule -DisplayGroup "File and Printer Sharing" -Direction In | where Profile -CLike "*Private*" | Disable-NetFirewallRule

Команды требуют прав администратора.

Эти команды получают правила брандмауэра для входящего трафика в группе отображения «Общий доступ к файлам и принтерам» (как уже отмечалось, это может быть локализовано для вашего языка), фильтры по тем, которые соответствуют частному профилю (вы можете изменить это на общедоступный или доменный, если вместо этого вы хотите изменить эти правила), и включает или отключает их.

0
ответ дан 27 March 2020 в 22:33

Теги

Похожие вопросы