L
1. Instalacja Windows 10 Professional
Co do sprzętu to polecam dowolny komputer klasy PC spełniającym wymogi dla systemu Windows 10. Zalecana jest instalacja systemu na dyskach skonfigurowanych w układzie RAID 1, lecz nie jest to warunek krytyczny. Większość płyt głównych ma możliwość konfiguracji dysków w trybie RAID 1. W przypadku braku kontrolera pracującego w trybie RAID można zastosować zewnętrzny kontroler SATA z możliwością pracy w trybie RAID . Bardzo dobre wyniki osiągniemy na dyskach SSD chociaż nie jest to warunek. Z tradycyjnych dysków mogę polecić serię dysków RED firmy Western Digital (WD)
2. Instalacja środowiska do wirtualizacji HyperV
Windows 10 Professional daje nam możliwość instalacji Hyper-V. Należy pamiętać aby na naszym komputerze nie było zainstalowane środowisko do wirtualizacji takie jak Virtualbox, gdyż mogą się pojawić problemy z uruchomieniem Hyprer-V
3. Uruchomienie środowiska do wirtualizacji Hyper-V
Uruchamiamy Menedzera funkcji Hyprer-V
4. Konfiguracja maszyny wirtualnej w Hyper-V
Pobieramy obraz ISO Debiana ( https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.2.0-amd64-netinst.iso Tworzymy nową maszynę wirtualną. Ustawiamy jako dysk startowy pobrany obraz Debiana.
5. Instalacja Debiana
Instalujemy Debiana. W naszym przypadku główną rolą naszego Linuxa będzie rola kontrolera domeny Windows opartej o usługi katalogowe znane z Windows Server 2008 i nowszych wersi. Rozmiar dysku jaki przeznaczymy dla naszego Linuxa jest zależny od zadań jakie będzie pełnił. Do pracy samego czystego kontrolera wystarczy podstawowa wielkość dysku około 20-30 GB, jeżeli chcemy tworzyć zasoby sieciowe w postaci katalogów na dokumenty wielkość dysku na dla naszego Linuxa powinna być większa powiedzmy 100-200 GB. Oczywiście zasoby sieciowe w postaci udostępnionych katalogów mogą znajdować poza naszą maszyną wirtualną z Linuxem. Możemy je ulokować na dysku Windows 10 Pro w którym instalujemy naszą maszyną wirtualną z Linuxem. To jest kwestia umowna i my decydujemy. Zaczynamy !
Uruchamiamy naszą maszynę wirtualną przechodząc przez poszczególne etapy instalacji. Na tym etapie określamy nazwę naszego Linuxa, podział dysku tu polecam podział na oddzielną partycje /home
W moim przykładzie podział wygląda tak
Nadajemy nazwę dla naszego Linuxa. Nazwa ta będzie również nazwą naszego kontrolera domeny.
Określamy nazwę naszej domeny.
W następnych krokach ustalamy hasło dla naszego głównego użytkownika root oraz innych użytkowników. Proponuje dodanie konta np. administrator , któremu nadamy potem prawa użytkownika root . Ważne aby przy instalacji nie wybierać żadnych opcji instalacji środowiska graficznego. Zaznaczmy tylko Serwer SSH do zdalnego polaczenia oraz Podstawowe narzędzia systemowe.
Na koniec wybieramy miejsce instalacji naszego środowiska rozruchowego GRUB dla naszego Linuxa. Wybierając partycję dysku naszej maszyny wirtualnej.
6. Konfiguracja wstępna Debiana
Kolejnym krokiem jest uruchomienie kontrolera domeny windows opartym o usługi katalogowe Active Directory. Aktualnie nasz Linux ma ustawioną swoją wirtualną kartę sieciową na wewnętrzny serwer DHCP środowiska Hyper-V (wirtualny przełącznik Default Switch) który to nadał naszej wirtualnej karcie sieciowej adres IP z serwera DHCP. Musimy to zmieć tak aby nasza maszyna miała stały adres IP naszej sieci lokalnej.
W tym celu musimy utworzyć nowy wirtualny przełącznik sieciowy w środowisku Hyper-V ja mój nazwałem NowyPrzelącznikWirtualny i połączyć go z naszą fizyczną kartą sieciową naszego komputera z opcją sieć zewnętrzna
Przypisujemy naszemu Linuksowi nowo otworzony przełącznik
Uruchamiamy naszą maszynę poprzez uruchom w panelu administracyjnym. środowiska Hyper-V. Gdy uruchomimy logujemy się na konto root. Przechodzimy do katalogu /etc/network/ używając ulubionego edytora tekstu edytujemy plik interfaces
nano /etc/network/interfaces
Musimy ustawić stały adres IP. W moim przypadku jest to adres 10.0.0.254, określamy bramę naszej sieci adres naszego routera połączonego z internetem (u mnie to 10.0.0.1) maskę sieci 255.255.255.0 adres naszej sieci u mnie to 10.0.0.0 adres rozgłoszeniowy u mnie to 10.0.0.255 oraz adres serwera DNS 8.8.8.8 i zapisujemy nasz plik.
Ustawienia serwera DNS dla naszego Linuxa zmieniamy jeszcze w pliku /etc/resolv.conf na
nameserver 8.8.8.8 i zapisujemy i robimy test połączenia z internetem wykonując polecenie ping 8.8.8.8 następnie np. ping wp.pl aby sprawdzić poprawność rozpoznawania nazw poprzez zadeklarowany serwer DNS wybrany przez nas ip ( 8.8.8.8). Jeżeli mamy poprawną odpowiedź to znaczy, że nasze połączenia działa.
ping wp.pl
PING wp.pl (212.77.98.9) 56(84) bytes of data.
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=1 ttl=55 time=28.0 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=2 ttl=55 time=33.4 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=3 ttl=55 time=33.7 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=4 ttl=55 time=30.8 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=5 ttl=55 time=26.3 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=6 ttl=55 time=28.4 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=7 ttl=55 time=27.7 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=8 ttl=55 time=29.4 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=9 ttl=55 time=38.9 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=10 ttl=55 time=29.9 ms
^C
— wp.pl ping statistics —
10 packets transmitted, 10 received, 0% packet loss, time 22ms
rtt min/avg/max/mdev = 26.327/30.652/38.879/3.558 ms
Cała dalszą konfigurację możemy wykonać z konsoli maszyny wirtualnej Hyper-V. Może też połączyć się zdalnie za pomocą protokołu SSH. Przy instalacji Linuxa wybrana była usługa serwera SSH. Połączenia SSH z naszym linuxem za pomocą tego protokołu są bardzo przydatne, jednak nie połączymy się zdalnie korzystając z konta root. Tak więc dodajmy nowe konto użytkownika do naszego Linuxa jeśli nie zrobiliśmy tego podczas instalacji systemu.
adduser administrator
Następnie zainstalujemy pakiet sudo
apt update oraz apt install sudo
Po instalacji wydajemy polecenie visudo i dopisujemy uprawnienia nowo założonemu użytkownikowi
administrator ALL=(ALL:ALL) ALL
Teraz możemy zdalnie połączyć się z naszym linuxem korzystając z konta administrator, łącząc z klienta ssh np. z innego linuxa w moim przypadku piszemy ssh administrator@10.0.0.254 Możemy też skorzystać z konsoli cmd lub powershell w Windows 10 Pro. wpisując ssh administrator@10.0.0.254 lub z klienta ssh takiego jak putty. Po zalogowaniu poprzez ssh korzystając ze zwykłego konta użytkownika w moim przypadku to konto administrator wpsujemy komendę sudo su wpisując dalej hasło przypisane do konta administrator dostajemy uprawnienia konta root.
7. Instalacja Samby
kolejnym krokiem będzie instalacja samby , winbind i kerberos
apt install samba winbind krb5-user
W kolejnym kroku edytujemy plik /etc/fstab dla naszych partcji / oraz /home
ext4 errors=remount-ro,user_xattr,acl,barrier=1 1 1
Jest to potrzebne aby nasz Linux wzbogacił się o obsługę dostępu ACL( Access Control List ) stosowany systemie Windows. https://www.geeksforgeeks.org/access-control-listsacl-linux/
Po dodaniu musimy przeładować naszego Linuxa.
8. Konfiguracja Samby
Przed konfiguracją musimy usunąć pierwotny plik konfiguracyjny samby
rm -v /etc/samba/smb.conf
Do pliku /etc/hosts dodajemy nazwę naszej domeny i hosta do naszego adresu IP 10.0.0.254
10.0.0.25 debian.naszaszkola.local debian
W kolejnym kroku będziemy promować naszą domenę naszaszkola.local
samba-tool domain provision –use-rfc2307 –interactive
Teraz musimy odpowiedzieć na kilka pytań potwierdzając wybór. Jako serwer DNS wybieramy wewnętrzny serwer samby (SAMBA_ITERNAL. Oto listing jaki dostałem.
root@debian:/home/administrator# samba-tool domain provision –use-rfc2307 –interactive
Realm [NASZASZKOLA.LOCAL]:
Domain [NASZASZKOLA]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none’ to disable forwarding) [8.8.8.8]:
Administrator password:
Retype password:
INFO 2022-03-02 15:20:37,771 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2122: Looking up IPv4 addresses
INFO 2022-03-02 15:20:37,771 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2139: Looking up IPv6 addresses
WARNING 2022-03-02 15:20:37,772 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2146: No IPv6 address will be assigned
INFO 2022-03-02 15:20:38,100 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2290: Setting up share.ldb
INFO 2022-03-02 15:20:38,154 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2294: Setting up secrets.ldb
INFO 2022-03-02 15:20:38,184 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2299: Setting up the registry
INFO 2022-03-02 15:20:38,373 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2302: Setting up the privileges database
INFO 2022-03-02 15:20:38,418 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2305: Setting up idmap db
INFO 2022-03-02 15:20:38,463 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2312: Setting up SAM db
INFO 2022-03-02 15:20:38,472 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #897: Setting up sam.ldb partitions and settings
INFO 2022-03-02 15:20:38,474 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #909: Setting up sam.ldb rootDSE
INFO 2022-03-02 15:20:38,483 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #1322: Pre-loading the Samba 4 and AD schema
Unable to determine the DomainSID, can not enforce uniqueness constraint on local domainSIDs
INFO 2022-03-02 15:20:38,535 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #1400: Adding DomainDN: DC=naszaszkola,DC=local
INFO 2022-03-02 15:20:38,558 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #1432: Adding configuration container
INFO 2022-03-02 15:20:38,582 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #1447: Setting up sam.ldb schema
INFO 2022-03-02 15:20:42,286 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #1465: Setting up sam.ldb configuration data
INFO 2022-03-02 15:20:42,444 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #1506: Setting up display specifiers
INFO 2022-03-02 15:20:44,948 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #1514: Modifying display specifiers and extended rights
INFO 2022-03-02 15:20:44,994 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #1521: Adding users container
INFO 2022-03-02 15:20:44,998 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #1527: Modifying users container
INFO 2022-03-02 15:20:45,001 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #1530: Adding computers container
INFO 2022-03-02 15:20:45,005 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #1536: Modifying computers container
INFO 2022-03-02 15:20:45,007 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #1540: Setting up sam.ldb data
Repacking database from v1 to v2 format (first record CN=Connection-Point,CN=Schema,CN=Configuration,DC=naszaszkola,DC=local)
Repack: re-packed 10000 records so far
Repacking database from v1 to v2 format (first record CN=mSMQMigratedUser-Display,CN=414,CN=DisplaySpecifiers,CN=Configuration,DC=naszaszkola,DC=local)
Repacking database from v1 to v2 format (first record CN=Machine,CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=naszaszkola,DC=local)
INFO 2022-03-02 15:20:47,392 pid:2097 /usr/lib/python3/dist-packages/samba/provision/sambadns.py #1143: Adding DNS accounts
INFO 2022-03-02 15:20:47,424 pid:2097 /usr/lib/python3/dist-packages/samba/provision/sambadns.py #1177: Creating CN=MicrosoftDNS,CN=System,DC=naszaszkola,DC=local
INFO 2022-03-02 15:20:47,447 pid:2097 /usr/lib/python3/dist-packages/samba/provision/sambadns.py #1190: Creating DomainDnsZones and ForestDnsZones partitions
INFO 2022-03-02 15:20:47,507 pid:2097 /usr/lib/python3/dist-packages/samba/provision/sambadns.py #1195: Populating DomainDnsZones and ForestDnsZones partitions
Repacking database from v1 to v2 format (first record DC=_msdcs,DC=naszaszkola.local,CN=MicrosoftDNS,DC=DomainDnsZones,DC=naszaszkola,DC=local)
Repacking database from v1 to v2 format (first record DC=_kerberos._tcp.dc,DC=_msdcs.naszaszkola.local,CN=MicrosoftDNS,DC=ForestDnsZones,DC=naszaszkola,DC=local)
INFO 2022-03-02 15:20:47,754 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2026: Setting up sam.ldb rootDSE marking as synchronized
INFO 2022-03-02 15:20:47,760 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2031: Fixing provision GUIDs
INFO 2022-03-02 15:20:48,597 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2364: A Kerberos configuration suitable for Samba AD has been generated at /var/lib/samba/private/krb5.conf
INFO 2022-03-02 15:20:48,597 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2366: Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink!
INFO 2022-03-02 15:20:48,666 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #2096: Setting up fake yp server settings
INFO 2022-03-02 15:20:48,753 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #489: Once the above files are installed, your Samba AD server will be ready to use
INFO 2022-03-02 15:20:48,753 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #494: Server Role: active directory domain controller
INFO 2022-03-02 15:20:48,754 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #495: Hostname: debian
INFO 2022-03-02 15:20:48,754 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #496: NetBIOS Domain: NASZASZKOLA
INFO 2022-03-02 15:20:48,755 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #497: DNS Domain: naszaszkola.local
INFO 2022-03-02 15:20:48,757 pid:2097 /usr/lib/python3/dist-packages/samba/provision/__init__.py #498: DOMAIN SID: S-1-5-21-2214557902-479307615-3503785356
9. Konfiguracja Samby
Teraz kopiujemy plik krb5.conf do kalatlogu /etc
cp /var/lib/samba/private/krb5.conf /etc
Oraz uruchamiamy usługi
systemctl stop smbd nmbd winbind
systemctl disable smbd nmbd winbind
systemctl mask smbd nmbd winbind
systemctl unmask samba-ad-dc
systemctl enable samba-ad-dc
systemctl restart samba-ad-dc
systemctl status samba-ad-dc
● samba-ad-dc.service – Samba AD Daemon
Loaded: loaded (/lib/systemd/system/samba-ad-dc.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-03-03 21:17:12 CET; 1 weeks 2 days ago
Docs: man:samba(8)pi#
man:samba(7)pi#
man:smb.conf(5)
Main PID: 508 (samba)/pi#
Status: „smbd: ready to serve connections…”
Tasks: 24 (limit: 3720)
CGroup: /system.slice/samba-ad-dc.service
├─ 508 samba: root process
├─ 842 samba: task[s3fs_parent]
├─ 843 samba: task[dcesrv]
├─ 844 samba: tfork waiter process
├─ 845 samba: task[nbt]
├─ 846 /usr/sbin/smbd -D –option=server role check:inhibit=yes –foreground
├─ 847 samba: task[wrepl]
├─ 848 samba: task[ldapsrv]
├─ 849 samba: task[cldap]
├─ 850 samba: task[kdc]
├─ 851 samba: task[dreplsrv]
├─ 852 samba: task[winbindd_parent]
├─ 854 samba: task[ntp_signd]
├─ 856 samba: task[kccsrv]
├─ 858 samba: task[dnsupdate]
├─ 859 samba: tfork waiter process
├─ 860 samba: conn[dns_tcp] c[ipv4:10.0.6.106:49709] s[ipv4:10.0.6.10:53] server_id[860.41]
├─ 861 /usr/sbin/winbindd -D –option=server role check:inhibit=yes –foreground
├─ 1111 /usr/sbin/smbd -D –option=server role check:inhibit=yes –foreground
├─ 1173 /usr/sbin/smbd -D –option=server role check:inhibit=yes –foreground
├─ 1531 /usr/sbin/smbd -D –option=server role check:inhibit=yes –foreground
├─25445 /usr/sbin/smbd -D –option=server role check:inhibit=yes –foreground
├─31425 winbindd: domain child [BUILTIN]
└─31426 winbindd: idmap child
Nowo wygenerowany plik smb.conf powinien wyglądać podobnie do tego: /etc/samba/smb.conf. W tym przykładzie dodane zostały jeszcze trzy zasoby [profiles] [project] [public]. Po utworzeniu katalogów na naszej partycji /home należy zmienić uprawnienia do tych katalogów dla grupy users
chgrp -R users /home/samba oraz chgrp -R users /var/lib/samba/sysvol
# Global parameters
[global]
dns forwarder = 8.8.8.8
netbios name = DEBIAN
realm = NASZASZKOLA.LOCAL
server role = active directory domain controller
workgroup = NASZASZKOLA
idmap_ldb:use rfc2307 = yes
[netlogon]
path = /var/lib/samba/sysvol/naszaszkola.local/scripts
read only = No
[sysvol]
path = /var/lib/samba/sysvol
read only = No
# Polskie znaki w sambie
unix charset = UTF8
# display charset = UTF8
dos charset = 852
[profiles]
directory_mode: parameter = 0700
read only = no
path = /home/samba/profiles
csc policy = documents
[project]
directory_mode: parameter = 0700
read only = no
path = /home/samba/project
csc policy = documents
[public]
directory_mode: parameter = 0700
read only = no
path = /home/samba/public
csc policy = documents
Po uruchomieniu samby zmieniamy również nasz kolejność wyszukiwania serwerów DNS dla naszego linuxa w pliku /etc/resolv.conf
domain naszaszkola.local
nameserver 10.0.0.254
nameserver 1.1.1.1
Proszę również sprawdzić konfigurację pliku /etc/network/interfaces sekcja DNS według schematu poniżej
Na stronie projektu samby możemy wykonać testy poprawności działania.
https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
10. podłączenie Windows 10 Pro. do kontrolera domeny
Aby podłączyć się do kontrolera domeny warunkiem koniecznym jest prawidłowa konfiguracja połączenia sieciowego. Adres IP serwera DNS naszego komputera z Windows 10 Pro. powinien być ustawiony na adres IP naszego kontrolera domeny utworzonego na Linuxsie. W tym przypadku będzie to adres IP 10.0.0.254 Teraz wchodzimy do panelu sterowania, system , właściwości systemu, członkostwo, domena i podjemy nazwę naszej domeny w tym przypadku będzie to naszaszkola zatwierdzamy OK, podajemy nazwę login administratora domenowego oraz hasło podane podczas promowania domeny w sambie.
Potwierdzamy OK i uruchamiamy komputer w Windows 10 Pro ponownie. Po uruchomieniu nasz komputer jest już podłączony do domeny naszaszkola.local. Teraz logujemy się na Windows 10 Pro na konto adminstratora domeny wpisując jako login administrator@naszaszkola i hasło wpisane podczas promowania domeny. Po zalogowaniu instalujemy na Windows 10 Pro paczkę do zdalnego administrowania naszą domeną.
11. Administracja kontrolerem domeny przykłady użycia
Po instalacji paczki dostajemy zestaw narzędzi administracyjnych do zarządzania domeną. Aby z nich skorzystać należy się zalogować do Windows 10 Pro. jako administrator domeny tu będzie to: naszaszkola\administrator i utworzone hasło wpisane podczas promowania domeny w Linuxie. Możemy tutaj dodawać użytkowników, tworzyć jednostki organizacyjne, zasady grupy GPO itd. To wszytko co robimy w przypadku klasycznego Windows Server 2008 i nowszych. Aby udostępnić w sieci zasób plikowy, który to utworzyliśmy podczas konfiguracji samby np [public] należy w otoczeniu sieciowym odszukać nazwę naszego serwera np poprzez ikonę startu Windows prawym przyciskiem myszy wybieramy uruchom tam wpisujemy w tym przypadku\\debian Ukarze nam się lista udostępnionych katalogów, klikając prawym przyciskiem na katalogu dajemy właściwości, zabezpieczenia i zmieniamy dostępy według uznania nadając prawa zapisu lub tylko odczytu do grup lub użytkowników.
Po zamianie uprawnień do katalogów sieciowych po wypisani takiego katalogu komendą ls -l w linuksie przy przy prawach dostępu do katalogu pojawi się plus „+” oznacza to, że dodatkowo do katalogu dodatkowe uprawnienia ACL stosowane w Windows.
Tak jak pisałem wcześniej katalogi w sieci możemy udostępnić również na Windows 10 Pro wykorzystując uprawnienia z naszego kontrolera domeny. Należy jednak pamiętać ze zmienia się wtedy nazwa naszego komputera, który udostępnia nam zasoby w sieci. Może to być np. komputer na którym uruchomiliśmy naszą maszynę wirtualną z linuxem pracującym jako nasz kontroler domeny.
Tutaj widzimy katalog z narzędziami do zarządzania naszą pod Windows