Konfiguracja LVM – Logical Volume Manager – podłączenie dodatkowego dysku do systemu Oracle Linux.

Cały proces dodawania dysku do LVMa można opisać w 6 krokach;

  1. Stworzenie partycji i ustawienie jej typu na LVM;
  2. Stworzenie fizycznego wolumenu (PV – Phisical Volume);
  3. Stworzenie grupy wolumenów (VG – Volume Group) z utworzonego krok wcześniej fizycznego wolumenu;
  4. Stworzenie logicznego wolumenu (LV – Logical Volume);
  5. Stworzenie systemu plików na logicznym wolumenie;
  6. Zamontowanie wolumenu;

Czyli cały proces konfiguracji LVM przebiega z następujący sposób:
Create partition and set type to lvm -> Phisical Volumens (PV) -> Volume Group (VG) -> Logical Volume (LV) -> creating Linux file system -> mount partition

Terminologia:
Volume Group (vg) – podstawowa jednostka LVM, w której skład wchodzą, dyski, partycje, macierze…. (pv – physical volumes).
Z Volume Group /dev/vg/lv można wykreować LV – Logical Volumes

Przykład:
Do serwera zostaje podłączony kolejny dysk fizyczny o poj. 16GB. W celu sprawdzenia poprawności dodania dysku i dołączenia go do LVMa należy wykonywać kolejno kroki wymienione poniżej..

Continue reading

Zabezpieczenie portów przełącznika CISCO

Konfiguracja portu przełącznika CISCO tak, aby do danego portu mogło być podłączone tylko jedno lub wiele urządzeń o podanych adresach MAC.

configure t
int range f0/1-15

Porty przełącznika domyślnie są ustawione jako Dynamic Auto. Należy je przestawić na Access Port.

switchport mode access

Przypisanie portom aktualnie podłączonych adresów MAC

switchport port-security mac-address sticky

Przypisanie portom przełącznika tylko jednego adresu MAC. Więcej adresów jest niedozwolonych.

switchport port-security max 1

Jeśli naruszy ktoś zasadę i podepnie do portu następny przełącznik i więcej urządzeń lub o innym adresie MAC, wtedy port się wyłączy.

switchport port-security violation shut

Zakończenie konfiguracji oraz jej zapamiętanie.

exit
exit
copy run start

Sprawdzenie zabezpieczenia portów, ich stanów (czyli informacji o ewentualnych naruszeniach polityki – kolumna SecurityViolation (Count)) oraz tablicy MAC:

sh port-security
sh mac-address-tabl

 

PowerShell – wyszukiwanie pliku o danej nazwie i w przypadku jego znalezienia wysłanie powiadomienia na e-mail.

Zadaniem poniższego skryptu PS jest przeszukiwanie zasobu sieciowego w poszukiwaniu plików mających w nazwie datę wczorajszą, oraz wysłania ich nazw w wiadomości e-mail w przypadku ich znalezienia.

$emailFrom = 'powiadomienia@domena.pl' 
$secstring = '01000000d08c9ddf0115d1118c7a00c04fc297eb0100000060a18ed3a9312c4c939f8408d224ed9f00000000020000000000106600000001000020000000e0d0d688c598b0dc944b81409d0f7ab8dea52d0612f7d5e56b84c09d0d13eb07000000000e800000000200002000000036d3059ac438090bdbb1a0b4b2bb2fa7a5ffab65d96fa02a1aeab9667b54bb5f20000000a1f6442ff2bb3d90f1fd93b06d9178eec8239eb71fe330ff3c8fe5167b9120d1400000002dca53a7f97ac0d52ea085d15fa3dd501aec6e7eb72e5c23577ec53ef7f40c498573d0d7f58d57ca54521b0a4ffc77618d33178363f897ec08a72305078af168'
$credential = New-Object System.Management.Automation.PSCredential($emailFrom, ($secstring | ConvertTo-SecureString))
$patch = '\\192.168.5.2\pliki\'
$date = Get-Date -Format "yyyy_MM_dd"
$day_minus_one = (Get-Date).AddDays(-1) | Get-Date -Format "yyyy_MM_dd"
$time = get-Date -Format "HH_mm"
$emailTo = "odbiorca1@domena.pl" , "odbiorca2@domena.pl"

$files = Get-ChildItem -path $patch\*$day_minus_one.pdf
"Wykonanie skryptu dnia $date o godzinie $time" >> $patch\script_activity.txt

if ($files) { 
$files | Export-CSV $patch\revoke_privileges_$date.txt 
$body = $files | Out-String
Send-MailMessage -To $emailTo -From $emailFrom -encoding utf8 -Subject 'Odbior uprawnien uzytkownikowi' -Body "Ponizej wykazane sa nazwy plikow - skanow wnioskow o nadanie uprawnien czasowych do pracy w systemie, ktore trzeba wycofac. $body Aby skrypt spelnial swoje zadanie data odebrania uprawnienia powinna znajdowac sie na koncu nazwy pliku PDF w formacie rrrr_MM_dd, tj. np KowalskiJanek_2023_05_05_W_KB_2023_05_10.pdf." <# -Attachments $patch\revoke_privileges_$date.txt #> -Credential $credential -SmtpServer 'server.smtp.com.pl' -Port 587
}

else { 
exit 
}

SecureString (zaszyfrowane hasło – w tym przypadku do konta e-mail) można uzyskać konwertując hasło za pomocą komendy:

"haslo_czystym_tekstem" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File "d:\Password.txt"

SecureString może odkodować wyłącznie ten użytkownik Windows, który je zakodował, dlatego też najbezpieczniej jest utworzyć dedykowane konto Windows, które będzie używane wyłącznie do uruchamiania skryptu.
Skrypt PS można również skonwertować do pliku *.exe np. przy pomocy programu Win-PS2EXE-GUI. Jednak nawet z pliku exe można wyciągnąć SecureStinga.

Źródło:

https://stackoverflow.com/questions/14319272/powershell-scan-folder-for-certain-file-name-and-write-to-a-log-file-and-email
https://www.itprotoday.com/powershell/how-encrypt-powershell-scripts
https://powershellguru.com/instant-guide-to-convert-ps1-to-exe/

Aktualizacja głównego kontrolera domeny – przenoszenie ról FSMO

  1. Stworzenie snapa kontrolera z którego przerzucamy role;
  2. Dodanie siebie (admina) do grupy: Administratorzy przedsiębiorstwa. Po dodaniu do grupy przelogować się. Dodanie do grup jest niezbędne do przeniesienia ról unikalnych dla lasu, tj: schemamaster, domainnamingmaster
  3. Przerzucenie ról na inny kontroler:
    Move-ADDirectoryServerOperationMasterRole -Identity sw-dc02 -OperationMasterRole pdcemulator, ridmaster, infrastructuremaster, schemamaster, domainnamingmaster
  4. Po przeniesieniu ról sprawdzić czy role zostały przeniesione
    Get-ADForest domena.local | Format-Table SchemaMaster, DomainNamingMaster
    Get-ADDomain domena.local | format-table PDCEmulator, RIDMaster, InfrastructureMaster
  5. Aktualizacja kontrolera z którego przenieśliśmy role.
  6. Zweryfikowanie poprawności działania serwera i poprawności replikacji z innymi kontrolerami domeny.
  7. Przerzucenie ról z powrotem.
  8. Zweryfikowanie poprawności replikacji z innymi kontrolerami domeny oraz działania samego serwera po zainstalowaniu nowych łatek.
  9. Skasowanie snapa z VMware.

VMware CLI – sprawdzenie zajętości dysku virtualnego (maszyny wirtualnej)

Jest to świetny skrypt umożliwiający sprawdzenie zajętości dysku virtualnego. Jest on tym bardziej przydatny, ponieważ VMware Tools zainstalowany na maszynie wirtualnej nie posiada tej opcji.

# Establishing the connection to our vSphere object
$vm = Get-VM -Name $vmName
$vmView = $vm | Get-View
# Creating a new PowerShell custom object to easily output properties
$output = New-Object -TypeName PSCustomObject
# Adding desired properties to the new PowerShell object
$diskCommit = $vmView.Storage.PerDatastoreUsage.Committed
$diskUncommit = $vmView.Storage.PerDatastoreUsage.Uncommitted
Add-Member -InputObject $output -MemberType NoteProperty -Name UsedSpaceGB -Value ($diskCommit / 1GB)
Add-Member -InputObject $output -MemberType NoteProperty -Name ProvisionedSpaceGB -Value (($diskCommit + $diskUncommit) / 1GB)
$diskKey = $vmView.LayoutEx.Disk.Key
$diskCapacity = $vmView.Config.Hardware.Device | Where-Object {$_.key -eq $diskKey} | Select-Object -ExpandProperty capacityInBytes
Add-Member -InputObject $output -MemberType NoteProperty -Name CapacityGB -Value ($diskCapacity / 1GB)
Add-Member -InputObject $output -MemberType NoteProperty -Name GuestPath -Value $vmView.Guest.Disk.DiskPath
Add-Member -InputObject $output -MemberType NoteProperty -Name GuestCapacityGB -Value ($vmView.Guest.Disk.Capacity / 1GB)
Add-Member -InputObject $output -MemberType NoteProperty -Name GuestFreeSpaceGB -Value ($vmView.Guest.Disk.FreeSpace / 1GB)
# Viewing the output
$output

Źródło: https://www.kmruddy.com/2019/powercli-disk-space-utilization-vsphere-object/

Świetny blog!

 

Active directory – włączenie kosza

enable-adoptionalfeature ‚recycle bin feature’ -scope forestconfigurationset -target nazwa.domeny’

get-adobject -filter {displayname -eq ‚skasowane konto’} -includedeletedobjects
get-adobject -filter {displayname -eq ‚skasowane konto’} -includedeletedobjects | restore-adobject

UWAGA: kosz raz włączony nie może zostać wyłączony. Potrzebuje czasu zanim się rozpropaguje.

Sprawdzanie poprawnej replikacji między kontrolerami domeny

Pierwszy sposób – poprzez GUI: Active Directory Sites and Services
Drugi sposób – za pomocą linii komend – narzędzi Repadmin.exe, Dcdiag.exe oraz PowerShell.
Poniżej przykłady użycia polecenia repadmin oraz PS:

repadmin /?
repadmin /showrepl
repadmin /showrepl DC2
repadmin /showconn
repadmin /showconn DC2
repadmin /showobjmeta DC2 „cn=”
repadmin /kcc
repadmin /replsum
repadmin /replicate DC1 DC2 dc=company,dc=pri /destinstion, source, context
repadmin /syncall DC1 dc=company,dc=pri //synchronizacja wszystkich kontrolerów
repadmin /syncall DC1 dc=company,dc=pri /e /d

Get-ADReplicationFailure DC1
Get-ADReplicationConnection
Get-ADReplicationPartnerMetadata

W przypadku problemów z replikacją można sprawdzić w serwerze DNS czy figuruje Alias (CNAME) wszystkich kontrolerów domeny, czyli: <GUID>._msdcs.nazwadomeny.local . Jest to rekord typu CNAME, po którym komunikują się ze sobą kontrolery domeny. Rejestrują się one w serwerze DNS przy starcie usługi netlogon (komenda cmd: net stop netlogon && net start netlogon).

Instalacja środowiska graficznego Xfce oraz klienta VPN w systemie Debian 11 Netinstall

sudo apt install task-xfce-desktop
sudo systemctl get-default
apt install mc xrdp strongswan xl2tpd ssh 
apt install network-manager network-manager-strongswan network-manager-l2tp network-manager-l2tp-gnome
apt install network-manager-openconnect-gnome 
apt install wget

Źródła:
https://unix.stackexchange.com/questions/620448/l2tp-ipsec-vpn-on-debian-10-without-network-manager

http://kl.letowice.pl/konfiguracja-klienta-vpn-l2tpipsec-na-raspberry-pi-z-raspbianemdebian/

https://www.tecmint.com/setup-ipsec-vpn-with-strongswan-on-debian-ubuntu/

https://unam.re/blog/setup-vpn-ipsec-in-debian