воскресенье, 26 ноября 2023 г.

Добавить драйвера в wim file

@echo off
rem надо положить ватник в папку с дистрибутивом или явно указать положение папки sources
::set SOURCEDIR=D:\Users\Public\iso\Microsoft\Windows 10 22H2 build 19045.2728\94a1087a\sources
set SOURCEDIR=%~dp0sources
set MOUNTDIR=%TEMP%\mount
set DRVDIR=D:\git\drivers\w10
set WIMFILE=boot.wim
set MAXINDEX=1

rd /s /q %MOUNTDIR%
mkdir %MOUNTDIR%

::dism /Get-WimInfo /WimFile:"%SOURCEDIR%\%WIMFILE%" > %TEMP%\MAXINDEX.TXT

for /f %%i in ('dism /Get-WimInfo /WimFile:"%SOURCEDIR%\%WIMFILE%" ^| find "Index" ^| find /C ":"') do set MAXINDEX=%%i
echo MAXINDEX=%MAXINDEX%

for /L %%i IN (1, 1, %MAXINDEX%) Do (
  mkdir %MOUNTDIR%\%%i
  dism /Mount-Image /ImageFile:"%SOURCEDIR%\%WIMFILE%" /index:%%i /MountDir:%MOUNTDIR%\%%i
  dism /Image:%MOUNTDIR%\%%i /Add-Driver /Driver:%DRVDIR% /recurse /forceunsigned
  dism /UnMount-Image /MountDir:%MOUNTDIR%\%%i /Commit
)

Ратнер Арсений, arsenyratner@gmail.com, 7 985 273 2090

четверг, 23 ноября 2023 г.

Добавить драйвера в образ windows pe

$imagefile="D:\tftproot\win\hbcd\x64\sources\boot.wim"
$driversdir="D:\git\drivers\w10"
$mountdir="D:\temp\mount"
Dism /Get-ImageInfo /imagefile:$imagefile
#add to index1
DISM /Mount-Image /ImageFile:$imagefile /index:1 /MountDir:$mountdir
DISM /Image:$mountdir /Add-Driver /Driver:$driversdir /recurse /forceunsigned
#DISM /UnMount-Image /MountDir:$mountdir /Discard
DISM /UnMount-Image /MountDir:$mountdir /Commit
#add to index2 ...

Ратнер Арсений, arsenyratner@gmail.com, 7 985 273 2090

вторник, 19 сентября 2023 г.

Создать пользователя сменить пароль добавить sudo ubuntu debian

newusername="user01"
newuserpasswd='P@sswd01'
useradd $newusername
echo "${newusername}:{newuserpasswd}" | chpasswd # ubuntu debian
echo "{newuserpasswd}" | passwd ${newusername} --stdin # centos redhat
echo "${newusername} ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/$newusername

Ратнер Арсений, arsenyratner@gmail.com, 7 985 273 2090

пятница, 8 сентября 2023 г.

Сделать кейтаб файл в samba dc

keytabusername="service2_uidm.aranter.ru" #новый пользователь
keytabuserpass='!QAZxsw2' # пароль нового пользователя
keytabuserou="OU=_serviceusers" # OU куда положить пользователя
# перечень всех SPN для нового пользователя
spns="HTTP/uidm2.aratner.ru
HTTP/st12sso01
HTTP/st12sso02
HTTP/st12sso04
HTTP/st12sso01.aratner.ru
HTTP/st12sso02.aratner.ru
HTTP/st12sso04.aratner.ru
"
newupn=$(echo $spns | awk '{print $1;}') # первый SPN из перечня станет новым UPN для этого пользователя
keytabfilename="${keytabusername}.keytab" # файл куда сложить кейтаб
domname="alt.aratner.ru" # имя домена
adadminuser="administrator" # пользователь который может
adadminpass='qaWS3214op!@' # пароль пользователя который может
# создадим нового пользователя
samba-tool user add $keytabusername $keytabuserpass --userou=$keytabuserou -U ${adadminuser}%${adadminpass}
# отключим протухание пользователю
samba-tool user setexpiry $keytabusername --noexpiry -U ${adadminuser}%${adadminpass}
# добавим все SPNы в пользователя
for spn in $spns; do
  samba-tool spn add "${spn}" $keytabusername -U ${adadminuser}%${adadminpass}
done
# переименуем UPN в первый SPN
samba-tool user upn set $keytabusername $newupn
# удалим старый файл
rm -f ${keytabfilename}
# создадим кейтаб файл
samba-tool domain exportkeytab ${keytabfilename} --principal=$keytabusername -U ${adadminuser}%${adadminpass}
# получим список всех SPN из пользователя
spns=$(samba-tool spn list $keytabusername | tail +3)
# добавим в кейтаб каждый SPN
for spn in $spns; do
  samba-tool domain exportkeytab ${keytabfilename} --principal=""${spn}"" -U ${adadminuser}%${adadminpass}
done
# посмотрим что там получилось в кейтаб файле
klist -ket ${keytabfilename}

Ратнер Арсений, arsenyratner@gmail.com, 7 985 273 2090

четверг, 7 сентября 2023 г.

kickstart lvm thin

Если создать тонкий пул томов слишком маленького размера, установщик падает
Вот так НЕработает:
logvol none --fstype=none --size=1 --grow --thinpool --name=tp0 --vgname=vg0sys
Вот так работает:
logvol none --fstype=none --size=10240 --grow --thinpool --name=tp0 --vgname=vg0sys

kickstart файл должен быть в unix формате.

Ратнер Арсений, arsenyratner@gmail.com, 7 985 273 2090

среда, 12 апреля 2023 г.

Скрипт пинговать несколько адресов

@echo off
set PING_CMD=ping.exe -n 1 -w 10
set LOG=C:\!Scripts\ipsec_ping.log
set IPLIST=C:\!Scripts\ipsec_ping.txt
::echo %Date:~6,4%%Date:~3,2%%Date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2% > %LOG%

FOR /F UseBackQ %%A IN ("%IPLIST%") DO ( %PING_CMD% %%A | find "TTL=" > NUL && echo %Date:~6,4%%Date:~3,2%%Date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2% %%A OK >> %LOG% || echo %Date:~6,4%%Date:~3,2%%Date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2% %%A NO >> %LOG%)

ipsec_ping.txt:
10.80.21.201
10.80.21.202
10.33.70.1
10.91.130.254
10.88.1.1

Ратнер Арсений, arsenyratner@gmail.com, 7 985 273 2090

воскресенье, 26 марта 2023 г.

пятница, 24 марта 2023 г.

ipsecadd

# ipsecadd_sbercloud
:local ipsecName "sbercloud";
:local ipsecComment "$ipsecName";
:local peerAddr "89.232.179.63";
:local peerLocalAddr "213.33.195.92";
:local ipsecSecret "asdfasfasdfasfasdf";
:local srcList [:toarray "192.168.1.0/24"];
:local dstList [:toarray "192.168.5.0/24"];

:if ([:len [/ip/ipsec/policy/find where comment="$ipsecName"]] > 0) do={/ip ipsec policy remove [find comment~"$ipsecComment"]}
:if ([:len [/ip/ipsec/identity/find where comment="$ipsecName"]] > 0) do={/ip ipsec identity remove [find comment~"$ipsecComment"]}
:if ([:len [/ip/ipsec/proposal/find where name="$ipsecName"]] > 0) do={/ip ipsec proposal remove $ipsecName}
:if ([:len [/ip/ipsec/peer/find where name="$ipsecName"]] > 0) do={/ip ipsec peer remove $ipsecName}
:if ([:len [/ip/ipsec/profile/find where name="$ipsecName"]] > 0) do={/ip ipsec profile remove $ipsecName}
:if ([:len [/ip/firewall/raw/find where comment="$ipsecName"]] > 0) do={/ip firewall raw remove [find comment~"$ipsecComment"]}
:if ([:len [/ip/route/find where comment="$ipsecName"]] > 0) do={/ip route remove [find comment~"$ipsecComment"]}

/ip ipsec profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 nat-traversal=yes name=$ipsecName
/ip ipsec peer add address=$peerAddr local-address=$peerLocalAddr name=$ipsecName profile=$ipsecName comment="$ipsecComment vrrp" exchange-mode=ike2 disabled=yes
/ip ipsec proposal add name=$ipsecName lifetime=1h auth-algorithms="" enc-algorithms=aes-128-gcm pfs-group=modp2048
/ip ipsec identity add peer=$ipsecName secret=$ipsecSecret comment=$ipsecComment
:foreach dstAddr in $dstList do={
  /ip firewall raw add comment=$ipsecComment action=notrack chain=prerouting disabled=no dst-address=0.0.0.0/0 src-address=$dstAddr place-before=*0;
  /ip firewall raw add comment=$ipsecComment action=notrack chain=prerouting disabled=no dst-address=$dstAddr src-address=0.0.0.0/0 place-before=*0;
  :foreach srcAddr in $srcList do={
    /ip ipsec policy add dst-address=$dstAddr level=unique peer=$ipsecName proposal=$ipsecName src-address=$srcAddr tunnel=yes comment=$ipsecComment
  }
/ip route add distance=1 dst-address=$peerAddr gateway=213.33.195.81 pref-src=$peerLocalAddr routing-table=902-beeline comment=$ipsecName
/ip route add distance=1 dst-address=$peerAddr gateway=213.33.195.81 pref-src=$peerLocalAddr routing-table=main comment=$ipsecName
}

Ратнер Арсений, arsenyratner@gmail.com, 7 985 273 2090

пятница, 17 марта 2023 г.

PXE-E51

Помогло настроить порт на свиче:
interface GigabitEthernet0/2
 description srv
 switchport access vlan 21
 switchport mode access
 spanning-tree portfast
 spanning-tree bpduguard enable

end


Ратнер Арсений, arsenyratner@gmail.com, 7 985 273 2090

четверг, 2 марта 2023 г.

Обновление сертификата letsencrypt на микротике

Включаем доступ на порту 80 (нужен чтобы летсэнкрипт мог проверить)
Обновляем сертификат
закрываем доступ на порту 80
Для этого пометил правила в фаерволе коментарием 

:local dnsName r-gw1.ratners.ru
/ip/service/enable www
/ip/firewall/filter/enable [ find where comment="letsencrypt" ]
/certificate enable-ssl-certificate dns-name=$dnsName
/ip/service/disable www
/ip/firewall/filter/disable [ find where comment="letsencrypt" ]
 
Ратнер Арсений, arsenyratner@gmail.com, 7 985 273 2090

среда, 1 марта 2023 г.

Скрипт создания IPSEC тунеля на микротике

# ipsecadd_atappc
:local ipsecName "atappc";
:local ipsecComment "$ipsecName";
:local peerAddr "1.2.88.186";
:local peerLocalAddr "2.3.195.93";
:local ipsecSecret "54KD1ekHcc3uP2ChqwlKCDlTx";
:local srcList [:toarray "192.168.0.0/22,192.168.7.0/24"];
:local dstList [:toarray "192.168.126.0/24,192.168.135.0/24"];

# удаляем старое
:if ([:len [/ip/ipsec/policy/find where comment="$ipsecName"]] > 0) do={/ip ipsec policy remove [find comment~"$ipsecComment"]}
:if ([:len [/ip/ipsec/identity/find where comment="$ipsecName"]] > 0) do={/ip ipsec identity remove [find comment~"$ipsecComment"]}
:if ([:len [/ip/ipsec/proposal/find where name="$ipsecName"]] > 0) do={/ip ipsec proposal remove $ipsecName}
:if ([:len [/ip/ipsec/peer/find where name="$ipsecName"]] > 0) do={/ip ipsec peer remove $ipsecName}
:if ([:len [/ip/ipsec/profile/find where name="$ipsecName"]] > 0) do={/ip ipsec profile remove $ipsecName}
:if ([:len [/ip/firewall/raw/find where comment="$ipsecName"]] > 0) do={/ip firewall raw remove [find comment~"$ipsecComment"]}

# создаём новое
/ip ipsec profile add dh-group=modp1024 enc-algorithm=aes-256 nat-traversal=yes name=$ipsecName
/ip ipsec peer add address=$peerAddr local-address=$peerLocalAddr name=$ipsecName profile=$ipsecName comment="$ipsecComment vrrp"
/ip ipsec proposal add name=$ipsecName enc-algorithms=aes-256-cbc lifetime=1h  pfs-group=modp1536
/ip ipsec identity add peer=$ipsecName secret=$ipsecSecret comment=$ipsecComment
:foreach dstAddr in $dstList do={
  /ip firewall raw add comment=$ipsecComment action=notrack chain=prerouting disabled=no dst-address=0.0.0.0/0 src-address=$dstAddr place-before=0;
  /ip firewall raw add comment=$ipsecComment action=notrack chain=prerouting disabled=no dst-address=$dstAddr src-address=0.0.0.0/0 place-before=0;
  :foreach srcAddr in $srcList do={
    /ip ipsec policy add dst-address=$dstAddr level=unique peer=$ipsecName proposal=$ipsecName src-address=$srcAddr tunnel=yes comment=$ipsecComment;
  }
}