If you are trying to restore a boot using Windows 10/11 installed on GPT partition from the command line (bootrec /fixboot) in recovery mode of the installation media and getting the error “Access denied”, do the following:

  1. Run the commands
    diskpart
    list volume

    looking for the number of FAT32 partition with the EFI bootloader, and also current letter of our system’s drive C (might be another or also can be not assigned)

  2. Choosing partition with the bootloader an assigning the letter:
    select volume N
    assign letter=L

    Instead of N needs to use the number of the partition and instead of L any currently not used drive letter.

  3. If the system drive (C) is also without letter, assigning the letter same way
  4. Enter exit to close DISKPART.
  5. Executing the follwong command (use your drive letters instead, C in this example is where the system stored, L – assigned by us letter of the EFI partition)
    bcdboot C:\windows /s L: /f UEFI

Linux (any distro):

Add the following lines to the section [Global] in the /etc/samba/smb.conf

ntlm auth = ntlmv1-permitted

client min protocol = CORE
server min protocol = CORE

and restart the service:

systemctl restart smbd


Windows (10, 11, Server 2016, 2019, 2022):

Run Powershell with administrator’s privileges and execute:

Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Set-SmbServerConfiguration -EnableSMB1Protocol $true

It has to be SP2 or SP3 😀

Install IPv6 protocol in the properties of the connection. The properties button will be gray and not configurable.

To configure the IPv6 address on the interface use the followng commands in cmd.exe:

netsh interface ipv6 add address "Local Area Network" 2001:abc::def:1234
netsh interface ipv6 add route ::/0 "Local Area Network" 2001:abc::1

where instead of “Local Area Network” must be the name of your connection, and insted of 2001:abc::1 - your IPv6 gateway

Столкнулся с такой ситуацией, что в используя Proxmox на серверах Hetzner нельзя просто взять и навесить IPv6 виртуалки на интерфейс подключенный в bridge наружу, т.к. приходит жалоба, что используется неразрешённый MAC адрес (как раз MAC адрес тех самых виртуальных машин, которые подключаешь к этому bridge).

Решается созданием ещё одного bridge и настройкой routed IPv6. Здесь речь будет идти только об IPv6, IPv4 часть не буду затрагивать.

Изменяем параметр sysctl для того, чтобы была возможность проброса IPv6:

sysctl -w net.ipv6.conf.all.forwarding=1

Настраиваем на внешнем интерфейсе (это может быть интерфейс сетевой карты, но в моём случае это bridge подключенный к внешней сетевой карте):

/etc/network/interfaces

iface vmbr0 inet6 static
  address 2a01:abc:de:f123::1/128
  gateway fe80::1

шлюз на внешнем интерфейсе (или бридже подключенному к внешнему интерфейсу) на hetzner всегда fe80::1

Создаём ещё один bridge, в моём случае это vmbr4 и не подключаем его ни к другим бриджам, ни к внешней сетевой карте, настраиваем следующим образом:

iface vmbr4 inet6 static
  address 2a01:abc:de:f123::1/64
  bridge-ports none
  bridge-stp off
  bridge-fd 0
  up ip -6 route add 2a01:abc:de:f123::/64 dev vmbr4

последняя строчка это добавление маршрута при поднятии интерфейса бриджа.

После этого можно создавать виртуальную машину или контейнер, брать адрес из выделенного диапазона (add 2a01:abc:de:f123::/64) в качестве шлюза необходимо указывать этот самый 2a01:abc:de:f123::1

 

 

Ранее публиковал записи о назначении определённому сетевому интерфейсу типа сети (общественная/частная/публичная), включение и отключение Windows Firewall, также опишу как разрешить пинг в брандмауэре Windows в командной строке.

Разрешаем ping для IPv4 в частной сети:

netsh advfirewall firewall add rule name="Allow ICMPv4" protocol=icmpv4:8,any dir=in action=allow profile=private

Разрешаем ping для IPv6 в публичной сети:

netsh advfirewall firewall add rule name="Allow ICMPv6" protocol=icmpv6:8,any dir=in action=allow profile=public

Разрешаем ping для IPv4 и IPv6 во всех сетях:
netsh advfirewall firewall add rule name="Allow ICMPv6" protocol=icmpv6:8,any dir=in action=allow profile=ALL

Также после profile= можно указать значение domain для доменной сети.

В посте указано, как изменить тип сети в Windows, теперь опишу как включить или отключить Firewall в командной строке для определённого типа сети (общественная/частная/доменная).

Выполняем от администратора выключение фаервола для частной сети:

netsh advfirewall set privateprofile state off

Аналогично выполняется отключение брандмауэра для общественной сети:

netsh advfirewall set publicprofile state off

Отключение Windows Firewall для доменной сети:

netsh advfirewall set domainprofile state off

 

Включение брандмауэра для частной сети:

netsh advfirewall set privateprofile state on

Включение Windows Firewall для общественной сети:

netsh advfirewall set publicprofile state on

Включение фаервола для доменной сети:

netsh advfirewall set domainprofile state on

 

В Powershell от администратора выполняем:

Get-NetConnectionProfile

Получаем список сетевых интерфейсов и их внутренние идентификаторы, интересует только значение InterfaceIndex:
InterfaceIndex : 13

Выполнем команду с подстановкой нужного значения после -InterfaceIndex (тот самый идентификатор, который получили выше) и указываем тип сети (Private/Public – Частные/Общедоступные):

Set-NetConnectionProfile -InterfaceIndex 13 -NetworkCategory Private

 

От этого зависит тип политик, применяемых Windows Firewall (брандмауэр).

Как-то мне пришла идея использовать обычный shared хостинг с PHP для того, чтобы создать прокси сервер (а через него уже можно и в интернет ходить, и скрэпперы/кроулеры использовать).

Для этого нам понадобится Nginx с PHP, подойдёт даже работающий на локальном компьютере или же локально на виртуальной машине, а также любой shared хостинг, который поддерживает PHP (5.6 и новее).

Работает эта схема следующим образом: Nginx выступает в роли самого proxy сервера, который указываем в качестве прокси в браузере, PHP в связке с этим Nginx занимается приёмом запросов от браузера (или скрэппера/кроулера) и отправляет его на shared хостинг, где мы должны разместить файл Proxy.php из репозитория https://github.com/zounar/php-proxy

Этот скрипт можно немного по-вкусу модифицировать, например убрать аутентификаицю на уровне заголовков, передаваемых в скрипт (но можно и оставить для секьюрности), в своём примере я убрал для сокращения описания шагов. Но настройку http basic аутентификацию в nginx опишу.

Здесь не буду объяснять, как устанавливать nginx, а также PHP-FPM.

Настраиваем виртуальный хост nginx следующим образом:

server {
listen 3128;
server_name _;
root /home/user/webproxy;
index index.php;

auth_basic "Restricted";
auth_basic_user_file /home/user/web/.htpasswd; #файл с хешированным паролем для http basic аутентификации

location ~ \.php$ {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}

location / {
rewrite ^/(.*)$ /index.php?url=$host$uri; #здесь передаём все запросы нашего браузера/скрэппера/кроулера путём get в переменную url
}
}

Скрипт, который нужно положить в /home/webproxy/index.php:

<?php

$url = $_GET['url'];

$request = curl_init('http://your-shared-hosting.xyz/Proxy.php'); //путь к файлу на shared хостинге

curl_setopt($request, CURLOPT_HTTPHEADER, array(
'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0',
'Proxy-Auth: SetInTheProxyPHPifEnabled',
'Proxy-Target-URL: https://'.$url
));

curl_exec($request);

?>

 

Менять можно по своему вкусу для сокрытия такого очевидного использования.

От хостинга требуется чтобы в PHP была поддержка libcurl, gzip и PHP safe_mode disabled (практически любой хостинг).

Пуск -> Выполнить -> regedit

Дальше идем по следующему адресу:

HKEY_LOCAL_MASHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonSpecialAccountsUserlist

В этом разделе создаем параметр DWORD. Имя параметра — имя пользователя.

Значение 0 — видимость, значение 1 — невидимость.

Например:

Параметр DWORD с именем user и значением 1 — Пользователь user будет видим
параметр DWORD с именем xakep и значением 0 — Пользователь xakep будет НЕвидим

(не отображается при загрузке и в Панель управленияУчетные записи пользователей)

И ещё на заметку:

Если создавать пользователя из командной строки (net user add), то созданный таким образом пользователь автоматически становится невидимым 🙂