https://nms.fjfi.cvut.cz/wiki/api.php?action=feedcontributions&user=Keroupav&feedformat=atomNMS - User contributions [en]2024-03-29T07:17:38ZUser contributionsMediaWiki 1.25.1https://nms.fjfi.cvut.cz/wiki/index.php?title=Ucebny&diff=4031Ucebny2023-11-21T19:16:03Z<p>Keroupav: /* Terminálový server */</p>
<hr />
<div>{{Servers}}<br />
<br />
=[http://it.fjfi.cvut.cz/archive.htm Oficiální dokumentace]=<br />
<br />
=Katedra matematiky (105 a 115)=<br />
*ověřování<br />
**uživatelským jménem / heslem<br />
**lokální účet "student"<br />
*HW konfigurace<br />
**Intel Core i5-3470S 2.9 GHz, 6 MB<br />
**MB GIGABYTE MB 1155 Z77 Z77-HD3<br />
**RAM 8 GB (2x4GB 1600MHz DDR3)<br />
**NVIDIA GeForce GT640 (901MHz), 2GB<br />
**HDD 1TB Seagate Constellation CS -7200rpm/SATAIII<br />
**DVD-RW<br />
*Operační systémy (Windows boot manager)<br />
**MS Windows 7 Enterprise Eng (instalovány jazykové verze CZE, FRA, GER, RUS, UKR)<br />
***Linux Centos 6 virtualizovaný<br />
**Linux Fedora Experiment<br />
*Rozdělení disku<br />
**SDA1 (Win7, NTFS, )<br />
**SDA2 (Win7, NTFS, )<br />
**SDA3 (Boot, EXT3, )<br />
**SDA4 EXT<br />
**SDA5 (Swap, ) <br />
**SDA6 (Fedora,EXT3, )<br />
**SDA7 (Fedora,EXT3, )<br />
*SW výbava na platformě Windows<br />
**Microsoft Office 2010 Professional CZ<br />
**Microsoft Visual Studio 2012 Ultimate SP3 EN<br />
**Corel WinZip 16 Pro EN<br />
**C.Ghisler Total Commander 8.1 EN,CZ<br />
**Adobe Reader XI 11.0.3 CZ<br />
**Microsoft SilverLight 5.1.20513.0 EN<br />
**Microsoft Internet Explorer 10 EN<br />
**Eclipse Standard 4.3 EN<br />
**Oracle JDK 7u25 with NetBeans 7.3.1 EN<br />
**Opera Software Opera 15 EN<br />
**Eclipse Contrib. Eclipse Kepler Standard 4.3 EN<br />
**Lazarus 1.0.1 [2.6.2] EN<br />
**MapleSoft Maple 17 EN<br />
**Wolfram Mathematica 9 EN<br />
**MathWorks Matlab R2013a EN<br />
**MikteX Basic 2.9 EN,CZ<br />
**Oracle JavaFX Scene Builder 1.0 EN <br />
**Microsoft SQL Server Enterprise 2012 EN<br />
**A. Simonic WinEdt 5.5 EN<br />
**J.Fiala PSPad 4.5.7 EN,CZ<br />
**A.Korotich PowerGui 3.2 EN<br />
**Microsoft Windows 7 SDK EN<br />
**Borland Delphi 5 EN<br />
**Borland C++Builder 4 EN<br />
**Python 3.3.2 EN<br />
**Vmware Inc. VMWare Player 5.02 EN<br />
**A. Burgmeier Gobby 0.4.94 EN<br />
**EasyPHP-12.1 with PHP-5.4.6 EN<br />
**TortoiseSVN 1.8.0 EN<br />
<br />
==Požadavky k nové instalaci==<br />
<br />
* virtualizace<br />
** místo na image virtuálních strojů (minimálně 100GB)<br />
** c:\???? (práva zápisu pouze pro admin)<br />
** kdokoliv z vyučujících může po domluvě umístit vlastni virtualní image pro výuku (aktuálně je podporován VMPlayer a VirtualBox)<br />
** VMPlayer<br />
*** konfigurace sítí (např. portforwarding pro NATované virtuální mašiny)<br />
*** rundll32.exe vmnetui.dll VMNetUI_ShowStandalone<br />
<br />
* SW<br />
** klienti pro GUI přístup ([http://www.nomachine.com/download.php NX], [http://sourceforge.net/projects/tigervnc/ VNC])<br />
** X server pro windows ([http://sourceforge.net/projects/xming/ Xming])<br />
<br />
* Firewall<br />
** povolit příchozí spojení na port 22 z libovolné IP (přístup na SSH server portforwardnutý do virtuální mašiny)<br />
** povolit příchozí spojení na port 3389 z libovolné(?) IP (přístup na windows remote desktop)<br />
** povolit komunikaci na port 5000-5010 ze strojů v učebně (nebo 147.32.8.0/24 + lokální privátní subnet)<br />
** povolit komunikaci na port 10000-11000 ze strojů v učebně (nebo 147.32.8.0/24 + lokální privátní subnet)<br />
** portforward z do virtuálních mašin(?), '''rozmyslet''' co by bylo vhodné a na jaká IP:port (součást konfiguračního souboru VirtualBox)<br />
<br />
=Terminálový server=<br />
*IP 147.32.8.109, pclabs.fjfi.cvut.cz<br />
*ověřování<br />
**uživatelským jménem / heslem<br />
** 80 licenci CAL per device<br />
*MS Terminal Server na platformě Windows 2003 Enterprise Server<br />
*HW konfigurace<br />
**4x QuadCore Intel Xeon X7330 (Tigerton 2,40GHz@1066FSB 6MB cache<br />
**Superserver 8025C-3R 2U 4xXeonMP@1066,2GLAN,SAS 6SCA,24FB-D,rPS<br />
**RAM 48GB 667MHz DDR2 ECC Fully Buff.,Dual Rank, x4 ,CL5<br />
**HDD 5x 146,8GB Cheetah 15K.5 ST3146855SS 15000RPM/3,5ms/SAS/16 Raid 6<br />
**DVD-ROM<br />
*Operační systém<br />
**MS Windows Server 2022 Standard</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Network&diff=4017Network2022-12-05T11:32:58Z<p>Keroupav: /* Standardní VLANy */</p>
<hr />
<div>Dokumemtace a pravidla k organizaci sítě na FJFI. Významné změny v tomto dokumentu musí být oznámeny v mailing listu správců IT na FJFI (comp@lists.fjfi.cvut.cz), aby bylo možné sladit konfigurace lokálních systémů (např. firewallu) v závislosti na úpravách konfigurace sítě.<br />
<br />
=Páteřní rozvody a zapojení=<br />
<br />
==Břehová==<br />
<br />
Plány rozmístění rozvaděčů a barevně obarvené místnosti podle připojení síťových (ethernetových) zásuvek do rozvaděčů:<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/brehova/057-1pp.png s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/brehova/057-1_2np.png 1/2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/brehova/057-1np.png 0.patro] (přízemí)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/brehova/057-2np.png 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/brehova/057-3np.png 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/brehova/057-4np.png 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/brehova/057-5np_krov.png 4.patro] (půdní vestavba)<br />
* [http://nms.fjfi.cvut.cz/user/images/rozvadece-brehova/ Foto rozvaděčů podzim 2018]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Brehova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* telefonní ústředna<br />
** foto z místnosti 008 [https://nms.fjfi.cvut.cz/user/images/ustredna-br-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-3.jpg 3], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-4.jpg 4]<br />
<br />
==Trojanova==<br />
<br />
Dokumentace z FJFI archivu k překladu optických tras realizovaných v roce 2009 (nascanováno, obrovské ~ 10MB JPG soubory):<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1pp.jpg s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1np.jpg 0.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/2np.jpg 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/3np.jpg 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/4np.jpg 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_blokove.jpg blokové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_prehledove.jpg přehledové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technická zpráva]<br />
* [https://nms.fjfi.cvut.cz/user/data/tr-optika/protokol-optika-302-srv1-SM.pdf SM optika 302-s126 (2022)]<br />
* [[Topologie|nákres rozmístění rozvaděčů]]<br />
* [http://nms.fjfi.cvut.cz/user/images/rozvadece-trojanova/ Foto rozvaděčů podzim 2018]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Trojanova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/Kabel_Trojanka_HK.pdf připojení HK]<br />
** přívod chráničky do budovy je v místnosti s117 (hlavní uzávěr vody)<br />
** SM kabel - PIRELLI Deskwave 053/2001 LOOSE UNITUBE 12 9/125 T/VM<br />
** MM kabel - 12vl.<br />
** MM kabel je v místnosti s117 naspojkován (dříve vedl do 112 ale nyní přeložen do 302)<br />
** SM kabel nebyl nikdy ze 112 přeložen (po rekonstrukcích 112 v létě 2015 by měl být stažen do s117)<br />
* připojení do ČVUT<br />
** přívod chráničky do budovy je v místnosti s128<br />
** FRNC Belden optical Fibre 2x50/125 + 14x9/125<br />
** tento kabel nevede až na karlák, je naspojkován a dál vedou jen 2vl. SM optiky<br />
** cestou do místnosti 302 je nastaven (+/- někde u výtahu)<br />
* hlavní rozvaděč optiky v 302<br />
** foto optického patch panelu [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-3.jpg 3]<br />
** [https://nms.fjfi.cvut.cz/data/tr-optika/protokol-optika-302-srv1.pdf měřící protokol pro MM spojení 302 se SRV1]<br />
* propojeni serveroven ve sklepě<br />
** mezi serverovnami SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3+4 natažena i metalika<br />
*** aktuálně jde o 2x CAT6 ethernet kabel<br />
** zadavatel měl dost nešťastný nápad rozvést pouze 2 páry optiky<br />
*** rozvedeny jsou nakonec 4 páry včetně koncovek (nutné odšroubovat víko)<br />
*** v optické vaně jsou nacvaknuty do SC-SC spojky pouze 2 páry<br />
*** pravděpodobně nebylo dost místa / pozic pro zapojení dalších konektorů<br />
** navíc byla použita aktuálně asi nehorší dostupná vlákna MM OM1<br />
*** SFP-10G-SR (33m) nefungují spolehlivě ani mezi SRV1 &lt;-&gt; SRV2<br />
*** pro spojení bude asi nutné pořizovat 2x dražší SFP-10G-LRM (220m)<br />
*** při přímém propatchování SRV302 &lt;-&gt; SRV2 nefungovali spolehlivě ani tyto lepší moduly<br />
** spojení serveroven je seriové SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3+4<br />
*** mezi SRV3 a SRV4 bude ve zdi průchod takže optika z rozvaděče v SRV4 půjde "napatchovat" k zařízením v SRV3<br />
*** jedno vlákno (nejvíce vpravo) mezi SRV1 &lt;-&gt; SRV2 je mrtvé<br />
** PLÁN rekonstrukce<br />
*** předelat udělat všechno do SM optiky<br />
*** rozmyslet se ve které místnosti bude centralní rozvod optiky<br />
*** z centrálního rozvodu mít vlakna do všech serveroven<br />
*** hodně vláken s minimálně 6ti páry připravenými v patch panelu na každé SRVx<br />
*** natáhnout opravdu hodně SM vláken do SRV302(?!)<br />
*** v posledních letech jsou stále populárnější v budovách pre-terminated kabely s MTO/MTP (multifiber) koncovkami<br />
*** existují MTO/MTP konektory s 2x, 4x, 8x, 12x, 24x až 72x vlákny, ale pro správnou kabeláž je jestě podstatné dostupné kazety<br />
*** běžné kazety mají 12 LC konektorů (vejsou se 3 to 1U), dají se sehnat i vysokohustotní kazety s 24 LC konektory<br />
<br />
==Trója==<br />
<br />
Připojení bylo až do 201606 realizováno routováním přes PASNET a připojením do jejich routeru v Tróji. Od 1.7.2016 je Trója připojena lambdou přímo do Dejvic (CWDM 1470nm) a to trasou přes UTIA. Tato trasa končí na serverovně ve FJFI routeru [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=63755 MikroTik CCR1016-12S-1S+] (detaily viz. [https://lists.fjfi.cvut.cz/mailman/private/comp/2016/001510.html Zmena pripojeni lokality Troja (IPv6)]), aktuálně používáme 1Gb moduly jež ale v dnešní době není problém nahradit 10Gb. Z FJFI routeru je napojen jak rozvaděč těžkých laboratoří v L119 a tak také 6. patro výškové budovy.<br />
<br />
Plány rozmístění datových zásuvek (2010)<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/troja/1NP_-_zasuvky_celek.png těžké lab. 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/troja/2NP_-_zasuvky_celek.png těžké lab. 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/troja/3NP_-_zasuvky_celek.png těžké lab. 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/troja/zapojeni_zasuvek.ods zapojení zásuvek]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Troja.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.pp.png těžké lab. 0.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.np.png těžké lab. 1.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-2.np.png těžké lab. 2.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-3.np.png těžké lab. 3.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-7.np.png KJCH 6. patro]<br />
<br />
==Děčín==<br />
<br />
Tato lokalita není připojená přímo do sítě ČVUT, ale [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=2665 routerem] CESNETu.<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Decin.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.pp.png 0. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.np.png 1. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-2.np.png 2. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-3.np.png 3. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-4.np.png 4. patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/vykresy-2017/000---mistnosti.xls místnosti]<br />
<br />
=Rozvaděče=<br />
{|class="wikitable"<br />
!colspan="5"|Umístění a značení rozvaděčů<br />
|-<br />
!Lokalita<br />
!Nové označení<br />
!Staré označení<br />
!Místnost<br />
!Comment<br />
|-<br />
|Břehová<br />
|DRS1<br />
|RS02<br />
|S148<br />
|<br />
|}<br />
<br />
=Značení kabeláže=<br />
<br />
=VLAN=<br />
<br />
ČVUT VIC prostupně přechází na globalní očíslování VLAN takovým způsobem, aby v se různých částech sítě nepoužívala stejná čísla VLAN (některým management nástrojům se takové konfigurace nezamlouvají). Z toho důvodu byl pro vnitřní potřeby FJFI přidělen rozsah VLAN 2400-2499. Některá starší (pochybnější) zařízení mohou mít problém s využítím takto vysokých čísel, v takovém případě bude nejlepší na nich žádné VLANy nekonfigurovat a budou se používat pouze pro netagovaný provoz.<br />
<br />
V následujících tabulkách je plán resp. dokumentace k využítí přidělených VLAN. První polovina přiděleného rozsahu je využita pro "standardní" VLANy (jejich jméno musí začínat prefixem <tt>fjfi-</tt>), které je vhodné mít vytvořené v každé budově FJFI a zbytek lze využít pro libovolné individuální VLANy (každé nově využité číslo VLAN z uvedeného rozsahu je zde nutné zdokumentovat). Pro Děčín je nutné tento plán brát dost s rezervou, jelikož tato lokalita není připojena přímo do ČVUT, ale je routována přímo CESNETem a lokální VLANy se nakonec mohou lišit.<br />
<br />
==Standardní VLANy==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2400-2439)<br/>(standardní VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<sup>*</sup><br />
!Břehová<br />
!Trojanova<br />
!Trója<br />
!Děčín<br />
!Status<br />
!Comment<br />
|-<br />
!fjfi-*-srv<br />
|2400<br />
|2410<br />
|2420<br />
|2430<br />
|active<br />
|Subnet pro servery<br />
|-<br />
!fjfi-*-def<br />
|2401<br />
|2411<br />
|2421<br />
|2431<br />
|active<br />
|Veřejná síť ("default VLAN" pro běžné počítače)<br />
|-<br />
!fjfi-*-mgmt-net<br />
|2402<br />
|2412<br />
|2422<br />
|2432<br />
|active<br />
|Management rozhraní síťových prvků (switch, router, ap, ...)<br />
|-<br />
!fjfi-*-mgmt-srv<br />
|2403<br />
|2413<br />
|2423<br />
|2433<br />
|active<br />
|Subnet pro management serverů (např. IPMI)<br />
|-<br />
!fjfi-*-sec<br />
|2404<br />
|2414<br />
|2424<br />
|2434<br />
|planed<br />
|Subnet pro zabezpečovací zařízeni (např. kamery, K4, ...)<br />
|-<br />
!fjfi-*-wifi<br />
|2405<br />
|2415<br />
|2425<br />
|2435<br />
|active<br />
|Wireless síť pro fakultní WiFi (FJFJNet)<br />
|-<br />
!fjfi-*-eduroam<br />
|2406<br />
|2416<br />
|2426<br />
|2436<br />
|active<br />
|Wireless síť Eduroam<br />
|-<br />
!fjfi-*-wififjfi<br />
|2407<br />
|2417<br />
|2427<br />
|2437<br />
|active<br />
|Wireless síť s captive portálem<br />
|-<br />
!fjfi-*-voip<br />
|2408<br />
|2418<br />
|2428<br />
|2438<br />
|planed<br />
|Segment pro VoIP telefony<br />
|-<br />
!fjfi-*-fragile<br />
|2409<br />
|2419<br />
|2429<br />
|2439<br />
|active<br />
|Segment pro "nepočítačová" síťová zařízení (nepravidelné/neexistující updaty)<br />
|-<br />
!colspan="7"|U jmen VLAN je potřeba nahradit znak "*" zkratkou příslušné lokality (br/tr/vh/dp)<br />
|}<br />
<br />
==Standardní VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Detaily k rozdělení FJFI VLAN (2400-2439)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|}<br />
<br />
==Speciální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2440-2449)<br/>(speciální VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-kipl-nat<br />
|2444<br />
|active<br />
|tr<br />
|19.6.2019 FJFI<br />
|vokacpet<br/>drabmart<br />
|KIPL PC lab a další KIPL stroje v NATované VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-hyperion-mgmt-iso<br />
|2445<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br/>drabmart<br />
|Hyperion cluster management isolated sub-VLAN for private isolation (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-hyperion<br />
|2446<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br/>drabmart<br />
|Hyperion cluster data ethernet VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-hyperion-mgmt<br />
|2447<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br/>drabmart<br />
|Hyperion cluster management VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-brtr-srv-clu<br />
|2448<br />
|active<br />
|br+tr<br />
|12.1.2015 FJFI<br />
|vokacpet<br />
|Public segment pro clusterování strojů mezi Trojankou a Břehovkou s dvěmi HSRP active/standby gateway<br />
|-<br />
!fjfi-brtr-srv-priv<br />
|2449<br />
|active<br />
|br+tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery v clusteru (DFS replikace)<br />
|}<br />
<br />
==Individuální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2450-2499)<br/>(individuální VLANy, pro uživatelské potřeby)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>(owner)<br />
!Admin<br />
!Comment<br />
|-<br />
!test_max_20_znaku<br />
|2450<br />
|test<br />
| --<br />
|2.6.2014 (KM)<br />
|vokacpet<br />
|Testovací záznam - tato VLAN není reálně nikde zkonfigurována, jméno VLAN musí být do 20 znaků (CISCO limit, stará SMC podporují max 12 znaků)!<br />
|-<br />
!fjfi-tr-km<br />
|2451<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kf<br />
|2452<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kj<br />
|2453<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kipl<br />
|2454<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kfe<br />
|2455<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kmat<br />
|2456<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kjch<br />
|2457<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kdaiz<br />
|2458<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-vh-kjr<br />
|2459<br />
|test<br />
|vh<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-ksi<br />
|2460<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-dekanat<br />
|2461<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-??-??<br />
|2462<br/>-<br/>2469<br />
|rezervace<br />
| --<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-aruba<br />
|2471<br />
|active<br />
|br<br />
|23.3.2022<br />
|keroupav<br />
|Aruba, management AP<br />
|-<br />
!fjfi-tr-aruba<br />
|2472<br />
|active<br />
|tr<br />
|15.6.2020<br />
|keroupav<br />
|Aruba, management AP<br />
|-<br />
!fjfi-vh-mgmt-wifi<br />
|2473<br />
|active<br />
|vh<br />
|5.5.2022<br />
|vokacpet<br />
|Management AP k CUNI wireless controlleru CISCO AIR-CT3504-K9<br />
|-<br />
!fjfi-dp-mgmt-wifi<br />
|2474<br />
|active<br />
|dp<br />
|?<br />
|vokacpet<br />
|Management AP (zatím jen rezervace)<br />
|-<br />
!fjfi-tr-fjfinet<br />
|2475<br />
|test<br />
|tr<br />
|15.6.2020<br />
|keroupav<br />
|Aruba, WiFi fjfinet<br />
|}<br />
<br />
==K promyšlení==<br />
<br />
* VLANy pro subnety kateder, rozdělení +/- dle čísel kateder<br />
* VLANy pro privátní subnety kateder (nebo mít jen jeden "veřejný" privátní subnet?)<br />
* VLAN pro přístupové systémy pro karty (je možné provozovat na privátní síťi?)<br />
* VLAN pro přístup k datům zabezpečení (kamery)<br />
* VLAN pro serverovou DMZ<br />
* Prohodit číslování standardních VLAN pro Tróju a Děčín (stejné pořadí jako seřazené IP segmenty?)<br />
** jedinný Děčín je "externí" lokalita routovaná přímo CESNETem (nemáme plnou kontrolu nad lokálními čísly VLAN a IPv6 čísly subnetů)<br />
** pořadí lokalit tedy bude br/tr/vh/dp<br />
<br />
=IP=<br />
<br />
==Veřejné adresy==<br />
<br />
Následující tabulka obsahuje souhrné informace o veřejných IP adresách přidělených a využívaných na FJFI.<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Rozdělení veřejných IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Gateway<br />
!VLAN Name<br />
!Admin<br />
!Comment<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.4.0%2F24&location=br 147.32.4.0/24]<br />
|Břehová<br />
|147.32.4.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-1<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.5.0%2F24&location=br 147.32.5.0/24]<br />
|Břehová<br />
|147.32.5.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-2<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.6.0%2F23&location=tr 147.32.6.0/23]<br />
|Trojanova<br />
|147.32.6.1<br />
|fjfi-tr-def<br />
|sinormil<br />
|Subnet KFE + dynamicky přidělované veřejné IP<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.8.0%2F24&location=tr 147.32.8.0/24]<br />
|Trojanova<br />
|147.32.8.1<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet KM+KJ+KSI+Elsa<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.0%2F26&location=tr 147.32.9.0/26]<br />
|Trojanova<br />
|147.32.9.1<br />
|fjfi-tr-srv<br />
|vokacpet<br />
|Serverový subnet v tr<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.64%2F26&location=tr 147.32.9.64/26]<br />
|Břehová+Trojanova<br />
|147.32.9.65<br />
|fjfi-brtr-srv-clu<br />
|vokacpet<br />
|Serverový subnet pro clustery mezi br+tr (duální gateway active/standby přes HSRP)<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.128%2F26&location=br 147.32.9.128/26]<br />
|Břehová<br />
|147.32.9.129<br />
|fjfi-br-srv<br />
|vokacpet<br />
|Serverový subnet v br<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.192%2F26&location=tr 147.32.9.192/26]<br />
|Trojanova<br />
|147.32.9.193<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet speciální zařízení<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.0%2F25&location=tr 147.32.10.0/25]<br />
|Trojanova<br />
|147.32.10.1<br />
|fjfi-tr-def<br />
|kopripe1<br />
|Subnet KMAT<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.128%2F25&location=tr 147.32.10.128/25]<br />
|Trojanova<br />
|147.32.10.129<br />
|fjfi-tr-def<br />
|drabmart<br />
|Subnet KIPL<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.11.0%2F24&location=bp 147.32.11.0/24]<br />
|Betlem<br />
|147.32.11.1<br />
|fjfi-bp-def<br />
|vokacpet<br />
|Veřejný subnet pro celou lokalitu, abychom nemuseli provozovat vlastní infrastrukturu (routery, tiskové servery, ...)<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.22.0%2F24&location=dp 147.32.22.0/24]<br />
|Děčín<br />
|147.32.22.1<br />
|fjfi-dp-def<br />
|sumpepre<br />
|Veřejné adresy dp<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.25.0%2F24&location=vh 147.32.25.0/24]<br />
|Trója<br />
|147.32.25.1<br />
|fjfi-vh-def<br />
|fialaja2<br />
|Veřejné adresy vh<br />
|}<br />
<br />
===Veřejné adresy detaily===<br />
<br />
Většina veřejných adres je rezervována pro konkrétní zařízení. V každé budově FJFI existuje ale i určitý rozsah veřejných adres, které jsou přidělovány registrovaným zařízením bez rezervace konkrétní adresy (zvýrazněno modře v níže uvedené tabulce). V případě aktuálního vyčerpání těchto volně dostupných veřejných adresu budou dalším zařízením přidělovány privátní adresy z privátního rozsahu na téže VLAN <tt>fjfi-*-def</tt>. V konfiguraci registrace síťového zařízení lze specifikovat, že danému zařízení má být vždy přidělena privátní adresa a to i v případě, že pool veřejných adres ještě nebyl vyčerpán.<br />
<br />
Trvale připojená zařízení využívají veřejné adresy by měla mít zaregistrovánu rezervovanou adresu z rozsahu, který je přidělen organizační jednotce vlastnící dané zařízení (viz. tabulka). Zařízení tak bude mít garantovánu stalou veřejnou IP adresu a nebude se zbytečně zmenšovat pool s veřejnými adresami pro ostatní zařízeni, která se na FJFI síti vyskytují pouze občas. Pro běžná zařízení (počítače) je preferováno použití veřejných adres, jelikož při jejich použití není fungování síťového zařízení omezeno potencíálními problémy NATu (vyplývající z podstaty NATu, vytížení NATovacího zařízení případně jeho nedostupnosti) a lze jednodušeji řešit případné stížnosti týkající se konkrétní adresy.<br />
<br />
Existuje ale i skupina speciálních zařízení (např. tiskárny) u nichž je lepší použít privátní adresy. Provoz některých zařízení na veřených adresách totiž představuje bezpečnostní hrobu vzhledem k neexistujícím automatickým security updatům firmware a omezeným možnostem konfigurace zabezpečení. Takové zařízení by ideálně měla být na samostatné VLAN <tt>fjfi-*-fragile</tt>, ale vzhledem ke komplikovanému managementu sítě pro ně je zatím vyhrazen rozsah privátních adres z VLAN <tt>fjfi-*-def</tt> (viz. [[#Priv.C3.A1n.C3.AD_adresy_na_default_VLAN_fjfi-.2A-def|níže]]). Adresu z tohoto rozsahu lze jednoduše vybrat v rozhraní pro registrace síťových zařízení.<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení veřejných IP rozsahů (detaily)<br />
|-<br />
!IP rozsah<br />
!adresy<br />
!Comment<br />
|-<br />
!rowspan="3"|147.32.4.0/24<br />
!147.32.4.0-70<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.4.71-189</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.4.190-255<br />
|??<br />
|-<br />
!rowspan="2"|147.32.5.0/24<br />
!147.32.5.0-49<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.5.50-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="5"|147.32.6.0/24<br />
!147.32.6.2-99<br />
|vyhrazeno unixářům (Richard Liska, Milan Šiňor) <br />
|-<br />
!147.32.6.100-116<br />
|pclab T124 (Kerouš)<br />
|-<br />
!147.32.6.117-199<br />
|kanceláře, ... (Antonín Novotný)<br />
|-<br />
!147.32.6.200-254<br />
|InfoLab, kanceláře (Josef Blažej)<br />
|-<br />
!147.32.6.255<br />
|rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
|-<br />
!rowspan="2"|147.32.7.0/24<br />
!147.32.7.1-31<br />
|tento rozsah byl využíván pro IP adresy AP, nyní volný.<br />
|-<br />
!<span style="color: blue">147.32.7.32-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="8"|147.32.8.0/24<br />
!147.32.8.2-79<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.80-96<br />
|studovna 214<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
|-<br />
!147.32.8.97-109<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.110-149<br />
|KM učebny<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
|-<br />
!147.32.8.150-207<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
* 147.32.8.160/28 vyhrazeno pro KM cluster + VMware (stracpav)<br />
|-<br />
!147.32.8.208/28<br />
|KSI zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.224/28<br />
|KJ zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.240/28<br />
|Elsa<br />
|-<br />
!rowspan="4"|147.32.9.0/24<br />
!147.32.9.0/26<br />
|Server Trojanova<br />
|-<br />
!147.32.9.64/26<br />
|Server Břehová+Trojanova<br />
|-<br />
!147.32.9.128/26<br />
|Server Břehová<br />
|-<br />
!147.32.9.192/26<br />
|Různé<br />
* Virtuální desktopy<br />
* speciální zařízení (např. kartové systemy - K4 master + netmoduly)<br />
* není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
|-<br />
!rowspan="2"|147.32.10.0/25<br />
!147.32.10.0/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.10.128/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.11.0/24<br />
!147.32.11.0/24<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.22.0/24<br />
!<span style="color: blue">147.32.22.101-199</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.25.0/24<br />
!<span style="color: blue">147.32.25.102-219</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|}<br />
<br />
==Privátní adresy==<br />
<br />
Vzhledem k nedostatku veřejných IP adres bylo nutné začít využívat i privátní IP adresy. Ty jsou používany jak čistě interně (např. management), tak i pro běžný provoz s NATem aktuálně hlavně na WiFi sítích, kde si vzhledem k enormnímu nárůstu počtu zařízení není možné vystačit s dostupnými veřejnými adresami. Privátní IPv4 adresy jsou také používány pro neregistrovaná zařízení a automatický přístup k captive portálu na stránku s registrací.<br />
<br />
Bohužel se na "Jednání IT techniků ČVUT - 11.6.2015" dohodlo, že se privátní adresy nebudou routovat po ČVUT (resp. nedošlo ani k základní shodě na tom, jaké rozsahy by bylo možné použít s tím, že ostatní fakulty už využívají všechny dostupné privátní subnety). Tohle je podmínka (téměř - viz. RFC6598) nutná pro možnost zřízení globálního NATu, takže ani v budoucnu nelze očekávat poskytnutí této služby v rámci celého ČVUT. Další komplikací je využití privátních adres mezi různými lokalitami FJFI, kde je potřeba využít policy based routing a privátní adresy do druhé lokality dostat přes tunel resp. dedikovanou VLAN. Centrální L3 switche použité v FJFI lokalitách také mají relativně omezené možnosti konfigurace (nepodporují NAT, netflow, GRE tunely, malá TCAM pro PBR, ...).<br />
{|class="wikitable"<br />
!colspan="6"|Počet adres v podsítích dané velikosti<br />
|-<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
|-<br />
!/24<br />
|256<br />
!/21<br />
|2048<br />
!/18<br />
|16384<br />
|-<br />
!/23<br />
|512<br />
!/20<br />
|4096<br />
!/17<br />
|32768<br />
|-<br />
!/22<br />
|1024<br />
!/19<br />
|8192<br />
!/16<br />
|65536<br />
|}<br />
<br />
<br />
===Privátní adresy dle lokality===<br />
<br />
Pro centrálně spravované privátní adresy na FJFI je využíván rozsah <tt>172.16.0.0/12</tt> z nějž má každá lokalita přidělen jeden segment <tt>/16</tt> (~ 65k adres) a poslední subnet <tt>172.31.0.0/16</tt> se využívá ke speciálním účelům (např. spojovačky). Přidělený segment je dále dělen na subnety jejichž základní číslování je shodné v každé lokalitě (např. dle VLAN, využití, ...).<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení privátních IP rozsahů na FJFI po lokalitách<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Comment<br />
|-<br />
!10.0.0.0/8<br />
| --<br />
|Vyhrazeno pro potřeby ČVUT (sice to nebylo nikde oficiálně řečeno, ale je to jedinný privátní rozsah u nejž vzhledem k velikosti má smysl uvažovat o využití v rámci celého ČVUT)<br />
|-<br />
!172.16.0.0/16<br />
|Břehová<br />
|<br />
|-<br />
!172.17.0.0/16<br />
|Trojanova<br />
|<br />
|-<br />
!172.18.0.0/16<br />
|Trója<br />
|<br />
|-<br />
!172.19.0.0/16<br />
|Děčín<br />
|<br />
|-<br />
!172.31.0.0/16<br />
| --<br />
|Vyhrazeno pro speciální využití (např. spojovačky na privátní síti)<br />
|-<br />
!192.168.0.0/16<br />
| --<br />
|Adresy z tohoto rozsahu nebudou na FJFI nijak regulovány a jsou preferované pro uživatelské testovací resp. dočásné privátní sítě. Je na jejich správci, aby si vybral nepoužívaný rozsah v dané síti resp. VLAN, ale není zde zaručeno resp. monitorováno jestli jestli stejné adresy začne používat někdo další. Pro potřeby trvalého privátního adresované na FJFI síti je doporučeno dohodnout alokaci podsítě z odpovídajících 172.1x.0.0/16 rozsahů. Nědky může být vhodné použít adresování 172.1x.0.0/16 i např. pro clustery resp. sítě kompletně oddělené od zbytku infrastruktury (např. je lze pak zpřístupnit přes centrální VPN).<br />
|-<br />
!colspan="3"|Privátní rozsahy značené 172.<span style="color: blue">1x</span>.aaa.bbb budou dále znamenat adresy v libovolné lokalitě (br=<span style="color: blue">16</span>/tr=<span style="color: blue">17</span>/vh=<span style="color: blue">18</span>/dp=<span style="color: blue">19</span>)<br />
|}<br />
<br />
===Privátní adresy dle VLAN===<br />
<br />
Všechny standardní využívané VLAN budou mít přidělen určitý rozsah privátních adres. V závislosti na využití bude přizpůsobena konfigurace "Private routing" týkající se routování mezi lokalitami FJFI (žádné routování, routování přes tunel/VLAN nebo IPSec zabezpečené spojení), routování do světa skrz NAT a různé filtrování paketů "Private ACL" mezi privátními subnety. Jednotlivé subnety je dobré alokovat také s ohledem na to, jak komplikované bude případné přečíslování zařízení na daném subnetu.<br />
<br />
{|class="wikitable"<br />
!colspan="8"|Rozdělení privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!VLAN Name<br />
!NAT<br />
!Private<br/>routing<br />
!Private<br/>ACL<br />
!Komplikace<br/>přeadresování<br />
!Comment<br />
|-<br />
!colspan="8"|172.1x.0.0/17 - adresy pro globální využití ve všech lokalitách<br />
|-<br />
!172.1x.0.0/22<br />
|172.1x.0.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování serverů dostupných přímo ze všech lokálních sítí, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.4.0/22<br />
|172.1x.4.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.8.0/22<br />
|172.1x.8.1<br />
|fjfi-*-srv<br />
|yes<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN s IPSec zabezpečenou komunikací mezi FJFI lokalitami, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.12.0/22<br />
| --<br />
|fjfi-*-srv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze z lokální VLAN (žádné routování či NAT)<br />
|-<br />
!172.1x.16.0/23<br />
|172.1x.16.1<br />
|fjfi-*-mgmt-net<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu síťových prvků (switche) dostupné pouze z mgmt-net VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.16.0/24<br />
|-<br />
!172.1x.18.0/24<br />
|172.1x.18.1<br />
|fjfi-*-room<br />
|no<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování managementu vybavení místností (např. audio & video propojení zařízení, ovládání zatemnění, ...)<br />
|-<br />
!172.1x.19.0/24<br />
|172.1x.19.1<br />
|fjfi-*-aruba<br />
|yes<br />
|default<br />
|deny<br />
|malé<br />
|Privátní adresování managementu Aruba zařízení<br />
|-<br />
!172.1x.20.0/22<br />
|172.1x.20.1<br />
|fjfi-*-mgmt-srv<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu serverů (IPMI, RAID controller, UPS, ...) dostupné pouze z mgmt-srv VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.20.0/23<br />
|-<br />
!172.1x.24.0/22<br />
|172.1x.24.1<br />
|fjfi-*-fragile<br />
|yes/no<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování pro samostatný subnet "nedůvěryhodných" zařízení (např. tiskárny, specializovaná zařízení bez pravidelných security update, ...), komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.24.0/23<br />
|-<br />
!172.1x.28.0/24<br />
|172.1x.28.1<br />
|fjfi-brtr-srv-clu<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.28.0/24)<br />
|-<br />
!172.1x.29.0/24<br />
| --<br />
|fjfi-brtr-srv-clu<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.29.0/24)<br />
|-<br />
!172.1x.30.0/24<br />
|172.1x.30.1<br />
|fjfi-brtr-srv-priv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.30.0/24)<br />
|-<br />
!172.1x.31.0/24<br />
| --<br />
|fjfi-brtr-srv-priv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.31.0/24)<br />
|-<br />
!172.1x.32.0<br/>-<br/>172.1x.51.255<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
|Rezervováno pro budoucí "globální využití"<br />
|-<br />
!172.1x.52.0/24<br/>172.1x.53.0/24<br />
|172.1x.52.1(*)<br/>172.1x.53.1(*)<br />
|VPN<br/>test<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro L2TP, PPTP, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.52.0/24 - PPTP server na nms-xx.fjfi.cvut.cz<br />
* 172.1x.53.0/24 - L2TP server na nms-xx.fjfi.cvut.cz<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.54.0/24<br/>172.1x.55.0/24<br />
|172.1x.54.1(*)<br/>172.1x.55.1(*)<br />
|OpenVPN<br/>admin<br />
|yes<br />
|default<br />
| --<br />
|malé<br />
|Privátní adresování pro admin OpenVPN klienty s přímým přístupem do sítě včetně privátních, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.54.0/24 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.55.0/24 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.56.0/22<br/>172.1x.60.0/22<br />
|172.1x.56.1(*)<br/>172.1x.60.1(*)<br />
|OpenVPN<br/>user<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro OpenVPN klienty, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.56.0/22 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.60.0/22 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.64.0/20<br />
|172.1x.64.1<br />
|fjfi-*-def<br />
|yes(*)<br />
|default<br />
|permit(*)<br />
|velké(*)<br />
|Privátní adresy na default VLAN (lokální síť v budově), detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-def]]<br />
|-<br />
!172.1x.80.0/20<br />
|172.1x.80.1<br />
|fjfi-*-wifi<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní rozsah pro speciální WiFi sítě, které mohou mít speciální konfiguraci např. pro konference, ...<strike>Rezervováno pro případné budoucí speciální požadavky na fjfi-*-def VLAN nebo rozšíření adresního prostoru na této VLAN</strike><br />
|-<br />
!172.1x.96.0/20<br />
|172.1x.96.1<br />
|fjfi-*-eduroam<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť Eduroam, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-eduroam]]<br />
|-<br />
!172.1x.112.0/20<br />
|172.1x.112.1(*)<br />
|fjfi-*-wififjfi<br />
|yes(*)<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť WiFiFJFI, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-wififjfi]], tato síť používá vlastní gateway pro řízení přístupu pomocí captive portálu a zařízení na ní nejsou z vnějšku dostupná.<br />
|-<br />
!colspan="8"|172.1x.128.0/18 - adresy pro lokální využití v konkrétní lokalitě lokalitě<br />
|-<br />
!colspan="8"|172.16.128.0/18 - Břehová<br />
|-<br />
!?rezervace?<br/>172.16.128.0/22<br />
|172.16.128.1(*)<br />
|fjfi-br-kf-private<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro síť KF s NAT a gateway zajištěnou [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=38061 vlastním zařízením]<br />
|-<br />
!colspan="8"|172.17.128.0/18 - Trojanova<br />
|-<br />
!?rezervace?<br/>172.17.128.0/22<br />
|172.17.128.1(*)<br />
|fjfi-tr-hyperion<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro KM+KIPL hyperion cluster s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=24149 NAT a gateway] (v tuto chvíli nevyužito)<br />
|-<br />
!?rezervace?<br/>172.17.132.0/22<br />
|172.17.132.1<br />
|"xen-vdi"<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování pro Xen virtualizované desktopy, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!colspan="8"|172.18.128.0/18 - Trója<br />
|-<br />
!colspan="8"|172.19.128.0/18 - Děčín<br />
|-<br />
!colspan="8"|172.1x.192.0/18 - rezervováno<br />
|-<br />
!colspan="8"|172.20.0.0/16 - .hyperion.fjfi.local - Privátní adresy pro Hyperion Cluster Ethernet datová VLAN (2446)<br />
|-<br />
!172.20.0.0/16<br />
|172.20.255.253 (10Gb)<br/>172.20.255.254 (1Gb)<br />
|fjfi-tr-hyperion (2446)<br />
|yes<br />
|<br />
|<br />
|velké<br />
|Hlavní datová ethernet VLAN Hyperion clusteru s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=174408 10Gb NAT a gateway] a starší [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=174408 1Gb NAT a gateway] (v tuto chvíli použit pouze pro routování na [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=174408 MMG Storage])<br />
|-<br />
!172.20.0.0/25<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|velké<br />
|Hlavní datová ethernet subnet výpočetních nodů starého Hyperion clusteru (CentOS 6)<br />
|-<br />
!172.20.3.0/25<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|velké<br />
|Hlavní datová ethernet subnet výpočetních nodů Quantum Hyperion sub-clusteru<br />
|-<br />
!172.20.4.0/25<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|velké<br />
|Hlavní datová ethernet subnet výpočetních nodů Hyperion sub-clusteru<br />
|-<br />
!172.20.10.0/25<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|velké<br />
|Hlavní datová ethernet subnet servisních nodů Hyperion clusteru<br />
|-<br />
!172.20.255.0/25<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|velké<br />
|Hlavní datová ethernet subnet routovacích nodů Hyperion clusteru<br />
|-<br />
!colspan="8"|172.21.0.0/16 - .hyperion-mgmt.fjfi.local - Privátní adresy pro Hyperion Cluster Ethernet management VLAN (2447 + sub-VLAN 2445)<br />
|-<br />
!172.21.0.0/16<br />
|172.21.255.253<br />
|fjfi-tr-hyperion-mgmt (2447)<br />
|yes<br />
|<br />
|<br />
|velké<br />
|Management ethernet VLAN Hyperion clusteru s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=174408 1Gb NAT a gateway]<br />
|-<br />
!172.21.0.0/25<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|velké<br />
|Management ethernet subnet výpočetních nodů Hyperion sub-clusteru<br />
|-<br />
!172.21.3.0/25<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|velké<br />
|Management ethernet subnet výpočetních nodů Quantum Hyperion sub-clusteru<br />
|-<br />
!172.21.10.0/25<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|velké<br />
|Management ethernet subnet servisních nodů Hyperion clusteru<br />
|-<br />
!172.21.255.0/25<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|velké<br />
|Management ethernet subnet routovacích nodů Hyperion clusteru<br />
|-<br />
!colspan="8"|172.22.0.0/16 - .hyperion-ib.fjfi.local - Privátní adresy pro starý Hyperion Cluster IP over InfiniBand<br />
|-<br />
!colspan="8"|172.23.0.0/16 - Privátní adresy pro Hyperion Cluster IP over InfiniBand/Fabric<br />
|-<br />
!172.23.0.0/18<br />
| --<br />
| --<br />
| --<br />
|<br />
|<br />
|velké<br />
|IP over InfiniBand subnet Hyperion clusteru, prozatím neroutované<br />
|-<br />
!172.23.64.0/18<br />
| --<br />
| --<br />
| --<br />
|<br />
|<br />
|velké<br />
|IP over Fabric (OPA) subnet Hyperion clusteru, prozatím neroutované<br />
|-<br />
!colspan="8"|172.24.0.0/16 - .kipl.fjfi.local - Privátní adresy pro KIPL PC učebnu a další přidružené stroje KIPL, VLAN (2444)<br />
|-<br />
!172.24.0.0/26<br />
|172.24.0.126<br />
|fjfi-tr-kipl-nat (2444)<br />
|yes<br />
|<br />
|<br />
|malé<br />
|Privátní adresy pro KIPL PC učebnu a další přidružené stroje KIPL s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=147978 NAT a gateway]<br />
|-<br />
|colspan="8"|Adresy pro lokální využití v konkrétní lokalitě rezervované pro případ, že dojde k L2 segmentaci sítě podle příslušnosti k různým součástem FJFI<br />
|}<br />
<br />
<br />
====Privátní adresy na default VLAN <tt>fjfi-*-def</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.64.0/20 na default VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.64.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
* 172.18.71.0/24 je v Tróji využíváno pro privátní adresování (měřících) zařízení KJR (humlond)<br />
|-<br />
!172.1x.72.0/22<br />
| --<br />
| --<br />
|vokacpet<br />
|unused<br />
|-<br />
!172.1x.75.0/24<br />
| --<br />
| yes<br />
|vokacpet<br />
keroupav<br />
|Adresy vyhrazené pro VPN klienty (vpn.fjfi.cvut.cz)<br />
|-<br />
!172.1x.76.0/23<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro "nepočítačová" zařízení (např. tiskárny)<br />
|-<br />
!172.1x.78.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro servery (např. printserver pro komunikaci na tomto subnetu)<br />
|-<br />
!172.1x.79.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným, smazaným a neregistrovaným zařízením<br />
|}<br />
<br />
====Privátní adresy na eduroam VLAN <tt>fjfi-*-eduroam</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.96.0/20 na eduroam VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.96.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.110.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.111.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným (smazaným) zařízením<br />
|}<br />
<br />
====Privátní adresy na wififjfi VLAN <tt>fjfi-*-wififjfi</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.112.0/20 na wififjfi VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.112.0/21<br />
|dynamic+reserved<br />
|auth<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.126.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.127.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným zařízením<br />
|}<br />
<br />
===Individuální rozsahy privátních adres===<br />
<br />
Využití těchto adres není nijak regulováno, takže zde neexistují žádné překážky k jejich použití ale na druhou stranu se také nelze spolehnout na to, že stejné adresy nezačne používat někdo další. V níže uvedené tabulce je (nekompletní) seznam aktuálně používaných adres z 192.168.0.0/16 rozsahu. Bylo by vhodné zvážit jestli do budoucna nezačít využívat rezervované subnety z 172.1x.0.0/16 rozsahů.<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení individuálních privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!Public<br />
!VLAN Name<br />
!OU<br />
!Admin<br />
!Comment<br />
|-<br />
!192.168.x.0/24<br />
|192.168.x.1<br />
|147.32.x.y<br />
|None<br />
|KIPL<br />
|drabmart<br />
|Privátní adresy pro KM+KIPL cluster<br />
|-<br />
!192.168.3.0/24<br />
|192.168.3.1<br />
|147.32.4.13<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF - kanceláře<br />
|-<br />
!192.168.11.0/24<br />
|192.168.11.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|-<br />
!192.168.20.0/24<br />
|192.168.20.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|}<br />
<br />
=IPv6=<br />
<br />
ČVUT přiděluje standardně <tt>/56</tt> rozsahy (lze použít pro vytvoření 256 podsítí) pro lokality připojené přes Dejvice ze přiděleného IPv6 rozsahu <tt>2001:718:2::/48</tt>. Bohužel vzhledem ke způsobu routování IPv6 není možné používat adresy z "dejvického" rozsahu v ostatních lokalitách (CESNET to ve své síti nepodporuje, tj. např. v Tóji a Děčíně), tam bude využit jiný rozsah přidělený ČVUT a routovaný Pasnetem resp. CESNETem.<br />
<br />
==IPv6 adresy dle lokality==<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI po lokalitách<br/>(FJFI IPv6 rozsahy 2001:718:2:1800::/54)<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Admin<br />
!Comment<br />
|-<br />
!2001:718:2:<span style="color: blue">17</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený na FJFI (včetně DNS reverzů, bude vrácen VICu po alokaci "1b")<br />
|-<br />
!2001:718:2:<span style="color: blue">18</span>00::/56<br />
|Břehová<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">19</span>00::/56<br />
|Trojanova<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">1a</span>00::/56<br />
|Trója<br />
|vokacpet<br />
|Veřejné adresy (aktuálně nevyužitý rozsah nazvaný FJFI test, čeká na novou serverovnu PASNETu v Tróji)<br />
|-<br />
!2001:718:2:<span style="color: blue">1b</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený FJFI ČVUT (pro "hezčí" FJFI IPv6 netmask)<br />
|-<br />
!??<br />
|Děčín<br />
|vokacpet<br />
|Veřejné adresy (další ČVUT adresy přidělené z routovatelného rozsahu CESNET)<br />
|}<br />
<br />
==IPv6 adresy dle VLAN==<br />
<br />
Každá VLAN přidělená FJFI má standardně přiřazen jeden IPv6 subnet <tt>/64</tt> z přiděleného rozsahu <tt>/56</tt> (256 možných <tt>/64</tt> subnetů). Příslušné číslo FJFI VLAN-2400 (tj. hodnoty v intervalu 0-99) budou přímo součástí IPv6 adresy na pozici 56-63. Vyjímkou je prvních 40 rezervovaných VLAN u nichž se používá pouze poslední číslice.<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI podle VLAN<br />
|-<br />
!IP rozsah<br />
!VLAN ID<br />
!VLAN Name<br />
!Comment<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">0</span>::/64<br />
|24?<span style="color: blue">0</span><br />
|fjfi-*-srv<br />
|Subnet pro servery<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">1</span>::/64<br />
|24?<span style="color: blue">1</span><br />
|fjfi-*-def<br />
|Veřejná síť ("default VLAN" pro běžné počítače) <br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">9</span>::/64<br />
|24?<span style="color: blue">9</span><br />
|fjfi-*-fragile<br />
|Segment pro "nepočítačová" síťová zařízení<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">48</span>::/64<br />
|24<span style="color: blue">48</span><br />
|fjfi-brtr-srv-clu<br />
|Public segment mezi Trojankou a Břehovkou s duální gateway přes HSRP<br />
|-<br />
!2001:718:2:xx<span style="color: blue">49</span>::/64<br />
|24<span style="color: blue">49</span><br />
|fjfi-brtr-srv-priv<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a0</span>::/64<br/> -- <br/>2001:718:2:xx<span style="color: blue">ff</span>::/64<br />
| --<br />
| --<br />
|Rezervováno pro budoucí/speciální využití<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a?</span>::/60<br />
|colspan="2"|Static route to OpenVPN server<br />
|OpenVPN IPv6 network<ul><br />
<li>...<span style="color: blue">a0</span>::/64 - openvpn.fjfi.cvut.cz:1194/udp</li><br />
<li>...<span style="color: blue">a1</span>::/64 - openvpn.fjfi.cvut.cz:1194/tcp</li><br />
<li>...<span style="color: blue">a2</span>::/64 - openvpn.fjfi.cvut.cz:443/udp</li><br />
<li>...<span style="color: blue">a3</span>::/64 - openvpn.fjfi.cvut.cz:443/tcp</li><br />
<li>...<span style="color: blue">a4</span>::/64 - openvpn.fjfi.cvut.cz:53/udp</li><br />
<li>...<span style="color: blue">a5</span>::/64 - openvpn.fjfi.cvut.cz:53/tcp</li><br />
<li>...<span style="color: blue">a6-af</span>::/64 - reserved</li><br />
</ul><br />
|}<br />
<br />
==Využití IPv6 adres v rámci <tt>/64</tt> subnetů==<br />
<br />
Každý subnet na IPv6 má prakticky vzato "neomezené" množství IPv6 adres. Lze tedy zavést další jemnější dělení těchto subnetů, aby bylo možné pro určité skupiny počítačů specifikovat například různá firewall pravidla (např. omezení přístupu na tiskárny pouze z IPv6 adres ČVUT). Nevyužité (zde nedefinované) části <tt>/64</tt> subnetů budou mít standardně zakázanou jakoukoliv komunikaci přímo na fakultním routeru.<br />
<br />
Navíc pro IPv6 nebudou v principu existovat dynamicky přidělované adresy jako je tomu na IPv4, kde je nutné recyklovat omezený adresní prostor. Všechna registrovaná zařízení (síťová rozhraní) budou mít statickou rezervaci konkrétní IPv6 adresy resp. jeji <tt>/64</tt> suffix, který tak bude stejný při připojení zařízení ve všech lokalitách (pro běžné uživatelské subnety jako např. <tt>def</tt>, <tt>eduroam</tt> a <tt>wififjfi</tt> VLAN). Takto přidělená adresa navíc nebude v budoucnu recyklována pro jiné uživatelské zařízení (existují vyjímky, jako např. servery u nichž je změna adresy občas nežádoucí). V případě potřeby je možné u existujícího zařízení smazat aktuální IPv6 adresu a nechat vygenerovat novou.<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-srv===<br />
<br />
* změny ve využití adres jsou u serverů velice komplikované<br />
** konfigurace sítě je na serverech statická (nepoužívají DHCP)<br />
** pro použité adresy může mít řada zařízení (nejen na tomto segmentu) zkonfigurována různá pravidla (např. firewall)<br />
** pokud se neobjeví ''závažné nedostatky'' aktuálního plánu (např. nové standardy) tak jsou adresy přiděleny navždy<br />
* aktuálně budou využívány pouze adresy z rozsahu 2001:718:2:1x00::/96<br />
* doporučený formát IPv6 addres<br />
*# IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x00::147.32.9.17) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x00::17)<br />
*# adresy z rosahu 2001:718:2:1x00::0001:0000-2001:718:2:1x00::00ff:ffff (~ 2^24 adres)<br />
*# registrační GUI bude automaticky generovat neobsazené IPv6 adresy ze správných rozsahů<br />
*# libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)<br />
* jeden server může mít zároveň přiděleno více aktivních IPv6 adres<br />
* je možné alokovat samostatný rozsah IPv6 adres pro skupinu počítačů<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru<br />
** aktuálně neexistují žádné předdefinované skupiny<br />
*** lze si představit např. skupiny dle OS (pro jednodušší psaní filtrů na aktuálně zneužívané chyby)<br />
*** také skupiny dle orgaizačních jednotek pro omezení komunikace na vlastní servery<br />
*** teprve praktické používání IPv6 ukáže reálné potřeby<br />
** využití skupin zde musí být zdokumentováno<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-srv</span> (2001:718:2:xx<span style="color: DarkGreen">00</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">00</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Standardní IPv6 rozsah serverů<br />
|}<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-def===<br />
<br />
* změny ve využití adres mohou být relativně jednoduché při dodržování následujících zásad<br />
** zařízení budou pro IPv6 konfigurace využívat výhradně router advertisementy + stavové DHCPv6<br />
*** vzhledem k nerecyklování IPv6 adres je možné nastavit velice dlouhý lease time<br />
*** nelze použít "nekonečno" jinak bychom přidělenou adresou v budoucnu nebyly schopni změnit<br />
*** maximální lease time tedy bude jeden měsíc<br />
** manuální konfigurace je silně nedoporučena<br />
*** pokud se rozhodneme změnit IPv6 adresování tak může dojít k problémům<br />
*** z hlediska správce IPv6 rozsahu je to problém čistě uživatele, který nedbal doporučení a nebude na něj brán ohled<br />
* podobně jako u serverové VLAN <tt>fjfi-*-srv</tt> bude možné zařízení zařazovat do skupin<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru (např. omezení komunikace po ČVUT pro tiskárny)<br />
** využití skupin zde musí být zdokumentováno<br />
* jedno zařízení může mít zároveň přiděleno více aktivních IPv6 adres<br />
* doporučený formát IPv6 addres (pouze správce sítě může s rozumným důvodem využít jinou než první možnost)<br />
*# registrační GUI bude [[Registrace_MAC#Pravidla pro automatické vytváření rezervovaných adres|automaticky generovat neobsazené IPv6 adresy ze správných rozsahů]]<br />
*# <strike>IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x01::147.32.8.52) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x01::852)</strike><br />
*# <strike>adresy z rosahu 2001:718:2:1x01::0001:0000-2001:718:2:1x01::00ff:ffff (~ 2^24 adres)</strike><br />
*# <strike>libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)</strike><br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-def</span> (2001:718:2:xx<span style="color: DarkGreen">01</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!colspan="4"|Adresy pro standardní a speciální rozsahy 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/88<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální IPv6 rozsah pro běžná zařízení (ručně přidělované adresy, např. 2001:718:2:1901::852), preferované jsou ale níže uvedené rozsahy s konkrétním účelem (dle typu zařízení, organizační jednotky, ...)<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy (nutné pro zařízení, které byli primárně registovany pro jinou lokaci)<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">2</span>::/96<br/>-<br/>2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">f</span>::/96<br />
|vokacpet<br />
|Rezervovaný rozsah pro budoucí využití<br />
|-<br />
!fragile<br/>printer<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro tiskárny s omezením komunikace po ČVUT<br />
|-<br />
!restricted<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací pouze přes http/https (+ lokální DNS)<br />
|-<br />
!restricted<sup>2</sup><br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací jen na vyhrazené lokální servery (adresy pro blokované, neregistrované, zlobivé, ... zařízení). Zatím by taková zařízení nemusela dostávat žádnou IPv6 adresu a do příslušná omezení a informační stranky by se zobrazili na základě přidělené IPv4 adresy.<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">??</span>::/96<br />
| --<br />
|Skupina zařízení s omezeními dle uživatelských požadavků - návrhy?<br />
|-<br />
!colspan="4"|Adresy vyhrazené pro zařízení kateder 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/88<br />
|-<br />
!ČVUT<br/>FJFI<br/>Other<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení ČVUT, FJFI a Ostatní<br />
|-<br />
!KM<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">101</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KM<br />
|-<br />
!KF<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">102</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KF<br />
|-<br />
!KJ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">103</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJ<br />
|-<br />
!KIPL<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">104</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KIPL<br />
|-<br />
!KFE<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">105</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KFE<br />
|-<br />
!KMAT<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">106</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KMAT<br />
|-<br />
!KJCH<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">107</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJCH<br />
|-<br />
!KDAIZ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">108</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KDAIZ<br />
|-<br />
!KJR<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">109</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJR<br />
|-<br />
!KSI<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10a</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KSI<br />
|-<br />
!CRRC<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10b</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení CRRC<br />
|-<br />
!Elsa<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10c</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Elsa<br />
|-<br />
!Děkanát<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10d</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Děkanátu<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-eduroam===<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* blokovaná zařízení nedostanou od DHCPv6 přidělenou IPv6 adresu<br />
** převedeno na problém samotného IPv4 a blokovaných zařízení, který je již vyřešen<br />
** aktuálně tedy nemáme plnou podporu IPv6 only zařízení, ale jen v případě ojedinělých případů blokace<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-eduroam</span> (2001:718:2:xx<span style="color: DarkGreen">06</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální rozsah (ručně přidělované/rezervované adresy), žádné restrikce<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy, minimální restrikce<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-wififjfi===<br />
<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* konfigurace by měla fungovat tak, aby klient mohl nakonec využívat nativní IPv6 konektivitu bez dalšího (linuxového) routeru (NAT) na cestě<br />
* zbývá dořešit technické detaily autentizace na captive portálu a také blokovaná (neregistrovaná a smazaná) zařízení<br />
** neautentizovaná zařízení dostanou pouze IPv4 adresu a budou tak mít přístup ke captive portálu<br />
** DHCPv6 bude defaultně zkonfigurováno, aby zařízením neposkytlo IPv6 adresu do té doby než je uživatel uspěšně ověřen<br />
** po autentizaci přes captive portál na IPv4 modifikovat dynamicky konfiguraci DHCPv6 a povolit přidělení adresy s lease time ~ 1hodina<br />
*** asi to je možné řešit přes DHCPv6 classes, ale ty nejsou podporovány v ISC DHCP 4.2.5, který je součástí CentOS7<br />
*** nebude fungovat pro IPv6 only zařízení (to tu aktuálně vůbec neřešíme a v budoucnu se uvidí co bude možné např. s 6to4 překlady adres)<br />
<br />
=Firewall=<br />
[[Blokované porty]]<br />
<br />
=Provozní poznámky=<br />
<br />
* SMC8626<br />
** nejnovější firmware v1.4.0.8 je nestabilní (pro multicast a mam pocit že docházelo i k odpadnutí managementu)<br />
** aktualni firmware v1.1.0.2 nelze managovat přes VLANu (jinou než 1), kdy je na daném portu zároveň zapnutý <tt>spanning-tree edge-port</tt>, jelikož po restartu se nelze k managementu připojit dokud se nevytáhne a vrátí zpět ethernetový kabel => uplink nesmí mít tuhle volbu zapnutou<br />
<br />
=Upgrade 2020=<br />
<br />
Konfigurace sítě a routování na FJFI neodpovídá doporučením a není možné případné problémy řešit s podporou. Aktuálně máme velice jednoduchou, ale nestandardní konfiguraci s jednou VLAN do níž se routuje více subnetů pro všechna uživatelská zařízení připojená v dané lokalitě / budově. Je potřeba toto nepodporované řešení opustit, ale to nezbytně povede k nutnosti provozu více VLAN a s tím souvisejícími požadavky na konfiguraci access switchů při zachování flexibility v zapojování uživatelských zařízení. Při designu nové topologie je potřeba zohlednit i bezpečnostní hledisko a možnosti obrany lokální sítě proti neregistrovaným i registovaným zařízení. Lokální řešení pro [[Registrace MAC|registraci MAC]] ale i [[Arpmon|monitoring]] by měli být nahrazeny lepšími prostředk<br />
<br />
==Testování 10Gb na MM OM1 optice v lokalitě Trojanova==<br />
<br />
Původní optické trasy byly až do roku 2006 ukončeny v místnosti 112 a byly postaveny na MM optice (bez označení, ale pravděpodobně OM1 jelikož se jedná o 62.5um) a používali ST konektory. Při přeložení optiky do serverovny 302 byly některé trasy zachovány / přeloženy tak aby se využili stávající ukončení v něterých rozvaděčích. Optika z 2006 je postavena na OM1 s SC konektory a detaily tohoto projektu jsou uvedeny v příslušné [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technické zprávě]. Některá označení na patch panelech pro staré trasy (např. v rozvaděči DR5.1) mohou být zavádějící jelikož vlákna stažená ze 112 byla využita pro vytvoření nových tras.<br />
<br />
Běžné 10GBASE-SR/SW moduly pro MM optiku pracující s vlnovou délkou 850nm nemají dostatečný dosah po OM1 optice (~ 33m), ale existují i speciální 10GBASE-LRM na 1310nm s nimiž lze dle specifikace na OM1 optice dosáhnout až do vzdálenosti 220m při využití mode condition patch kabelů. V lokalitě Trojanova jsou sice všechny trasy do ~ 150m, ale některé mají na cestě až dva rozvaděče v nichž je patch kabel propojující příslušné trasy.<br />
<br />
Výsledky měření (dle datasheetu mají LRM moduly citlivost mezi -6.0dBm až -12.5dBm v závislosti na výrobci, naše nové moduly maji -12.5dBm):<br />
<br />
{| class="wikitable"<br />
!colspan="5"|Výsledky měření 10Gb na MM OM1 s 10GBASE-LRM<br />
|-<br />
!Rozvaděč<br/>(místnost)<br />
!testovaný pár<br />
!signál<br>302 [dBm]<br />
!signál<br>DRx [dBm]<br />
!poznámka<br />
|-<br />
!DRS (s102)<br />
|2<br />
| -5.1<br />
| -6.6<br />
|<br />
|-<br />
!DR10 (010, KM)<br />
|2<br />
| -5.0<br />
| -6.9<br />
|<br />
|-<br />
!DR13 (048, KJ)<br />
|2<br />
| -4.9<br />
| -6.1<br />
|nepoužívaná stará ST optika<br />
|-<br />
!DR4 (105, KM+ELSA)<br />
|2<br />
| -5.0<br />
| -6.6<br />
|<br />
|-<br />
!DR8 (112, KM)<br />
|2<br />
|?<br />
| -6.0<br />
|signál na straně 302 nebyl měřen<br />
|-<br />
!DR3 (115, KM)<br />
|2<br />
| -5.3<br />
| -6.6<br />
|<br />
|-<br />
!DR11 (122, KFE)<br />
|2<br />
| -5.1<br />
| -6.5<br />
|stará ST optika<br />
|-<br />
!DR12 (132, KFE)<br />
|2<br />
| -6.3<br />
| -5.1<br />
|nepoužívaná stará ST optika<br />
|-<br />
!DR5.1 (213a)<br />
|2<br />
|?<br />
|?<br />
|neměřen, stará ST optika s SC-ST patch v DR5.1<br />
|-<br />
!DR14 (224, KIPL)<br />
|2<br />
| -5.2<br />
| -6.5<br />
|nepoužívaná stará ST optika<br />
|-<br />
!DR16 (238, KFE)<br />
|3<br />
| -5.2<br />
| -6.4<br />
|žádný signál pro druhý pár vláken, stará ST optika<br />
|-<br />
!DR15 (321, KIPL+KFE+KMAT)<br />
|3<br />
| -5.0<br />
| -6.5<br />
|druhý pár vláken 3DR1 a 4DR1 nefunguje (útlum dobrý, ale žádný link), stará ST optika<br />
|-<br />
!DR6.3 (360, KMAT)<br />
|2<br />
|NA<br />
|NA<br />
|zrušen/nepoužíván<br />
|-<br />
!DR6.2 (384, KIPL)<br />
|1<br />
|?<br />
| -8.7<br />
|testována stávajicí trasa (SC-ST patche v DR5.1, ST-ST v DR6.1)<br />
|-<br />
!DR41 (409, půda)<br />
|2<br />
|?<br />
| -5.5<br />
|signál na straně 302 nebyl měřen<br />
|-<br />
!DR42 (446, půda)<br />
|2<br />
|?<br />
|?<br />
|neměřen<br />
|-<br />
|}<br />
Dále byla měřena trasa mezi DR15 a serverovnou S1, do níž vybraná trasa fungovala. Když jsme navíc přidali ještě trasu do S3, tak jsme s použitými SFP+ moduly již nedostali link. Po vyzkoušení trasy 302 - S1 - S3 se switche opět spojili, takže se zdá že delší trasy s více spoji není možné vytvořit.<br />
<br />
Závěr z tohoto měření je tedy takový, že na stávající MM OM1 optice v Trojance je možné provozovat 10Gb trasy, ale to je také limit současné infrastruktury. Bylo by vhodné připravit projekt výměny této staré optiky za SM, aby bylo možné v budoucnu provozovat i vyšší rychlosti v okamžiku, kdy vznikne potřeba 10Gb přístupových prvků u nichž je uplink se stejnou rychlostí nedostatečně dimenzovaný (např. 10Gb v počítačové učebně by mohl zpřístupnit nové způsoby využití). Připravený projekt by pak bylo možné ihned realizovat až nastane vhodná situace.<br />
<br />
==Topologie==<br />
<br />
==Firewall (HW)==<br />
<br />
==Core switch/L3 router==<br />
<br />
==Access switch==<br />
===Současný stav===<br />
Aktuálně provozovaná přístupová síť (ethernetové zasuvky v kancelářích, ale i veřejně přístupných prostorách) je svým designem a bohužel často i použitými aktivními prvky na úrovni roku 2000. V posledních dvaceti letech došlo k vývoji a to nejen v propustnosti, ale hlavně v možnostech jak zajistit spolehlivější a bezpečnejší přístupovou síť pro zařízení používající jak IPv4 tak i IPv6 adresy. Na stávající síti je velice jednoduché způsobit výpadek a to jak záměrně tak i omylem s omezenými možnostmi takové problémy monitorovat a bez účinných nástrojů jim bránit. Lokální síť je navíc prakticky téměř jeden velký L2 subnet, což není vhodná konfigurace z mnoha důvodů včetně nepodporované konfigurace routování.<br />
<br />
Současná heterogenní infrastruktura neposkytuje jednotné funkce pro řízení přístupu do sítě, které je tak postaveno na ne příliš sofistikovaném lokálním řešení. To se skládá z komponenty pro [[Registrace_MAC|registraci síťové adresy]] využívající konfiguraci DHCP serveru a jednoduchého [[Arpmon|monitoringu]] zařízení komunikujících na lokální síti. Obslužný software byl před více než deseti lety vytvořen na míru infrastruktuře s nulovými požadavky na funkce aktivních prvků a není vhodný pro síť postavenou na nových aktivních prvcích poskytujících zabudované funkce pro konfiguraci, zabezpečení, správu a monitoring.<br />
<br />
===Cílový stav===<br />
Přístupová síť splňující široké spektrum současných, ale pokud možno i budoucích požadavků (připravujeme řešení vhodné pro další dekádů) vyplývajících z charakteru různorodých způsobů využití moderní síťové infrastruktury navíc v podmínkách akademické instituce. Je nutné zaměřit se více na bezpečnost (spolehlivost), ale při zachování jednoduchého dostatečně flexibilního připojení pro běžné uživatele a bez neúměrného nárůstu nároků na konfiguraci a správu. Vybudovaná síť musí poskytovat i vhodné nástroje pro monitoring, detekci a řešení problémů.<br />
<br />
===Způsoby využití přístupové sítě===<br />
<br />
<br />
=== Další zatím nezařazené/nezpracované poznámky===<br />
* [http://kmlinux.fjfi.cvut.cz/~vokacpet/tmp/public/FJFI-IT-20200811 dalsi poznamky]<br />
* stávající stav: [[Arpmon]], [[Registrace_MAC]]<br />
* 802.11x pro "MAC based VLAN"<br />
* automatické zařazení zařízení do VLAN k niž je registrované<br />
* není nutná žádná speciální konfigurace jednotlivých portů správcem, když si uživatel v kanclu přehodi tiskárnu mezi zásuvkami - vše je okamžitě funkční<br />
* konfigurace je uložena na Radius serveru<br />
* nutné zajistit vysokou spolehlivost této služby (zařízení podporují konfiguraci více Radius serveru)<br />
* více kritické než nefunkční DHCP, protože oprava je výhradně v rukou správce Radius serveru případně síťových prvků<br />
* nelze jako u DHCP spustit "alternativní" Radius server nebo provést nějakou statickou lokální konfiguraci<br />
* běžně existuje několik variant jak se takto označený port chová<br />
* možné připojit pouze jedno konkretní zařízeni - v našich podmínkách nepoužitelné např. s ohledem na kancelářský stolní switch resp. použití virtualních mašin s bridgovanou sítí<br />
* libovolné jedno schválene zařizení nastaví port pro všechno do jedné VLAN - uplně nepoužitelné vzhledem k "nepředvidatelnému chování" v případě více zařízení registrovaných do různých VLAN<br />
* každé zařízení bude individuálně přířazeno do jemu odpovídající VLAN na základě MAC adresy<br />
* není podporováno zdaleka všemi aktivními prvky (staré CISCO 2950 mám pocit neumělo)<br />
* limity na počet takto připojených zařízení (staré Junipery takhle umožňovali připojit jen jednotky zařízení na port)<br />
* (volitelně) možnost nasadit 802.11x včetně autentizace - možnost VLAN/subnetu kam se opravdu nikdo s cizím zařízením nedostane (např. personalní/finanční/...)<br />
* Guest VLAN pro neregistrovaná zařízení<br />
* možnost integrace s captive portálem umožňujícím lokálním/ČVUT uživatelům (SSO Shibboleth nebo OAuth) registraci bez nutnosti kontatování správce<br />
* možnost delegovat registraci na zaměstnance (přijede host a odešle v captive portálu mail/SMS(?) lokálnímu zaměstnanci, který jeho zařízení schválí)<br />
* ? možnost privátních VLAN (zařízení ve stejném subnetu nemohou komunikovat mezi sebou navzájem)<br />
* IPv4<br />
* DHCP Snooping<br />
* dynamic ARP inspection (?)<br />
* obrana proti ARP flodingu (stadardy?)<br />
* IPv6<br />
* RA Guard<br />
* ??? DHCPv6 ???<br />
* obrana proti flodingu (standardy?)<br />
* Monitoring<br />
* nemám zcela jasno co vše je dobré monitorovat<br />
* určitě pro troubleshooting bude nutné mít relevantní údaje o chování 802.11x<br />
* minimálně by se hodily SNMP trap pro všechny MAC asociované s portem (kdy se objevila a kdy zmizela)</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Network&diff=3978Network2020-12-22T14:49:02Z<p>Keroupav: /* Privátní adresy na default VLAN fjfi-*-def */</p>
<hr />
<div>Dokumemtace a pravidla k organizaci sítě na FJFI. Významné změny v tomto dokumentu musí být oznámeny v mailing listu správců IT na FJFI (comp@lists.fjfi.cvut.cz), aby bylo možné sladit konfigurace lokálních systémů (např. firewallu) v závislosti na úpravách konfigurace sítě.<br />
<br />
=Páteřní rozvody a zapojení=<br />
<br />
==Břehová==<br />
<br />
Plány rozmístění rozvaděčů a barevně obarvené místnosti podle připojení síťových (ethernetových) zásuvek do rozvaděčů:<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1pp.png s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1_2np.png 1/2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1np.png 0.patro] (přízemí)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-2np.png 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-3np.png 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-4np.png 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-5np_krov.png 4.patro] (půdní vestavba)<br />
* [http://nms.fjfi.cvut.cz/user/images/rozvadece-brehova/ Foto rozvaděčů podzim 2018]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Brehova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* telefonní ústředna<br />
** foto z místnosti 008 [https://nms.fjfi.cvut.cz/user/images/ustredna-br-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-3.jpg 3], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-4.jpg 4]<br />
<br />
==Trojanova==<br />
<br />
Dokumentace z FJFI archivu k překladu optických tras realizovaných v roce 2009 (nascanováno, obrovské ~ 10MB JPG soubory):<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1pp.jpg s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1np.jpg 0.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/2np.jpg 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/3np.jpg 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/4np.jpg 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_blokove.jpg blokové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_prehledove.jpg přehledové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technická zpráva]<br />
* [[Topologie|nákres rozmístění rozvaděčů]]<br />
* [http://nms.fjfi.cvut.cz/user/images/rozvadece-trojanova/ Foto rozvaděčů podzim 2018]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Trojanova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/Kabel_Trojanka_HK.pdf připojení HK]<br />
** přívod chráničky do budovy je v místnosti s117 (hlavní uzávěr vody)<br />
** SM kabel - PIRELLI Deskwave 053/2001 LOOSE UNITUBE 12 9/125 T/VM<br />
** MM kabel - 12vl.<br />
** MM kabel je v místnosti s117 naspojkován (dříve vedl do 112 ale nyní přeložen do 302)<br />
** SM kabel nebyl nikdy ze 112 přeložen (po rekonstrukcích 112 v létě 2015 by měl být stažen do s117)<br />
* připojení do ČVUT<br />
** přívod chráničky do budovy je v místnosti s128<br />
** FRNC Belden optical Fibre 2x50/125 + 14x9/125<br />
** tento kabel nevede až na karlák, je naspojkován a dál vedou jen 2vl. SM optiky<br />
** cestou do místnosti 302 je nastaven (+/- někde u výtahu)<br />
* hlavní rozvaděč optiky v 302<br />
** foto optického patch panelu [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-3.jpg 3]<br />
** [https://nms.fjfi.cvut.cz/data/tr-optika/protokol-optika-302-srv1.pdf měřící protokol pro MM spojení 302 se SRV1]<br />
* propojeni serveroven ve sklepě<br />
** mezi serverovnami SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3+4 natažena i metalika<br />
*** aktuálně jde o 2x CAT6 ethernet kabel<br />
** zadavatel měl dost nešťastný nápad rozvést pouze 2 páry optiky<br />
*** rozvedeny jsou nakonec 4 páry včetně koncovek (nutné odšroubovat víko)<br />
*** v optické vaně jsou nacvaknuty do SC-SC spojky pouze 2 páry<br />
*** pravděpodobně nebylo dost místa / pozic pro zapojení dalších konektorů<br />
** navíc byla použita aktuálně asi nehorší dostupná vlákna MM OM1<br />
*** SFP-10G-SR (33m) nefungují spolehlivě ani mezi SRV1 &lt;-&gt; SRV2<br />
*** pro spojení bude asi nutné pořizovat 2x dražší SFP-10G-LRM (220m)<br />
*** při přímém propatchování SRV302 &lt;-&gt; SRV2 nefungovali spolehlivě ani tyto lepší moduly<br />
** spojení serveroven je seriové SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3+4<br />
*** mezi SRV3 a SRV4 bude ve zdi průchod takže optika z rozvaděče v SRV4 půjde "napatchovat" k zařízením v SRV3<br />
*** jedno vlákno (nejvíce vpravo) mezi SRV1 &lt;-&gt; SRV2 je mrtvé<br />
** PLÁN rekonstrukce<br />
*** předelat udělat všechno do SM optiky<br />
*** rozmyslet se ve které místnosti bude centralní rozvod optiky<br />
*** z centrálního rozvodu mít vlakna do všech serveroven<br />
*** hodně vláken s minimálně 6ti páry připravenými v patch panelu na každé SRVx<br />
*** natáhnout opravdu hodně SM vláken do SRV302(?!)<br />
*** v posledních letech jsou stále populárnější v budovách pre-terminated kabely s MTO/MTP (multifiber) koncovkami<br />
*** existují MTO/MTP konektory s 2x, 4x, 8x, 12x, 24x až 72x vlákny, ale pro správnou kabeláž je jestě podstatné dostupné kazety<br />
*** běžné kazety mají 12 LC konektorů (vejsou se 3 to 1U), dají se sehnat i vysokohustotní kazety s 24 LC konektory<br />
<br />
==Trója==<br />
<br />
Připojení bylo až do 201606 realizováno routováním přes PASNET a připojením do jejich routeru v Tróji. Od 1.7.2016 je Trója připojena lambdou přímo do Dejvic (CWDM 1470nm) a to trasou přes UTIA. V Tróji je na serverovně (PASNETu) optika "z Dejvic" propatchovana do rozvaděče na chodbě L119 (optika je v patch panelu zakončena LC/PC konektory), kde je aktuálně 1Gb zapojena do [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=63755 MikroTik CCR1016-12S-1S+] (detaily viz. [https://lists.fjfi.cvut.cz/mailman/private/comp/2016/001510.html Zmena pripojeni lokality Troja (IPv6)]).<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Troja.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.pp.png těžké lab. 0.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.np.png těžké lab. 1.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-2.np.png těžké lab. 2.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-3.np.png těžké lab. 3.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-7.np.png KJCH 6. patro]<br />
<br />
==Děčín==<br />
<br />
Tato lokalita není připojená přímo do sítě ČVUT, ale [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=2665 routerem] CESNETu.<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Decin.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.pp.png 0. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.np.png 1. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-2.np.png 2. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-3.np.png 3. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-4.np.png 4. patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/vykresy-2017/000---mistnosti.xls místnosti]<br />
<br />
=Rozvaděče=<br />
{|class="wikitable"<br />
!colspan="5"|Umístění a značení rozvaděčů<br />
|-<br />
!Lokalita<br />
!Nové označení<br />
!Staré označení<br />
!Místnost<br />
!Comment<br />
|-<br />
|Břehová<br />
|DRS1<br />
|RS02<br />
|S148<br />
|<br />
|}<br />
<br />
=Značení kabeláže=<br />
<br />
=VLAN=<br />
<br />
ČVUT VIC prostupně přechází na globalní očíslování VLAN takovým způsobem, aby v se různých částech sítě nepoužívala stejná čísla VLAN (některým management nástrojům se takové konfigurace nezamlouvají). Z toho důvodu byl pro vnitřní potřeby FJFI přidělen rozsah VLAN 2400-2499. Některá starší (pochybnější) zařízení mohou mít problém s využítím takto vysokých čísel, v takovém případě bude nejlepší na nich žádné VLANy nekonfigurovat a budou se používat pouze pro netagovaný provoz.<br />
<br />
V následujících tabulkách je plán resp. dokumentace k využítí přidělených VLAN. První polovina přiděleného rozsahu je využita pro "standardní" VLANy (jejich jméno musí začínat prefixem <tt>fjfi-</tt>), které je vhodné mít vytvořené v každé budově FJFI a zbytek lze využít pro libovolné individuální VLANy (každé nově využité číslo VLAN z uvedeného rozsahu je zde nutné zdokumentovat). Pro Děčín je nutné tento plán brát dost s rezervou, jelikož tato lokalita není připojena přímo do ČVUT, ale je routována přímo CESNETem a lokální VLANy se nakonec mohou lišit.<br />
<br />
==Standardní VLANy==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2400-2439)<br/>(standardní VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<sup>*</sup><br />
!Břehová<br />
!Trojanova<br />
!Trója<br />
!Děčín<br />
!Status<br />
!Comment<br />
|-<br />
!fjfi-*-srv<br />
|2400<br />
|2410<br />
|2420<br />
|2430<br />
|active<br />
|Subnet pro servery<br />
|-<br />
!fjfi-*-def<br />
|2401<br />
|2411<br />
|2421<br />
|2431<br />
|active<br />
|Veřejná síť ("default VLAN" pro běžné počítače)<br />
|-<br />
!fjfi-*-mgmt-net<br />
|2402<br />
|2412<br />
|2422<br />
|2432<br />
|active<br />
|Management rozhraní síťových prvků (switch, router, ap, ...)<br />
|-<br />
!fjfi-*-mgmt-srv<br />
|2403<br />
|2413<br />
|2423<br />
|2433<br />
|active<br />
|Subnet pro management serverů (např. IPMI)<br />
|-<br />
!fjfi-*-sec<br />
|2404<br />
|2414<br />
|2424<br />
|2434<br />
|planed<br />
|Subnet pro zabezpečovací zařízeni (např. kamery, K4, ...)<br />
|-<br />
!fjfi-*-wifi<br />
|2405<br />
|2415<br />
|2425<br />
|2435<br />
|active<br />
|Wireless síť pro speciální příležitosti (např. samostatná konfigurace pro konference)<br />
|-<br />
!fjfi-*-eduroam<br />
|2406<br />
|2416<br />
|2426<br />
|2436<br />
|active<br />
|Wireless síť Eduroam<br />
|-<br />
!fjfi-*-wififjfi<br />
|2407<br />
|2417<br />
|2427<br />
|2437<br />
|active<br />
|Wireless síť s captive portálem<br />
|-<br />
!fjfi-*-voip<br />
|2408<br />
|2418<br />
|2428<br />
|2438<br />
|planed<br />
|Segment pro VoIP telefony<br />
|-<br />
!fjfi-*-fragile<br />
|2409<br />
|2419<br />
|2429<br />
|2439<br />
|active<br />
|Segment pro "nepočítačová" síťová zařízení (nepravidelné/neexistující updaty)<br />
|-<br />
!colspan="7"|U jmen VLAN je potřeba nahradit znak "*" zkratkou příslušné lokality (br/tr/vh/dp)<br />
|}<br />
<br />
==Standardní VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Detaily k rozdělení FJFI VLAN (2400-2439)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-eduroam<br />
|2416<br />
|active<br />
|tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Jeden subnet s veřejnými adresami <tt>147.32.11.0/24</tt> pro Eduroam síť v Trojance<br />
|}<br />
<br />
==Speciální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2440-2449)<br/>(speciální VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-kipl-nat<br />
|2444<br />
|active<br />
|tr<br />
|19.6.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-kipl-iso<br />
|2445<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN for private isolation (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-kipl1<br />
|2446<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-kipl2<br />
|2447<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-brtr-srv-clu<br />
|2448<br />
|active<br />
|br+tr<br />
|12.1.2015 FJFI<br />
|vokacpet<br />
|Public segment pro clusterování strojů mezi Trojankou a Břehovkou s dvěmi HSRP active/standby gateway<br />
|-<br />
!fjfi-brtr-srv-priv<br />
|2449<br />
|active<br />
|br+tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery v clusteru (DFS replikace)<br />
|}<br />
<br />
==Individuální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2450-2499)<br/>(individuální VLANy, pro uživatelské potřeby)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>(owner)<br />
!Admin<br />
!Comment<br />
|-<br />
!test_max_20_znaku<br />
|2450<br />
|test<br />
| --<br />
|2.6.2014 (KM)<br />
|vokacpet<br />
|Testovací záznam - tato VLAN není reálně nikde zkonfigurována, jméno VLAN musí být do 20 znaků (CISCO limit, stará SMC podporují max 12 znaků)!<br />
|-<br />
!fjfi-tr-km<br />
|2451<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kf<br />
|2452<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kj<br />
|2453<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kipl<br />
|2454<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kfe<br />
|2455<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kmat<br />
|2456<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kjch<br />
|2457<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kdaiz<br />
|2458<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-vh-kjr<br />
|2459<br />
|test<br />
|vh<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-ksi<br />
|2460<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-dekanat<br />
|2461<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-??-??<br />
|2462<br/>-<br/>2469<br />
|rezervace<br />
| --<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-aruba<br />
|2472<br />
|test<br />
|tr<br />
|15.6.2020<br />
|keroupav<br />
|Aruba, management AP<br />
|-<br />
!fjfi-tr-fjfinet<br />
|2475<br />
|test<br />
|tr<br />
|15.6.2020<br />
|keroupav<br />
|Aruba, WiFi fjfinet<br />
|}<br />
<br />
==K promyšlení==<br />
<br />
* VLANy pro subnety kateder, rozdělení +/- dle čísel kateder<br />
* VLANy pro privátní subnety kateder (nebo mít jen jeden "veřejný" privátní subnet?)<br />
* VLAN pro přístupové systémy pro karty (je možné provozovat na privátní síťi?)<br />
* VLAN pro přístup k datům zabezpečení (kamery)<br />
* VLAN pro serverovou DMZ<br />
* Prohodit číslování standardních VLAN pro Tróju a Děčín (stejné pořadí jako seřazené IP segmenty?)<br />
** jedinný Děčín je "externí" lokalita routovaná přímo CESNETem (nemáme plnou kontrolu nad lokálními čísly VLAN a IPv6 čísly subnetů)<br />
** pořadí lokalit tedy bude br/tr/vh/dp<br />
<br />
=IP=<br />
<br />
==Veřejné adresy==<br />
<br />
Následující tabulka obsahuje souhrné informace o veřejných IP adresách přidělených a využívaných na FJFI.<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Rozdělení veřejných IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Gateway<br />
!VLAN Name<br />
!Admin<br />
!Comment<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.4.0%2F24&location=br 147.32.4.0/24]<br />
|Břehová<br />
|147.32.4.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-1<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.5.0%2F24&location=br 147.32.5.0/24]<br />
|Břehová<br />
|147.32.5.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-2<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.6.0%2F23&location=tr 147.32.6.0/23]<br />
|Trojanova<br />
|147.32.6.1<br />
|fjfi-tr-def<br />
|sinormil<br />
|Subnet KFE + dynamicky přidělované veřejné IP<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.8.0%2F24&location=tr 147.32.8.0/24]<br />
|Trojanova<br />
|147.32.8.1<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet KM+KJ+KSI+Elsa<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.0%2F26&location=tr 147.32.9.0/26]<br />
|Trojanova<br />
|147.32.9.1<br />
|fjfi-tr-srv<br />
|vokacpet<br />
|Serverový subnet v tr<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.64%2F26&location=tr 147.32.9.64/26]<br />
|Břehová+Trojanova<br />
|147.32.9.65<br />
|fjfi-brtr-srv-clu<br />
|vokacpet<br />
|Serverový subnet pro clustery mezi br+tr (duální gateway active/standby přes HSRP)<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.128%2F26&location=br 147.32.9.128/26]<br />
|Břehová<br />
|147.32.9.129<br />
|fjfi-br-srv<br />
|vokacpet<br />
|Serverový subnet v br<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.192%2F26&location=tr 147.32.9.192/26]<br />
|Trojanova<br />
|147.32.9.193<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet speciální zařízení<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.0%2F25&location=tr 147.32.10.0/25]<br />
|Trojanova<br />
|147.32.10.1<br />
|fjfi-tr-def<br />
|kopripe1<br />
|Subnet KMAT<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.128%2F25&location=tr 147.32.10.128/25]<br />
|Trojanova<br />
|147.32.10.129<br />
|fjfi-tr-def<br />
|drabmart<br />
|Subnet KIPL<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.11.0%2F24&location=tr 147.32.11.0/24]<br />
|Trojanova<br />
|147.32.11.1<br />
|fjfi-tr-eduroam<br />
|vokacpet<br />
|Eduroam<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.22.0%2F24&location=dp 147.32.22.0/24]<br />
|Děčín<br />
|147.32.22.1<br />
|fjfi-dp-def<br />
|sumpepre<br />
|Veřejné adresy dp<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.25.0%2F24&location=vh 147.32.25.0/24]<br />
|Trója<br />
|147.32.25.1<br />
|fjfi-vh-def<br />
|fialaja2<br />
|Veřejné adresy vh<br />
|}<br />
<br />
===Veřejné adresy detaily===<br />
<br />
Většina veřejných adres je rezervována pro konkrétní zařízení. V každé budově FJFI existuje ale i určitý rozsah veřejných adres, které jsou přidělovány registrovaným zařízením bez rezervace konkrétní adresy (zvýrazněno modře v níže uvedené tabulce). V případě aktuálního vyčerpání těchto volně dostupných veřejných adresu budou dalším zařízením přidělovány privátní adresy z privátního rozsahu na téže VLAN <tt>fjfi-*-def</tt>. V konfiguraci registrace síťového zařízení lze specifikovat, že danému zařízení má být vždy přidělena privátní adresa a to i v případě, že pool veřejných adres ještě nebyl vyčerpán.<br />
<br />
Trvale připojená zařízení využívají veřejné adresy by měla mít zaregistrovánu rezervovanou adresu z rozsahu, který je přidělen organizační jednotce vlastnící dané zařízení (viz. tabulka). Zařízení tak bude mít garantovánu stalou veřejnou IP adresu a nebude se zbytečně zmenšovat pool s veřejnými adresami pro ostatní zařízeni, která se na FJFI síti vyskytují pouze občas. Pro běžná zařízení (počítače) je preferováno použití veřejných adres, jelikož při jejich použití není fungování síťového zařízení omezeno potencíálními problémy NATu (vyplývající z podstaty NATu, vytížení NATovacího zařízení případně jeho nedostupnosti) a lze jednodušeji řešit případné stížnosti týkající se konkrétní adresy.<br />
<br />
Existuje ale i skupina speciálních zařízení (např. tiskárny) u nichž je lepší použít privátní adresy. Provoz některých zařízení na veřených adresách totiž představuje bezpečnostní hrobu vzhledem k neexistujícím automatickým security updatům firmware a omezeným možnostem konfigurace zabezpečení. Takové zařízení by ideálně měla být na samostatné VLAN <tt>fjfi-*-fragile</tt>, ale vzhledem ke komplikovanému managementu sítě pro ně je zatím vyhrazen rozsah privátních adres z VLAN <tt>fjfi-*-def</tt> (viz. [[#Priv.C3.A1n.C3.AD_adresy_na_default_VLAN_fjfi-.2A-def|níže]]). Adresu z tohoto rozsahu lze jednoduše vybrat v rozhraní pro registrace síťových zařízení.<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení veřejných IP rozsahů (detaily)<br />
|-<br />
!IP rozsah<br />
!adresy<br />
!Comment<br />
|-<br />
!rowspan="3"|147.32.4.0/24<br />
!147.32.4.0-70<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.4.71-189</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.4.190-255<br />
|??<br />
|-<br />
!rowspan="2"|147.32.5.0/24<br />
!147.32.5.0-49<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.5.50-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="4"|147.32.6.0/24<br />
!147.32.6.2-99<br />
|vyhrazeno unixářům (Richard Liska, Milan Šiňor) <br />
|-<br />
!147.32.6.100-116<br />
|pclab T124 (Kerouš)<br />
!147.32.6.117-199<br />
|kanceláře, ... (Antonín Novotný)<br />
|-<br />
!147.32.6.200-254<br />
|InfoLab, kanceláře (Josef Blažej)<br />
|-<br />
!147.32.6.255<br />
|rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
|-<br />
!rowspan="2"|147.32.7.0/24<br />
!147.32.7.1-31<br />
|tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
|-<br />
!<span style="color: blue">147.32.7.32-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="8"|147.32.8.0/24<br />
!147.32.8.2-79<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.80-96<br />
|studovna 214<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
|-<br />
!147.32.8.97-109<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.110-149<br />
|KM učebny<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
|-<br />
!147.32.8.150-207<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
* 147.32.8.160/28 vyhrazeno pro KM cluster + VMware (stracpav)<br />
|-<br />
!147.32.8.208/28<br />
|KSI zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.224/28<br />
|KJ zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.240/28<br />
|Elsa<br />
|-<br />
!rowspan="4"|147.32.9.0/24<br />
!147.32.9.0/26<br />
|Server Trojanova<br />
|-<br />
!147.32.9.64/26<br />
|Server Břehová+Trojanova<br />
|-<br />
!147.32.9.128/26<br />
|Server Břehová<br />
|-<br />
!147.32.9.192/26<br />
|Různé<br />
* Virtuální desktopy<br />
* speciální zařízení (např. kartové systemy - K4 master + netmoduly)<br />
* není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
|-<br />
!rowspan="2"|147.32.10.0/25<br />
!147.32.10.0/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.10.128/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.11.0/24<br />
!147.32.11.0/24<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.22.0/24<br />
!<span style="color: blue">147.32.22.101-199</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.25.0/24<br />
!<span style="color: blue">147.32.25.102-219</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|}<br />
<br />
==Privátní adresy==<br />
<br />
Vzhledem k nedostatku veřejných IP adres bylo nutné začít využívat i privátní IP adresy. Ty jsou používany jak čistě interně (např. management), tak i pro běžný provoz s NATem aktuálně hlavně na WiFi sítích, kde si vzhledem k enormnímu nárůstu počtu zařízení není možné vystačit s dostupnými veřejnými adresami. Privátní IPv4 adresy jsou také používány pro neregistrovaná zařízení a automatický přístup k captive portálu na stránku s registrací.<br />
<br />
Bohužel se na "Jednání IT techniků ČVUT - 11.6.2015" dohodlo, že se privátní adresy nebudou routovat po ČVUT (resp. nedošlo ani k základní shodě na tom, jaké rozsahy by bylo možné použít s tím, že ostatní fakulty už využívají všechny dostupné privátní subnety). Tohle je podmínka (téměř - viz. RFC6598) nutná pro možnost zřízení globálního NATu, takže ani v budoucnu nelze očekávat poskytnutí této služby v rámci celého ČVUT. Další komplikací je využití privátních adres mezi různými lokalitami FJFI, kde je potřeba využít policy based routing a privátní adresy do druhé lokality dostat přes tunel resp. dedikovanou VLAN. Centrální L3 switche použité v FJFI lokalitách také mají relativně omezené možnosti konfigurace (nepodporují NAT, netflow, GRE tunely, malá TCAM pro PBR, ...).<br />
{|class="wikitable"<br />
!colspan="6"|Počet adres v podsítích dané velikosti<br />
|-<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
|-<br />
!/24<br />
|256<br />
!/21<br />
|2048<br />
!/18<br />
|16384<br />
|-<br />
!/23<br />
|512<br />
!/20<br />
|4096<br />
!/17<br />
|32768<br />
|-<br />
!/22<br />
|1024<br />
!/19<br />
|8192<br />
!/16<br />
|65536<br />
|}<br />
<br />
<br />
===Privátní adresy dle lokality===<br />
<br />
Pro centrálně spravované privátní adresy na FJFI je využíván rozsah <tt>172.16.0.0/12</tt> z nějž má každá lokalita přidělen jeden segment <tt>/16</tt> (~ 65k adres) a poslední subnet <tt>172.31.0.0/16</tt> se využívá ke speciálním účelům (např. spojovačky). Přidělený segment je dále dělen na subnety jejichž základní číslování je shodné v každé lokalitě (např. dle VLAN, využití, ...).<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení privátních IP rozsahů na FJFI po lokalitách<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Comment<br />
|-<br />
!10.0.0.0/8<br />
| --<br />
|Vyhrazeno pro potřeby ČVUT (sice to nebylo nikde oficiálně řečeno, ale je to jedinný privátní rozsah u nejž vzhledem k velikosti má smysl uvažovat o využití v rámci celého ČVUT)<br />
|-<br />
!172.16.0.0/16<br />
|Břehová<br />
|<br />
|-<br />
!172.17.0.0/16<br />
|Trojanova<br />
|<br />
|-<br />
!172.18.0.0/16<br />
|Trója<br />
|<br />
|-<br />
!172.19.0.0/16<br />
|Děčín<br />
|<br />
|-<br />
!172.31.0.0/16<br />
| --<br />
|Vyhrazeno pro speciální využití (např. spojovačky na privátní síti)<br />
|-<br />
!192.168.0.0/16<br />
| --<br />
|Adresy z tohoto rozsahu nebudou na FJFI nijak regulovány a jsou preferované pro uživatelské testovací resp. dočásné privátní sítě. Je na jejich správci, aby si vybral nepoužívaný rozsah v dané síti resp. VLAN, ale není zde zaručeno resp. monitorováno jestli jestli stejné adresy začne používat někdo další. Pro potřeby trvalého privátního adresované na FJFI síti je doporučeno dohodnout alokaci podsítě z odpovídajících 172.1x.0.0/16 rozsahů. Nědky může být vhodné použít adresování 172.1x.0.0/16 i např. pro clustery resp. sítě kompletně oddělené od zbytku infrastruktury (např. je lze pak zpřístupnit přes centrální VPN).<br />
|-<br />
!colspan="3"|Privátní rozsahy značené 172.<span style="color: blue">1x</span>.aaa.bbb budou dále znamenat adresy v libovolné lokalitě (br=<span style="color: blue">16</span>/tr=<span style="color: blue">17</span>/vh=<span style="color: blue">18</span>/dp=<span style="color: blue">19</span>)<br />
|}<br />
<br />
===Privátní adresy dle VLAN===<br />
<br />
Všechny standardní využívané VLAN budou mít přidělen určitý rozsah privátních adres. V závislosti na využití bude přizpůsobena konfigurace "Private routing" týkající se routování mezi lokalitami FJFI (žádné routování, routování přes tunel/VLAN nebo IPSec zabezpečené spojení), routování do světa skrz NAT a různé filtrování paketů "Private ACL" mezi privátními subnety. Jednotlivé subnety je dobré alokovat také s ohledem na to, jak komplikované bude případné přečíslování zařízení na daném subnetu.<br />
<br />
{|class="wikitable"<br />
!colspan="8"|Rozdělení privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!VLAN Name<br />
!NAT<br />
!Private<br/>routing<br />
!Private<br/>ACL<br />
!Komplikace<br/>přeadresování<br />
!Comment<br />
|-<br />
!colspan="8"|172.1x.0.0/17 - adresy pro globální využití ve všech lokalitách<br />
|-<br />
!172.1x.0.0/22<br />
|172.1x.0.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování serverů dostupných přímo ze všech lokálních sítí, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.4.0/22<br />
|172.1x.4.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.8.0/22<br />
|172.1x.8.1<br />
|fjfi-*-srv<br />
|yes<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN s IPSec zabezpečenou komunikací mezi FJFI lokalitami, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.12.0/22<br />
| --<br />
|fjfi-*-srv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze z lokální VLAN (žádné routování či NAT)<br />
|-<br />
!172.1x.16.0/22<br />
|172.1x.16.1<br />
|fjfi-*-mgmt-net<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu síťových prvků (switche) dostupné pouze z mgmt-net VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.16.0/23<br />
|-<br />
!172.1x.20.0/22<br />
|172.1x.20.1<br />
|fjfi-*-mgmt-srv<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu serverů (IPMI, RAID controller, UPS, ...) dostupné pouze z mgmt-srv VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.20.0/23<br />
|-<br />
!172.1x.24.0/22<br />
|172.1x.24.1<br />
|fjfi-*-fragile<br />
|yes/no<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování pro samostatný subnet "nedůvěryhodných" zařízení (např. tiskárny, specializovaná zařízení bez pravidelných security update, ...), komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.24.0/23<br />
|-<br />
!172.1x.28.0/24<br />
|172.1x.28.1<br />
|fjfi-brtr-srv-clu<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.28.0/24)<br />
|-<br />
!172.1x.29.0/24<br />
| --<br />
|fjfi-brtr-srv-clu<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.29.0/24)<br />
|-<br />
!172.1x.30.0/24<br />
|172.1x.30.1<br />
|fjfi-brtr-srv-priv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.30.0/24)<br />
|-<br />
!172.1x.31.0/24<br />
| --<br />
|fjfi-brtr-srv-priv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.31.0/24)<br />
|-<br />
!172.1x.32.0<br/>-<br/>172.1x.51.255<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
|Rezervováno pro budoucí "globální využití"<br />
|-<br />
!172.1x.52.0/24<br/>172.1x.53.0/24<br />
|172.1x.52.1(*)<br/>172.1x.53.1(*)<br />
|VPN<br/>test<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro L2TP, PPTP, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.52.0/24 - PPTP server na nms-xx.fjfi.cvut.cz<br />
* 172.1x.53.0/24 - L2TP server na nms-xx.fjfi.cvut.cz<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.54.0/24<br/>172.1x.55.0/24<br />
|172.1x.54.1(*)<br/>172.1x.55.1(*)<br />
|OpenVPN<br/>admin<br />
|yes<br />
|default<br />
| --<br />
|malé<br />
|Privátní adresování pro admin OpenVPN klienty s přímým přístupem do sítě včetně privátních, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.54.0/24 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.55.0/24 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.56.0/22<br/>172.1x.60.0/22<br />
|172.1x.56.1(*)<br/>172.1x.60.1(*)<br />
|OpenVPN<br/>user<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro OpenVPN klienty, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.56.0/22 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.60.0/22 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.64.0/20<br />
|172.1x.64.1<br />
|fjfi-*-def<br />
|yes(*)<br />
|default<br />
|permit(*)<br />
|velké(*)<br />
|Privátní adresy na default VLAN (lokální síť v budově), detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-def]]<br />
|-<br />
!172.1x.80.0/20<br />
|172.1x.80.1<br />
|fjfi-*-wifi<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní rozsah pro speciální WiFi sítě, které mohou mít speciální konfiguraci např. pro konference, ...<strike>Rezervováno pro případné budoucí speciální požadavky na fjfi-*-def VLAN nebo rozšíření adresního prostoru na této VLAN</strike><br />
|-<br />
!172.1x.96.0/20<br />
|172.1x.96.1<br />
|fjfi-*-eduroam<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť Eduroam, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-eduroam]]<br />
|-<br />
!172.1x.112.0/20<br />
|172.1x.112.1(*)<br />
|fjfi-*-wififjfi<br />
|yes(*)<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť WiFiFJFI, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-wififjfi]], tato síť používá vlastní gateway pro řízení přístupu pomocí captive portálu a zařízení na ní nejsou z vnějšku dostupná.<br />
|-<br />
!colspan="8"|172.1x.128.0/18 - adresy pro lokální využití v konkrétní lokalitě lokalitě<br />
|-<br />
!colspan="8"|172.16.128.0/18 - Břehová<br />
|-<br />
!?rezervace?<br/>172.16.128.0/22<br />
|172.16.128.1(*)<br />
|fjfi-br-kf-private<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro síť KF s NAT a gateway zajištěnou [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=38061 vlastním zařízením]<br />
|-<br />
!colspan="8"|172.17.128.0/18 - Trojanova<br />
|-<br />
!?rezervace?<br/>172.17.128.0/22<br />
|172.17.128.1(*)<br />
|fjfi-tr-hyperion<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro KM+KIPL hyperion cluster s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=24149 NAT a gateway]<br />
|-<br />
!?rezervace?<br/>172.17.132.0/22<br />
|172.17.132.1<br />
|"xen-vdi"<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování pro Xen virtualizované desktopy, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!colspan="8"|172.18.128.0/18 - Trója<br />
|-<br />
!colspan="8"|172.19.128.0/18 - Děčín<br />
|-<br />
!colspan="8"|172.1x.192.0/18 - rezervováno<br />
|-<br />
|colspan="8"|Adresy pro lokální využití v konkrétní lokalitě rezervované pro případ, že dojde k L2 segmentaci sítě podle příslušnosti k různým součástem FJFI<br />
|}<br />
<br />
<br />
====Privátní adresy na default VLAN <tt>fjfi-*-def</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.64.0/20 na default VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.64.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
* 172.18.71.0/24 je v Tróji využíváno pro privátní adresování (měřících) zařízení KJR (humlond)<br />
|-<br />
!172.1x.72.0/22<br />
| --<br />
| --<br />
|vokacpet<br />
|unused<br />
|-<br />
!172.1x.75.0/24<br />
| --<br />
| yes<br />
|vokacpet<br />
keroupav<br />
|Adresy vyhrazené pro VPN klienty (vpn.fjfi.cvut.cz)<br />
|-<br />
!172.1x.76.0/23<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro "nepočítačová" zařízení (např. tiskárny)<br />
|-<br />
!172.1x.78.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro servery (např. printserver pro komunikaci na tomto subnetu)<br />
|-<br />
!172.1x.79.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným, smazaným a neregistrovaným zařízením<br />
|}<br />
<br />
====Privátní adresy na eduroam VLAN <tt>fjfi-*-eduroam</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.96.0/20 na eduroam VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.96.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.110.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.111.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným (smazaným) zařízením<br />
|}<br />
<br />
====Privátní adresy na wififjfi VLAN <tt>fjfi-*-wififjfi</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.112.0/20 na wififjfi VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.112.0/21<br />
|dynamic+reserved<br />
|auth<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.126.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.127.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným zařízením<br />
|}<br />
<br />
===Individuální rozsahy privátních adres===<br />
<br />
Využití těchto adres není nijak regulováno, takže zde neexistují žádné překážky k jejich použití ale na druhou stranu se také nelze spolehnout na to, že stejné adresy nezačne používat někdo další. V níže uvedené tabulce je (nekompletní) seznam aktuálně používaných adres z 192.168.0.0/16 rozsahu. Bylo by vhodné zvážit jestli do budoucna nezačít využívat rezervované subnety z 172.1x.0.0/16 rozsahů.<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení individuálních privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!Public<br />
!VLAN Name<br />
!OU<br />
!Admin<br />
!Comment<br />
|-<br />
!192.168.x.0/24<br />
|192.168.x.1<br />
|147.32.x.y<br />
|None<br />
|KIPL<br />
|drabmart<br />
|Privátní adresy pro KM+KIPL cluster<br />
|-<br />
!192.168.3.0/24<br />
|192.168.3.1<br />
|147.32.4.13<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF - kanceláře<br />
|-<br />
!192.168.11.0/24<br />
|192.168.11.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|-<br />
!192.168.20.0/24<br />
|192.168.20.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|}<br />
<br />
=IPv6=<br />
<br />
ČVUT přiděluje standardně <tt>/56</tt> rozsahy (lze použít pro vytvoření 256 podsítí) pro lokality připojené přes Dejvice ze přiděleného IPv6 rozsahu <tt>2001:718:2::/48</tt>. Bohužel vzhledem ke způsobu routování IPv6 není možné používat adresy z "dejvického" rozsahu v ostatních lokalitách (CESNET to ve své síti nepodporuje, tj. např. v Tóji a Děčíně), tam bude využit jiný rozsah přidělený ČVUT a routovaný Pasnetem resp. CESNETem.<br />
<br />
==IPv6 adresy dle lokality==<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI po lokalitách<br/>(FJFI IPv6 rozsahy 2001:718:2:1800::/54)<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Admin<br />
!Comment<br />
|-<br />
!2001:718:2:<span style="color: blue">17</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený na FJFI (včetně DNS reverzů, bude vrácen VICu po alokaci "1b")<br />
|-<br />
!2001:718:2:<span style="color: blue">18</span>00::/56<br />
|Břehová<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">19</span>00::/56<br />
|Trojanova<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">1a</span>00::/56<br />
|Trója<br />
|vokacpet<br />
|Veřejné adresy (aktuálně nevyužitý rozsah nazvaný FJFI test, čeká na novou serverovnu PASNETu v Tróji)<br />
|-<br />
!2001:718:2:<span style="color: blue">1b</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený FJFI ČVUT (pro "hezčí" FJFI IPv6 netmask)<br />
|-<br />
!??<br />
|Děčín<br />
|vokacpet<br />
|Veřejné adresy (další ČVUT adresy přidělené z routovatelného rozsahu CESNET)<br />
|}<br />
<br />
==IPv6 adresy dle VLAN==<br />
<br />
Každá VLAN přidělená FJFI má standardně přiřazen jeden IPv6 subnet <tt>/64</tt> z přiděleného rozsahu <tt>/56</tt> (256 možných <tt>/64</tt> subnetů). Příslušné číslo FJFI VLAN-2400 (tj. hodnoty v intervalu 0-99) budou přímo součástí IPv6 adresy na pozici 56-63. Vyjímkou je prvních 40 rezervovaných VLAN u nichž se používá pouze poslední číslice.<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI podle VLAN<br />
|-<br />
!IP rozsah<br />
!VLAN ID<br />
!VLAN Name<br />
!Comment<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">0</span>::/64<br />
|24?<span style="color: blue">0</span><br />
|fjfi-*-srv<br />
|Subnet pro servery<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">1</span>::/64<br />
|24?<span style="color: blue">1</span><br />
|fjfi-*-def<br />
|Veřejná síť ("default VLAN" pro běžné počítače) <br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">9</span>::/64<br />
|24?<span style="color: blue">9</span><br />
|fjfi-*-fragile<br />
|Segment pro "nepočítačová" síťová zařízení<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">48</span>::/64<br />
|24<span style="color: blue">48</span><br />
|fjfi-brtr-srv-clu<br />
|Public segment mezi Trojankou a Břehovkou s duální gateway přes HSRP<br />
|-<br />
!2001:718:2:xx<span style="color: blue">49</span>::/64<br />
|24<span style="color: blue">49</span><br />
|fjfi-brtr-srv-priv<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a0</span>::/64<br/> -- <br/>2001:718:2:xx<span style="color: blue">ff</span>::/64<br />
| --<br />
| --<br />
|Rezervováno pro budoucí/speciální využití<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a?</span>::/60<br />
|colspan="2"|Static route to OpenVPN server<br />
|OpenVPN IPv6 network<ul><br />
<li>...<span style="color: blue">a0</span>::/64 - openvpn.fjfi.cvut.cz:1194/udp</li><br />
<li>...<span style="color: blue">a1</span>::/64 - openvpn.fjfi.cvut.cz:1194/tcp</li><br />
<li>...<span style="color: blue">a2</span>::/64 - openvpn.fjfi.cvut.cz:443/udp</li><br />
<li>...<span style="color: blue">a3</span>::/64 - openvpn.fjfi.cvut.cz:443/tcp</li><br />
<li>...<span style="color: blue">a4</span>::/64 - openvpn.fjfi.cvut.cz:53/udp</li><br />
<li>...<span style="color: blue">a5</span>::/64 - openvpn.fjfi.cvut.cz:53/tcp</li><br />
<li>...<span style="color: blue">a6-af</span>::/64 - reserved</li><br />
</ul><br />
|}<br />
<br />
==Využití IPv6 adres v rámci <tt>/64</tt> subnetů==<br />
<br />
Každý subnet na IPv6 má prakticky vzato "neomezené" množství IPv6 adres. Lze tedy zavést další jemnější dělení těchto subnetů, aby bylo možné pro určité skupiny počítačů specifikovat například různá firewall pravidla (např. omezení přístupu na tiskárny pouze z IPv6 adres ČVUT). Nevyužité (zde nedefinované) části <tt>/64</tt> subnetů budou mít standardně zakázanou jakoukoliv komunikaci přímo na fakultním routeru.<br />
<br />
Navíc pro IPv6 nebudou v principu existovat dynamicky přidělované adresy jako je tomu na IPv4, kde je nutné recyklovat omezený adresní prostor. Všechna registrovaná zařízení (síťová rozhraní) budou mít statickou rezervaci konkrétní IPv6 adresy resp. jeji <tt>/64</tt> suffix, který tak bude stejný při připojení zařízení ve všech lokalitách (pro běžné uživatelské subnety jako např. <tt>def</tt>, <tt>eduroam</tt> a <tt>wififjfi</tt> VLAN). Takto přidělená adresa navíc nebude v budoucnu recyklována pro jiné uživatelské zařízení (existují vyjímky, jako např. servery u nichž je změna adresy občas nežádoucí). V případě potřeby je možné u existujícího zařízení smazat aktuální IPv6 adresu a nechat vygenerovat novou.<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-srv===<br />
<br />
* změny ve využití adres jsou u serverů velice komplikované<br />
** konfigurace sítě je na serverech statická (nepoužívají DHCP)<br />
** pro použité adresy může mít řada zařízení (nejen na tomto segmentu) zkonfigurována různá pravidla (např. firewall)<br />
** pokud se neobjeví ''závažné nedostatky'' aktuálního plánu (např. nové standardy) tak jsou adresy přiděleny navždy<br />
* aktuálně budou využívány pouze adresy z rozsahu 2001:718:2:1x00::/96<br />
* doporučený formát IPv6 addres<br />
*# IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x00::147.32.9.17) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x00::17)<br />
*# adresy z rosahu 2001:718:2:1x00::0001:0000-2001:718:2:1x00::00ff:ffff (~ 2^24 adres)<br />
*# registrační GUI bude automaticky generovat neobsazené IPv6 adresy ze správných rozsahů<br />
*# libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)<br />
* jeden server může mít zároveň přiděleno více aktivních IPv6 adres<br />
* je možné alokovat samostatný rozsah IPv6 adres pro skupinu počítačů<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru<br />
** aktuálně neexistují žádné předdefinované skupiny<br />
*** lze si představit např. skupiny dle OS (pro jednodušší psaní filtrů na aktuálně zneužívané chyby)<br />
*** také skupiny dle orgaizačních jednotek pro omezení komunikace na vlastní servery<br />
*** teprve praktické používání IPv6 ukáže reálné potřeby<br />
** využití skupin zde musí být zdokumentováno<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-srv</span> (2001:718:2:xx<span style="color: DarkGreen">00</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">00</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Standardní IPv6 rozsah serverů<br />
|}<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-def===<br />
<br />
* změny ve využití adres mohou být relativně jednoduché při dodržování následujících zásad<br />
** zařízení budou pro IPv6 konfigurace využívat výhradně router advertisementy + stavové DHCPv6<br />
*** vzhledem k nerecyklování IPv6 adres je možné nastavit velice dlouhý lease time<br />
*** nelze použít "nekonečno" jinak bychom přidělenou adresou v budoucnu nebyly schopni změnit<br />
*** maximální lease time tedy bude jeden měsíc<br />
** manuální konfigurace je silně nedoporučena<br />
*** pokud se rozhodneme změnit IPv6 adresování tak může dojít k problémům<br />
*** z hlediska správce IPv6 rozsahu je to problém čistě uživatele, který nedbal doporučení a nebude na něj brán ohled<br />
* podobně jako u serverové VLAN <tt>fjfi-*-srv</tt> bude možné zařízení zařazovat do skupin<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru (např. omezení komunikace po ČVUT pro tiskárny)<br />
** využití skupin zde musí být zdokumentováno<br />
* jedno zařízení může mít zároveň přiděleno více aktivních IPv6 adres<br />
* doporučený formát IPv6 addres (pouze správce sítě může s rozumným důvodem využít jinou než první možnost)<br />
*# registrační GUI bude [[Registrace_MAC#Pravidla pro automatické vytváření rezervovaných adres|automaticky generovat neobsazené IPv6 adresy ze správných rozsahů]]<br />
*# <strike>IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x01::147.32.8.52) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x01::852)</strike><br />
*# <strike>adresy z rosahu 2001:718:2:1x01::0001:0000-2001:718:2:1x01::00ff:ffff (~ 2^24 adres)</strike><br />
*# <strike>libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)</strike><br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-def</span> (2001:718:2:xx<span style="color: DarkGreen">01</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!colspan="4"|Adresy pro standardní a speciální rozsahy 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/88<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální IPv6 rozsah pro běžná zařízení (ručně přidělované adresy, např. 2001:718:2:1901::852), preferované jsou ale níže uvedené rozsahy s konkrétním účelem (dle typu zařízení, organizační jednotky, ...)<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy (nutné pro zařízení, které byli primárně registovany pro jinou lokaci)<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">2</span>::/96<br/>-<br/>2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">f</span>::/96<br />
|vokacpet<br />
|Rezervovaný rozsah pro budoucí využití<br />
|-<br />
!fragile<br/>printer<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro tiskárny s omezením komunikace po ČVUT<br />
|-<br />
!restricted<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací pouze přes http/https (+ lokální DNS)<br />
|-<br />
!restricted<sup>2</sup><br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací jen na vyhrazené lokální servery (adresy pro blokované, neregistrované, zlobivé, ... zařízení). Zatím by taková zařízení nemusela dostávat žádnou IPv6 adresu a do příslušná omezení a informační stranky by se zobrazili na základě přidělené IPv4 adresy.<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">??</span>::/96<br />
| --<br />
|Skupina zařízení s omezeními dle uživatelských požadavků - návrhy?<br />
|-<br />
!colspan="4"|Adresy vyhrazené pro zařízení kateder 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/88<br />
|-<br />
!ČVUT<br/>FJFI<br/>Other<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení ČVUT, FJFI a Ostatní<br />
|-<br />
!KM<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">101</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KM<br />
|-<br />
!KF<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">102</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KF<br />
|-<br />
!KJ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">103</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJ<br />
|-<br />
!KIPL<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">104</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KIPL<br />
|-<br />
!KFE<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">105</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KFE<br />
|-<br />
!KMAT<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">106</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KMAT<br />
|-<br />
!KJCH<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">107</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJCH<br />
|-<br />
!KDAIZ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">108</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KDAIZ<br />
|-<br />
!KJR<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">109</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJR<br />
|-<br />
!KSI<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10a</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KSI<br />
|-<br />
!CRRC<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10b</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení CRRC<br />
|-<br />
!Elsa<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10c</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Elsa<br />
|-<br />
!Děkanát<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10d</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Děkanátu<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-eduroam===<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* blokovaná zařízení nedostanou od DHCPv6 přidělenou IPv6 adresu<br />
** převedeno na problém samotného IPv4 a blokovaných zařízení, který je již vyřešen<br />
** aktuálně tedy nemáme plnou podporu IPv6 only zařízení, ale jen v případě ojedinělých případů blokace<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-eduroam</span> (2001:718:2:xx<span style="color: DarkGreen">06</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální rozsah (ručně přidělované/rezervované adresy), žádné restrikce<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy, minimální restrikce<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-wififjfi===<br />
<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* konfigurace by měla fungovat tak, aby klient mohl nakonec využívat nativní IPv6 konektivitu bez dalšího (linuxového) routeru (NAT) na cestě<br />
* zbývá dořešit technické detaily autentizace na captive portálu a také blokovaná (neregistrovaná a smazaná) zařízení<br />
** neautentizovaná zařízení dostanou pouze IPv4 adresu a budou tak mít přístup ke captive portálu<br />
** DHCPv6 bude defaultně zkonfigurováno, aby zařízením neposkytlo IPv6 adresu do té doby než je uživatel uspěšně ověřen<br />
** po autentizaci přes captive portál na IPv4 modifikovat dynamicky konfiguraci DHCPv6 a povolit přidělení adresy s lease time ~ 1hodina<br />
*** asi to je možné řešit přes DHCPv6 classes, ale ty nejsou podporovány v ISC DHCP 4.2.5, který je součástí CentOS7<br />
*** nebude fungovat pro IPv6 only zařízení (to tu aktuálně vůbec neřešíme a v budoucnu se uvidí co bude možné např. s 6to4 překlady adres)<br />
<br />
=Firewall=<br />
[[Blokované porty]]<br />
<br />
=Provozní poznámky=<br />
<br />
* SMC8626<br />
** nejnovější firmware v1.4.0.8 je nestabilní (pro multicast a mam pocit že docházelo i k odpadnutí managementu)<br />
** aktualni firmware v1.1.0.2 nelze managovat přes VLANu (jinou než 1), kdy je na daném portu zároveň zapnutý <tt>spanning-tree edge-port</tt>, jelikož po restartu se nelze k managementu připojit dokud se nevytáhne a vrátí zpět ethernetový kabel => uplink nesmí mít tuhle volbu zapnutou<br />
<br />
=Upgrade 2020=<br />
<br />
Konfigurace sítě a routování na FJFI neodpovídá doporučením a není možné případné problémy řešit s podporou. Aktuálně máme velice jednoduchou, ale nestandardní konfiguraci s jednou VLAN do níž se routuje více subnetů pro všechna uživatelská zařízení připojená v dané lokalitě / budově. Je potřeba toto nepodporované řešení opustit, ale to nezbytně povede k nutnosti provozu více VLAN a s tím souvisejícími požadavky na konfiguraci access switchů při zachování flexibility v zapojování uživatelských zařízení. Při designu nové topologie je potřeba zohlednit i bezpečnostní hledisko a možnosti obrany lokální sítě proti neregistrovaným i registovaným zařízení. Lokální řešení pro [[Registrace MAC|registraci MAC]] ale i [[Arpmon|monitoring]] by měli být nahrazeny lepšími prostředk<br />
<br />
==Testování 10Gb na MM OM1 optice v lokalitě Trojanova==<br />
<br />
Původní optické trasy byly až do roku 2006 ukončeny v místnosti 112 a byly postaveny na MM optice (bez označení, ale pravděpodobně OM1 jelikož se jedná o 62.5um) a používali ST konektory. Při přeložení optiky do serverovny 302 byly některé trasy zachovány / přeloženy tak aby se využili stávající ukončení v něterých rozvaděčích. Optika z 2006 je postavena na OM1 s SC konektory a detaily tohoto projektu jsou uvedeny v příslušné [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technické zprávě]. Některá označení na patch panelech pro staré trasy (např. v rozvaděči DR5.1) mohou být zavádějící jelikož vlákna stažená ze 112 byla využita pro vytvoření nových tras.<br />
<br />
Běžné 10GBASE-SR/SW moduly pro MM optiku pracující s vlnovou délkou 850nm nemají dostatečný dosah po OM1 optice (~ 33m), ale existují i speciální 10GBASE-LRM na 1310nm s nimiž lze dle specifikace na OM1 optice dosáhnout až do vzdálenosti 220m při využití mode condition patch kabelů. V lokalitě Trojanova jsou sice všechny trasy do ~ 150m, ale některé mají na cestě až dva rozvaděče v nichž je patch kabel propojující příslušné trasy.<br />
<br />
Výsledky měření (dle datasheetu mají LRM moduly citlivost mezi -6.0dBm až -12.5dBm v závislosti na výrobci, naše nové moduly maji -12.5dBm):<br />
<br />
{| class="wikitable"<br />
!colspan="5"|Výsledky měření 10Gb na MM OM1 s 10GBASE-LRM<br />
|-<br />
!Rozvaděč<br/>(místnost)<br />
!testovaný pár<br />
!signál<br>302 [dBm]<br />
!signál<br>DRx [dBm]<br />
!poznámka<br />
|-<br />
!DRS (s102)<br />
|2<br />
| -5.1<br />
| -6.6<br />
|<br />
|-<br />
!DR10 (010, KM)<br />
|2<br />
| -5.0<br />
| -6.9<br />
|<br />
|-<br />
!DR13 (048, KJ)<br />
|2<br />
| -4.9<br />
| -6.1<br />
|nepoužívaná stará ST optika<br />
|-<br />
!DR4 (105, KM+ELSA)<br />
|2<br />
| -5.0<br />
| -6.6<br />
|<br />
|-<br />
!DR8 (112, KM)<br />
|2<br />
|?<br />
| -6.0<br />
|signál na straně 302 nebyl měřen<br />
|-<br />
!DR3 (115, KM)<br />
|2<br />
| -5.3<br />
| -6.6<br />
|<br />
|-<br />
!DR11 (122, KFE)<br />
|2<br />
| -5.1<br />
| -6.5<br />
|stará ST optika<br />
|-<br />
!DR12 (132, KFE)<br />
|2<br />
| -6.3<br />
| -5.1<br />
|nepoužívaná stará ST optika<br />
|-<br />
!DR5.1 (213a)<br />
|2<br />
|?<br />
|?<br />
|neměřen, stará ST optika s SC-ST patch v DR5.1<br />
|-<br />
!DR14 (224, KIPL)<br />
|2<br />
| -5.2<br />
| -6.5<br />
|nepoužívaná stará ST optika<br />
|-<br />
!DR16 (238, KFE)<br />
|3<br />
| -5.2<br />
| -6.4<br />
|žádný signál pro druhý pár vláken, stará ST optika<br />
|-<br />
!DR15 (321, KIPL+KFE+KMAT)<br />
|3<br />
| -5.0<br />
| -6.5<br />
|druhý pár vláken 3DR1 a 4DR1 nefunguje (útlum dobrý, ale žádný link), stará ST optika<br />
|-<br />
!DR6.3 (360, KMAT)<br />
|2<br />
|NA<br />
|NA<br />
|zrušen/nepoužíván<br />
|-<br />
!DR6.2 (384, KIPL)<br />
|1<br />
|?<br />
| -8.7<br />
|testována stávajicí trasa (SC-ST patche v DR5.1, ST-ST v DR6.1)<br />
|-<br />
!DR41 (409, půda)<br />
|2<br />
|?<br />
| -5.5<br />
|signál na straně 302 nebyl měřen<br />
|-<br />
!DR42 (446, půda)<br />
|2<br />
|?<br />
|?<br />
|neměřen<br />
|-<br />
|}<br />
Dále byla měřena trasa mezi DR15 a serverovnou S1, do níž vybraná trasa fungovala. Když jsme navíc přidali ještě trasu do S3, tak jsme s použitými SFP+ moduly již nedostali link. Po vyzkoušení trasy 302 - S1 - S3 se switche opět spojili, takže se zdá že delší trasy s více spoji není možné vytvořit.<br />
<br />
Závěr z tohoto měření je tedy takový, že na stávající MM OM1 optice v Trojance je možné provozovat 10Gb trasy, ale to je také limit současné infrastruktury. Bylo by vhodné připravit projekt výměny této staré optiky za SM, aby bylo možné v budoucnu provozovat i vyšší rychlosti v okamžiku, kdy vznikne potřeba 10Gb přístupových prvků u nichž je uplink se stejnou rychlostí nedostatečně dimenzovaný (např. 10Gb v počítačové učebně by mohl zpřístupnit nové způsoby využití). Připravený projekt by pak bylo možné ihned realizovat až nastane vhodná situace.<br />
<br />
==Topologie==<br />
<br />
==Firewall (HW)==<br />
<br />
==Core switch/L3 router==<br />
<br />
==Access switch==<br />
===Současný stav===<br />
Aktuálně provozovaná přístupová síť (ethernetové zasuvky v kancelářích, ale i veřejně přístupných prostorách) je svým designem a bohužel často i použitými aktivními prvky na úrovni roku 2000. V posledních dvaceti letech došlo k vývoji a to nejen v propustnosti, ale hlavně v možnostech jak zajistit spolehlivější a bezpečnejší přístupovou síť pro zařízení používající jak IPv4 tak i IPv6 adresy. Na stávající síti je velice jednoduché způsobit výpadek a to jak záměrně tak i omylem s omezenými možnostmi takové problémy monitorovat a bez účinných nástrojů jim bránit. Lokální síť je navíc prakticky téměř jeden velký L2 subnet, což není vhodná konfigurace z mnoha důvodů včetně nepodporované konfigurace routování.<br />
<br />
Současná heterogenní infrastruktura neposkytuje jednotné funkce pro řízení přístupu do sítě, které je tak postaveno na ne příliš sofistikovaném lokálním řešení. To se skládá z komponenty pro [[Registrace_MAC|registraci síťové adresy]] využívající konfiguraci DHCP serveru a jednoduchého [[Arpmon|monitoringu]] zařízení komunikujících na lokální síti. Obslužný software byl před více než deseti lety vytvořen na míru infrastruktuře s nulovými požadavky na funkce aktivních prvků a není vhodný pro síť postavenou na nových aktivních prvcích poskytujících zabudované funkce pro konfiguraci, zabezpečení, správu a monitoring.<br />
<br />
===Cílový stav===<br />
Přístupová síť splňující široké spektrum současných, ale pokud možno i budoucích požadavků (připravujeme řešení vhodné pro další dekádů) vyplývajících z charakteru různorodých způsobů využití moderní síťové infrastruktury navíc v podmínkách akademické instituce. Je nutné zaměřit se více na bezpečnost (spolehlivost), ale při zachování jednoduchého dostatečně flexibilního připojení pro běžné uživatele a bez neúměrného nárůstu nároků na konfiguraci a správu. Vybudovaná síť musí poskytovat i vhodné nástroje pro monitoring, detekci a řešení problémů.<br />
<br />
===Způsoby využití přístupové sítě===<br />
<br />
<br />
=== Další zatím nezařazené/nezpracované poznámky===<br />
* [http://kmlinux.fjfi.cvut.cz/~vokacpet/tmp/public/FJFI-IT-20200811 dalsi poznamky]<br />
* stávající stav: [[Arpmon]], [[Registrace_MAC]]<br />
* 802.11x pro "MAC based VLAN"<br />
* automatické zařazení zařízení do VLAN k niž je registrované<br />
* není nutná žádná speciální konfigurace jednotlivých portů správcem, když si uživatel v kanclu přehodi tiskárnu mezi zásuvkami - vše je okamžitě funkční<br />
* konfigurace je uložena na Radius serveru<br />
* nutné zajistit vysokou spolehlivost této služby (zařízení podporují konfiguraci více Radius serveru)<br />
* více kritické než nefunkční DHCP, protože oprava je výhradně v rukou správce Radius serveru případně síťových prvků<br />
* nelze jako u DHCP spustit "alternativní" Radius server nebo provést nějakou statickou lokální konfiguraci<br />
* běžně existuje několik variant jak se takto označený port chová<br />
* možné připojit pouze jedno konkretní zařízeni - v našich podmínkách nepoužitelné např. s ohledem na kancelářský stolní switch resp. použití virtualních mašin s bridgovanou sítí<br />
* libovolné jedno schválene zařizení nastaví port pro všechno do jedné VLAN - uplně nepoužitelné vzhledem k "nepředvidatelnému chování" v případě více zařízení registrovaných do různých VLAN<br />
* každé zařízení bude individuálně přířazeno do jemu odpovídající VLAN na základě MAC adresy<br />
* není podporováno zdaleka všemi aktivními prvky (staré CISCO 2950 mám pocit neumělo)<br />
* limity na počet takto připojených zařízení (staré Junipery takhle umožňovali připojit jen jednotky zařízení na port)<br />
* (volitelně) možnost nasadit 802.11x včetně autentizace - možnost VLAN/subnetu kam se opravdu nikdo s cizím zařízením nedostane (např. personalní/finanční/...)<br />
* Guest VLAN pro neregistrovaná zařízení<br />
* možnost integrace s captive portálem umožňujícím lokálním/ČVUT uživatelům (SSO Shibboleth nebo OAuth) registraci bez nutnosti kontatování správce<br />
* možnost delegovat registraci na zaměstnance (přijede host a odešle v captive portálu mail/SMS(?) lokálnímu zaměstnanci, který jeho zařízení schválí)<br />
* ? možnost privátních VLAN (zařízení ve stejném subnetu nemohou komunikovat mezi sebou navzájem)<br />
* IPv4<br />
* DHCP Snooping<br />
* dynamic ARP inspection (?)<br />
* obrana proti ARP flodingu (stadardy?)<br />
* IPv6<br />
* RA Guard<br />
* ??? DHCPv6 ???<br />
* obrana proti flodingu (standardy?)<br />
* Monitoring<br />
* nemám zcela jasno co vše je dobré monitorovat<br />
* určitě pro troubleshooting bude nutné mít relevantní údaje o chování 802.11x<br />
* minimálně by se hodily SNMP trap pro všechny MAC asociované s portem (kdy se objevila a kdy zmizela)</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Network&diff=3956Network2020-06-15T15:00:42Z<p>Keroupav: /* Individuální VLANy (detaily) */</p>
<hr />
<div>Dokumemtace a pravidla k organizaci sítě na FJFI. Jakékoliv změny v tomto dokumentu musí být oznámeny v mailing listu správců IT na FJFI (comp@lists.fjfi.cvut.cz), aby bylo možné sladit konfigurace lokálních systémů (např. firewallu) v závislosti na úpravách konfigurace sítě.<br />
<br />
=Páteřní rozvody a zapojení=<br />
<br />
==Břehová==<br />
<br />
Plány rozmístění rozvaděčů a barevně obarvené místnosti podle připojení síťových (ethernetových) zásuvek do rozvaděčů:<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1pp.png s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1_2np.png 1/2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1np.png 0.patro] (přízemí)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-2np.png 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-3np.png 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-4np.png 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-5np_krov.png 4.patro] (půdní vestavba)<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Brehova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* telefonní ústředna<br />
** foto z místnosti 008 [https://nms.fjfi.cvut.cz/user/images/ustredna-br-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-3.jpg 3], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-4.jpg 4]<br />
<br />
==Trojanova==<br />
<br />
Dokumentace z FJFI archivu k překladu optických tras realizovaných v roce 2009 (nascanováno, obrovské ~ 10MB JPG soubory):<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1pp.jpg s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1np.jpg 0.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/2np.jpg 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/3np.jpg 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/4np.jpg 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_blokove.jpg blokové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_prehledove.jpg přehledové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technická zpráva]<br />
* [[Topologie|nákres rozmístění rozvaděčů]]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Trojanova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/Kabel_Trojanka_HK.pdf připojení HK]<br />
** přívod chráničky do budovy je v místnosti s117 (hlavní uzávěr vody)<br />
** SM kabel - PIRELLI Deskwave 053/2001 LOOSE UNITUBE 12 9/125 T/VM<br />
** MM kabel - 12vl.<br />
** MM kabel je v místnosti s117 naspojkován (dříve vedl do 112 ale nyní přeložen do 302)<br />
** SM kabel nebyl nikdy ze 112 přeložen (po rekonstrukcích 112 v létě 2015 by měl být stažen do s117)<br />
* připojení do ČVUT<br />
** přívod chráničky do budovy je v místnosti s128<br />
** FRNC Belden optical Fibre 2x50/125 + 14x9/125<br />
** tento kabel nevede až na karlák, je naspojkován a dál vedou jen 2vl. SM optiky<br />
** cestou do místnosti 302 je nastaven (+/- někde u výtahu)<br />
* hlavní rozvaděč optiky v 302<br />
** foto optického patch panelu [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-3.jpg 3]<br />
** [https://nms.fjfi.cvut.cz/data/tr-optika/protokol-optika-302-srv1.pdf měřící protokol pro MM spojení 302 se SRV1]<br />
* propojeni serveroven ve sklepě<br />
** mezi serverovnami SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3+4 natažena i metalika<br />
*** aktuálně jde o 2x CAT6 ethernet kabel<br />
** zadavatel měl dost nešťastný nápad rozvést pouze 2 páry optiky<br />
*** rozvedeny jsou nakonec 4 páry včetně koncovek (nutné odšroubovat víko)<br />
*** v optické vaně jsou nacvaknuty do SC-SC spojky pouze 2 páry<br />
*** pravděpodobně nebylo dost místa / pozic pro zapojení dalších konektorů<br />
** navíc byla použita aktuálně asi nehorší dostupná vlákna MM OM1<br />
*** SFP-10G-SR (33m) nefungují spolehlivě ani mezi SRV1 &lt;-&gt; SRV2<br />
*** pro spojení bude asi nutné pořizovat 2x dražší SFP-10G-LRM (220m)<br />
*** při přímém propatchování SRV302 &lt;-&gt; SRV2 nefungovali spolehlivě ani tyto lepší moduly<br />
** spojení serveroven je seriové SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3+4<br />
*** mezi SRV3 a SRV4 bude ve zdi průchod takže optika z rozvaděče v SRV4 půjde "napatchovat" k zařízením v SRV3<br />
*** jedno vlákno (nejvíce vpravo) mezi SRV1 &lt;-&gt; SRV2 je mrtvé<br />
** PLÁN rekonstrukce<br />
*** předelat udělat všechno do SM optiky<br />
*** rozmyslet se ve které místnosti bude centralní rozvod optiky<br />
*** z centrálního rozvodu mít vlakna do všech serveroven<br />
*** hodně vláken s minimálně 6ti páry připravenými v patch panelu na každé SRVx<br />
*** natáhnout opravdu hodně SM vláken do SRV302(?!)<br />
*** v posledních letech jsou stále populárnější v budovách pre-terminated kabely s MTO/MTP (multifiber) koncovkami<br />
*** existují MTO/MTP konektory s 2x, 4x, 8x, 12x, 24x až 72x vlákny, ale pro správnou kabeláž je jestě podstatné dostupné kazety<br />
*** běžné kazety mají 12 LC konektorů (vejsou se 3 to 1U), dají se sehnat i vysokohustotní kazety s 24 LC konektory<br />
<br />
==Trója==<br />
<br />
Připojení bylo až do 201606 realizováno routováním přes PASNET a připojením do jejich routeru v Tróji. Od 1.7.2016 je Trója připojena lambdou přímo do Dejvic (CWDM 1470nm) a to trasou přes UTIA. V Tróji je na serverovně (PASNETu) optika "z Dejvic" propatchovana do rozvaděče na chodbě L119 (optika je v patch panelu zakončena LC/PC konektory), kde je aktuálně 1Gb zapojena do [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=63755 MikroTik CCR1016-12S-1S+] (detaily viz. [https://lists.fjfi.cvut.cz/mailman/private/comp/2016/001510.html Zmena pripojeni lokality Troja (IPv6)]).<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Troja.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.pp.png těžké lab. 0.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.np.png těžké lab. 1.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-2.np.png těžké lab. 2.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-3.np.png těžké lab. 3.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-7.np.png KJCH 6. patro]<br />
<br />
==Děčín==<br />
<br />
Tato lokalita není připojená přímo do sítě ČVUT, ale [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=2665 routerem] CESNETu.<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Decin.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.pp.png 0. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.np.png 1. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-2.np.png 2. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-3.np.png 3. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-4.np.png 4. patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/vykresy-2017/000---mistnosti.xls místnosti]<br />
<br />
=VLAN=<br />
<br />
ČVUT VIC prostupně přechází na globalní očíslování VLAN takovým způsobem, aby v se různých částech sítě nepoužívala stejná čísla VLAN (některým management nástrojům se takové konfigurace nezamlouvají). Z toho důvodu byl pro vnitřní potřeby FJFI přidělen rozsah VLAN 2400-2499. Některá starší (pochybnější) zařízení mohou mít problém s využítím takto vysokých čísel, v takovém případě bude nejlepší na nich žádné VLANy nekonfigurovat a budou se používat pouze pro netagovaný provoz.<br />
<br />
V následujících tabulkách je plán resp. dokumentace k využítí přidělených VLAN. První polovina přiděleného rozsahu je využita pro "standardní" VLANy (jejich jméno musí začínat prefixem <tt>fjfi-</tt>), které je vhodné mít vytvořené v každé budově FJFI a zbytek lze využít pro libovolné individuální VLANy (každé nově využité číslo VLAN z uvedeného rozsahu je zde nutné zdokumentovat). Pro Děčín je nutné tento plán brát dost s rezervou, jelikož tato lokalita není připojena přímo do ČVUT, ale je routována přímo CESNETem a lokální VLANy se nakonec mohou lišit.<br />
<br />
==Standardní VLANy==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2400-2439)<br/>(standardní VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<sup>*</sup><br />
!Břehová<br />
!Trojanova<br />
!Trója<br />
!Děčín<br />
!Status<br />
!Comment<br />
|-<br />
!fjfi-*-srv<br />
|2400<br />
|2410<br />
|2420<br />
|2430<br />
|active<br />
|Subnet pro servery<br />
|-<br />
!fjfi-*-def<br />
|2401<br />
|2411<br />
|2421<br />
|2431<br />
|active<br />
|Veřejná síť ("default VLAN" pro běžné počítače)<br />
|-<br />
!fjfi-*-mgmt-net<br />
|2402<br />
|2412<br />
|2422<br />
|2432<br />
|active<br />
|Management rozhraní síťových prvků (switch, router, ap, ...)<br />
|-<br />
!fjfi-*-mgmt-srv<br />
|2403<br />
|2413<br />
|2423<br />
|2433<br />
|active<br />
|Subnet pro management serverů (např. IPMI)<br />
|-<br />
!fjfi-*-sec<br />
|2404<br />
|2414<br />
|2424<br />
|2434<br />
|planed<br />
|Subnet pro zabezpečovací zařízeni (např. kamery, K4, ...)<br />
|-<br />
!fjfi-*-wifi<br />
|2405<br />
|2415<br />
|2425<br />
|2435<br />
|active<br />
|Wireless síť pro speciální příležitosti (např. samostatná konfigurace pro konference)<br />
|-<br />
!fjfi-*-eduroam<br />
|2406<br />
|2416<br />
|2426<br />
|2436<br />
|active<br />
|Wireless síť Eduroam<br />
|-<br />
!fjfi-*-wififjfi<br />
|2407<br />
|2417<br />
|2427<br />
|2437<br />
|active<br />
|Wireless síť s captive portálem<br />
|-<br />
!fjfi-*-voip<br />
|2408<br />
|2418<br />
|2428<br />
|2438<br />
|planed<br />
|Segment pro VoIP telefony<br />
|-<br />
!fjfi-*-fragile<br />
|2409<br />
|2419<br />
|2429<br />
|2439<br />
|active<br />
|Segment pro "nepočítačová" síťová zařízení (nepravidelné/neexistující updaty)<br />
|-<br />
!colspan="7"|U jmen VLAN je potřeba nahradit znak "*" zkratkou příslušné lokality (br/tr/vh/dp)<br />
|}<br />
<br />
==Standardní VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Detaily k rozdělení FJFI VLAN (2400-2439)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-eduroam<br />
|2416<br />
|active<br />
|tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Jeden subnet s veřejnými adresami <tt>147.32.11.0/24</tt> pro Eduroam síť v Trojance<br />
|}<br />
<br />
==Speciální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2440-2449)<br/>(speciální VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-kipl-nat<br />
|2444<br />
|active<br />
|tr<br />
|19.6.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-kipl-iso<br />
|2445<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN for private isolation (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-kipl1<br />
|2446<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-kipl2<br />
|2447<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-brtr-srv-clu<br />
|2448<br />
|active<br />
|br+tr<br />
|12.1.2015 FJFI<br />
|vokacpet<br />
|Public segment pro clusterování strojů mezi Trojankou a Břehovkou s dvěmi HSRP active/standby gateway<br />
|-<br />
!fjfi-brtr-srv-priv<br />
|2449<br />
|active<br />
|br+tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery v clusteru (DFS replikace)<br />
|}<br />
<br />
==Individuální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2450-2499)<br/>(individuální VLANy, pro uživatelské potřeby)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>(owner)<br />
!Admin<br />
!Comment<br />
|-<br />
!test_max_20_znaku<br />
|2450<br />
|test<br />
| --<br />
|2.6.2014 (KM)<br />
|vokacpet<br />
|Testovací záznam - tato VLAN není reálně nikde zkonfigurována, jméno VLAN musí být do 20 znaků (CISCO limit, stará SMC podporují max 12 znaků)!<br />
|-<br />
!fjfi-tr-km<br />
|2451<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kf<br />
|2452<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kj<br />
|2453<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kipl<br />
|2454<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kfe<br />
|2455<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kmat<br />
|2456<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kjch<br />
|2457<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kdaiz<br />
|2458<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-vh-kjr<br />
|2459<br />
|test<br />
|vh<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-ksi<br />
|2460<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-dekanat<br />
|2461<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-??-??<br />
|2462<br/>-<br/>2469<br />
|rezervace<br />
| --<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-aruba<br />
|2472<br />
|test<br />
|tr<br />
|15.6.2020<br />
|keroupav<br />
|Aruba, management AP<br />
|-<br />
!fjfi-tr-fjfinet<br />
|2475<br />
|test<br />
|tr<br />
|15.6.2020<br />
|keroupav<br />
|Aruba, WiFi fjfinet<br />
|}<br />
<br />
==K promyšlení==<br />
<br />
* VLANy pro subnety kateder, rozdělení +/- dle čísel kateder<br />
* VLANy pro privátní subnety kateder (nebo mít jen jeden "veřejný" privátní subnet?)<br />
* VLAN pro přístupové systémy pro karty (je možné provozovat na privátní síťi?)<br />
* VLAN pro přístup k datům zabezpečení (kamery)<br />
* VLAN pro serverovou DMZ<br />
* Prohodit číslování standardních VLAN pro Tróju a Děčín (stejné pořadí jako seřazené IP segmenty?)<br />
** jedinný Děčín je "externí" lokalita routovaná přímo CESNETem (nemáme plnou kontrolu nad lokálními čísly VLAN a IPv6 čísly subnetů)<br />
** pořadí lokalit tedy bude br/tr/vh/dp<br />
<br />
=IP=<br />
<br />
==Veřejné adresy==<br />
<br />
Následující tabulka obsahuje souhrné informace o veřejných IP adresách přidělených a využívaných na FJFI.<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Rozdělení veřejných IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Gateway<br />
!VLAN Name<br />
!Admin<br />
!Comment<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.4.0%2F24&location=br 147.32.4.0/24]<br />
|Břehová<br />
|147.32.4.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-1<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.5.0%2F24&location=br 147.32.5.0/24]<br />
|Břehová<br />
|147.32.5.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-2<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.6.0%2F23&location=tr 147.32.6.0/23]<br />
|Trojanova<br />
|147.32.6.1<br />
|fjfi-tr-def<br />
|sinormil<br />
|Subnet KFE + dynamicky přidělované veřejné IP<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.8.0%2F24&location=tr 147.32.8.0/24]<br />
|Trojanova<br />
|147.32.8.1<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet KM+KJ+KSI+Elsa<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.0%2F26&location=tr 147.32.9.0/26]<br />
|Trojanova<br />
|147.32.9.1<br />
|fjfi-tr-srv<br />
|vokacpet<br />
|Serverový subnet v tr<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.64%2F26&location=tr 147.32.9.64/26]<br />
|Břehová+Trojanova<br />
|147.32.9.65<br />
|fjfi-brtr-srv-clu<br />
|vokacpet<br />
|Serverový subnet pro clustery mezi br+tr (duální gateway active/standby přes HSRP)<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.128%2F26&location=br 147.32.9.128/26]<br />
|Břehová<br />
|147.32.9.129<br />
|fjfi-br-srv<br />
|vokacpet<br />
|Serverový subnet v br<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.192%2F26&location=tr 147.32.9.192/26]<br />
|Trojanova<br />
|147.32.9.193<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet speciální zařízení<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.0%2F25&location=tr 147.32.10.0/25]<br />
|Trojanova<br />
|147.32.10.1<br />
|fjfi-tr-def<br />
|kopripe1<br />
|Subnet KMAT<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.128%2F25&location=tr 147.32.10.128/25]<br />
|Trojanova<br />
|147.32.10.129<br />
|fjfi-tr-def<br />
|drabmart<br />
|Subnet KIPL<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.11.0%2F24&location=tr 147.32.11.0/24]<br />
|Trojanova<br />
|147.32.11.1<br />
|fjfi-tr-eduroam<br />
|vokacpet<br />
|Eduroam<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.22.0%2F24&location=dp 147.32.22.0/24]<br />
|Děčín<br />
|147.32.22.1<br />
|fjfi-dp-def<br />
|sumpepre<br />
|Veřejné adresy dp<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.25.0%2F24&location=vh 147.32.25.0/24]<br />
|Trója<br />
|147.32.25.1<br />
|fjfi-vh-def<br />
|fialaja2<br />
|Veřejné adresy vh<br />
|}<br />
<br />
===Veřejné adresy detaily===<br />
<br />
Většina veřejných adres je rezervována pro konkrétní zařízení. V každé budově FJFI existuje ale i určitý rozsah veřejných adres, které jsou přidělovány registrovaným zařízením bez rezervace konkrétní adresy (zvýrazněno modře v níže uvedené tabulce). V případě aktuálního vyčerpání těchto volně dostupných veřejných adresu budou dalším zařízením přidělovány privátní adresy z privátního rozsahu na téže VLAN <tt>fjfi-*-def</tt>. V konfiguraci registrace síťového zařízení lze specifikovat, že danému zařízení má být vždy přidělena privátní adresa a to i v případě, že pool veřejných adres ještě nebyl vyčerpán.<br />
<br />
Trvale připojená zařízení využívají veřejné adresy by měla mít zaregistrovánu rezervovanou adresu z rozsahu, který je přidělen organizační jednotce vlastnící dané zařízení (viz. tabulka). Zařízení tak bude mít garantovánu stalou veřejnou IP adresu a nebude se zbytečně zmenšovat pool s veřejnými adresami pro ostatní zařízeni, která se na FJFI síti vyskytují pouze občas. Pro běžná zařízení (počítače) je preferováno použití veřejných adres, jelikož při jejich použití není fungování síťového zařízení omezeno potencíálními problémy NATu (vyplývající z podstaty NATu, vytížení NATovacího zařízení případně jeho nedostupnosti) a lze jednodušeji řešit případné stížnosti týkající se konkrétní adresy.<br />
<br />
Existuje ale i skupina speciálních zařízení (např. tiskárny) u nichž je lepší použít privátní adresy. Provoz některých zařízení na veřených adresách totiž představuje bezpečnostní hrobu vzhledem k neexistujícím automatickým security updatům firmware a omezeným možnostem konfigurace zabezpečení. Takové zařízení by ideálně měla být na samostatné VLAN <tt>fjfi-*-fragile</tt>, ale vzhledem ke komplikovanému managementu sítě pro ně je zatím vyhrazen rozsah privátních adres z VLAN <tt>fjfi-*-def</tt> (viz. [[#Priv.C3.A1n.C3.AD_adresy_na_default_VLAN_fjfi-.2A-def|níže]]). Adresu z tohoto rozsahu lze jednoduše vybrat v rozhraní pro registrace síťových zařízení.<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení veřejných IP rozsahů (detaily)<br />
|-<br />
!IP rozsah<br />
!adresy<br />
!Comment<br />
|-<br />
!rowspan="3"|147.32.4.0/24<br />
!147.32.4.0-70<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.4.71-189</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.4.190-255<br />
|??<br />
|-<br />
!rowspan="2"|147.32.5.0/24<br />
!147.32.5.0-49<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.5.50-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="4"|147.32.6.0/24<br />
!147.32.6.2-99<br />
|vyhrazeno unixářům (Richard Liska, Milan Šiňor) <br />
|-<br />
!147.32.6.100-116<br />
|pclab T124 (Kerouš)<br />
!147.32.6.117-199<br />
|kanceláře, ... (Antonín Novotný)<br />
|-<br />
!147.32.6.200-254<br />
|InfoLab, kanceláře (Josef Blažej)<br />
|-<br />
!147.32.6.255<br />
|rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
|-<br />
!rowspan="2"|147.32.7.0/24<br />
!147.32.7.1-31<br />
|tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
|-<br />
!<span style="color: blue">147.32.7.32-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="8"|147.32.8.0/24<br />
!147.32.8.2-79<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.80-96<br />
|studovna 214<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
|-<br />
!147.32.8.97-109<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.110-149<br />
|KM učebny<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
|-<br />
!147.32.8.150-207<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
* 147.32.8.160/28 vyhrazeno pro KM cluster + VMware (stracpav)<br />
|-<br />
!147.32.8.208/28<br />
|KSI zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.224/28<br />
|KJ zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.240/28<br />
|Elsa<br />
|-<br />
!rowspan="4"|147.32.9.0/24<br />
!147.32.9.0/26<br />
|Server Trojanova<br />
|-<br />
!147.32.9.64/26<br />
|Server Břehová+Trojanova<br />
|-<br />
!147.32.9.128/26<br />
|Server Břehová<br />
|-<br />
!147.32.9.192/26<br />
|Různé<br />
* Virtuální desktopy<br />
* speciální zařízení (např. kartové systemy - K4 master + netmoduly)<br />
* není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
|-<br />
!rowspan="2"|147.32.10.0/25<br />
!147.32.10.0/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.10.128/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.11.0/24<br />
!147.32.11.0/24<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.22.0/24<br />
!<span style="color: blue">147.32.22.101-199</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.25.0/24<br />
!<span style="color: blue">147.32.25.102-219</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|}<br />
<br />
==Privátní adresy==<br />
<br />
Vzhledem k nedostatku veřejných IP adres bylo nutné začít využívat i privátní IP adresy. Ty jsou používany jak čistě interně (např. management), tak i pro běžný provoz s NATem aktuálně hlavně na WiFi sítích, kde si vzhledem k enormnímu nárůstu počtu zařízení není možné vystačit s dostupnými veřejnými adresami. Privátní IPv4 adresy jsou také používány pro neregistrovaná zařízení a automatický přístup k captive portálu na stránku s registrací.<br />
<br />
Bohužel se na "Jednání IT techniků ČVUT - 11.6.2015" dohodlo, že se privátní adresy nebudou routovat po ČVUT (resp. nedošlo ani k základní shodě na tom, jaké rozsahy by bylo možné použít s tím, že ostatní fakulty už využívají všechny dostupné privátní subnety). Tohle je podmínka (téměř - viz. RFC6598) nutná pro možnost zřízení globálního NATu, takže ani v budoucnu nelze očekávat poskytnutí této služby v rámci celého ČVUT. Další komplikací je využití privátních adres mezi různými lokalitami FJFI, kde je potřeba využít policy based routing a privátní adresy do druhé lokality dostat přes tunel resp. dedikovanou VLAN. Centrální L3 switche použité v FJFI lokalitách také mají relativně omezené možnosti konfigurace (nepodporují NAT, netflow, GRE tunely, malá TCAM pro PBR, ...).<br />
{|class="wikitable"<br />
!colspan="6"|Počet adres v podsítích dané velikosti<br />
|-<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
|-<br />
!/24<br />
|256<br />
!/21<br />
|2048<br />
!/18<br />
|16384<br />
|-<br />
!/23<br />
|512<br />
!/20<br />
|4096<br />
!/17<br />
|32768<br />
|-<br />
!/22<br />
|1024<br />
!/19<br />
|8192<br />
!/16<br />
|65536<br />
|}<br />
<br />
<br />
===Privátní adresy dle lokality===<br />
<br />
Pro centrálně spravované privátní adresy na FJFI je využíván rozsah <tt>172.16.0.0/12</tt> z nějž má každá lokalita přidělen jeden segment <tt>/16</tt> (~ 65k adres) a poslední subnet <tt>172.31.0.0/16</tt> se využívá ke speciálním účelům (např. spojovačky). Přidělený segment je dále dělen na subnety jejichž základní číslování je shodné v každé lokalitě (např. dle VLAN, využití, ...).<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení privátních IP rozsahů na FJFI po lokalitách<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Comment<br />
|-<br />
!10.0.0.0/8<br />
| --<br />
|Vyhrazeno pro potřeby ČVUT (sice to nebylo nikde oficiálně řečeno, ale je to jedinný privátní rozsah u nejž vzhledem k velikosti má smysl uvažovat o využití v rámci celého ČVUT)<br />
|-<br />
!172.16.0.0/16<br />
|Břehová<br />
|<br />
|-<br />
!172.17.0.0/16<br />
|Trojanova<br />
|<br />
|-<br />
!172.18.0.0/16<br />
|Trója<br />
|<br />
|-<br />
!172.19.0.0/16<br />
|Děčín<br />
|<br />
|-<br />
!172.31.0.0/16<br />
| --<br />
|Vyhrazeno pro speciální využití (např. spojovačky na privátní síti)<br />
|-<br />
!192.168.0.0/16<br />
| --<br />
|Adresy z tohoto rozsahu nebudou na FJFI nijak regulovány a jsou preferované pro uživatelské testovací resp. dočásné privátní sítě. Je na jejich správci, aby si vybral nepoužívaný rozsah v dané síti resp. VLAN, ale není zde zaručeno resp. monitorováno jestli jestli stejné adresy začne používat někdo další. Pro potřeby trvalého privátního adresované na FJFI síti je doporučeno dohodnout alokaci podsítě z odpovídajících 172.1x.0.0/16 rozsahů. Nědky může být vhodné použít adresování 172.1x.0.0/16 i např. pro clustery resp. sítě kompletně oddělené od zbytku infrastruktury (např. je lze pak zpřístupnit přes centrální VPN).<br />
|-<br />
!colspan="3"|Privátní rozsahy značené 172.<span style="color: blue">1x</span>.aaa.bbb budou dále znamenat adresy v libovolné lokalitě (br=<span style="color: blue">16</span>/tr=<span style="color: blue">17</span>/vh=<span style="color: blue">18</span>/dp=<span style="color: blue">19</span>)<br />
|}<br />
<br />
===Privátní adresy dle VLAN===<br />
<br />
Všechny standardní využívané VLAN budou mít přidělen určitý rozsah privátních adres. V závislosti na využití bude přizpůsobena konfigurace "Private routing" týkající se routování mezi lokalitami FJFI (žádné routování, routování přes tunel/VLAN nebo IPSec zabezpečené spojení), routování do světa skrz NAT a různé filtrování paketů "Private ACL" mezi privátními subnety. Jednotlivé subnety je dobré alokovat také s ohledem na to, jak komplikované bude případné přečíslování zařízení na daném subnetu.<br />
<br />
{|class="wikitable"<br />
!colspan="8"|Rozdělení privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!VLAN Name<br />
!NAT<br />
!Private<br/>routing<br />
!Private<br/>ACL<br />
!Komplikace<br/>přeadresování<br />
!Comment<br />
|-<br />
!colspan="8"|172.1x.0.0/17 - adresy pro globální využití ve všech lokalitách<br />
|-<br />
!172.1x.0.0/22<br />
|172.1x.0.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování serverů dostupných přímo ze všech lokálních sítí, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.4.0/22<br />
|172.1x.4.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.8.0/22<br />
|172.1x.8.1<br />
|fjfi-*-srv<br />
|yes<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN s IPSec zabezpečenou komunikací mezi FJFI lokalitami, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.12.0/22<br />
| --<br />
|fjfi-*-srv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze z lokální VLAN (žádné routování či NAT)<br />
|-<br />
!172.1x.16.0/22<br />
|172.1x.16.1<br />
|fjfi-*-mgmt-net<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu síťových prvků (switche) dostupné pouze z mgmt-net VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.16.0/23<br />
|-<br />
!172.1x.20.0/22<br />
|172.1x.20.1<br />
|fjfi-*-mgmt-srv<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu serverů (IPMI, RAID controller, UPS, ...) dostupné pouze z mgmt-srv VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.20.0/23<br />
|-<br />
!172.1x.24.0/22<br />
|172.1x.24.1<br />
|fjfi-*-fragile<br />
|yes/no<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování pro samostatný subnet "nedůvěryhodných" zařízení (např. tiskárny, specializovaná zařízení bez pravidelných security update, ...), komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.24.0/23<br />
|-<br />
!172.1x.28.0/24<br />
|172.1x.28.1<br />
|fjfi-brtr-srv-clu<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.28.0/24)<br />
|-<br />
!172.1x.29.0/24<br />
| --<br />
|fjfi-brtr-srv-clu<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.29.0/24)<br />
|-<br />
!172.1x.30.0/24<br />
|172.1x.30.1<br />
|fjfi-brtr-srv-priv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.30.0/24)<br />
|-<br />
!172.1x.31.0/24<br />
| --<br />
|fjfi-brtr-srv-priv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.31.0/24)<br />
|-<br />
!172.1x.32.0<br/>-<br/>172.1x.51.255<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
|Rezervováno pro budoucí "globální využití"<br />
|-<br />
!172.1x.52.0/24<br/>172.1x.53.0/24<br />
|172.1x.52.1(*)<br/>172.1x.53.1(*)<br />
|VPN<br/>test<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro L2TP, PPTP, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.52.0/24 - PPTP server na nms-xx.fjfi.cvut.cz<br />
* 172.1x.53.0/24 - L2TP server na nms-xx.fjfi.cvut.cz<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.54.0/24<br/>172.1x.55.0/24<br />
|172.1x.54.1(*)<br/>172.1x.55.1(*)<br />
|OpenVPN<br/>admin<br />
|yes<br />
|default<br />
| --<br />
|malé<br />
|Privátní adresování pro admin OpenVPN klienty s přímým přístupem do sítě včetně privátních, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.54.0/24 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.55.0/24 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.56.0/22<br/>172.1x.60.0/22<br />
|172.1x.56.1(*)<br/>172.1x.60.1(*)<br />
|OpenVPN<br/>user<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro OpenVPN klienty, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.56.0/22 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.60.0/22 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.64.0/20<br />
|172.1x.64.1<br />
|fjfi-*-def<br />
|yes(*)<br />
|default<br />
|permit(*)<br />
|velké(*)<br />
|Privátní adresy na default VLAN (lokální síť v budově), detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-def]]<br />
|-<br />
!172.1x.80.0/20<br />
|172.1x.80.1<br />
|fjfi-*-wifi<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní rozsah pro speciální WiFi sítě, které mohou mít speciální konfiguraci např. pro konference, ...<strike>Rezervováno pro případné budoucí speciální požadavky na fjfi-*-def VLAN nebo rozšíření adresního prostoru na této VLAN</strike><br />
|-<br />
!172.1x.96.0/20<br />
|172.1x.96.1<br />
|fjfi-*-eduroam<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť Eduroam, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-eduroam]]<br />
|-<br />
!172.1x.112.0/20<br />
|172.1x.112.1(*)<br />
|fjfi-*-wififjfi<br />
|yes(*)<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť WiFiFJFI, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-wififjfi]], tato síť používá vlastní gateway pro řízení přístupu pomocí captive portálu a zařízení na ní nejsou z vnějšku dostupná.<br />
|-<br />
!colspan="8"|172.1x.128.0/18 - adresy pro lokální využití v konkrétní lokalitě lokalitě<br />
|-<br />
!colspan="8"|172.16.128.0/18 - Břehová<br />
|-<br />
!?rezervace?<br/>172.16.128.0/22<br />
|172.16.128.1(*)<br />
|fjfi-br-kf-private<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro síť KF s NAT a gateway zajištěnou [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=38061 vlastním zařízením]<br />
|-<br />
!colspan="8"|172.17.128.0/18 - Trojanova<br />
|-<br />
!?rezervace?<br/>172.17.128.0/22<br />
|172.17.128.1(*)<br />
|fjfi-tr-hyperion<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro KM+KIPL hyperion cluster s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=24149 NAT a gateway]<br />
|-<br />
!?rezervace?<br/>172.17.132.0/22<br />
|172.17.132.1<br />
|"xen-vdi"<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování pro Xen virtualizované desktopy, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!colspan="8"|172.18.128.0/18 - Trója<br />
|-<br />
!colspan="8"|172.19.128.0/18 - Děčín<br />
|-<br />
!colspan="8"|172.1x.192.0/18 - rezervováno<br />
|-<br />
|colspan="8"|Adresy pro lokální využití v konkrétní lokalitě rezervované pro případ, že dojde k L2 segmentaci sítě podle příslušnosti k různým součástem FJFI<br />
|}<br />
<br />
<br />
====Privátní adresy na default VLAN <tt>fjfi-*-def</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.64.0/20 na default VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.64.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
* 172.18.71.0/24 je v Tróji využíváno pro privátní adresování (měřících) zařízení KJR (humlond)<br />
|-<br />
!172.1x.72.0/22<br />
| --<br />
| --<br />
|vokacpet<br />
|unused<br />
|-<br />
!172.1x.76.0/23<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro "nepočítačová" zařízení (např. tiskárny)<br />
|-<br />
!172.1x.78.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro servery (např. printserver pro komunikaci na tomto subnetu)<br />
|-<br />
!172.1x.79.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným, smazaným a neregistrovaným zařízením<br />
|}<br />
<br />
====Privátní adresy na eduroam VLAN <tt>fjfi-*-eduroam</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.96.0/20 na eduroam VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.96.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.110.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.111.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným (smazaným) zařízením<br />
|}<br />
<br />
====Privátní adresy na wififjfi VLAN <tt>fjfi-*-wififjfi</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.112.0/20 na wififjfi VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.112.0/21<br />
|dynamic+reserved<br />
|auth<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.126.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.127.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným zařízením<br />
|}<br />
<br />
===Individuální rozsahy privátních adres===<br />
<br />
Využití těchto adres není nijak regulováno, takže zde neexistují žádné překážky k jejich použití ale na druhou stranu se také nelze spolehnout na to, že stejné adresy nezačne používat někdo další. V níže uvedené tabulce je (nekompletní) seznam aktuálně používaných adres z 192.168.0.0/16 rozsahu. Bylo by vhodné zvážit jestli do budoucna nezačít využívat rezervované subnety z 172.1x.0.0/16 rozsahů.<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení individuálních privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!Public<br />
!VLAN Name<br />
!OU<br />
!Admin<br />
!Comment<br />
|-<br />
!192.168.x.0/24<br />
|192.168.x.1<br />
|147.32.x.y<br />
|None<br />
|KIPL<br />
|drabmart<br />
|Privátní adresy pro KM+KIPL cluster<br />
|-<br />
!192.168.3.0/24<br />
|192.168.3.1<br />
|147.32.4.13<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF - kanceláře<br />
|-<br />
!192.168.11.0/24<br />
|192.168.11.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|-<br />
!192.168.20.0/24<br />
|192.168.20.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|}<br />
<br />
=IPv6=<br />
<br />
ČVUT přiděluje standardně <tt>/56</tt> rozsahy (lze použít pro vytvoření 256 podsítí) pro lokality připojené přes Dejvice ze přiděleného IPv6 rozsahu <tt>2001:718:2::/48</tt>. Bohužel vzhledem ke způsobu routování IPv6 není možné používat adresy z "dejvického" rozsahu v ostatních lokalitách (CESNET to ve své síti nepodporuje, tj. např. v Tóji a Děčíně), tam bude využit jiný rozsah přidělený ČVUT a routovaný Pasnetem resp. CESNETem.<br />
<br />
==IPv6 adresy dle lokality==<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI po lokalitách<br/>(FJFI IPv6 rozsahy 2001:718:2:1800::/54)<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Admin<br />
!Comment<br />
|-<br />
!2001:718:2:<span style="color: blue">17</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený na FJFI (včetně DNS reverzů, bude vrácen VICu po alokaci "1b")<br />
|-<br />
!2001:718:2:<span style="color: blue">18</span>00::/56<br />
|Břehová<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">19</span>00::/56<br />
|Trojanova<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">1a</span>00::/56<br />
|Trója<br />
|vokacpet<br />
|Veřejné adresy (aktuálně nevyužitý rozsah nazvaný FJFI test, čeká na novou serverovnu PASNETu v Tróji)<br />
|-<br />
!2001:718:2:<span style="color: blue">1b</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený FJFI ČVUT (pro "hezčí" FJFI IPv6 netmask)<br />
|-<br />
!??<br />
|Děčín<br />
|vokacpet<br />
|Veřejné adresy (další ČVUT adresy přidělené z routovatelného rozsahu CESNET)<br />
|}<br />
<br />
==IPv6 adresy dle VLAN==<br />
<br />
Každá VLAN přidělená FJFI má standardně přiřazen jeden IPv6 subnet <tt>/64</tt> z přiděleného rozsahu <tt>/56</tt> (256 možných <tt>/64</tt> subnetů). Příslušné číslo FJFI VLAN-2400 (tj. hodnoty v intervalu 0-99) budou přímo součástí IPv6 adresy na pozici 56-63. Vyjímkou je prvních 40 rezervovaných VLAN u nichž se používá pouze poslední číslice.<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI podle VLAN<br />
|-<br />
!IP rozsah<br />
!VLAN ID<br />
!VLAN Name<br />
!Comment<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">0</span>::/64<br />
|24?<span style="color: blue">0</span><br />
|fjfi-*-srv<br />
|Subnet pro servery<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">1</span>::/64<br />
|24?<span style="color: blue">1</span><br />
|fjfi-*-def<br />
|Veřejná síť ("default VLAN" pro běžné počítače) <br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">9</span>::/64<br />
|24?<span style="color: blue">9</span><br />
|fjfi-*-fragile<br />
|Segment pro "nepočítačová" síťová zařízení<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">48</span>::/64<br />
|24<span style="color: blue">48</span><br />
|fjfi-brtr-srv-clu<br />
|Public segment mezi Trojankou a Břehovkou s duální gateway přes HSRP<br />
|-<br />
!2001:718:2:xx<span style="color: blue">49</span>::/64<br />
|24<span style="color: blue">49</span><br />
|fjfi-brtr-srv-priv<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a0</span>::/64<br/> -- <br/>2001:718:2:xx<span style="color: blue">ff</span>::/64<br />
| --<br />
| --<br />
|Rezervováno pro budoucí/speciální využití<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a?</span>::/60<br />
|colspan="2"|Static route to OpenVPN server<br />
|OpenVPN IPv6 network<ul><br />
<li>...<span style="color: blue">a0</span>::/64 - openvpn.fjfi.cvut.cz:1194/udp</li><br />
<li>...<span style="color: blue">a1</span>::/64 - openvpn.fjfi.cvut.cz:1194/tcp</li><br />
<li>...<span style="color: blue">a2</span>::/64 - openvpn.fjfi.cvut.cz:443/udp</li><br />
<li>...<span style="color: blue">a3</span>::/64 - openvpn.fjfi.cvut.cz:443/tcp</li><br />
<li>...<span style="color: blue">a4</span>::/64 - openvpn.fjfi.cvut.cz:53/udp</li><br />
<li>...<span style="color: blue">a5</span>::/64 - openvpn.fjfi.cvut.cz:53/tcp</li><br />
<li>...<span style="color: blue">a6-af</span>::/64 - reserved</li><br />
</ul><br />
|}<br />
<br />
==Využití IPv6 adres v rámci <tt>/64</tt> subnetů==<br />
<br />
Každý subnet na IPv6 má prakticky vzato "neomezené" množství IPv6 adres. Lze tedy zavést další jemnější dělení těchto subnetů, aby bylo možné pro určité skupiny počítačů specifikovat například různá firewall pravidla (např. omezení přístupu na tiskárny pouze z IPv6 adres ČVUT). Nevyužité (zde nedefinované) části <tt>/64</tt> subnetů budou mít standardně zakázanou jakoukoliv komunikaci přímo na fakultním routeru.<br />
<br />
Navíc pro IPv6 nebudou v principu existovat dynamicky přidělované adresy jako je tomu na IPv4, kde je nutné recyklovat omezený adresní prostor. Všechna registrovaná zařízení (síťová rozhraní) budou mít statickou rezervaci konkrétní IPv6 adresy resp. jeji <tt>/64</tt> suffix, který tak bude stejný při připojení zařízení ve všech lokalitách (pro běžné uživatelské subnety jako např. <tt>def</tt>, <tt>eduroam</tt> a <tt>wififjfi</tt> VLAN). Takto přidělená adresa navíc nebude v budoucnu recyklována pro jiné uživatelské zařízení (existují vyjímky, jako např. servery u nichž je změna adresy občas nežádoucí). V případě potřeby je možné u existujícího zařízení smazat aktuální IPv6 adresu a nechat vygenerovat novou.<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-srv===<br />
<br />
* změny ve využití adres jsou u serverů velice komplikované<br />
** konfigurace sítě je na serverech statická (nepoužívají DHCP)<br />
** pro použité adresy může mít řada zařízení (nejen na tomto segmentu) zkonfigurována různá pravidla (např. firewall)<br />
** pokud se neobjeví ''závažné nedostatky'' aktuálního plánu (např. nové standardy) tak jsou adresy přiděleny navždy<br />
* aktuálně budou využívány pouze adresy z rozsahu 2001:718:2:1x00::/96<br />
* doporučený formát IPv6 addres<br />
*# IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x00::147.32.9.17) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x00::17)<br />
*# adresy z rosahu 2001:718:2:1x00::0001:0000-2001:718:2:1x00::00ff:ffff (~ 2^24 adres)<br />
*# registrační GUI bude automaticky generovat neobsazené IPv6 adresy ze správných rozsahů<br />
*# libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)<br />
* jeden server může mít zároveň přiděleno více aktivních IPv6 adres<br />
* je možné alokovat samostatný rozsah IPv6 adres pro skupinu počítačů<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru<br />
** aktuálně neexistují žádné předdefinované skupiny<br />
*** lze si představit např. skupiny dle OS (pro jednodušší psaní filtrů na aktuálně zneužívané chyby)<br />
*** také skupiny dle orgaizačních jednotek pro omezení komunikace na vlastní servery<br />
*** teprve praktické používání IPv6 ukáže reálné potřeby<br />
** využití skupin zde musí být zdokumentováno<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-srv</span> (2001:718:2:xx<span style="color: DarkGreen">00</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">00</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Standardní IPv6 rozsah serverů<br />
|}<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-def===<br />
<br />
* změny ve využití adres mohou být relativně jednoduché při dodržování následujících zásad<br />
** zařízení budou pro IPv6 konfigurace využívat výhradně router advertisementy + stavové DHCPv6<br />
*** vzhledem k nerecyklování IPv6 adres je možné nastavit velice dlouhý lease time<br />
*** nelze použít "nekonečno" jinak bychom přidělenou adresou v budoucnu nebyly schopni změnit<br />
*** maximální lease time tedy bude jeden měsíc<br />
** manuální konfigurace je silně nedoporučena<br />
*** pokud se rozhodneme změnit IPv6 adresování tak může dojít k problémům<br />
*** z hlediska správce IPv6 rozsahu je to problém čistě uživatele, který nedbal doporučení a nebude na něj brán ohled<br />
* podobně jako u serverové VLAN <tt>fjfi-*-srv</tt> bude možné zařízení zařazovat do skupin<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru (např. omezení komunikace po ČVUT pro tiskárny)<br />
** využití skupin zde musí být zdokumentováno<br />
* jedno zařízení může mít zároveň přiděleno více aktivních IPv6 adres<br />
* doporučený formát IPv6 addres (pouze správce sítě může s rozumným důvodem využít jinou než první možnost)<br />
*# registrační GUI bude [[Registrace_MAC#Pravidla pro automatické vytváření rezervovaných adres|automaticky generovat neobsazené IPv6 adresy ze správných rozsahů]]<br />
*# <strike>IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x01::147.32.8.52) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x01::852)</strike><br />
*# <strike>adresy z rosahu 2001:718:2:1x01::0001:0000-2001:718:2:1x01::00ff:ffff (~ 2^24 adres)</strike><br />
*# <strike>libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)</strike><br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-def</span> (2001:718:2:xx<span style="color: DarkGreen">01</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!colspan="4"|Adresy pro standardní a speciální rozsahy 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/88<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální IPv6 rozsah pro běžná zařízení (ručně přidělované adresy, např. 2001:718:2:1901::852), preferované jsou ale níže uvedené rozsahy s konkrétním účelem (dle typu zařízení, organizační jednotky, ...)<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy (nutné pro zařízení, které byli primárně registovany pro jinou lokaci)<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">2</span>::/96<br/>-<br/>2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">f</span>::/96<br />
|vokacpet<br />
|Rezervovaný rozsah pro budoucí využití<br />
|-<br />
!fragile<br/>printer<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro tiskárny s omezením komunikace po ČVUT<br />
|-<br />
!restricted<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací pouze přes http/https (+ lokální DNS)<br />
|-<br />
!restricted<sup>2</sup><br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací jen na vyhrazené lokální servery (adresy pro blokované, neregistrované, zlobivé, ... zařízení). Zatím by taková zařízení nemusela dostávat žádnou IPv6 adresu a do příslušná omezení a informační stranky by se zobrazili na základě přidělené IPv4 adresy.<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">??</span>::/96<br />
| --<br />
|Skupina zařízení s omezeními dle uživatelských požadavků - návrhy?<br />
|-<br />
!colspan="4"|Adresy vyhrazené pro zařízení kateder 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/88<br />
|-<br />
!ČVUT<br/>FJFI<br/>Other<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení ČVUT, FJFI a Ostatní<br />
|-<br />
!KM<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">101</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KM<br />
|-<br />
!KF<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">102</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KF<br />
|-<br />
!KJ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">103</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJ<br />
|-<br />
!KIPL<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">104</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KIPL<br />
|-<br />
!KFE<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">105</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KFE<br />
|-<br />
!KMAT<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">106</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KMAT<br />
|-<br />
!KJCH<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">107</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJCH<br />
|-<br />
!KDAIZ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">108</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KDAIZ<br />
|-<br />
!KJR<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">109</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJR<br />
|-<br />
!KSI<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10a</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KSI<br />
|-<br />
!CRRC<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10b</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení CRRC<br />
|-<br />
!Elsa<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10c</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Elsa<br />
|-<br />
!Děkanát<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10d</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Děkanátu<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-eduroam===<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* blokovaná zařízení nedostanou od DHCPv6 přidělenou IPv6 adresu<br />
** převedeno na problém samotného IPv4 a blokovaných zařízení, který je již vyřešen<br />
** aktuálně tedy nemáme plnou podporu IPv6 only zařízení, ale jen v případě ojedinělých případů blokace<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-eduroam</span> (2001:718:2:xx<span style="color: DarkGreen">06</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální rozsah (ručně přidělované/rezervované adresy), žádné restrikce<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy, minimální restrikce<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-wififjfi===<br />
<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* konfigurace by měla fungovat tak, aby klient mohl nakonec využívat nativní IPv6 konektivitu bez dalšího (linuxového) routeru (NAT) na cestě<br />
* zbývá dořešit technické detaily autentizace na captive portálu a také blokovaná (neregistrovaná a smazaná) zařízení<br />
** neautentizovaná zařízení dostanou pouze IPv4 adresu a budou tak mít přístup ke captive portálu<br />
** DHCPv6 bude defaultně zkonfigurováno, aby zařízením neposkytlo IPv6 adresu do té doby než je uživatel uspěšně ověřen<br />
** po autentizaci přes captive portál na IPv4 modifikovat dynamicky konfiguraci DHCPv6 a povolit přidělení adresy s lease time ~ 1hodina<br />
*** asi to je možné řešit přes DHCPv6 classes, ale ty nejsou podporovány v ISC DHCP 4.2.5, který je součástí CentOS7<br />
*** nebude fungovat pro IPv6 only zařízení (to tu aktuálně vůbec neřešíme a v budoucnu se uvidí co bude možné např. s 6to4 překlady adres)<br />
<br />
=Firewall=<br />
[[Blokované porty]]<br />
<br />
=Provozní poznámky=<br />
<br />
* SMC8626<br />
** nejnovější firmware v1.4.0.8 je nestabilní (pro multicast a mam pocit že docházelo i k odpadnutí managementu)<br />
** aktualni firmware v1.1.0.2 nelze managovat přes VLANu (jinou než 1), kdy je na daném portu zároveň zapnutý <tt>spanning-tree edge-port</tt>, jelikož po restartu se nelze k managementu připojit dokud se nevytáhne a vrátí zpět ethernetový kabel => uplink nesmí mít tuhle volbu zapnutou</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Network&diff=3955Network2020-06-15T14:58:51Z<p>Keroupav: /* Individuální VLANy (detaily) */</p>
<hr />
<div>Dokumemtace a pravidla k organizaci sítě na FJFI. Jakékoliv změny v tomto dokumentu musí být oznámeny v mailing listu správců IT na FJFI (comp@lists.fjfi.cvut.cz), aby bylo možné sladit konfigurace lokálních systémů (např. firewallu) v závislosti na úpravách konfigurace sítě.<br />
<br />
=Páteřní rozvody a zapojení=<br />
<br />
==Břehová==<br />
<br />
Plány rozmístění rozvaděčů a barevně obarvené místnosti podle připojení síťových (ethernetových) zásuvek do rozvaděčů:<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1pp.png s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1_2np.png 1/2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1np.png 0.patro] (přízemí)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-2np.png 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-3np.png 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-4np.png 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-5np_krov.png 4.patro] (půdní vestavba)<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Brehova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* telefonní ústředna<br />
** foto z místnosti 008 [https://nms.fjfi.cvut.cz/user/images/ustredna-br-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-3.jpg 3], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-4.jpg 4]<br />
<br />
==Trojanova==<br />
<br />
Dokumentace z FJFI archivu k překladu optických tras realizovaných v roce 2009 (nascanováno, obrovské ~ 10MB JPG soubory):<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1pp.jpg s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1np.jpg 0.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/2np.jpg 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/3np.jpg 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/4np.jpg 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_blokove.jpg blokové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_prehledove.jpg přehledové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technická zpráva]<br />
* [[Topologie|nákres rozmístění rozvaděčů]]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Trojanova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/Kabel_Trojanka_HK.pdf připojení HK]<br />
** přívod chráničky do budovy je v místnosti s117 (hlavní uzávěr vody)<br />
** SM kabel - PIRELLI Deskwave 053/2001 LOOSE UNITUBE 12 9/125 T/VM<br />
** MM kabel - 12vl.<br />
** MM kabel je v místnosti s117 naspojkován (dříve vedl do 112 ale nyní přeložen do 302)<br />
** SM kabel nebyl nikdy ze 112 přeložen (po rekonstrukcích 112 v létě 2015 by měl být stažen do s117)<br />
* připojení do ČVUT<br />
** přívod chráničky do budovy je v místnosti s128<br />
** FRNC Belden optical Fibre 2x50/125 + 14x9/125<br />
** tento kabel nevede až na karlák, je naspojkován a dál vedou jen 2vl. SM optiky<br />
** cestou do místnosti 302 je nastaven (+/- někde u výtahu)<br />
* hlavní rozvaděč optiky v 302<br />
** foto optického patch panelu [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-3.jpg 3]<br />
** [https://nms.fjfi.cvut.cz/data/tr-optika/protokol-optika-302-srv1.pdf měřící protokol pro MM spojení 302 se SRV1]<br />
* propojeni serveroven ve sklepě<br />
** mezi serverovnami SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3+4 natažena i metalika<br />
*** aktuálně jde o 2x CAT6 ethernet kabel<br />
** zadavatel měl dost nešťastný nápad rozvést pouze 2 páry optiky<br />
*** rozvedeny jsou nakonec 4 páry včetně koncovek (nutné odšroubovat víko)<br />
*** v optické vaně jsou nacvaknuty do SC-SC spojky pouze 2 páry<br />
*** pravděpodobně nebylo dost místa / pozic pro zapojení dalších konektorů<br />
** navíc byla použita aktuálně asi nehorší dostupná vlákna MM OM1<br />
*** SFP-10G-SR (33m) nefungují spolehlivě ani mezi SRV1 &lt;-&gt; SRV2<br />
*** pro spojení bude asi nutné pořizovat 2x dražší SFP-10G-LRM (220m)<br />
*** při přímém propatchování SRV302 &lt;-&gt; SRV2 nefungovali spolehlivě ani tyto lepší moduly<br />
** spojení serveroven je seriové SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3+4<br />
*** mezi SRV3 a SRV4 bude ve zdi průchod takže optika z rozvaděče v SRV4 půjde "napatchovat" k zařízením v SRV3<br />
*** jedno vlákno (nejvíce vpravo) mezi SRV1 &lt;-&gt; SRV2 je mrtvé<br />
** PLÁN rekonstrukce<br />
*** předelat udělat všechno do SM optiky<br />
*** rozmyslet se ve které místnosti bude centralní rozvod optiky<br />
*** z centrálního rozvodu mít vlakna do všech serveroven<br />
*** hodně vláken s minimálně 6ti páry připravenými v patch panelu na každé SRVx<br />
*** natáhnout opravdu hodně SM vláken do SRV302(?!)<br />
*** v posledních letech jsou stále populárnější v budovách pre-terminated kabely s MTO/MTP (multifiber) koncovkami<br />
*** existují MTO/MTP konektory s 2x, 4x, 8x, 12x, 24x až 72x vlákny, ale pro správnou kabeláž je jestě podstatné dostupné kazety<br />
*** běžné kazety mají 12 LC konektorů (vejsou se 3 to 1U), dají se sehnat i vysokohustotní kazety s 24 LC konektory<br />
<br />
==Trója==<br />
<br />
Připojení bylo až do 201606 realizováno routováním přes PASNET a připojením do jejich routeru v Tróji. Od 1.7.2016 je Trója připojena lambdou přímo do Dejvic (CWDM 1470nm) a to trasou přes UTIA. V Tróji je na serverovně (PASNETu) optika "z Dejvic" propatchovana do rozvaděče na chodbě L119 (optika je v patch panelu zakončena LC/PC konektory), kde je aktuálně 1Gb zapojena do [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=63755 MikroTik CCR1016-12S-1S+] (detaily viz. [https://lists.fjfi.cvut.cz/mailman/private/comp/2016/001510.html Zmena pripojeni lokality Troja (IPv6)]).<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Troja.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.pp.png těžké lab. 0.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.np.png těžké lab. 1.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-2.np.png těžké lab. 2.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-3.np.png těžké lab. 3.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-7.np.png KJCH 6. patro]<br />
<br />
==Děčín==<br />
<br />
Tato lokalita není připojená přímo do sítě ČVUT, ale [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=2665 routerem] CESNETu.<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Decin.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.pp.png 0. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.np.png 1. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-2.np.png 2. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-3.np.png 3. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-4.np.png 4. patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/vykresy-2017/000---mistnosti.xls místnosti]<br />
<br />
=VLAN=<br />
<br />
ČVUT VIC prostupně přechází na globalní očíslování VLAN takovým způsobem, aby v se různých částech sítě nepoužívala stejná čísla VLAN (některým management nástrojům se takové konfigurace nezamlouvají). Z toho důvodu byl pro vnitřní potřeby FJFI přidělen rozsah VLAN 2400-2499. Některá starší (pochybnější) zařízení mohou mít problém s využítím takto vysokých čísel, v takovém případě bude nejlepší na nich žádné VLANy nekonfigurovat a budou se používat pouze pro netagovaný provoz.<br />
<br />
V následujících tabulkách je plán resp. dokumentace k využítí přidělených VLAN. První polovina přiděleného rozsahu je využita pro "standardní" VLANy (jejich jméno musí začínat prefixem <tt>fjfi-</tt>), které je vhodné mít vytvořené v každé budově FJFI a zbytek lze využít pro libovolné individuální VLANy (každé nově využité číslo VLAN z uvedeného rozsahu je zde nutné zdokumentovat). Pro Děčín je nutné tento plán brát dost s rezervou, jelikož tato lokalita není připojena přímo do ČVUT, ale je routována přímo CESNETem a lokální VLANy se nakonec mohou lišit.<br />
<br />
==Standardní VLANy==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2400-2439)<br/>(standardní VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<sup>*</sup><br />
!Břehová<br />
!Trojanova<br />
!Trója<br />
!Děčín<br />
!Status<br />
!Comment<br />
|-<br />
!fjfi-*-srv<br />
|2400<br />
|2410<br />
|2420<br />
|2430<br />
|active<br />
|Subnet pro servery<br />
|-<br />
!fjfi-*-def<br />
|2401<br />
|2411<br />
|2421<br />
|2431<br />
|active<br />
|Veřejná síť ("default VLAN" pro běžné počítače)<br />
|-<br />
!fjfi-*-mgmt-net<br />
|2402<br />
|2412<br />
|2422<br />
|2432<br />
|active<br />
|Management rozhraní síťových prvků (switch, router, ap, ...)<br />
|-<br />
!fjfi-*-mgmt-srv<br />
|2403<br />
|2413<br />
|2423<br />
|2433<br />
|active<br />
|Subnet pro management serverů (např. IPMI)<br />
|-<br />
!fjfi-*-sec<br />
|2404<br />
|2414<br />
|2424<br />
|2434<br />
|planed<br />
|Subnet pro zabezpečovací zařízeni (např. kamery, K4, ...)<br />
|-<br />
!fjfi-*-wifi<br />
|2405<br />
|2415<br />
|2425<br />
|2435<br />
|active<br />
|Wireless síť pro speciální příležitosti (např. samostatná konfigurace pro konference)<br />
|-<br />
!fjfi-*-eduroam<br />
|2406<br />
|2416<br />
|2426<br />
|2436<br />
|active<br />
|Wireless síť Eduroam<br />
|-<br />
!fjfi-*-wififjfi<br />
|2407<br />
|2417<br />
|2427<br />
|2437<br />
|active<br />
|Wireless síť s captive portálem<br />
|-<br />
!fjfi-*-voip<br />
|2408<br />
|2418<br />
|2428<br />
|2438<br />
|planed<br />
|Segment pro VoIP telefony<br />
|-<br />
!fjfi-*-fragile<br />
|2409<br />
|2419<br />
|2429<br />
|2439<br />
|active<br />
|Segment pro "nepočítačová" síťová zařízení (nepravidelné/neexistující updaty)<br />
|-<br />
!colspan="7"|U jmen VLAN je potřeba nahradit znak "*" zkratkou příslušné lokality (br/tr/vh/dp)<br />
|}<br />
<br />
==Standardní VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Detaily k rozdělení FJFI VLAN (2400-2439)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-eduroam<br />
|2416<br />
|active<br />
|tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Jeden subnet s veřejnými adresami <tt>147.32.11.0/24</tt> pro Eduroam síť v Trojance<br />
|}<br />
<br />
==Speciální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2440-2449)<br/>(speciální VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-kipl-nat<br />
|2444<br />
|active<br />
|tr<br />
|19.6.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-kipl-iso<br />
|2445<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN for private isolation (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-kipl1<br />
|2446<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-kipl2<br />
|2447<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-brtr-srv-clu<br />
|2448<br />
|active<br />
|br+tr<br />
|12.1.2015 FJFI<br />
|vokacpet<br />
|Public segment pro clusterování strojů mezi Trojankou a Břehovkou s dvěmi HSRP active/standby gateway<br />
|-<br />
!fjfi-brtr-srv-priv<br />
|2449<br />
|active<br />
|br+tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery v clusteru (DFS replikace)<br />
|}<br />
<br />
==Individuální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2450-2499)<br/>(individuální VLANy, pro uživatelské potřeby)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>(owner)<br />
!Admin<br />
!Comment<br />
|-<br />
!test_max_20_znaku<br />
|2450<br />
|test<br />
| --<br />
|2.6.2014 (KM)<br />
|vokacpet<br />
|Testovací záznam - tato VLAN není reálně nikde zkonfigurována, jméno VLAN musí být do 20 znaků (CISCO limit, stará SMC podporují max 12 znaků)!<br />
|-<br />
!fjfi-tr-km<br />
|2451<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kf<br />
|2452<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kj<br />
|2453<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kipl<br />
|2454<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kfe<br />
|2455<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kmat<br />
|2456<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kjch<br />
|2457<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kdaiz<br />
|2458<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-vh-kjr<br />
|2459<br />
|test<br />
|vh<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-ksi<br />
|2460<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-dekanat<br />
|2461<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-??-??<br />
|2462<br/>-<br/>2469<br />
|rezervace<br />
| --<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-aruba<br />
|2472<br />
|test<br />
|tr<br />
|15.6.2020<br />
|keroupav<br />
|Aruba, management AP<br />
|}<br />
<br />
==K promyšlení==<br />
<br />
* VLANy pro subnety kateder, rozdělení +/- dle čísel kateder<br />
* VLANy pro privátní subnety kateder (nebo mít jen jeden "veřejný" privátní subnet?)<br />
* VLAN pro přístupové systémy pro karty (je možné provozovat na privátní síťi?)<br />
* VLAN pro přístup k datům zabezpečení (kamery)<br />
* VLAN pro serverovou DMZ<br />
* Prohodit číslování standardních VLAN pro Tróju a Děčín (stejné pořadí jako seřazené IP segmenty?)<br />
** jedinný Děčín je "externí" lokalita routovaná přímo CESNETem (nemáme plnou kontrolu nad lokálními čísly VLAN a IPv6 čísly subnetů)<br />
** pořadí lokalit tedy bude br/tr/vh/dp<br />
<br />
=IP=<br />
<br />
==Veřejné adresy==<br />
<br />
Následující tabulka obsahuje souhrné informace o veřejných IP adresách přidělených a využívaných na FJFI.<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Rozdělení veřejných IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Gateway<br />
!VLAN Name<br />
!Admin<br />
!Comment<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.4.0%2F24&location=br 147.32.4.0/24]<br />
|Břehová<br />
|147.32.4.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-1<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.5.0%2F24&location=br 147.32.5.0/24]<br />
|Břehová<br />
|147.32.5.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-2<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.6.0%2F23&location=tr 147.32.6.0/23]<br />
|Trojanova<br />
|147.32.6.1<br />
|fjfi-tr-def<br />
|sinormil<br />
|Subnet KFE + dynamicky přidělované veřejné IP<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.8.0%2F24&location=tr 147.32.8.0/24]<br />
|Trojanova<br />
|147.32.8.1<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet KM+KJ+KSI+Elsa<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.0%2F26&location=tr 147.32.9.0/26]<br />
|Trojanova<br />
|147.32.9.1<br />
|fjfi-tr-srv<br />
|vokacpet<br />
|Serverový subnet v tr<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.64%2F26&location=tr 147.32.9.64/26]<br />
|Břehová+Trojanova<br />
|147.32.9.65<br />
|fjfi-brtr-srv-clu<br />
|vokacpet<br />
|Serverový subnet pro clustery mezi br+tr (duální gateway active/standby přes HSRP)<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.128%2F26&location=br 147.32.9.128/26]<br />
|Břehová<br />
|147.32.9.129<br />
|fjfi-br-srv<br />
|vokacpet<br />
|Serverový subnet v br<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.192%2F26&location=tr 147.32.9.192/26]<br />
|Trojanova<br />
|147.32.9.193<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet speciální zařízení<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.0%2F25&location=tr 147.32.10.0/25]<br />
|Trojanova<br />
|147.32.10.1<br />
|fjfi-tr-def<br />
|kopripe1<br />
|Subnet KMAT<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.128%2F25&location=tr 147.32.10.128/25]<br />
|Trojanova<br />
|147.32.10.129<br />
|fjfi-tr-def<br />
|drabmart<br />
|Subnet KIPL<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.11.0%2F24&location=tr 147.32.11.0/24]<br />
|Trojanova<br />
|147.32.11.1<br />
|fjfi-tr-eduroam<br />
|vokacpet<br />
|Eduroam<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.22.0%2F24&location=dp 147.32.22.0/24]<br />
|Děčín<br />
|147.32.22.1<br />
|fjfi-dp-def<br />
|sumpepre<br />
|Veřejné adresy dp<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.25.0%2F24&location=vh 147.32.25.0/24]<br />
|Trója<br />
|147.32.25.1<br />
|fjfi-vh-def<br />
|fialaja2<br />
|Veřejné adresy vh<br />
|}<br />
<br />
===Veřejné adresy detaily===<br />
<br />
Většina veřejných adres je rezervována pro konkrétní zařízení. V každé budově FJFI existuje ale i určitý rozsah veřejných adres, které jsou přidělovány registrovaným zařízením bez rezervace konkrétní adresy (zvýrazněno modře v níže uvedené tabulce). V případě aktuálního vyčerpání těchto volně dostupných veřejných adresu budou dalším zařízením přidělovány privátní adresy z privátního rozsahu na téže VLAN <tt>fjfi-*-def</tt>. V konfiguraci registrace síťového zařízení lze specifikovat, že danému zařízení má být vždy přidělena privátní adresa a to i v případě, že pool veřejných adres ještě nebyl vyčerpán.<br />
<br />
Trvale připojená zařízení využívají veřejné adresy by měla mít zaregistrovánu rezervovanou adresu z rozsahu, který je přidělen organizační jednotce vlastnící dané zařízení (viz. tabulka). Zařízení tak bude mít garantovánu stalou veřejnou IP adresu a nebude se zbytečně zmenšovat pool s veřejnými adresami pro ostatní zařízeni, která se na FJFI síti vyskytují pouze občas. Pro běžná zařízení (počítače) je preferováno použití veřejných adres, jelikož při jejich použití není fungování síťového zařízení omezeno potencíálními problémy NATu (vyplývající z podstaty NATu, vytížení NATovacího zařízení případně jeho nedostupnosti) a lze jednodušeji řešit případné stížnosti týkající se konkrétní adresy.<br />
<br />
Existuje ale i skupina speciálních zařízení (např. tiskárny) u nichž je lepší použít privátní adresy. Provoz některých zařízení na veřených adresách totiž představuje bezpečnostní hrobu vzhledem k neexistujícím automatickým security updatům firmware a omezeným možnostem konfigurace zabezpečení. Takové zařízení by ideálně měla být na samostatné VLAN <tt>fjfi-*-fragile</tt>, ale vzhledem ke komplikovanému managementu sítě pro ně je zatím vyhrazen rozsah privátních adres z VLAN <tt>fjfi-*-def</tt> (viz. [[#Priv.C3.A1n.C3.AD_adresy_na_default_VLAN_fjfi-.2A-def|níže]]). Adresu z tohoto rozsahu lze jednoduše vybrat v rozhraní pro registrace síťových zařízení.<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení veřejných IP rozsahů (detaily)<br />
|-<br />
!IP rozsah<br />
!adresy<br />
!Comment<br />
|-<br />
!rowspan="3"|147.32.4.0/24<br />
!147.32.4.0-70<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.4.71-189</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.4.190-255<br />
|??<br />
|-<br />
!rowspan="2"|147.32.5.0/24<br />
!147.32.5.0-49<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.5.50-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="4"|147.32.6.0/24<br />
!147.32.6.2-99<br />
|vyhrazeno unixářům (Richard Liska, Milan Šiňor) <br />
|-<br />
!147.32.6.100-116<br />
|pclab T124 (Kerouš)<br />
!147.32.6.117-199<br />
|kanceláře, ... (Antonín Novotný)<br />
|-<br />
!147.32.6.200-254<br />
|InfoLab, kanceláře (Josef Blažej)<br />
|-<br />
!147.32.6.255<br />
|rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
|-<br />
!rowspan="2"|147.32.7.0/24<br />
!147.32.7.1-31<br />
|tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
|-<br />
!<span style="color: blue">147.32.7.32-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="8"|147.32.8.0/24<br />
!147.32.8.2-79<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.80-96<br />
|studovna 214<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
|-<br />
!147.32.8.97-109<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.110-149<br />
|KM učebny<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
|-<br />
!147.32.8.150-207<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
* 147.32.8.160/28 vyhrazeno pro KM cluster + VMware (stracpav)<br />
|-<br />
!147.32.8.208/28<br />
|KSI zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.224/28<br />
|KJ zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.240/28<br />
|Elsa<br />
|-<br />
!rowspan="4"|147.32.9.0/24<br />
!147.32.9.0/26<br />
|Server Trojanova<br />
|-<br />
!147.32.9.64/26<br />
|Server Břehová+Trojanova<br />
|-<br />
!147.32.9.128/26<br />
|Server Břehová<br />
|-<br />
!147.32.9.192/26<br />
|Různé<br />
* Virtuální desktopy<br />
* speciální zařízení (např. kartové systemy - K4 master + netmoduly)<br />
* není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
|-<br />
!rowspan="2"|147.32.10.0/25<br />
!147.32.10.0/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.10.128/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.11.0/24<br />
!147.32.11.0/24<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.22.0/24<br />
!<span style="color: blue">147.32.22.101-199</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.25.0/24<br />
!<span style="color: blue">147.32.25.102-219</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|}<br />
<br />
==Privátní adresy==<br />
<br />
Vzhledem k nedostatku veřejných IP adres bylo nutné začít využívat i privátní IP adresy. Ty jsou používany jak čistě interně (např. management), tak i pro běžný provoz s NATem aktuálně hlavně na WiFi sítích, kde si vzhledem k enormnímu nárůstu počtu zařízení není možné vystačit s dostupnými veřejnými adresami. Privátní IPv4 adresy jsou také používány pro neregistrovaná zařízení a automatický přístup k captive portálu na stránku s registrací.<br />
<br />
Bohužel se na "Jednání IT techniků ČVUT - 11.6.2015" dohodlo, že se privátní adresy nebudou routovat po ČVUT (resp. nedošlo ani k základní shodě na tom, jaké rozsahy by bylo možné použít s tím, že ostatní fakulty už využívají všechny dostupné privátní subnety). Tohle je podmínka (téměř - viz. RFC6598) nutná pro možnost zřízení globálního NATu, takže ani v budoucnu nelze očekávat poskytnutí této služby v rámci celého ČVUT. Další komplikací je využití privátních adres mezi různými lokalitami FJFI, kde je potřeba využít policy based routing a privátní adresy do druhé lokality dostat přes tunel resp. dedikovanou VLAN. Centrální L3 switche použité v FJFI lokalitách také mají relativně omezené možnosti konfigurace (nepodporují NAT, netflow, GRE tunely, malá TCAM pro PBR, ...).<br />
{|class="wikitable"<br />
!colspan="6"|Počet adres v podsítích dané velikosti<br />
|-<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
|-<br />
!/24<br />
|256<br />
!/21<br />
|2048<br />
!/18<br />
|16384<br />
|-<br />
!/23<br />
|512<br />
!/20<br />
|4096<br />
!/17<br />
|32768<br />
|-<br />
!/22<br />
|1024<br />
!/19<br />
|8192<br />
!/16<br />
|65536<br />
|}<br />
<br />
<br />
===Privátní adresy dle lokality===<br />
<br />
Pro centrálně spravované privátní adresy na FJFI je využíván rozsah <tt>172.16.0.0/12</tt> z nějž má každá lokalita přidělen jeden segment <tt>/16</tt> (~ 65k adres) a poslední subnet <tt>172.31.0.0/16</tt> se využívá ke speciálním účelům (např. spojovačky). Přidělený segment je dále dělen na subnety jejichž základní číslování je shodné v každé lokalitě (např. dle VLAN, využití, ...).<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení privátních IP rozsahů na FJFI po lokalitách<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Comment<br />
|-<br />
!10.0.0.0/8<br />
| --<br />
|Vyhrazeno pro potřeby ČVUT (sice to nebylo nikde oficiálně řečeno, ale je to jedinný privátní rozsah u nejž vzhledem k velikosti má smysl uvažovat o využití v rámci celého ČVUT)<br />
|-<br />
!172.16.0.0/16<br />
|Břehová<br />
|<br />
|-<br />
!172.17.0.0/16<br />
|Trojanova<br />
|<br />
|-<br />
!172.18.0.0/16<br />
|Trója<br />
|<br />
|-<br />
!172.19.0.0/16<br />
|Děčín<br />
|<br />
|-<br />
!172.31.0.0/16<br />
| --<br />
|Vyhrazeno pro speciální využití (např. spojovačky na privátní síti)<br />
|-<br />
!192.168.0.0/16<br />
| --<br />
|Adresy z tohoto rozsahu nebudou na FJFI nijak regulovány a jsou preferované pro uživatelské testovací resp. dočásné privátní sítě. Je na jejich správci, aby si vybral nepoužívaný rozsah v dané síti resp. VLAN, ale není zde zaručeno resp. monitorováno jestli jestli stejné adresy začne používat někdo další. Pro potřeby trvalého privátního adresované na FJFI síti je doporučeno dohodnout alokaci podsítě z odpovídajících 172.1x.0.0/16 rozsahů. Nědky může být vhodné použít adresování 172.1x.0.0/16 i např. pro clustery resp. sítě kompletně oddělené od zbytku infrastruktury (např. je lze pak zpřístupnit přes centrální VPN).<br />
|-<br />
!colspan="3"|Privátní rozsahy značené 172.<span style="color: blue">1x</span>.aaa.bbb budou dále znamenat adresy v libovolné lokalitě (br=<span style="color: blue">16</span>/tr=<span style="color: blue">17</span>/vh=<span style="color: blue">18</span>/dp=<span style="color: blue">19</span>)<br />
|}<br />
<br />
===Privátní adresy dle VLAN===<br />
<br />
Všechny standardní využívané VLAN budou mít přidělen určitý rozsah privátních adres. V závislosti na využití bude přizpůsobena konfigurace "Private routing" týkající se routování mezi lokalitami FJFI (žádné routování, routování přes tunel/VLAN nebo IPSec zabezpečené spojení), routování do světa skrz NAT a různé filtrování paketů "Private ACL" mezi privátními subnety. Jednotlivé subnety je dobré alokovat také s ohledem na to, jak komplikované bude případné přečíslování zařízení na daném subnetu.<br />
<br />
{|class="wikitable"<br />
!colspan="8"|Rozdělení privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!VLAN Name<br />
!NAT<br />
!Private<br/>routing<br />
!Private<br/>ACL<br />
!Komplikace<br/>přeadresování<br />
!Comment<br />
|-<br />
!colspan="8"|172.1x.0.0/17 - adresy pro globální využití ve všech lokalitách<br />
|-<br />
!172.1x.0.0/22<br />
|172.1x.0.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování serverů dostupných přímo ze všech lokálních sítí, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.4.0/22<br />
|172.1x.4.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.8.0/22<br />
|172.1x.8.1<br />
|fjfi-*-srv<br />
|yes<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN s IPSec zabezpečenou komunikací mezi FJFI lokalitami, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.12.0/22<br />
| --<br />
|fjfi-*-srv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze z lokální VLAN (žádné routování či NAT)<br />
|-<br />
!172.1x.16.0/22<br />
|172.1x.16.1<br />
|fjfi-*-mgmt-net<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu síťových prvků (switche) dostupné pouze z mgmt-net VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.16.0/23<br />
|-<br />
!172.1x.20.0/22<br />
|172.1x.20.1<br />
|fjfi-*-mgmt-srv<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu serverů (IPMI, RAID controller, UPS, ...) dostupné pouze z mgmt-srv VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.20.0/23<br />
|-<br />
!172.1x.24.0/22<br />
|172.1x.24.1<br />
|fjfi-*-fragile<br />
|yes/no<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování pro samostatný subnet "nedůvěryhodných" zařízení (např. tiskárny, specializovaná zařízení bez pravidelných security update, ...), komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.24.0/23<br />
|-<br />
!172.1x.28.0/24<br />
|172.1x.28.1<br />
|fjfi-brtr-srv-clu<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.28.0/24)<br />
|-<br />
!172.1x.29.0/24<br />
| --<br />
|fjfi-brtr-srv-clu<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.29.0/24)<br />
|-<br />
!172.1x.30.0/24<br />
|172.1x.30.1<br />
|fjfi-brtr-srv-priv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.30.0/24)<br />
|-<br />
!172.1x.31.0/24<br />
| --<br />
|fjfi-brtr-srv-priv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.31.0/24)<br />
|-<br />
!172.1x.32.0<br/>-<br/>172.1x.51.255<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
|Rezervováno pro budoucí "globální využití"<br />
|-<br />
!172.1x.52.0/24<br/>172.1x.53.0/24<br />
|172.1x.52.1(*)<br/>172.1x.53.1(*)<br />
|VPN<br/>test<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro L2TP, PPTP, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.52.0/24 - PPTP server na nms-xx.fjfi.cvut.cz<br />
* 172.1x.53.0/24 - L2TP server na nms-xx.fjfi.cvut.cz<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.54.0/24<br/>172.1x.55.0/24<br />
|172.1x.54.1(*)<br/>172.1x.55.1(*)<br />
|OpenVPN<br/>admin<br />
|yes<br />
|default<br />
| --<br />
|malé<br />
|Privátní adresování pro admin OpenVPN klienty s přímým přístupem do sítě včetně privátních, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.54.0/24 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.55.0/24 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.56.0/22<br/>172.1x.60.0/22<br />
|172.1x.56.1(*)<br/>172.1x.60.1(*)<br />
|OpenVPN<br/>user<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro OpenVPN klienty, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.56.0/22 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.60.0/22 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.64.0/20<br />
|172.1x.64.1<br />
|fjfi-*-def<br />
|yes(*)<br />
|default<br />
|permit(*)<br />
|velké(*)<br />
|Privátní adresy na default VLAN (lokální síť v budově), detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-def]]<br />
|-<br />
!172.1x.80.0/20<br />
|172.1x.80.1<br />
|fjfi-*-wifi<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní rozsah pro speciální WiFi sítě, které mohou mít speciální konfiguraci např. pro konference, ...<strike>Rezervováno pro případné budoucí speciální požadavky na fjfi-*-def VLAN nebo rozšíření adresního prostoru na této VLAN</strike><br />
|-<br />
!172.1x.96.0/20<br />
|172.1x.96.1<br />
|fjfi-*-eduroam<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť Eduroam, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-eduroam]]<br />
|-<br />
!172.1x.112.0/20<br />
|172.1x.112.1(*)<br />
|fjfi-*-wififjfi<br />
|yes(*)<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť WiFiFJFI, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-wififjfi]], tato síť používá vlastní gateway pro řízení přístupu pomocí captive portálu a zařízení na ní nejsou z vnějšku dostupná.<br />
|-<br />
!colspan="8"|172.1x.128.0/18 - adresy pro lokální využití v konkrétní lokalitě lokalitě<br />
|-<br />
!colspan="8"|172.16.128.0/18 - Břehová<br />
|-<br />
!?rezervace?<br/>172.16.128.0/22<br />
|172.16.128.1(*)<br />
|fjfi-br-kf-private<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro síť KF s NAT a gateway zajištěnou [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=38061 vlastním zařízením]<br />
|-<br />
!colspan="8"|172.17.128.0/18 - Trojanova<br />
|-<br />
!?rezervace?<br/>172.17.128.0/22<br />
|172.17.128.1(*)<br />
|fjfi-tr-hyperion<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro KM+KIPL hyperion cluster s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=24149 NAT a gateway]<br />
|-<br />
!?rezervace?<br/>172.17.132.0/22<br />
|172.17.132.1<br />
|"xen-vdi"<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování pro Xen virtualizované desktopy, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!colspan="8"|172.18.128.0/18 - Trója<br />
|-<br />
!colspan="8"|172.19.128.0/18 - Děčín<br />
|-<br />
!colspan="8"|172.1x.192.0/18 - rezervováno<br />
|-<br />
|colspan="8"|Adresy pro lokální využití v konkrétní lokalitě rezervované pro případ, že dojde k L2 segmentaci sítě podle příslušnosti k různým součástem FJFI<br />
|}<br />
<br />
<br />
====Privátní adresy na default VLAN <tt>fjfi-*-def</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.64.0/20 na default VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.64.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
* 172.18.71.0/24 je v Tróji využíváno pro privátní adresování (měřících) zařízení KJR (humlond)<br />
|-<br />
!172.1x.72.0/22<br />
| --<br />
| --<br />
|vokacpet<br />
|unused<br />
|-<br />
!172.1x.76.0/23<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro "nepočítačová" zařízení (např. tiskárny)<br />
|-<br />
!172.1x.78.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro servery (např. printserver pro komunikaci na tomto subnetu)<br />
|-<br />
!172.1x.79.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným, smazaným a neregistrovaným zařízením<br />
|}<br />
<br />
====Privátní adresy na eduroam VLAN <tt>fjfi-*-eduroam</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.96.0/20 na eduroam VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.96.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.110.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.111.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným (smazaným) zařízením<br />
|}<br />
<br />
====Privátní adresy na wififjfi VLAN <tt>fjfi-*-wififjfi</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.112.0/20 na wififjfi VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.112.0/21<br />
|dynamic+reserved<br />
|auth<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.126.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.127.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným zařízením<br />
|}<br />
<br />
===Individuální rozsahy privátních adres===<br />
<br />
Využití těchto adres není nijak regulováno, takže zde neexistují žádné překážky k jejich použití ale na druhou stranu se také nelze spolehnout na to, že stejné adresy nezačne používat někdo další. V níže uvedené tabulce je (nekompletní) seznam aktuálně používaných adres z 192.168.0.0/16 rozsahu. Bylo by vhodné zvážit jestli do budoucna nezačít využívat rezervované subnety z 172.1x.0.0/16 rozsahů.<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení individuálních privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!Public<br />
!VLAN Name<br />
!OU<br />
!Admin<br />
!Comment<br />
|-<br />
!192.168.x.0/24<br />
|192.168.x.1<br />
|147.32.x.y<br />
|None<br />
|KIPL<br />
|drabmart<br />
|Privátní adresy pro KM+KIPL cluster<br />
|-<br />
!192.168.3.0/24<br />
|192.168.3.1<br />
|147.32.4.13<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF - kanceláře<br />
|-<br />
!192.168.11.0/24<br />
|192.168.11.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|-<br />
!192.168.20.0/24<br />
|192.168.20.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|}<br />
<br />
=IPv6=<br />
<br />
ČVUT přiděluje standardně <tt>/56</tt> rozsahy (lze použít pro vytvoření 256 podsítí) pro lokality připojené přes Dejvice ze přiděleného IPv6 rozsahu <tt>2001:718:2::/48</tt>. Bohužel vzhledem ke způsobu routování IPv6 není možné používat adresy z "dejvického" rozsahu v ostatních lokalitách (CESNET to ve své síti nepodporuje, tj. např. v Tóji a Děčíně), tam bude využit jiný rozsah přidělený ČVUT a routovaný Pasnetem resp. CESNETem.<br />
<br />
==IPv6 adresy dle lokality==<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI po lokalitách<br/>(FJFI IPv6 rozsahy 2001:718:2:1800::/54)<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Admin<br />
!Comment<br />
|-<br />
!2001:718:2:<span style="color: blue">17</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený na FJFI (včetně DNS reverzů, bude vrácen VICu po alokaci "1b")<br />
|-<br />
!2001:718:2:<span style="color: blue">18</span>00::/56<br />
|Břehová<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">19</span>00::/56<br />
|Trojanova<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">1a</span>00::/56<br />
|Trója<br />
|vokacpet<br />
|Veřejné adresy (aktuálně nevyužitý rozsah nazvaný FJFI test, čeká na novou serverovnu PASNETu v Tróji)<br />
|-<br />
!2001:718:2:<span style="color: blue">1b</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený FJFI ČVUT (pro "hezčí" FJFI IPv6 netmask)<br />
|-<br />
!??<br />
|Děčín<br />
|vokacpet<br />
|Veřejné adresy (další ČVUT adresy přidělené z routovatelného rozsahu CESNET)<br />
|}<br />
<br />
==IPv6 adresy dle VLAN==<br />
<br />
Každá VLAN přidělená FJFI má standardně přiřazen jeden IPv6 subnet <tt>/64</tt> z přiděleného rozsahu <tt>/56</tt> (256 možných <tt>/64</tt> subnetů). Příslušné číslo FJFI VLAN-2400 (tj. hodnoty v intervalu 0-99) budou přímo součástí IPv6 adresy na pozici 56-63. Vyjímkou je prvních 40 rezervovaných VLAN u nichž se používá pouze poslední číslice.<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI podle VLAN<br />
|-<br />
!IP rozsah<br />
!VLAN ID<br />
!VLAN Name<br />
!Comment<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">0</span>::/64<br />
|24?<span style="color: blue">0</span><br />
|fjfi-*-srv<br />
|Subnet pro servery<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">1</span>::/64<br />
|24?<span style="color: blue">1</span><br />
|fjfi-*-def<br />
|Veřejná síť ("default VLAN" pro běžné počítače) <br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">9</span>::/64<br />
|24?<span style="color: blue">9</span><br />
|fjfi-*-fragile<br />
|Segment pro "nepočítačová" síťová zařízení<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">48</span>::/64<br />
|24<span style="color: blue">48</span><br />
|fjfi-brtr-srv-clu<br />
|Public segment mezi Trojankou a Břehovkou s duální gateway přes HSRP<br />
|-<br />
!2001:718:2:xx<span style="color: blue">49</span>::/64<br />
|24<span style="color: blue">49</span><br />
|fjfi-brtr-srv-priv<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a0</span>::/64<br/> -- <br/>2001:718:2:xx<span style="color: blue">ff</span>::/64<br />
| --<br />
| --<br />
|Rezervováno pro budoucí/speciální využití<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a?</span>::/60<br />
|colspan="2"|Static route to OpenVPN server<br />
|OpenVPN IPv6 network<ul><br />
<li>...<span style="color: blue">a0</span>::/64 - openvpn.fjfi.cvut.cz:1194/udp</li><br />
<li>...<span style="color: blue">a1</span>::/64 - openvpn.fjfi.cvut.cz:1194/tcp</li><br />
<li>...<span style="color: blue">a2</span>::/64 - openvpn.fjfi.cvut.cz:443/udp</li><br />
<li>...<span style="color: blue">a3</span>::/64 - openvpn.fjfi.cvut.cz:443/tcp</li><br />
<li>...<span style="color: blue">a4</span>::/64 - openvpn.fjfi.cvut.cz:53/udp</li><br />
<li>...<span style="color: blue">a5</span>::/64 - openvpn.fjfi.cvut.cz:53/tcp</li><br />
<li>...<span style="color: blue">a6-af</span>::/64 - reserved</li><br />
</ul><br />
|}<br />
<br />
==Využití IPv6 adres v rámci <tt>/64</tt> subnetů==<br />
<br />
Každý subnet na IPv6 má prakticky vzato "neomezené" množství IPv6 adres. Lze tedy zavést další jemnější dělení těchto subnetů, aby bylo možné pro určité skupiny počítačů specifikovat například různá firewall pravidla (např. omezení přístupu na tiskárny pouze z IPv6 adres ČVUT). Nevyužité (zde nedefinované) části <tt>/64</tt> subnetů budou mít standardně zakázanou jakoukoliv komunikaci přímo na fakultním routeru.<br />
<br />
Navíc pro IPv6 nebudou v principu existovat dynamicky přidělované adresy jako je tomu na IPv4, kde je nutné recyklovat omezený adresní prostor. Všechna registrovaná zařízení (síťová rozhraní) budou mít statickou rezervaci konkrétní IPv6 adresy resp. jeji <tt>/64</tt> suffix, který tak bude stejný při připojení zařízení ve všech lokalitách (pro běžné uživatelské subnety jako např. <tt>def</tt>, <tt>eduroam</tt> a <tt>wififjfi</tt> VLAN). Takto přidělená adresa navíc nebude v budoucnu recyklována pro jiné uživatelské zařízení (existují vyjímky, jako např. servery u nichž je změna adresy občas nežádoucí). V případě potřeby je možné u existujícího zařízení smazat aktuální IPv6 adresu a nechat vygenerovat novou.<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-srv===<br />
<br />
* změny ve využití adres jsou u serverů velice komplikované<br />
** konfigurace sítě je na serverech statická (nepoužívají DHCP)<br />
** pro použité adresy může mít řada zařízení (nejen na tomto segmentu) zkonfigurována různá pravidla (např. firewall)<br />
** pokud se neobjeví ''závažné nedostatky'' aktuálního plánu (např. nové standardy) tak jsou adresy přiděleny navždy<br />
* aktuálně budou využívány pouze adresy z rozsahu 2001:718:2:1x00::/96<br />
* doporučený formát IPv6 addres<br />
*# IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x00::147.32.9.17) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x00::17)<br />
*# adresy z rosahu 2001:718:2:1x00::0001:0000-2001:718:2:1x00::00ff:ffff (~ 2^24 adres)<br />
*# registrační GUI bude automaticky generovat neobsazené IPv6 adresy ze správných rozsahů<br />
*# libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)<br />
* jeden server může mít zároveň přiděleno více aktivních IPv6 adres<br />
* je možné alokovat samostatný rozsah IPv6 adres pro skupinu počítačů<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru<br />
** aktuálně neexistují žádné předdefinované skupiny<br />
*** lze si představit např. skupiny dle OS (pro jednodušší psaní filtrů na aktuálně zneužívané chyby)<br />
*** také skupiny dle orgaizačních jednotek pro omezení komunikace na vlastní servery<br />
*** teprve praktické používání IPv6 ukáže reálné potřeby<br />
** využití skupin zde musí být zdokumentováno<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-srv</span> (2001:718:2:xx<span style="color: DarkGreen">00</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">00</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Standardní IPv6 rozsah serverů<br />
|}<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-def===<br />
<br />
* změny ve využití adres mohou být relativně jednoduché při dodržování následujících zásad<br />
** zařízení budou pro IPv6 konfigurace využívat výhradně router advertisementy + stavové DHCPv6<br />
*** vzhledem k nerecyklování IPv6 adres je možné nastavit velice dlouhý lease time<br />
*** nelze použít "nekonečno" jinak bychom přidělenou adresou v budoucnu nebyly schopni změnit<br />
*** maximální lease time tedy bude jeden měsíc<br />
** manuální konfigurace je silně nedoporučena<br />
*** pokud se rozhodneme změnit IPv6 adresování tak může dojít k problémům<br />
*** z hlediska správce IPv6 rozsahu je to problém čistě uživatele, který nedbal doporučení a nebude na něj brán ohled<br />
* podobně jako u serverové VLAN <tt>fjfi-*-srv</tt> bude možné zařízení zařazovat do skupin<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru (např. omezení komunikace po ČVUT pro tiskárny)<br />
** využití skupin zde musí být zdokumentováno<br />
* jedno zařízení může mít zároveň přiděleno více aktivních IPv6 adres<br />
* doporučený formát IPv6 addres (pouze správce sítě může s rozumným důvodem využít jinou než první možnost)<br />
*# registrační GUI bude [[Registrace_MAC#Pravidla pro automatické vytváření rezervovaných adres|automaticky generovat neobsazené IPv6 adresy ze správných rozsahů]]<br />
*# <strike>IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x01::147.32.8.52) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x01::852)</strike><br />
*# <strike>adresy z rosahu 2001:718:2:1x01::0001:0000-2001:718:2:1x01::00ff:ffff (~ 2^24 adres)</strike><br />
*# <strike>libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)</strike><br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-def</span> (2001:718:2:xx<span style="color: DarkGreen">01</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!colspan="4"|Adresy pro standardní a speciální rozsahy 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/88<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální IPv6 rozsah pro běžná zařízení (ručně přidělované adresy, např. 2001:718:2:1901::852), preferované jsou ale níže uvedené rozsahy s konkrétním účelem (dle typu zařízení, organizační jednotky, ...)<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy (nutné pro zařízení, které byli primárně registovany pro jinou lokaci)<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">2</span>::/96<br/>-<br/>2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">f</span>::/96<br />
|vokacpet<br />
|Rezervovaný rozsah pro budoucí využití<br />
|-<br />
!fragile<br/>printer<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro tiskárny s omezením komunikace po ČVUT<br />
|-<br />
!restricted<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací pouze přes http/https (+ lokální DNS)<br />
|-<br />
!restricted<sup>2</sup><br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací jen na vyhrazené lokální servery (adresy pro blokované, neregistrované, zlobivé, ... zařízení). Zatím by taková zařízení nemusela dostávat žádnou IPv6 adresu a do příslušná omezení a informační stranky by se zobrazili na základě přidělené IPv4 adresy.<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">??</span>::/96<br />
| --<br />
|Skupina zařízení s omezeními dle uživatelských požadavků - návrhy?<br />
|-<br />
!colspan="4"|Adresy vyhrazené pro zařízení kateder 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/88<br />
|-<br />
!ČVUT<br/>FJFI<br/>Other<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení ČVUT, FJFI a Ostatní<br />
|-<br />
!KM<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">101</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KM<br />
|-<br />
!KF<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">102</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KF<br />
|-<br />
!KJ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">103</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJ<br />
|-<br />
!KIPL<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">104</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KIPL<br />
|-<br />
!KFE<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">105</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KFE<br />
|-<br />
!KMAT<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">106</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KMAT<br />
|-<br />
!KJCH<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">107</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJCH<br />
|-<br />
!KDAIZ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">108</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KDAIZ<br />
|-<br />
!KJR<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">109</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJR<br />
|-<br />
!KSI<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10a</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KSI<br />
|-<br />
!CRRC<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10b</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení CRRC<br />
|-<br />
!Elsa<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10c</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Elsa<br />
|-<br />
!Děkanát<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10d</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Děkanátu<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-eduroam===<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* blokovaná zařízení nedostanou od DHCPv6 přidělenou IPv6 adresu<br />
** převedeno na problém samotného IPv4 a blokovaných zařízení, který je již vyřešen<br />
** aktuálně tedy nemáme plnou podporu IPv6 only zařízení, ale jen v případě ojedinělých případů blokace<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-eduroam</span> (2001:718:2:xx<span style="color: DarkGreen">06</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální rozsah (ručně přidělované/rezervované adresy), žádné restrikce<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy, minimální restrikce<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-wififjfi===<br />
<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* konfigurace by měla fungovat tak, aby klient mohl nakonec využívat nativní IPv6 konektivitu bez dalšího (linuxového) routeru (NAT) na cestě<br />
* zbývá dořešit technické detaily autentizace na captive portálu a také blokovaná (neregistrovaná a smazaná) zařízení<br />
** neautentizovaná zařízení dostanou pouze IPv4 adresu a budou tak mít přístup ke captive portálu<br />
** DHCPv6 bude defaultně zkonfigurováno, aby zařízením neposkytlo IPv6 adresu do té doby než je uživatel uspěšně ověřen<br />
** po autentizaci přes captive portál na IPv4 modifikovat dynamicky konfiguraci DHCPv6 a povolit přidělení adresy s lease time ~ 1hodina<br />
*** asi to je možné řešit přes DHCPv6 classes, ale ty nejsou podporovány v ISC DHCP 4.2.5, který je součástí CentOS7<br />
*** nebude fungovat pro IPv6 only zařízení (to tu aktuálně vůbec neřešíme a v budoucnu se uvidí co bude možné např. s 6to4 překlady adres)<br />
<br />
=Firewall=<br />
[[Blokované porty]]<br />
<br />
=Provozní poznámky=<br />
<br />
* SMC8626<br />
** nejnovější firmware v1.4.0.8 je nestabilní (pro multicast a mam pocit že docházelo i k odpadnutí managementu)<br />
** aktualni firmware v1.1.0.2 nelze managovat přes VLANu (jinou než 1), kdy je na daném portu zároveň zapnutý <tt>spanning-tree edge-port</tt>, jelikož po restartu se nelze k managementu připojit dokud se nevytáhne a vrátí zpět ethernetový kabel => uplink nesmí mít tuhle volbu zapnutou</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Network&diff=3944Network2019-10-24T10:47:51Z<p>Keroupav: </p>
<hr />
<div>Dokumemtace a pravidla k organizaci sítě na FJFI. Jakékoliv změny v tomto dokumentu musí být oznámeny v mailing listu správců IT na FJFI (comp@lists.fjfi.cvut.cz), aby bylo možné sladit konfigurace lokálních systémů (např. firewallu) v závislosti na úpravách konfigurace sítě.<br />
<br />
=Páteřní rozvody a zapojení=<br />
<br />
==Břehová==<br />
<br />
Plány rozmístění rozvaděčů a barevně obarvené místnosti podle připojení síťových (ethernetových) zásuvek do rozvaděčů:<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1pp.png s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1_2np.png 1/2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1np.png 0.patro] (přízemí)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-2np.png 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-3np.png 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-4np.png 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-5np_krov.png 4.patro] (půdní vestavba)<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Brehova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* telefonní ústředna<br />
** foto z místnosti 008 [https://nms.fjfi.cvut.cz/user/images/ustredna-br-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-3.jpg 3], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-4.jpg 4]<br />
<br />
==Trojanova==<br />
<br />
Dokumentace z FJFI archivu k překladu optických tras realizovaných v roce 2009 (nascanováno, obrovské ~ 10MB JPG soubory):<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1pp.jpg s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1np.jpg 0.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/2np.jpg 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/3np.jpg 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/4np.jpg 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_blokove.jpg blokové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_prehledove.jpg přehledové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technická zpráva]<br />
* [[Topologie|nákres rozmístění rozvaděčů]]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Trojanova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/Kabel_Trojanka_HK.pdf připojení HK]<br />
** přívod chráničky do budovy je v místnosti s117 (hlavní uzávěr vody)<br />
** SM kabel - PIRELLI Deskwave 053/2001 LOOSE UNITUBE 12 9/125 T/VM<br />
** MM kabel - 12vl.<br />
** MM kabel je v místnosti s117 naspojkován (dříve vedl do 112 ale nyní přeložen do 302)<br />
** SM kabel nebyl nikdy ze 112 přeložen (po rekonstrukcích 112 v létě 2015 by měl být stažen do s117)<br />
* připojení do ČVUT<br />
** přívod chráničky do budovy je v místnosti s128<br />
** FRNC Belden optical Fibre 2x50/125 + 14x9/125<br />
** tento kabel nevede až na karlák, je naspojkován a dál vedou jen 2vl. SM optiky<br />
** cestou do místnosti 302 je nastaven (+/- někde u výtahu)<br />
* hlavní rozvaděč optiky v 302<br />
** foto optického patch panelu [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-3.jpg 3]<br />
** [https://nms.fjfi.cvut.cz/data/tr-optika/protokol-optika-302-srv1.pdf měřící protokol pro MM spojení 302 se SRV1]<br />
* propojeni serveroven ve sklepě<br />
** mezi serverovnami SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3+4 natažena i metalika<br />
*** aktuálně jde o 2x CAT6 ethernet kabel<br />
** zadavatel měl dost nešťastný nápad rozvést pouze 2 páry optiky<br />
*** rozvedeny jsou nakonec 4 páry včetně koncovek (nutné odšroubovat víko)<br />
*** v optické vaně jsou nacvaknuty do SC-SC spojky pouze 2 páry<br />
*** pravděpodobně nebylo dost místa / pozic pro zapojení dalších konektorů<br />
** navíc byla použita aktuálně asi nehorší dostupná vlákna MM OM1<br />
*** SFP-10G-SR (33m) nefungují spolehlivě ani mezi SRV1 &lt;-&gt; SRV2<br />
*** pro spojení bude asi nutné pořizovat 2x dražší SFP-10G-LRM (220m)<br />
*** při přímém propatchování SRV302 &lt;-&gt; SRV2 nefungovali spolehlivě ani tyto lepší moduly<br />
** spojení serveroven je seriové SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3+4<br />
*** mezi SRV3 a SRV4 bude ve zdi průchod takže optika z rozvaděče v SRV4 půjde "napatchovat" k zařízením v SRV3<br />
*** jedno vlákno (nejvíce vpravo) mezi SRV1 &lt;-&gt; SRV2 je mrtvé<br />
** PLÁN rekonstrukce<br />
*** předelat udělat všechno do SM optiky<br />
*** rozmyslet se ve které místnosti bude centralní rozvod optiky<br />
*** z centrálního rozvodu mít vlakna do všech serveroven<br />
*** hodně vláken s minimálně 6ti páry připravenými v patch panelu na každé SRVx<br />
*** natáhnout opravdu hodně SM vláken do SRV302(?!)<br />
*** v posledních letech jsou stále populárnější v budovách pre-terminated kabely s MTO/MTP (multifiber) koncovkami<br />
*** existují MTO/MTP konektory s 2x, 4x, 8x, 12x, 24x až 72x vlákny, ale pro správnou kabeláž je jestě podstatné dostupné kazety<br />
*** běžné kazety mají 12 LC konektorů (vejsou se 3 to 1U), dají se sehnat i vysokohustotní kazety s 24 LC konektory<br />
<br />
==Trója==<br />
<br />
Připojení bylo až do 201606 realizováno routováním přes PASNET a připojením do jejich routeru v Tróji. Od 1.7.2016 je Trója připojena lambdou přímo do Dejvic (CWDM 1470nm) a to trasou přes UTIA. V Tróji je na serverovně (PASNETu) optika "z Dejvic" propatchovana do rozvaděče na chodbě L119 (optika je v patch panelu zakončena LC/PC konektory), kde je aktuálně 1Gb zapojena do [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=63755 MikroTik CCR1016-12S-1S+] (detaily viz. [https://lists.fjfi.cvut.cz/mailman/private/comp/2016/001510.html Zmena pripojeni lokality Troja (IPv6)]).<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Troja.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.pp.png těžké lab. 0.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.np.png těžké lab. 1.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-2.np.png těžké lab. 2.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-3.np.png těžké lab. 3.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-7.np.png KJCH 6. patro]<br />
<br />
==Děčín==<br />
<br />
Tato lokalita není připojená přímo do sítě ČVUT, ale [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=2665 routerem] CESNETu.<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Decin.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.pp.png 0. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.np.png 1. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-2.np.png 2. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-3.np.png 3. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-4.np.png 4. patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/vykresy-2017/000---mistnosti.xls místnosti]<br />
<br />
=VLAN=<br />
<br />
ČVUT VIC prostupně přechází na globalní očíslování VLAN takovým způsobem, aby v se různých částech sítě nepoužívala stejná čísla VLAN (některým management nástrojům se takové konfigurace nezamlouvají). Z toho důvodu byl pro vnitřní potřeby FJFI přidělen rozsah VLAN 2400-2499. Některá starší (pochybnější) zařízení mohou mít problém s využítím takto vysokých čísel, v takovém případě bude nejlepší na nich žádné VLANy nekonfigurovat a budou se používat pouze pro netagovaný provoz.<br />
<br />
V následujících tabulkách je plán resp. dokumentace k využítí přidělených VLAN. První polovina přiděleného rozsahu je využita pro "standardní" VLANy (jejich jméno musí začínat prefixem <tt>fjfi-</tt>), které je vhodné mít vytvořené v každé budově FJFI a zbytek lze využít pro libovolné individuální VLANy (každé nově využité číslo VLAN z uvedeného rozsahu je zde nutné zdokumentovat). Pro Děčín je nutné tento plán brát dost s rezervou, jelikož tato lokalita není připojena přímo do ČVUT, ale je routována přímo CESNETem a lokální VLANy se nakonec mohou lišit.<br />
<br />
==Standardní VLANy==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2400-2439)<br/>(standardní VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<sup>*</sup><br />
!Břehová<br />
!Trojanova<br />
!Trója<br />
!Děčín<br />
!Status<br />
!Comment<br />
|-<br />
!fjfi-*-srv<br />
|2400<br />
|2410<br />
|2420<br />
|2430<br />
|active<br />
|Subnet pro servery<br />
|-<br />
!fjfi-*-def<br />
|2401<br />
|2411<br />
|2421<br />
|2431<br />
|active<br />
|Veřejná síť ("default VLAN" pro běžné počítače)<br />
|-<br />
!fjfi-*-mgmt-net<br />
|2402<br />
|2412<br />
|2422<br />
|2432<br />
|active<br />
|Management rozhraní síťových prvků (switch, router, ap, ...)<br />
|-<br />
!fjfi-*-mgmt-srv<br />
|2403<br />
|2413<br />
|2423<br />
|2433<br />
|active<br />
|Subnet pro management serverů (např. IPMI)<br />
|-<br />
!fjfi-*-sec<br />
|2404<br />
|2414<br />
|2424<br />
|2434<br />
|planed<br />
|Subnet pro zabezpečovací zařízeni (např. kamery, K4, ...)<br />
|-<br />
!fjfi-*-wifi<br />
|2405<br />
|2415<br />
|2425<br />
|2435<br />
|active<br />
|Wireless síť pro speciální příležitosti (např. samostatná konfigurace pro konference)<br />
|-<br />
!fjfi-*-eduroam<br />
|2406<br />
|2416<br />
|2426<br />
|2436<br />
|active<br />
|Wireless síť Eduroam<br />
|-<br />
!fjfi-*-wififjfi<br />
|2407<br />
|2417<br />
|2427<br />
|2437<br />
|active<br />
|Wireless síť s captive portálem<br />
|-<br />
!fjfi-*-voip<br />
|2408<br />
|2418<br />
|2428<br />
|2438<br />
|planed<br />
|Segment pro VoIP telefony<br />
|-<br />
!fjfi-*-fragile<br />
|2409<br />
|2419<br />
|2429<br />
|2439<br />
|active<br />
|Segment pro "nepočítačová" síťová zařízení (nepravidelné/neexistující updaty)<br />
|-<br />
!colspan="7"|U jmen VLAN je potřeba nahradit znak "*" zkratkou příslušné lokality (br/tr/vh/dp)<br />
|}<br />
<br />
==Standardní VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Detaily k rozdělení FJFI VLAN (2400-2439)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-eduroam<br />
|2416<br />
|active<br />
|tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Jeden subnet s veřejnými adresami <tt>147.32.11.0/24</tt> pro Eduroam síť v Trojance<br />
|}<br />
<br />
==Speciální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2440-2449)<br/>(speciální VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-kipl-nat<br />
|2444<br />
|active<br />
|tr<br />
|19.6.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-kipl-iso<br />
|2445<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN for private isolation (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-kipl1<br />
|2446<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-tr-kipl2<br />
|2447<br />
|active<br />
|tr<br />
|5.5.2019 FJFI<br />
|vokacpet<br />
|KIPL cluster VLAN (tohle sem nepatří a příležitostně bude přečíslováno na 248x)<br />
|-<br />
!fjfi-brtr-srv-clu<br />
|2448<br />
|active<br />
|br+tr<br />
|12.1.2015 FJFI<br />
|vokacpet<br />
|Public segment pro clusterování strojů mezi Trojankou a Břehovkou s dvěmi HSRP active/standby gateway<br />
|-<br />
!fjfi-brtr-srv-priv<br />
|2449<br />
|active<br />
|br+tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery v clusteru (DFS replikace)<br />
|}<br />
<br />
==Individuální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2450-2499)<br/>(individuální VLANy, pro uživatelské potřeby)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>(owner)<br />
!Admin<br />
!Comment<br />
|-<br />
!test_max_20_znaku<br />
|2450<br />
|test<br />
| --<br />
|2.6.2014 (KM)<br />
|vokacpet<br />
|Testovací záznam - tato VLAN není reálně nikde zkonfigurována, jméno VLAN musí být do 20 znaků (CISCO limit, stará SMC podporují max 12 znaků)!<br />
|-<br />
!fjfi-tr-km<br />
|2451<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kf<br />
|2452<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kj<br />
|2453<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kipl<br />
|2454<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kfe<br />
|2455<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kmat<br />
|2456<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kjch<br />
|2457<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kdaiz<br />
|2458<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-vh-kjr<br />
|2459<br />
|test<br />
|vh<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-ksi<br />
|2460<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-dekanat<br />
|2461<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-??-??<br />
|2462<br/>-<br/>2469<br />
|rezervace<br />
| --<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|}<br />
<br />
==K promyšlení==<br />
<br />
* VLANy pro subnety kateder, rozdělení +/- dle čísel kateder<br />
* VLANy pro privátní subnety kateder (nebo mít jen jeden "veřejný" privátní subnet?)<br />
* VLAN pro přístupové systémy pro karty (je možné provozovat na privátní síťi?)<br />
* VLAN pro přístup k datům zabezpečení (kamery)<br />
* VLAN pro serverovou DMZ<br />
* Prohodit číslování standardních VLAN pro Tróju a Děčín (stejné pořadí jako seřazené IP segmenty?)<br />
** jedinný Děčín je "externí" lokalita routovaná přímo CESNETem (nemáme plnou kontrolu nad lokálními čísly VLAN a IPv6 čísly subnetů)<br />
** pořadí lokalit tedy bude br/tr/vh/dp<br />
<br />
=IP=<br />
<br />
==Veřejné adresy==<br />
<br />
Následující tabulka obsahuje souhrné informace o veřejných IP adresách přidělených a využívaných na FJFI.<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Rozdělení veřejných IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Gateway<br />
!VLAN Name<br />
!Admin<br />
!Comment<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.4.0%2F24&location=br 147.32.4.0/24]<br />
|Břehová<br />
|147.32.4.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-1<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.5.0%2F24&location=br 147.32.5.0/24]<br />
|Břehová<br />
|147.32.5.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-2<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.6.0%2F23&location=tr 147.32.6.0/23]<br />
|Trojanova<br />
|147.32.6.1<br />
|fjfi-tr-def<br />
|sinormil<br />
|Subnet KFE + dynamicky přidělované veřejné IP<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.8.0%2F24&location=tr 147.32.8.0/24]<br />
|Trojanova<br />
|147.32.8.1<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet KM+KJ+KSI+Elsa<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.0%2F26&location=tr 147.32.9.0/26]<br />
|Trojanova<br />
|147.32.9.1<br />
|fjfi-tr-srv<br />
|vokacpet<br />
|Serverový subnet v tr<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.64%2F26&location=tr 147.32.9.64/26]<br />
|Břehová+Trojanova<br />
|147.32.9.65<br />
|fjfi-brtr-srv-clu<br />
|vokacpet<br />
|Serverový subnet pro clustery mezi br+tr (duální gateway active/standby přes HSRP)<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.128%2F26&location=br 147.32.9.128/26]<br />
|Břehová<br />
|147.32.9.129<br />
|fjfi-br-srv<br />
|vokacpet<br />
|Serverový subnet v br<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.192%2F26&location=tr 147.32.9.192/26]<br />
|Trojanova<br />
|147.32.9.193<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet speciální zařízení<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.0%2F25&location=tr 147.32.10.0/25]<br />
|Trojanova<br />
|147.32.10.1<br />
|fjfi-tr-def<br />
|kopripe1<br />
|Subnet KMAT<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.128%2F25&location=tr 147.32.10.128/25]<br />
|Trojanova<br />
|147.32.10.129<br />
|fjfi-tr-def<br />
|drabmart<br />
|Subnet KIPL<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.11.0%2F24&location=tr 147.32.11.0/24]<br />
|Trojanova<br />
|147.32.11.1<br />
|fjfi-tr-eduroam<br />
|vokacpet<br />
|Eduroam<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.22.0%2F24&location=dp 147.32.22.0/24]<br />
|Děčín<br />
|147.32.22.1<br />
|fjfi-dp-def<br />
|sumpepre<br />
|Veřejné adresy dp<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.25.0%2F24&location=vh 147.32.25.0/24]<br />
|Trója<br />
|147.32.25.1<br />
|fjfi-vh-def<br />
|fialaja2<br />
|Veřejné adresy vh<br />
|}<br />
<br />
===Veřejné adresy detaily===<br />
<br />
Většina veřejných adres je rezervována pro konkrétní zařízení. V každé budově FJFI existuje ale i určitý rozsah veřejných adres, které jsou přidělovány registrovaným zařízením bez rezervace konkrétní adresy (zvýrazněno modře v níže uvedené tabulce). V případě aktuálního vyčerpání těchto volně dostupných veřejných adresu budou dalším zařízením přidělovány privátní adresy z privátního rozsahu na téže VLAN <tt>fjfi-*-def</tt>. V konfiguraci registrace síťového zařízení lze specifikovat, že danému zařízení má být vždy přidělena privátní adresa a to i v případě, že pool veřejných adres ještě nebyl vyčerpán.<br />
<br />
Trvale připojená zařízení využívají veřejné adresy by měla mít zaregistrovánu rezervovanou adresu z rozsahu, který je přidělen organizační jednotce vlastnící dané zařízení (viz. tabulka). Zařízení tak bude mít garantovánu stalou veřejnou IP adresu a nebude se zbytečně zmenšovat pool s veřejnými adresami pro ostatní zařízeni, která se na FJFI síti vyskytují pouze občas. Pro běžná zařízení (počítače) je preferováno použití veřejných adres, jelikož při jejich použití není fungování síťového zařízení omezeno potencíálními problémy NATu (vyplývající z podstaty NATu, vytížení NATovacího zařízení případně jeho nedostupnosti) a lze jednodušeji řešit případné stížnosti týkající se konkrétní adresy.<br />
<br />
Existuje ale i skupina speciálních zařízení (např. tiskárny) u nichž je lepší použít privátní adresy. Provoz některých zařízení na veřených adresách totiž představuje bezpečnostní hrobu vzhledem k neexistujícím automatickým security updatům firmware a omezeným možnostem konfigurace zabezpečení. Takové zařízení by ideálně měla být na samostatné VLAN <tt>fjfi-*-fragile</tt>, ale vzhledem ke komplikovanému managementu sítě pro ně je zatím vyhrazen rozsah privátních adres z VLAN <tt>fjfi-*-def</tt> (viz. [[#Priv.C3.A1n.C3.AD_adresy_na_default_VLAN_fjfi-.2A-def|níže]]). Adresu z tohoto rozsahu lze jednoduše vybrat v rozhraní pro registrace síťových zařízení.<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení veřejných IP rozsahů (detaily)<br />
|-<br />
!IP rozsah<br />
!adresy<br />
!Comment<br />
|-<br />
!rowspan="3"|147.32.4.0/24<br />
!147.32.4.0-70<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.4.71-189</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.4.190-255<br />
|??<br />
|-<br />
!rowspan="2"|147.32.5.0/24<br />
!147.32.5.0-49<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.5.50-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="4"|147.32.6.0/24<br />
!147.32.6.2-99<br />
|vyhrazeno unixářům (Richard Liska, Milan Šiňor) <br />
|-<br />
!147.32.6.100-116<br />
|pclab T124 (Kerouš)<br />
!147.32.6.117-199<br />
|kanceláře, ... (Antonín Novotný)<br />
|-<br />
!147.32.6.200-254<br />
|InfoLab, kanceláře (Josef Blažej)<br />
|-<br />
!147.32.6.255<br />
|rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
|-<br />
!rowspan="2"|147.32.7.0/24<br />
!147.32.7.1-31<br />
|tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
|-<br />
!<span style="color: blue">147.32.7.32-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="8"|147.32.8.0/24<br />
!147.32.8.2-79<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.80-96<br />
|studovna 214<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
|-<br />
!147.32.8.97-109<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.110-149<br />
|KM učebny<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
|-<br />
!147.32.8.150-207<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
* 147.32.8.160/28 vyhrazeno pro KM cluster + VMware (stracpav)<br />
|-<br />
!147.32.8.208/28<br />
|KSI zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.224/28<br />
|KJ zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.240/28<br />
|Elsa<br />
|-<br />
!rowspan="4"|147.32.9.0/24<br />
!147.32.9.0/26<br />
|Server Trojanova<br />
|-<br />
!147.32.9.64/26<br />
|Server Břehová+Trojanova<br />
|-<br />
!147.32.9.128/26<br />
|Server Břehová<br />
|-<br />
!147.32.9.192/26<br />
|Různé<br />
* Virtuální desktopy<br />
* speciální zařízení (např. kartové systemy - K4 master + netmoduly)<br />
* není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
|-<br />
!rowspan="2"|147.32.10.0/25<br />
!147.32.10.0/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.10.128/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.11.0/24<br />
!147.32.11.0/24<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.22.0/24<br />
!<span style="color: blue">147.32.22.101-199</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.25.0/24<br />
!<span style="color: blue">147.32.25.102-219</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|}<br />
<br />
==Privátní adresy==<br />
<br />
Vzhledem k nedostatku veřejných IP adres bylo nutné začít využívat i privátní IP adresy. Ty jsou používany jak čistě interně (např. management), tak i pro běžný provoz s NATem aktuálně hlavně na WiFi sítích, kde si vzhledem k enormnímu nárůstu počtu zařízení není možné vystačit s dostupnými veřejnými adresami. Privátní IPv4 adresy jsou také používány pro neregistrovaná zařízení a automatický přístup k captive portálu na stránku s registrací.<br />
<br />
Bohužel se na "Jednání IT techniků ČVUT - 11.6.2015" dohodlo, že se privátní adresy nebudou routovat po ČVUT (resp. nedošlo ani k základní shodě na tom, jaké rozsahy by bylo možné použít s tím, že ostatní fakulty už využívají všechny dostupné privátní subnety). Tohle je podmínka (téměř - viz. RFC6598) nutná pro možnost zřízení globálního NATu, takže ani v budoucnu nelze očekávat poskytnutí této služby v rámci celého ČVUT. Další komplikací je využití privátních adres mezi různými lokalitami FJFI, kde je potřeba využít policy based routing a privátní adresy do druhé lokality dostat přes tunel resp. dedikovanou VLAN. Centrální L3 switche použité v FJFI lokalitách také mají relativně omezené možnosti konfigurace (nepodporují NAT, netflow, GRE tunely, malá TCAM pro PBR, ...).<br />
{|class="wikitable"<br />
!colspan="6"|Počet adres v podsítích dané velikosti<br />
|-<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
|-<br />
!/24<br />
|256<br />
!/21<br />
|2048<br />
!/18<br />
|16384<br />
|-<br />
!/23<br />
|512<br />
!/20<br />
|4096<br />
!/17<br />
|32768<br />
|-<br />
!/22<br />
|1024<br />
!/19<br />
|8192<br />
!/16<br />
|65536<br />
|}<br />
<br />
<br />
===Privátní adresy dle lokality===<br />
<br />
Pro centrálně spravované privátní adresy na FJFI je využíván rozsah <tt>172.16.0.0/12</tt> z nějž má každá lokalita přidělen jeden segment <tt>/16</tt> (~ 65k adres) a poslední subnet <tt>172.31.0.0/16</tt> se využívá ke speciálním účelům (např. spojovačky). Přidělený segment je dále dělen na subnety jejichž základní číslování je shodné v každé lokalitě (např. dle VLAN, využití, ...).<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení privátních IP rozsahů na FJFI po lokalitách<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Comment<br />
|-<br />
!10.0.0.0/8<br />
| --<br />
|Vyhrazeno pro potřeby ČVUT (sice to nebylo nikde oficiálně řečeno, ale je to jedinný privátní rozsah u nejž vzhledem k velikosti má smysl uvažovat o využití v rámci celého ČVUT)<br />
|-<br />
!172.16.0.0/16<br />
|Břehová<br />
|<br />
|-<br />
!172.17.0.0/16<br />
|Trojanova<br />
|<br />
|-<br />
!172.18.0.0/16<br />
|Trója<br />
|<br />
|-<br />
!172.19.0.0/16<br />
|Děčín<br />
|<br />
|-<br />
!172.31.0.0/16<br />
| --<br />
|Vyhrazeno pro speciální využití (např. spojovačky na privátní síti)<br />
|-<br />
!192.168.0.0/16<br />
| --<br />
|Adresy z tohoto rozsahu nebudou na FJFI nijak regulovány a jsou preferované pro uživatelské testovací resp. dočásné privátní sítě. Je na jejich správci, aby si vybral nepoužívaný rozsah v dané síti resp. VLAN, ale není zde zaručeno resp. monitorováno jestli jestli stejné adresy začne používat někdo další. Pro potřeby trvalého privátního adresované na FJFI síti je doporučeno dohodnout alokaci podsítě z odpovídajících 172.1x.0.0/16 rozsahů. Nědky může být vhodné použít adresování 172.1x.0.0/16 i např. pro clustery resp. sítě kompletně oddělené od zbytku infrastruktury (např. je lze pak zpřístupnit přes centrální VPN).<br />
|-<br />
!colspan="3"|Privátní rozsahy značené 172.<span style="color: blue">1x</span>.aaa.bbb budou dále znamenat adresy v libovolné lokalitě (br=<span style="color: blue">16</span>/tr=<span style="color: blue">17</span>/vh=<span style="color: blue">18</span>/dp=<span style="color: blue">19</span>)<br />
|}<br />
<br />
===Privátní adresy dle VLAN===<br />
<br />
Všechny standardní využívané VLAN budou mít přidělen určitý rozsah privátních adres. V závislosti na využití bude přizpůsobena konfigurace "Private routing" týkající se routování mezi lokalitami FJFI (žádné routování, routování přes tunel/VLAN nebo IPSec zabezpečené spojení), routování do světa skrz NAT a různé filtrování paketů "Private ACL" mezi privátními subnety. Jednotlivé subnety je dobré alokovat také s ohledem na to, jak komplikované bude případné přečíslování zařízení na daném subnetu.<br />
<br />
{|class="wikitable"<br />
!colspan="8"|Rozdělení privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!VLAN Name<br />
!NAT<br />
!Private<br/>routing<br />
!Private<br/>ACL<br />
!Komplikace<br/>přeadresování<br />
!Comment<br />
|-<br />
!colspan="8"|172.1x.0.0/17 - adresy pro globální využití ve všech lokalitách<br />
|-<br />
!172.1x.0.0/22<br />
|172.1x.0.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování serverů dostupných přímo ze všech lokálních sítí, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.4.0/22<br />
|172.1x.4.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.8.0/22<br />
|172.1x.8.1<br />
|fjfi-*-srv<br />
|yes<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN s IPSec zabezpečenou komunikací mezi FJFI lokalitami, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.12.0/22<br />
| --<br />
|fjfi-*-srv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze z lokální VLAN (žádné routování či NAT)<br />
|-<br />
!172.1x.16.0/22<br />
|172.1x.16.1<br />
|fjfi-*-mgmt-net<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu síťových prvků (switche) dostupné pouze z mgmt-net VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.16.0/23<br />
|-<br />
!172.1x.20.0/22<br />
|172.1x.20.1<br />
|fjfi-*-mgmt-srv<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu serverů (IPMI, RAID controller, UPS, ...) dostupné pouze z mgmt-srv VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.20.0/23<br />
|-<br />
!172.1x.24.0/22<br />
|172.1x.24.1<br />
|fjfi-*-fragile<br />
|yes/no<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování pro samostatný subnet "nedůvěryhodných" zařízení (např. tiskárny, specializovaná zařízení bez pravidelných security update, ...), komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.24.0/23<br />
|-<br />
!172.1x.28.0/24<br />
|172.1x.28.1<br />
|fjfi-brtr-srv-clu<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.28.0/24)<br />
|-<br />
!172.1x.29.0/24<br />
| --<br />
|fjfi-brtr-srv-clu<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.29.0/24)<br />
|-<br />
!172.1x.30.0/24<br />
|172.1x.30.1<br />
|fjfi-brtr-srv-priv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.30.0/24)<br />
|-<br />
!172.1x.31.0/24<br />
| --<br />
|fjfi-brtr-srv-priv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.31.0/24)<br />
|-<br />
!172.1x.32.0<br/>-<br/>172.1x.51.255<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
|Rezervováno pro budoucí "globální využití"<br />
|-<br />
!172.1x.52.0/24<br/>172.1x.53.0/24<br />
|172.1x.52.1(*)<br/>172.1x.53.1(*)<br />
|VPN<br/>test<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro L2TP, PPTP, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.52.0/24 - PPTP server na nms-xx.fjfi.cvut.cz<br />
* 172.1x.53.0/24 - L2TP server na nms-xx.fjfi.cvut.cz<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.54.0/24<br/>172.1x.55.0/24<br />
|172.1x.54.1(*)<br/>172.1x.55.1(*)<br />
|OpenVPN<br/>admin<br />
|yes<br />
|default<br />
| --<br />
|malé<br />
|Privátní adresování pro admin OpenVPN klienty s přímým přístupem do sítě včetně privátních, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.54.0/24 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.55.0/24 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.56.0/22<br/>172.1x.60.0/22<br />
|172.1x.56.1(*)<br/>172.1x.60.1(*)<br />
|OpenVPN<br/>user<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro OpenVPN klienty, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.56.0/22 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.60.0/22 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.64.0/20<br />
|172.1x.64.1<br />
|fjfi-*-def<br />
|yes(*)<br />
|default<br />
|permit(*)<br />
|velké(*)<br />
|Privátní adresy na default VLAN (lokální síť v budově), detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-def]]<br />
|-<br />
!172.1x.80.0/20<br />
|172.1x.80.1<br />
|fjfi-*-wifi<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní rozsah pro speciální WiFi sítě, které mohou mít speciální konfiguraci např. pro konference, ...<strike>Rezervováno pro případné budoucí speciální požadavky na fjfi-*-def VLAN nebo rozšíření adresního prostoru na této VLAN</strike><br />
|-<br />
!172.1x.96.0/20<br />
|172.1x.96.1<br />
|fjfi-*-eduroam<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť Eduroam, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-eduroam]]<br />
|-<br />
!172.1x.112.0/20<br />
|172.1x.112.1(*)<br />
|fjfi-*-wififjfi<br />
|yes(*)<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť WiFiFJFI, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-wififjfi]], tato síť používá vlastní gateway pro řízení přístupu pomocí captive portálu a zařízení na ní nejsou z vnějšku dostupná.<br />
|-<br />
!colspan="8"|172.1x.128.0/18 - adresy pro lokální využití v konkrétní lokalitě lokalitě<br />
|-<br />
!colspan="8"|172.16.128.0/18 - Břehová<br />
|-<br />
!?rezervace?<br/>172.16.128.0/22<br />
|172.16.128.1(*)<br />
|fjfi-br-kf-private<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro síť KF s NAT a gateway zajištěnou [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=38061 vlastním zařízením]<br />
|-<br />
!colspan="8"|172.17.128.0/18 - Trojanova<br />
|-<br />
!?rezervace?<br/>172.17.128.0/22<br />
|172.17.128.1(*)<br />
|fjfi-tr-hyperion<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro KM+KIPL hyperion cluster s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=24149 NAT a gateway]<br />
|-<br />
!?rezervace?<br/>172.17.132.0/22<br />
|172.17.132.1<br />
|"xen-vdi"<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování pro Xen virtualizované desktopy, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!colspan="8"|172.18.128.0/18 - Trója<br />
|-<br />
!colspan="8"|172.19.128.0/18 - Děčín<br />
|-<br />
!colspan="8"|172.1x.192.0/18 - rezervováno<br />
|-<br />
|colspan="8"|Adresy pro lokální využití v konkrétní lokalitě rezervované pro případ, že dojde k L2 segmentaci sítě podle příslušnosti k různým součástem FJFI<br />
|}<br />
<br />
<br />
====Privátní adresy na default VLAN <tt>fjfi-*-def</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.64.0/20 na default VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.64.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
* 172.18.71.0/24 je v Tróji využíváno pro privátní adresování (měřících) zařízení KJR (humlond)<br />
|-<br />
!172.1x.72.0/22<br />
| --<br />
| --<br />
|vokacpet<br />
|unused<br />
|-<br />
!172.1x.76.0/23<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro "nepočítačová" zařízení (např. tiskárny)<br />
|-<br />
!172.1x.78.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro servery (např. printserver pro komunikaci na tomto subnetu)<br />
|-<br />
!172.1x.79.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným, smazaným a neregistrovaným zařízením<br />
|}<br />
<br />
====Privátní adresy na eduroam VLAN <tt>fjfi-*-eduroam</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.96.0/20 na eduroam VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.96.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.110.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.111.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným (smazaným) zařízením<br />
|}<br />
<br />
====Privátní adresy na wififjfi VLAN <tt>fjfi-*-wififjfi</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.112.0/20 na wififjfi VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.112.0/21<br />
|dynamic+reserved<br />
|auth<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.126.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.127.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným zařízením<br />
|}<br />
<br />
===Individuální rozsahy privátních adres===<br />
<br />
Využití těchto adres není nijak regulováno, takže zde neexistují žádné překážky k jejich použití ale na druhou stranu se také nelze spolehnout na to, že stejné adresy nezačne používat někdo další. V níže uvedené tabulce je (nekompletní) seznam aktuálně používaných adres z 192.168.0.0/16 rozsahu. Bylo by vhodné zvážit jestli do budoucna nezačít využívat rezervované subnety z 172.1x.0.0/16 rozsahů.<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení individuálních privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!Public<br />
!VLAN Name<br />
!OU<br />
!Admin<br />
!Comment<br />
|-<br />
!192.168.x.0/24<br />
|192.168.x.1<br />
|147.32.x.y<br />
|None<br />
|KIPL<br />
|drabmart<br />
|Privátní adresy pro KM+KIPL cluster<br />
|-<br />
!192.168.3.0/24<br />
|192.168.3.1<br />
|147.32.4.13<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF - kanceláře<br />
|-<br />
!192.168.11.0/24<br />
|192.168.11.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|-<br />
!192.168.20.0/24<br />
|192.168.20.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|}<br />
<br />
=IPv6=<br />
<br />
ČVUT přiděluje standardně <tt>/56</tt> rozsahy (lze použít pro vytvoření 256 podsítí) pro lokality připojené přes Dejvice ze přiděleného IPv6 rozsahu <tt>2001:718:2::/48</tt>. Bohužel vzhledem ke způsobu routování IPv6 není možné používat adresy z "dejvického" rozsahu v ostatních lokalitách (CESNET to ve své síti nepodporuje, tj. např. v Tóji a Děčíně), tam bude využit jiný rozsah přidělený ČVUT a routovaný Pasnetem resp. CESNETem.<br />
<br />
==IPv6 adresy dle lokality==<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI po lokalitách<br/>(FJFI IPv6 rozsahy 2001:718:2:1800::/54)<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Admin<br />
!Comment<br />
|-<br />
!2001:718:2:<span style="color: blue">17</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený na FJFI (včetně DNS reverzů, bude vrácen VICu po alokaci "1b")<br />
|-<br />
!2001:718:2:<span style="color: blue">18</span>00::/56<br />
|Břehová<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">19</span>00::/56<br />
|Trojanova<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">1a</span>00::/56<br />
|Trója<br />
|vokacpet<br />
|Veřejné adresy (aktuálně nevyužitý rozsah nazvaný FJFI test, čeká na novou serverovnu PASNETu v Tróji)<br />
|-<br />
!2001:718:2:<span style="color: blue">1b</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený FJFI ČVUT (pro "hezčí" FJFI IPv6 netmask)<br />
|-<br />
!??<br />
|Děčín<br />
|vokacpet<br />
|Veřejné adresy (další ČVUT adresy přidělené z routovatelného rozsahu CESNET)<br />
|}<br />
<br />
==IPv6 adresy dle VLAN==<br />
<br />
Každá VLAN přidělená FJFI má standardně přiřazen jeden IPv6 subnet <tt>/64</tt> z přiděleného rozsahu <tt>/56</tt> (256 možných <tt>/64</tt> subnetů). Příslušné číslo FJFI VLAN-2400 (tj. hodnoty v intervalu 0-99) budou přímo součástí IPv6 adresy na pozici 56-63. Vyjímkou je prvních 40 rezervovaných VLAN u nichž se používá pouze poslední číslice.<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI podle VLAN<br />
|-<br />
!IP rozsah<br />
!VLAN ID<br />
!VLAN Name<br />
!Comment<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">0</span>::/64<br />
|24?<span style="color: blue">0</span><br />
|fjfi-*-srv<br />
|Subnet pro servery<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">1</span>::/64<br />
|24?<span style="color: blue">1</span><br />
|fjfi-*-def<br />
|Veřejná síť ("default VLAN" pro běžné počítače) <br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">9</span>::/64<br />
|24?<span style="color: blue">9</span><br />
|fjfi-*-fragile<br />
|Segment pro "nepočítačová" síťová zařízení<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">48</span>::/64<br />
|24<span style="color: blue">48</span><br />
|fjfi-brtr-srv-clu<br />
|Public segment mezi Trojankou a Břehovkou s duální gateway přes HSRP<br />
|-<br />
!2001:718:2:xx<span style="color: blue">49</span>::/64<br />
|24<span style="color: blue">49</span><br />
|fjfi-brtr-srv-priv<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a0</span>::/64<br/> -- <br/>2001:718:2:xx<span style="color: blue">ff</span>::/64<br />
| --<br />
| --<br />
|Rezervováno pro budoucí/speciální využití<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a?</span>::/60<br />
|colspan="2"|Static route to OpenVPN server<br />
|OpenVPN IPv6 network<ul><br />
<li>...<span style="color: blue">a0</span>::/64 - openvpn.fjfi.cvut.cz:1194/udp</li><br />
<li>...<span style="color: blue">a1</span>::/64 - openvpn.fjfi.cvut.cz:1194/tcp</li><br />
<li>...<span style="color: blue">a2</span>::/64 - openvpn.fjfi.cvut.cz:443/udp</li><br />
<li>...<span style="color: blue">a3</span>::/64 - openvpn.fjfi.cvut.cz:443/tcp</li><br />
<li>...<span style="color: blue">a4</span>::/64 - openvpn.fjfi.cvut.cz:53/udp</li><br />
<li>...<span style="color: blue">a5</span>::/64 - openvpn.fjfi.cvut.cz:53/tcp</li><br />
<li>...<span style="color: blue">a6-af</span>::/64 - reserved</li><br />
</ul><br />
|}<br />
<br />
==Využití IPv6 adres v rámci <tt>/64</tt> subnetů==<br />
<br />
Každý subnet na IPv6 má prakticky vzato "neomezené" množství IPv6 adres. Lze tedy zavést další jemnější dělení těchto subnetů, aby bylo možné pro určité skupiny počítačů specifikovat například různá firewall pravidla (např. omezení přístupu na tiskárny pouze z IPv6 adres ČVUT). Nevyužité (zde nedefinované) části <tt>/64</tt> subnetů budou mít standardně zakázanou jakoukoliv komunikaci přímo na fakultním routeru.<br />
<br />
Navíc pro IPv6 nebudou v principu existovat dynamicky přidělované adresy jako je tomu na IPv4, kde je nutné recyklovat omezený adresní prostor. Všechna registrovaná zařízení (síťová rozhraní) budou mít statickou rezervaci konkrétní IPv6 adresy resp. jeji <tt>/64</tt> suffix, který tak bude stejný při připojení zařízení ve všech lokalitách (pro běžné uživatelské subnety jako např. <tt>def</tt>, <tt>eduroam</tt> a <tt>wififjfi</tt> VLAN). Takto přidělená adresa navíc nebude v budoucnu recyklována pro jiné uživatelské zařízení (existují vyjímky, jako např. servery u nichž je změna adresy občas nežádoucí). V případě potřeby je možné u existujícího zařízení smazat aktuální IPv6 adresu a nechat vygenerovat novou.<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-srv===<br />
<br />
* změny ve využití adres jsou u serverů velice komplikované<br />
** konfigurace sítě je na serverech statická (nepoužívají DHCP)<br />
** pro použité adresy může mít řada zařízení (nejen na tomto segmentu) zkonfigurována různá pravidla (např. firewall)<br />
** pokud se neobjeví ''závažné nedostatky'' aktuálního plánu (např. nové standardy) tak jsou adresy přiděleny navždy<br />
* aktuálně budou využívány pouze adresy z rozsahu 2001:718:2:1x00::/96<br />
* doporučený formát IPv6 addres<br />
*# IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x00::147.32.9.17) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x00::17)<br />
*# adresy z rosahu 2001:718:2:1x00::0001:0000-2001:718:2:1x00::00ff:ffff (~ 2^24 adres)<br />
*# registrační GUI bude automaticky generovat neobsazené IPv6 adresy ze správných rozsahů<br />
*# libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)<br />
* jeden server může mít zároveň přiděleno více aktivních IPv6 adres<br />
* je možné alokovat samostatný rozsah IPv6 adres pro skupinu počítačů<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru<br />
** aktuálně neexistují žádné předdefinované skupiny<br />
*** lze si představit např. skupiny dle OS (pro jednodušší psaní filtrů na aktuálně zneužívané chyby)<br />
*** také skupiny dle orgaizačních jednotek pro omezení komunikace na vlastní servery<br />
*** teprve praktické používání IPv6 ukáže reálné potřeby<br />
** využití skupin zde musí být zdokumentováno<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-srv</span> (2001:718:2:xx<span style="color: DarkGreen">00</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">00</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Standardní IPv6 rozsah serverů<br />
|}<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-def===<br />
<br />
* změny ve využití adres mohou být relativně jednoduché při dodržování následujících zásad<br />
** zařízení budou pro IPv6 konfigurace využívat výhradně router advertisementy + stavové DHCPv6<br />
*** vzhledem k nerecyklování IPv6 adres je možné nastavit velice dlouhý lease time<br />
*** nelze použít "nekonečno" jinak bychom přidělenou adresou v budoucnu nebyly schopni změnit<br />
*** maximální lease time tedy bude jeden měsíc<br />
** manuální konfigurace je silně nedoporučena<br />
*** pokud se rozhodneme změnit IPv6 adresování tak může dojít k problémům<br />
*** z hlediska správce IPv6 rozsahu je to problém čistě uživatele, který nedbal doporučení a nebude na něj brán ohled<br />
* podobně jako u serverové VLAN <tt>fjfi-*-srv</tt> bude možné zařízení zařazovat do skupin<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru (např. omezení komunikace po ČVUT pro tiskárny)<br />
** využití skupin zde musí být zdokumentováno<br />
* jedno zařízení může mít zároveň přiděleno více aktivních IPv6 adres<br />
* doporučený formát IPv6 addres (pouze správce sítě může s rozumným důvodem využít jinou než první možnost)<br />
*# registrační GUI bude [[Registrace_MAC#Pravidla pro automatické vytváření rezervovaných adres|automaticky generovat neobsazené IPv6 adresy ze správných rozsahů]]<br />
*# <strike>IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x01::147.32.8.52) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x01::852)</strike><br />
*# <strike>adresy z rosahu 2001:718:2:1x01::0001:0000-2001:718:2:1x01::00ff:ffff (~ 2^24 adres)</strike><br />
*# <strike>libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)</strike><br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-def</span> (2001:718:2:xx<span style="color: DarkGreen">01</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!colspan="4"|Adresy pro standardní a speciální rozsahy 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/88<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální IPv6 rozsah pro běžná zařízení (ručně přidělované adresy, např. 2001:718:2:1901::852), preferované jsou ale níže uvedené rozsahy s konkrétním účelem (dle typu zařízení, organizační jednotky, ...)<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy (nutné pro zařízení, které byli primárně registovany pro jinou lokaci)<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">2</span>::/96<br/>-<br/>2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">f</span>::/96<br />
|vokacpet<br />
|Rezervovaný rozsah pro budoucí využití<br />
|-<br />
!fragile<br/>printer<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro tiskárny s omezením komunikace po ČVUT<br />
|-<br />
!restricted<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací pouze přes http/https (+ lokální DNS)<br />
|-<br />
!restricted<sup>2</sup><br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací jen na vyhrazené lokální servery (adresy pro blokované, neregistrované, zlobivé, ... zařízení). Zatím by taková zařízení nemusela dostávat žádnou IPv6 adresu a do příslušná omezení a informační stranky by se zobrazili na základě přidělené IPv4 adresy.<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">??</span>::/96<br />
| --<br />
|Skupina zařízení s omezeními dle uživatelských požadavků - návrhy?<br />
|-<br />
!colspan="4"|Adresy vyhrazené pro zařízení kateder 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/88<br />
|-<br />
!ČVUT<br/>FJFI<br/>Other<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení ČVUT, FJFI a Ostatní<br />
|-<br />
!KM<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">101</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KM<br />
|-<br />
!KF<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">102</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KF<br />
|-<br />
!KJ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">103</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJ<br />
|-<br />
!KIPL<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">104</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KIPL<br />
|-<br />
!KFE<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">105</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KFE<br />
|-<br />
!KMAT<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">106</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KMAT<br />
|-<br />
!KJCH<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">107</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJCH<br />
|-<br />
!KDAIZ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">108</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KDAIZ<br />
|-<br />
!KJR<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">109</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJR<br />
|-<br />
!KSI<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10a</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KSI<br />
|-<br />
!CRRC<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10b</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení CRRC<br />
|-<br />
!Elsa<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10c</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Elsa<br />
|-<br />
!Děkanát<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10d</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Děkanátu<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-eduroam===<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* blokovaná zařízení nedostanou od DHCPv6 přidělenou IPv6 adresu<br />
** převedeno na problém samotného IPv4 a blokovaných zařízení, který je již vyřešen<br />
** aktuálně tedy nemáme plnou podporu IPv6 only zařízení, ale jen v případě ojedinělých případů blokace<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-eduroam</span> (2001:718:2:xx<span style="color: DarkGreen">06</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální rozsah (ručně přidělované/rezervované adresy), žádné restrikce<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy, minimální restrikce<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-wififjfi===<br />
<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* konfigurace by měla fungovat tak, aby klient mohl nakonec využívat nativní IPv6 konektivitu bez dalšího (linuxového) routeru (NAT) na cestě<br />
* zbývá dořešit technické detaily autentizace na captive portálu a také blokovaná (neregistrovaná a smazaná) zařízení<br />
** neautentizovaná zařízení dostanou pouze IPv4 adresu a budou tak mít přístup ke captive portálu<br />
** DHCPv6 bude defaultně zkonfigurováno, aby zařízením neposkytlo IPv6 adresu do té doby než je uživatel uspěšně ověřen<br />
** po autentizaci přes captive portál na IPv4 modifikovat dynamicky konfiguraci DHCPv6 a povolit přidělení adresy s lease time ~ 1hodina<br />
*** asi to je možné řešit přes DHCPv6 classes, ale ty nejsou podporovány v ISC DHCP 4.2.5, který je součástí CentOS7<br />
*** nebude fungovat pro IPv6 only zařízení (to tu aktuálně vůbec neřešíme a v budoucnu se uvidí co bude možné např. s 6to4 překlady adres)<br />
<br />
=Firewall=<br />
[[Blokované porty]]<br />
<br />
=Provozní poznámky=<br />
<br />
* SMC8626<br />
** nejnovější firmware v1.4.0.8 je nestabilní (pro multicast a mam pocit že docházelo i k odpadnutí managementu)<br />
** aktualni firmware v1.1.0.2 nelze managovat přes VLANu (jinou než 1), kdy je na daném portu zároveň zapnutý <tt>spanning-tree edge-port</tt>, jelikož po restartu se nelze k managementu připojit dokud se nevytáhne a vrátí zpět ethernetový kabel => uplink nesmí mít tuhle volbu zapnutou</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Network&diff=3801Network2017-04-20T11:38:43Z<p>Keroupav: /* Veřejné adresy detaily */</p>
<hr />
<div>Dokumemtace a pravidla k organizaci sítě na FJFI. Jakékoliv změny v tomto dokumentu musí být oznámeny v mailing listu správců IT na FJFI (comp@lists.fjfi.cvut.cz), aby bylo možné sladit konfigurace lokálních systémů (např. firewallu) v závislosti na úpravách konfigurace sítě.<br />
<br />
=Páteřní rozvody a zapojení=<br />
<br />
==Břehová==<br />
<br />
Plány rozmístění rozvaděčů a barevně obarvené místnosti podle připojení síťových (ethernetových) zásuvek do rozvaděčů:<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1pp.png s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1_2np.png 1/2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1np.png 0.patro] (přízemí)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-2np.png 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-3np.png 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-4np.png 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-5np_krov.png 4.patro] (půdní vestavba)<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Brehova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* telefonní ústředna<br />
** foto z místnosti 008 [https://nms.fjfi.cvut.cz/user/images/ustredna-br-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-3.jpg 3], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-4.jpg 4]<br />
<br />
==Trojanova==<br />
<br />
Dokumentace z FJFI archivu k překladu optických tras realizovaných v roce 2009 (nascanováno, obrovské ~ 10MB JPG soubory):<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1pp.jpg s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1np.jpg 0.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/2np.jpg 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/3np.jpg 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/4np.jpg 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_blokove.jpg blokové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_prehledove.jpg přehledové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technická zpráva]<br />
* [[Topologie|nákres rozmístění rozvaděčů]]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Trojanova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/Kabel_Trojanka_HK.pdf připojení HK]<br />
** přívod chráničky do budovy je v místnosti s117 (hlavní uzávěr vody)<br />
** SM kabel - PIRELLI Deskwave 053/2001 LOOSE UNITUBE 12 9/125 T/VM<br />
** MM kabel - 12vl.<br />
** MM kabel je v místnosti s117 naspojkován (dříve vedl do 112 ale nyní přeložen do 302)<br />
** SM kabel nebyl nikdy ze 112 přeložen (po rekonstrukcích 112 v létě 2015 by měl být stažen do s117)<br />
* připojení do ČVUT<br />
** přívod chráničky do budovy je v místnosti s128<br />
** FRNC Belden optical Fibre 2x50/125 + 14x9/125<br />
** tento kabel nevede až na karlák, je naspojkován a dál vedou jen 2vl. SM optiky<br />
** cestou do místnosti 302 je nastaven (+/- někde u výtahu)<br />
* hlavní rozvaděč optiky v 302<br />
** foto optického patch panelu [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-3.jpg 3]<br />
** [https://nms.fjfi.cvut.cz/data/tr-optika/protokol-optika-302-srv1.pdf měřící protokol pro MM spojení 302 se SRV1]<br />
* propojeni serveroven ve sklepě<br />
** zadavatel měl dost nešťastný nápad rozvést pouze 2 páry optiky<br />
** navíc byla použita aktuálně asi nehorší dostupná vlákna MM OM1<br />
*** SFP-10G-SR (33m) nefungují spolehlivě ani mezi SRV1 &lt;-&gt; SRV2<br />
*** pro spojení bude asi nutné pořizovat 2x dražší SFP-10G-LRM (220m)<br />
*** při přímém propatchování SRV302 &lt;-&gt; SRV2 nefungovali spolehlivě ani tyto lepší moduly<br />
** spojení serveroven je seriové SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3 &lt;-&gt; SRV4<br />
** jedno vlákno (nejvíce vpravo) mezi SRV1 &lt;-&gt; SRV2 je mrtvé<br />
** PLÁN rekonstrukce<br />
*** předelat udělat všechno do SM optiky<br />
*** rozmyslet se ve které místnosti bude centralní rozvod optiky<br />
*** z centrálního rozvodu mít vlakna do všech serveroven<br />
*** hodně vláken s minimálně 6ti páry připravenými v patch panelu na každé SRVx<br />
*** natáhnout opravdu hodně SM vláken do SRV302(?!)<br />
<br />
==Trója==<br />
<br />
Připojení bylo až do 201606 realizováno routováním přes PASNET a připojením do jejich routeru v Tróji. Od 1.7.2016 je Trója připojena lambdou přímo do Dejvic (CWDM 1470nm) a to trasou přes UTIA. V Tróji je na serverovně (PASNETu) optika "z Dejvic" propatchovana do rozvaděče na chodbě L119 (optika je v patch panelu zakončena LC/PC konektory), kde je aktuálně 1Gb zapojena do [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=63755 MikroTik CCR1016-12S-1S+] (detaily viz. [https://lists.fjfi.cvut.cz/mailman/private/comp/2016/001510.html Zmena pripojeni lokality Troja (IPv6)]).<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Troja.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.pp.png těžké lab. 0.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.np.png těžké lab. 1.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-2.np.png těžké lab. 2.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-3.np.png těžké lab. 3.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-7.np.png KJCH 6. patro]<br />
<br />
==Děčín==<br />
<br />
Tato lokalita není připojená přímo do sítě ČVUT, ale [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=2665 routerem] CESNETu.<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Decin.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.pp.png 0. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.np.png 1. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-2.np.png 2. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-3.np.png 3. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-4.np.png 4. patro]<br />
<br />
=VLAN=<br />
<br />
ČVUT VIC prostupně přechází na globalní očíslování VLAN takovým způsobem, aby v se různých částech sítě nepoužívala stejná čísla VLAN (některým management nástrojům se takové konfigurace nezamlouvají). Z toho důvodu byl pro vnitřní potřeby FJFI přidělen rozsah VLAN 2400-2499. Některá starší (pochybnější) zařízení mohou mít problém s využítím takto vysokých čísel, v takovém případě bude nejlepší na nich žádné VLANy nekonfigurovat a budou se používat pouze pro netagovaný provoz.<br />
<br />
V následujících tabulkách je plán resp. dokumentace k využítí přidělených VLAN. První polovina přiděleného rozsahu je využita pro "standardní" VLANy (jejich jméno musí začínat prefixem <tt>fjfi-</tt>), které je vhodné mít vytvořené v každé budově FJFI a zbytek lze využít pro libovolné individuální VLANy (každé nově využité číslo VLAN z uvedeného rozsahu je zde nutné zdokumentovat). Pro Děčín je nutné tento plán brát dost s rezervou, jelikož tato lokalita není připojena přímo do ČVUT, ale je routována přímo CESNETem a lokální VLANy se nakonec mohou lišit.<br />
<br />
==Standardní VLANy==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2400-2439)<br/>(standardní VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<sup>*</sup><br />
!Břehová<br />
!Trojanova<br />
!Trója<br />
!Děčín<br />
!Status<br />
!Comment<br />
|-<br />
!fjfi-*-srv<br />
|2400<br />
|2410<br />
|2420<br />
|2430<br />
|active<br />
|Subnet pro servery<br />
|-<br />
!fjfi-*-def<br />
|2401<br />
|2411<br />
|2421<br />
|2431<br />
|active<br />
|Veřejná síť ("default VLAN" pro běžné počítače)<br />
|-<br />
!fjfi-*-mgmt-net<br />
|2402<br />
|2412<br />
|2422<br />
|2432<br />
|active<br />
|Management rozhraní síťových prvků (switch, router, ap, ...)<br />
|-<br />
!fjfi-*-mgmt-srv<br />
|2403<br />
|2413<br />
|2423<br />
|2433<br />
|active<br />
|Subnet pro management serverů (např. IPMI)<br />
|-<br />
!fjfi-*-sec<br />
|2404<br />
|2414<br />
|2424<br />
|2434<br />
|planed<br />
|Subnet pro zabezpečovací zařízeni (např. kamery, K4, ...)<br />
|-<br />
!fjfi-*-wifi<br />
|2405<br />
|2415<br />
|2425<br />
|2435<br />
|active<br />
|Wireless síť pro speciální příležitosti (např. samostatná konfigurace pro konference)<br />
|-<br />
!fjfi-*-eduroam<br />
|2406<br />
|2416<br />
|2426<br />
|2436<br />
|active<br />
|Wireless síť Eduroam<br />
|-<br />
!fjfi-*-wififjfi<br />
|2407<br />
|2417<br />
|2427<br />
|2437<br />
|active<br />
|Wireless síť s captive portálem<br />
|-<br />
!fjfi-*-voip<br />
|2408<br />
|2418<br />
|2428<br />
|2438<br />
|planed<br />
|Segment pro VoIP telefony<br />
|-<br />
!fjfi-*-fragile<br />
|2409<br />
|2419<br />
|2429<br />
|2439<br />
|active<br />
|Segment pro "nepočítačová" síťová zařízení (nepravidelné/neexistující updaty)<br />
|-<br />
!colspan="7"|U jmen VLAN je potřeba nahradit znak "*" zkratkou příslušné lokality (br/tr/vh/dp)<br />
|}<br />
<br />
==Standardní VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Detaily k rozdělení FJFI VLAN (2400-2439)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-eduroam<br />
|2416<br />
|active<br />
|tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Jeden subnet s veřejnými adresami <tt>147.32.11.0/24</tt> pro Eduroam síť v Trojance<br />
|}<br />
<br />
==Speciální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2440-2449)<br/>(speciální VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-brtr-srv-clu<br />
|2448<br />
|active<br />
|br+tr<br />
|12.1.2015 FJFI<br />
|vokacpet<br />
|Public segment pro clusterování strojů mezi Trojankou a Břehovkou s dvěmi HSRP active/standby gateway<br />
|-<br />
!fjfi-brtr-srv-priv<br />
|2449<br />
|active<br />
|br+tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery v clusteru (DFS replikace)<br />
|}<br />
<br />
==Individuální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2450-2499)<br/>(individuální VLANy, pro uživatelské potřeby)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>(owner)<br />
!Admin<br />
!Comment<br />
|-<br />
!test_max_20_znaku<br />
|2450<br />
|test<br />
| --<br />
|2.6.2014 (KM)<br />
|vokacpet<br />
|Testovací záznam - tato VLAN není reálně nikde zkonfigurována, jméno VLAN musí být do 20 znaků (CISCO limit, stará SMC podporují max 12 znaků)!<br />
|-<br />
!fjfi-tr-km<br />
|2451<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kf<br />
|2452<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kj<br />
|2453<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kipl<br />
|2454<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kfe<br />
|2455<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kmat<br />
|2456<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kjch<br />
|2457<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kdaiz<br />
|2458<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-vh-kjr<br />
|2459<br />
|test<br />
|vh<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-ksi<br />
|2460<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-dekanat<br />
|2461<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-??-??<br />
|2462<br/>-<br/>2469<br />
|rezervace<br />
| --<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|}<br />
<br />
==K promyšlení==<br />
<br />
* VLANy pro subnety kateder, rozdělení +/- dle čísel kateder<br />
* VLANy pro privátní subnety kateder (nebo mít jen jeden "veřejný" privátní subnet?)<br />
* VLAN pro přístupové systémy pro karty (je možné provozovat na privátní síťi?)<br />
* VLAN pro přístup k datům zabezpečení (kamery)<br />
* VLAN pro serverovou DMZ<br />
* Prohodit číslování standardních VLAN pro Tróju a Děčín (stejné pořadí jako seřazené IP segmenty?)<br />
** jedinný Děčín je "externí" lokalita routovaná přímo CESNETem (nemáme plnou kontrolu nad lokálními čísly VLAN a IPv6 čísly subnetů)<br />
** pořadí lokalit tedy bude br/tr/vh/dp<br />
<br />
=IP=<br />
<br />
==Veřejné adresy==<br />
<br />
Následující tabulka obsahuje souhrné informace o veřejných IP adresách přidělených a využívaných na FJFI.<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Rozdělení veřejných IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Gateway<br />
!VLAN Name<br />
!Admin<br />
!Comment<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.4.0%2F24&location=br 147.32.4.0/24]<br />
|Břehová<br />
|147.32.4.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-1<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.5.0%2F24&location=br 147.32.5.0/24]<br />
|Břehová<br />
|147.32.5.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-2<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.6.0%2F23&location=tr 147.32.6.0/23]<br />
|Trojanova<br />
|147.32.6.1<br />
|fjfi-tr-def<br />
|sinormil<br />
|Subnet KFE + dynamicky přidělované veřejné IP<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.8.0%2F24&location=tr 147.32.8.0/24]<br />
|Trojanova<br />
|147.32.8.1<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet KM+KJ+KSI+Elsa<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.0%2F26&location=tr 147.32.9.0/26]<br />
|Trojanova<br />
|147.32.9.1<br />
|fjfi-tr-srv<br />
|vokacpet<br />
|Serverový subnet v tr<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.64%2F26&location=tr 147.32.9.64/26]<br />
|Břehová+Trojanova<br />
|147.32.9.65<br />
|fjfi-brtr-srv-clu<br />
|vokacpet<br />
|Serverový subnet pro clustery mezi br+tr (duální gateway active/standby přes HSRP)<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.128%2F26&location=br 147.32.9.128/26]<br />
|Břehová<br />
|147.32.9.129<br />
|fjfi-br-srv<br />
|vokacpet<br />
|Serverový subnet v br<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.192%2F26&location=tr 147.32.9.192/26]<br />
|Trojanova<br />
|147.32.9.193<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet speciální zařízení<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.0%2F25&location=tr 147.32.10.0/25]<br />
|Trojanova<br />
|147.32.10.1<br />
|fjfi-tr-def<br />
|kopripe1<br />
|Subnet KMAT<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.128%2F25&location=tr 147.32.10.128/25]<br />
|Trojanova<br />
|147.32.10.129<br />
|fjfi-tr-def<br />
|drabmart<br />
|Subnet KIPL<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.11.0%2F24&location=tr 147.32.11.0/24]<br />
|Trojanova<br />
|147.32.11.1<br />
|fjfi-tr-eduroam<br />
|vokacpet<br />
|Eduroam<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.22.0%2F24&location=dp 147.32.22.0/24]<br />
|Děčín<br />
|147.32.22.1<br />
|fjfi-dp-def<br />
|sumpepre<br />
|Veřejné adresy dp<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.25.0%2F24&location=vh 147.32.25.0/24]<br />
|Trója<br />
|147.32.25.1<br />
|fjfi-vh-def<br />
|fialaja2<br />
|Veřejné adresy vh<br />
|}<br />
<br />
===Veřejné adresy detaily===<br />
<br />
Většina veřejných adres je rezervována pro konkrétní zařízení. V každé budově FJFI existuje ale i určitý rozsah veřejných adres, které jsou přidělovány registrovaným zařízením bez rezervace konkrétní adresy (zvýrazněno modře v níže uvedené tabulce). V případě aktuálního vyčerpání těchto volně dostupných veřejných adresu budou dalším zařízením přidělovány privátní adresy z privátního rozsahu na téže VLAN <tt>fjfi-*-def</tt>. V konfiguraci registrace síťového zařízení lze specifikovat, že danému zařízení má být vždy přidělena privátní adresa a to i v případě, že pool veřejných adres ještě nebyl vyčerpán.<br />
<br />
Trvale připojená zařízení využívají veřejné adresy by měla mít zaregistrovánu rezervovanou adresu z rozsahu, který je přidělen organizační jednotce vlastnící dané zařízení (viz. tabulka). Zařízení tak bude mít garantovánu stalou veřejnou IP adresu a nebude se zbytečně zmenšovat pool s veřejnými adresami pro ostatní zařízeni, která se na FJFI síti vyskytují pouze občas. Pro běžná zařízení (počítače) je preferováno použití veřejných adres, jelikož při jejich použití není fungování síťového zařízení omezeno potencíálními problémy NATu (vyplývající z podstaty NATu, vytížení NATovacího zařízení případně jeho nedostupnosti) a lze jednodušeji řešit případné stížnosti týkající se konkrétní adresy.<br />
<br />
Existuje ale i skupina speciálních zařízení (např. tiskárny) u nichž je lepší použít privátní adresy. Provoz některých zařízení na veřených adresách totiž představuje bezpečnostní hrobu vzhledem k neexistujícím automatickým security updatům firmware a omezeným možnostem konfigurace zabezpečení. Takové zařízení by ideálně měla být na samostatné VLAN <tt>fjfi-*-fragile</tt>, ale vzhledem ke komplikovanému managementu sítě pro ně je zatím vyhrazen rozsah privátních adres z VLAN <tt>fjfi-*-def</tt> (viz. [[#Priv.C3.A1n.C3.AD_adresy_na_default_VLAN_fjfi-.2A-def|níže]]). Adresu z tohoto rozsahu lze jednoduše vybrat v rozhraní pro registrace síťových zařízení.<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení veřejných IP rozsahů (detaily)<br />
|-<br />
!IP rozsah<br />
!adresy<br />
!Comment<br />
|-<br />
!rowspan="3"|147.32.4.0/24<br />
!147.32.4.0-70<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.4.71-189</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.4.190-255<br />
|??<br />
|-<br />
!rowspan="2"|147.32.5.0/24<br />
!147.32.5.0-49<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.5.50-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="4"|147.32.6.0/24<br />
!147.32.6.2-99<br />
|vyhrazeno unixářům (Richard Liska, Milan Šiňor) <br />
|-<br />
!147.32.6.100-199<br />
|pclab, kanceláře, ... (Antonín Novotný)<br />
|-<br />
!147.32.6.200-254<br />
|InfoLab, kanceláře (Josef Blažej)<br />
|-<br />
!147.32.6.255<br />
|rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
|-<br />
!rowspan="2"|147.32.7.0/24<br />
!147.32.7.1-31<br />
|tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
|-<br />
!<span style="color: blue">147.32.7.32-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="8"|147.32.8.0/24<br />
!147.32.8.2-79<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.80-96<br />
|studovna 214<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
|-<br />
!147.32.8.97-109<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.110-149<br />
|KM učebny<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
|-<br />
!147.32.8.150-207<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.208/28<br />
|KSI zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.224/28<br />
|KJ zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.240/28<br />
|Elsa<br />
|-<br />
!rowspan="3"|147.32.9.128/25<br />
!147.32.9.128/27<br />
|KSE (Miroslav Virius ?)<br />
|-<br />
!147.32.9.160-223<br />
|Tiskárny<br />
* 147.32.9.190 rezervace<br />
* 147.32.9.191 rezervace<br />
* 147.32.9.192 rezervace<br />
* 147.32.9.212 rezervace<br />
* 147.32.9.213 rezervace<br />
* správce Míra Minárik, Pavel Kerouš<br />
|-<br />
!147.32.9.224/27<br />
|různé (zatím pro "speciální" zařízení jako např. kartové systémy, ...), není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
|-<br />
!rowspan="2"|147.32.10.0/25<br />
!147.32.10.0/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.10.128/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.11.0/24<br />
!147.32.11.0/24<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.22.0/24<br />
!<span style="color: blue">147.32.22.101-199</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.25.0/24<br />
!<span style="color: blue">147.32.25.102-219</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|}<br />
<br />
==Privátní adresy==<br />
<br />
Vzhledem k nedostatku veřejných IP adres bylo nutné začít využívat i privátní IP adresy. Ty jsou používany jak čistě interně (např. management), tak i pro běžný provoz s NATem aktuálně hlavně na WiFi sítích, kde si vzhledem k enormnímu nárůstu počtu zařízení není možné vystačit s dostupnými veřejnými adresami. Privátní IPv4 adresy jsou také používány pro neregistrovaná zařízení a automatický přístup k captive portálu na stránku s registrací.<br />
<br />
Bohužel se na "Jednání IT techniků ČVUT - 11.6.2015" dohodlo, že se privátní adresy nebudou routovat po ČVUT (resp. nedošlo ani k základní shodě na tom, jaké rozsahy by bylo možné použít s tím, že ostatní fakulty už využívají všechny dostupné privátní subnety). Tohle je podmínka (téměř - viz. RFC6598) nutná pro možnost zřízení globálního NATu, takže ani v budoucnu nelze očekávat poskytnutí této služby v rámci celého ČVUT. Další komplikací je využití privátních adres mezi různými lokalitami FJFI, kde je potřeba využít policy based routing a privátní adresy do druhé lokality dostat přes tunel resp. dedikovanou VLAN. Centrální L3 switche použité v FJFI lokalitách také mají relativně omezené možnosti konfigurace (nepodporují NAT, netflow, GRE tunely, malá TCAM pro PBR, ...).<br />
{|class="wikitable"<br />
!colspan="6"|Počet adres v podsítích dané velikosti<br />
|-<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
|-<br />
!/24<br />
|256<br />
!/21<br />
|2048<br />
!/18<br />
|16384<br />
|-<br />
!/23<br />
|512<br />
!/20<br />
|4096<br />
!/17<br />
|32768<br />
|-<br />
!/22<br />
|1024<br />
!/19<br />
|8192<br />
!/16<br />
|65536<br />
|}<br />
<br />
<br />
===Privátní adresy dle lokality===<br />
<br />
Pro centrálně spravované privátní adresy na FJFI je využíván rozsah <tt>172.16.0.0/12</tt> z nějž má každá lokalita přidělen jeden segment <tt>/16</tt> (~ 65k adres) a poslední subnet <tt>172.31.0.0/16</tt> se využívá ke speciálním účelům (např. spojovačky). Přidělený segment je dále dělen na subnety jejichž základní číslování je shodné v každé lokalitě (např. dle VLAN, využití, ...).<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení privátních IP rozsahů na FJFI po lokalitách<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Comment<br />
|-<br />
!10.0.0.0/8<br />
| --<br />
|Vyhrazeno pro potřeby ČVUT (sice to nebylo nikde oficiálně řečeno, ale je to jedinný privátní rozsah u nejž vzhledem k velikosti má smysl uvažovat o využití v rámci celého ČVUT)<br />
|-<br />
!172.16.0.0/16<br />
|Břehová<br />
|<br />
|-<br />
!172.17.0.0/16<br />
|Trojanova<br />
|<br />
|-<br />
!172.18.0.0/16<br />
|Trója<br />
|<br />
|-<br />
!172.19.0.0/16<br />
|Děčín<br />
|<br />
|-<br />
!172.31.0.0/16<br />
| --<br />
|Vyhrazeno pro speciální využití (např. spojovačky na privátní síti)<br />
|-<br />
!192.168.0.0/16<br />
| --<br />
|Adresy z tohoto rozsahu nebudou na FJFI nijak regulovány a jsou preferované pro uživatelské testovací resp. dočásné privátní sítě. Je na jejich správci, aby si vybral nepoužívaný rozsah v dané síti resp. VLAN, ale není zde zaručeno resp. monitorováno jestli jestli stejné adresy začne používat někdo další. Pro potřeby trvalého privátního adresované na FJFI síti je doporučeno dohodnout alokaci podsítě z odpovídajících 172.1x.0.0/16 rozsahů. Nědky může být vhodné použít adresování 172.1x.0.0/16 i např. pro clustery resp. sítě kompletně oddělené od zbytku infrastruktury (např. je lze pak zpřístupnit přes centrální VPN).<br />
|-<br />
!colspan="3"|Privátní rozsahy značené 172.<span style="color: blue">1x</span>.aaa.bbb budou dále znamenat adresy v libovolné lokalitě (br=<span style="color: blue">16</span>/tr=<span style="color: blue">17</span>/vh=<span style="color: blue">18</span>/dp=<span style="color: blue">19</span>)<br />
|}<br />
<br />
===Privátní adresy dle VLAN===<br />
<br />
Všechny standardní využívané VLAN budou mít přidělen určitý rozsah privátních adres. V závislosti na využití bude přizpůsobena konfigurace "Private routing" týkající se routování mezi lokalitami FJFI (žádné routování, routování přes tunel/VLAN nebo IPSec zabezpečené spojení), routování do světa skrz NAT a různé filtrování paketů "Private ACL" mezi privátními subnety. Jednotlivé subnety je dobré alokovat také s ohledem na to, jak komplikované bude případné přečíslování zařízení na daném subnetu.<br />
<br />
{|class="wikitable"<br />
!colspan="8"|Rozdělení privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!VLAN Name<br />
!NAT<br />
!Private<br/>routing<br />
!Private<br/>ACL<br />
!Komplikace<br/>přeadresování<br />
!Comment<br />
|-<br />
!colspan="8"|172.1x.0.0/17 - adresy pro globální využití ve všech lokalitách<br />
|-<br />
!172.1x.0.0/22<br />
|172.1x.0.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování serverů dostupných přímo ze všech lokálních sítí, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.4.0/22<br />
|172.1x.4.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.8.0/22<br />
|172.1x.8.1<br />
|fjfi-*-srv<br />
|yes<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN s IPSec zabezpečenou komunikací mezi FJFI lokalitami, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.12.0/22<br />
| --<br />
|fjfi-*-srv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze z lokální VLAN (žádné routování či NAT)<br />
|-<br />
!172.1x.16.0/22<br />
|172.1x.16.1<br />
|fjfi-*-mgmt-net<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu síťových prvků (switche) dostupné pouze z mgmt-net VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.16.0/23<br />
|-<br />
!172.1x.20.0/22<br />
|172.1x.20.1<br />
|fjfi-*-mgmt-srv<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu serverů (IPMI, RAID controller, UPS, ...) dostupné pouze z mgmt-srv VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.20.0/23<br />
|-<br />
!172.1x.24.0/22<br />
|172.1x.24.1<br />
|fjfi-*-fragile<br />
|yes/no<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování pro samostatný subnet "nedůvěryhodných" zařízení (např. tiskárny, specializovaná zařízení bez pravidelných security update, ...), komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.24.0/23<br />
|-<br />
!172.1x.28.0/24<br />
|172.1x.28.1<br />
|fjfi-brtr-srv-clu<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.28.0/24)<br />
|-<br />
!172.1x.29.0/24<br />
| --<br />
|fjfi-brtr-srv-clu<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.29.0/24)<br />
|-<br />
!172.1x.30.0/24<br />
|172.1x.30.1<br />
|fjfi-brtr-srv-priv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.30.0/24)<br />
|-<br />
!172.1x.31.0/24<br />
| --<br />
|fjfi-brtr-srv-priv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.31.0/24)<br />
|-<br />
!172.1x.32.0<br/>-<br/>172.1x.51.255<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
|Rezervováno pro budoucí "globální využití"<br />
|-<br />
!172.1x.52.0/24<br/>172.1x.53.0/24<br />
|172.1x.52.1(*)<br/>172.1x.53.1(*)<br />
|VPN<br/>test<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro L2TP, PPTP, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.52.0/24 - PPTP server na nms-xx.fjfi.cvut.cz<br />
* 172.1x.53.0/24 - L2TP server na nms-xx.fjfi.cvut.cz<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.54.0/24<br/>172.1x.55.0/24<br />
|172.1x.54.1(*)<br/>172.1x.55.1(*)<br />
|OpenVPN<br/>admin<br />
|yes<br />
|default<br />
| --<br />
|malé<br />
|Privátní adresování pro admin OpenVPN klienty s přímým přístupem do sítě včetně privátních, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.54.0/24 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.55.0/24 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.56.0/22<br/>172.1x.60.0/22<br />
|172.1x.56.1(*)<br/>172.1x.60.1(*)<br />
|OpenVPN<br/>user<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro OpenVPN klienty, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.56.0/22 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.60.0/22 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.64.0/20<br />
|172.1x.64.1<br />
|fjfi-*-def<br />
|yes(*)<br />
|default<br />
|permit(*)<br />
|velké(*)<br />
|Privátní adresy na default VLAN (lokální síť v budově), detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-def]]<br />
|-<br />
!172.1x.80.0/20<br />
|172.1x.80.1<br />
|fjfi-*-wifi<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní rozsah pro speciální WiFi sítě, které mohou mít speciální konfiguraci např. pro konference, ...<strike>Rezervováno pro případné budoucí speciální požadavky na fjfi-*-def VLAN nebo rozšíření adresního prostoru na této VLAN</strike><br />
|-<br />
!172.1x.96.0/20<br />
|172.1x.96.1<br />
|fjfi-*-eduroam<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť Eduroam, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-eduroam]]<br />
|-<br />
!172.1x.112.0/20<br />
|172.1x.112.1(*)<br />
|fjfi-*-wififjfi<br />
|yes(*)<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť WiFiFJFI, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-wififjfi]], tato síť používá vlastní gateway pro řízení přístupu pomocí captive portálu a zařízení na ní nejsou z vnějšku dostupná.<br />
|-<br />
!colspan="8"|172.1x.128.0/18 - adresy pro lokální využití v konkrétní lokalitě lokalitě<br />
|-<br />
!colspan="8"|172.16.128.0/18 - Břehová<br />
|-<br />
!?rezervace?<br/>172.16.128.0/22<br />
|172.16.128.1(*)<br />
|fjfi-br-kf-private<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro síť KF s NAT a gateway zajištěnou [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=38061 vlastním zařízením]<br />
|-<br />
!colspan="8"|172.17.128.0/18 - Trojanova<br />
|-<br />
!?rezervace?<br/>172.17.128.0/22<br />
|172.17.128.1(*)<br />
|fjfi-tr-hyperion<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro KM+KIPL hyperion cluster s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=24149 NAT a gateway]<br />
|-<br />
!?rezervace?<br/>172.17.132.0/22<br />
|172.17.132.1<br />
|"xen-vdi"<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování pro Xen virtualizované desktopy, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!colspan="8"|172.18.128.0/18 - Trója<br />
|-<br />
!colspan="8"|172.19.128.0/18 - Děčín<br />
|-<br />
!colspan="8"|172.1x.192.0/18 - rezervováno<br />
|-<br />
|colspan="8"|Adresy pro lokální využití v konkrétní lokalitě rezervované pro případ, že dojde k L2 segmentaci sítě podle příslušnosti k různým součástem FJFI<br />
|}<br />
<br />
<br />
====Privátní adresy na default VLAN <tt>fjfi-*-def</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.64.0/20 na default VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.64.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
* 172.18.71.0/24 je v Tróji využíváno pro privátní adresování (měřících) zařízení KJR (humlond)<br />
|-<br />
!172.1x.72.0/22<br />
| --<br />
| --<br />
|vokacpet<br />
|unused<br />
|-<br />
!172.1x.76.0/23<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro "nepočítačová" zařízení (např. tiskárny)<br />
|-<br />
!172.1x.78.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro servery (např. printserver pro komunikaci na tomto subnetu)<br />
|-<br />
!172.1x.79.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným, smazaným a neregistrovaným zařízením<br />
|}<br />
<br />
====Privátní adresy na eduroam VLAN <tt>fjfi-*-eduroam</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.96.0/20 na eduroam VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.96.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.110.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.111.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným (smazaným) zařízením<br />
|}<br />
<br />
====Privátní adresy na wififjfi VLAN <tt>fjfi-*-wififjfi</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.112.0/20 na wififjfi VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.112.0/21<br />
|dynamic+reserved<br />
|auth<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.126.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.127.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným zařízením<br />
|}<br />
<br />
===Individuální rozsahy privátních adres===<br />
<br />
Využití těchto adres není nijak regulováno, takže zde neexistují žádné překážky k jejich použití ale na druhou stranu se také nelze spolehnout na to, že stejné adresy nezačne používat někdo další. V níže uvedené tabulce je (nekompletní) seznam aktuálně používaných adres z 192.168.0.0/16 rozsahu. Bylo by vhodné zvážit jestli do budoucna nezačít využívat rezervované subnety z 172.1x.0.0/16 rozsahů.<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení individuálních privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!Public<br />
!VLAN Name<br />
!OU<br />
!Admin<br />
!Comment<br />
|-<br />
!192.168.x.0/24<br />
|192.168.x.1<br />
|147.32.x.y<br />
|None<br />
|KIPL<br />
|drabmart<br />
|Privátní adresy pro KM+KIPL cluster<br />
|-<br />
!192.168.3.0/24<br />
|192.168.3.1<br />
|147.32.4.13<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF - kanceláře<br />
|-<br />
!192.168.11.0/24<br />
|192.168.11.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|-<br />
!192.168.20.0/24<br />
|192.168.20.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|}<br />
<br />
=IPv6=<br />
<br />
ČVUT přiděluje standardně <tt>/56</tt> rozsahy (lze použít pro vytvoření 256 podsítí) pro lokality připojené přes Dejvice ze přiděleného IPv6 rozsahu <tt>2001:718:2::/48</tt>. Bohužel vzhledem ke způsobu routování IPv6 není možné používat adresy z "dejvického" rozsahu v ostatních lokalitách (CESNET to ve své síti nepodporuje, tj. např. v Tóji a Děčíně), tam bude využit jiný rozsah přidělený ČVUT a routovaný Pasnetem resp. CESNETem.<br />
<br />
==IPv6 adresy dle lokality==<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI po lokalitách<br/>(FJFI IPv6 rozsahy 2001:718:2:1800::/54)<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Admin<br />
!Comment<br />
|-<br />
!2001:718:2:<span style="color: blue">17</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený na FJFI (včetně DNS reverzů, bude vrácen VICu po alokaci "1b")<br />
|-<br />
!2001:718:2:<span style="color: blue">18</span>00::/56<br />
|Břehová<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">19</span>00::/56<br />
|Trojanova<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">1a</span>00::/56<br />
|Trója<br />
|vokacpet<br />
|Veřejné adresy (aktuálně nevyužitý rozsah nazvaný FJFI test, čeká na novou serverovnu PASNETu v Tróji)<br />
|-<br />
!2001:718:2:<span style="color: blue">1b</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený FJFI ČVUT (pro "hezčí" FJFI IPv6 netmask)<br />
|-<br />
!??<br />
|Děčín<br />
|vokacpet<br />
|Veřejné adresy (další ČVUT adresy přidělené z routovatelného rozsahu CESNET)<br />
|}<br />
<br />
==IPv6 adresy dle VLAN==<br />
<br />
Každá VLAN přidělená FJFI má standardně přiřazen jeden IPv6 subnet <tt>/64</tt> z přiděleného rozsahu <tt>/56</tt> (256 možných <tt>/64</tt> subnetů). Příslušné číslo FJFI VLAN-2400 (tj. hodnoty v intervalu 0-99) budou přímo součástí IPv6 adresy na pozici 56-63. Vyjímkou je prvních 40 rezervovaných VLAN u nichž se používá pouze poslední číslice.<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI podle VLAN<br />
|-<br />
!IP rozsah<br />
!VLAN ID<br />
!VLAN Name<br />
!Comment<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">0</span>::/64<br />
|24?<span style="color: blue">0</span><br />
|fjfi-*-srv<br />
|Subnet pro servery<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">1</span>::/64<br />
|24?<span style="color: blue">1</span><br />
|fjfi-*-def<br />
|Veřejná síť ("default VLAN" pro běžné počítače) <br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">9</span>::/64<br />
|24?<span style="color: blue">9</span><br />
|fjfi-*-fragile<br />
|Segment pro "nepočítačová" síťová zařízení<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">48</span>::/64<br />
|24<span style="color: blue">48</span><br />
|fjfi-brtr-srv-clu<br />
|Public segment mezi Trojankou a Břehovkou s duální gateway přes HSRP<br />
|-<br />
!2001:718:2:xx<span style="color: blue">49</span>::/64<br />
|24<span style="color: blue">49</span><br />
|fjfi-brtr-srv-priv<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a0</span>::/64<br/> -- <br/>2001:718:2:xx<span style="color: blue">ff</span>::/64<br />
| --<br />
| --<br />
|Rezervováno pro budoucí/speciální využití<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a?</span>::/60<br />
|colspan="2"|Static route to OpenVPN server<br />
|OpenVPN IPv6 network<ul><br />
<li>...<span style="color: blue">a0</span>::/64 - openvpn.fjfi.cvut.cz:1194/udp</li><br />
<li>...<span style="color: blue">a1</span>::/64 - openvpn.fjfi.cvut.cz:1194/tcp</li><br />
<li>...<span style="color: blue">a2</span>::/64 - openvpn.fjfi.cvut.cz:443/udp</li><br />
<li>...<span style="color: blue">a3</span>::/64 - openvpn.fjfi.cvut.cz:443/tcp</li><br />
<li>...<span style="color: blue">a4</span>::/64 - openvpn.fjfi.cvut.cz:53/udp</li><br />
<li>...<span style="color: blue">a5</span>::/64 - openvpn.fjfi.cvut.cz:53/tcp</li><br />
<li>...<span style="color: blue">a6-af</span>::/64 - reserved</li><br />
</ul><br />
|}<br />
<br />
==Využití IPv6 adres v rámci <tt>/64</tt> subnetů==<br />
<br />
Každý subnet na IPv6 má prakticky vzato "neomezené" množství IPv6 adres. Lze tedy zavést další jemnější dělení těchto subnetů, aby bylo možné pro určité skupiny počítačů specifikovat například různá firewall pravidla (např. omezení přístupu na tiskárny pouze z IPv6 adres ČVUT). Nevyužité (zde nedefinované) části <tt>/64</tt> subnetů budou mít standardně zakázanou jakoukoliv komunikaci přímo na fakultním routeru.<br />
<br />
Navíc pro IPv6 nebudou v principu existovat dynamicky přidělované adresy jako je tomu na IPv4, kde je nutné recyklovat omezený adresní prostor. Všechna registrovaná zařízení (síťová rozhraní) budou mít statickou rezervaci konkrétní IPv6 adresy resp. jeji <tt>/64</tt> suffix, který tak bude stejný při připojení zařízení ve všech lokalitách (pro běžné uživatelské subnety jako např. <tt>def</tt>, <tt>eduroam</tt> a <tt>wififjfi</tt> VLAN). Takto přidělená adresa navíc nebude v budoucnu recyklována pro jiné uživatelské zařízení (existují vyjímky, jako např. servery u nichž je změna adresy občas nežádoucí). V případě potřeby je možné u existujícího zařízení smazat aktuální IPv6 adresu a nechat vygenerovat novou.<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-srv===<br />
<br />
* změny ve využití adres jsou u serverů velice komplikované<br />
** konfigurace sítě je na serverech statická (nepoužívají DHCP)<br />
** pro použité adresy může mít řada zařízení (nejen na tomto segmentu) zkonfigurována různá pravidla (např. firewall)<br />
** pokud se neobjeví ''závažné nedostatky'' aktuálního plánu (např. nové standardy) tak jsou adresy přiděleny navždy<br />
* aktuálně budou využívány pouze adresy z rozsahu 2001:718:2:1x00::/96<br />
* doporučený formát IPv6 addres<br />
*# IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x00::147.32.9.17) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x00::17)<br />
*# adresy z rosahu 2001:718:2:1x00::0001:0000-2001:718:2:1x00::00ff:ffff (~ 2^24 adres)<br />
*# registrační GUI bude automaticky generovat neobsazené IPv6 adresy ze správných rozsahů<br />
*# libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)<br />
* jeden server může mít zároveň přiděleno více aktivních IPv6 adres<br />
* je možné alokovat samostatný rozsah IPv6 adres pro skupinu počítačů<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru<br />
** aktuálně neexistují žádné předdefinované skupiny<br />
*** lze si představit např. skupiny dle OS (pro jednodušší psaní filtrů na aktuálně zneužívané chyby)<br />
*** také skupiny dle orgaizačních jednotek pro omezení komunikace na vlastní servery<br />
*** teprve praktické používání IPv6 ukáže reálné potřeby<br />
** využití skupin zde musí být zdokumentováno<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-srv</span> (2001:718:2:xx<span style="color: DarkGreen">00</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">00</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Standardní IPv6 rozsah serverů<br />
|}<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-def===<br />
<br />
* změny ve využití adres mohou být relativně jednoduché při dodržování následujících zásad<br />
** zařízení budou pro IPv6 konfigurace využívat výhradně router advertisementy + stavové DHCPv6<br />
*** vzhledem k nerecyklování IPv6 adres je možné nastavit velice dlouhý lease time<br />
*** nelze použít "nekonečno" jinak bychom přidělenou adresou v budoucnu nebyly schopni změnit<br />
*** maximální lease time tedy bude jeden měsíc<br />
** manuální konfigurace je silně nedoporučena<br />
*** pokud se rozhodneme změnit IPv6 adresování tak může dojít k problémům<br />
*** z hlediska správce IPv6 rozsahu je to problém čistě uživatele, který nedbal doporučení a nebude na něj brán ohled<br />
* podobně jako u serverové VLAN <tt>fjfi-*-srv</tt> bude možné zařízení zařazovat do skupin<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru (např. omezení komunikace po ČVUT pro tiskárny)<br />
** využití skupin zde musí být zdokumentováno<br />
* jedno zařízení může mít zároveň přiděleno více aktivních IPv6 adres<br />
* doporučený formát IPv6 addres (pouze správce sítě může s rozumným důvodem využít jinou než první možnost)<br />
*# registrační GUI bude [[Registrace_MAC#Pravidla pro automatické vytváření rezervovaných adres|automaticky generovat neobsazené IPv6 adresy ze správných rozsahů]]<br />
*# <strike>IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x01::147.32.8.52) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x01::852)</strike><br />
*# <strike>adresy z rosahu 2001:718:2:1x01::0001:0000-2001:718:2:1x01::00ff:ffff (~ 2^24 adres)</strike><br />
*# <strike>libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)</strike><br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-def</span> (2001:718:2:xx<span style="color: DarkGreen">01</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!colspan="4"|Adresy pro standardní a speciální rozsahy 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/88<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální IPv6 rozsah pro běžná zařízení (ručně přidělované adresy, např. 2001:718:2:1901::852), preferované jsou ale níže uvedené rozsahy s konkrétním účelem (dle typu zařízení, organizační jednotky, ...)<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy (nutné pro zařízení, které byli primárně registovany pro jinou lokaci)<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">2</span>::/96<br/>-<br/>2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">f</span>::/96<br />
|vokacpet<br />
|Rezervovaný rozsah pro budoucí využití<br />
|-<br />
!fragile<br/>printer<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro tiskárny s omezením komunikace po ČVUT<br />
|-<br />
!restricted<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací pouze přes http/https (+ lokální DNS)<br />
|-<br />
!restricted<sup>2</sup><br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací jen na vyhrazené lokální servery (adresy pro blokované, neregistrované, zlobivé, ... zařízení). Zatím by taková zařízení nemusela dostávat žádnou IPv6 adresu a do příslušná omezení a informační stranky by se zobrazili na základě přidělené IPv4 adresy.<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">??</span>::/96<br />
| --<br />
|Skupina zařízení s omezeními dle uživatelských požadavků - návrhy?<br />
|-<br />
!colspan="4"|Adresy vyhrazené pro zařízení kateder 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/88<br />
|-<br />
!ČVUT<br/>FJFI<br/>Other<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení ČVUT, FJFI a Ostatní<br />
|-<br />
!KM<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">101</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KM<br />
|-<br />
!KF<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">102</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KF<br />
|-<br />
!KJ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">103</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJ<br />
|-<br />
!KIPL<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">104</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KIPL<br />
|-<br />
!KFE<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">105</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KFE<br />
|-<br />
!KMAT<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">106</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KMAT<br />
|-<br />
!KJCH<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">107</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJCH<br />
|-<br />
!KDAIZ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">108</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KDAIZ<br />
|-<br />
!KJR<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">109</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJR<br />
|-<br />
!KSI<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10a</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KSI<br />
|-<br />
!CRRC<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10b</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení CRRC<br />
|-<br />
!Elsa<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10c</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Elsa<br />
|-<br />
!Děkanát<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10d</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Děkanátu<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-eduroam===<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* blokovaná zařízení nedostanou od DHCPv6 přidělenou IPv6 adresu<br />
** převedeno na problém samotného IPv4 a blokovaných zařízení, který je již vyřešen<br />
** aktuálně tedy nemáme plnou podporu IPv6 only zařízení, ale jen v případě ojedinělých případů blokace<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-eduroam</span> (2001:718:2:xx<span style="color: DarkGreen">06</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální rozsah (ručně přidělované/rezervované adresy), žádné restrikce<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy, minimální restrikce<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-wififjfi===<br />
<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* konfigurace by měla fungovat tak, aby klient mohl nakonec využívat nativní IPv6 konektivitu bez dalšího (linuxového) routeru (NAT) na cestě<br />
* zbývá dořešit technické detaily autentizace na captive portálu a také blokovaná (neregistrovaná a smazaná) zařízení<br />
** neautentizovaná zařízení dostanou pouze IPv4 adresu a budou tak mít přístup ke captive portálu<br />
** DHCPv6 bude defaultně zkonfigurováno, aby zařízením neposkytlo IPv6 adresu do té doby než je uživatel uspěšně ověřen<br />
** po autentizaci přes captive portál na IPv4 modifikovat dynamicky konfiguraci DHCPv6 a povolit přidělení adresy s lease time ~ 1hodina<br />
*** asi to je možné řešit přes DHCPv6 classes, ale ty nejsou podporovány v ISC DHCP 4.2.5, který je součástí CentOS7<br />
*** nebude fungovat pro IPv6 only zařízení (to tu aktuálně vůbec neřešíme a v budoucnu se uvidí co bude možné např. s 6to4 překlady adres)<br />
<br />
=Firewall=<br />
[[Blokované porty]]<br />
<br />
=Provozní poznámky=<br />
<br />
* SMC8626<br />
** nejnovější firmware v1.4.0.8 je nestabilní (pro multicast a mam pocit že docházelo i k odpadnutí managementu)<br />
** aktualni firmware v1.1.0.2 nelze managovat přes VLANu (jinou než 1), kdy je na daném portu zároveň zapnutý <tt>spanning-tree edge-port</tt>, jelikož po restartu se nelze k managementu připojit dokud se nevytáhne a vrátí zpět ethernetový kabel => uplink nesmí mít tuhle volbu zapnutou</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Network&diff=3800Network2017-04-20T11:29:05Z<p>Keroupav: /* Veřejné adresy */</p>
<hr />
<div>Dokumemtace a pravidla k organizaci sítě na FJFI. Jakékoliv změny v tomto dokumentu musí být oznámeny v mailing listu správců IT na FJFI (comp@lists.fjfi.cvut.cz), aby bylo možné sladit konfigurace lokálních systémů (např. firewallu) v závislosti na úpravách konfigurace sítě.<br />
<br />
=Páteřní rozvody a zapojení=<br />
<br />
==Břehová==<br />
<br />
Plány rozmístění rozvaděčů a barevně obarvené místnosti podle připojení síťových (ethernetových) zásuvek do rozvaděčů:<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1pp.png s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1_2np.png 1/2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1np.png 0.patro] (přízemí)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-2np.png 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-3np.png 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-4np.png 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-5np_krov.png 4.patro] (půdní vestavba)<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Brehova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* telefonní ústředna<br />
** foto z místnosti 008 [https://nms.fjfi.cvut.cz/user/images/ustredna-br-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-3.jpg 3], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-4.jpg 4]<br />
<br />
==Trojanova==<br />
<br />
Dokumentace z FJFI archivu k překladu optických tras realizovaných v roce 2009 (nascanováno, obrovské ~ 10MB JPG soubory):<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1pp.jpg s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1np.jpg 0.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/2np.jpg 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/3np.jpg 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/4np.jpg 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_blokove.jpg blokové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_prehledove.jpg přehledové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technická zpráva]<br />
* [[Topologie|nákres rozmístění rozvaděčů]]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Trojanova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/Kabel_Trojanka_HK.pdf připojení HK]<br />
** přívod chráničky do budovy je v místnosti s117 (hlavní uzávěr vody)<br />
** SM kabel - PIRELLI Deskwave 053/2001 LOOSE UNITUBE 12 9/125 T/VM<br />
** MM kabel - 12vl.<br />
** MM kabel je v místnosti s117 naspojkován (dříve vedl do 112 ale nyní přeložen do 302)<br />
** SM kabel nebyl nikdy ze 112 přeložen (po rekonstrukcích 112 v létě 2015 by měl být stažen do s117)<br />
* připojení do ČVUT<br />
** přívod chráničky do budovy je v místnosti s128<br />
** FRNC Belden optical Fibre 2x50/125 + 14x9/125<br />
** tento kabel nevede až na karlák, je naspojkován a dál vedou jen 2vl. SM optiky<br />
** cestou do místnosti 302 je nastaven (+/- někde u výtahu)<br />
* hlavní rozvaděč optiky v 302<br />
** foto optického patch panelu [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-3.jpg 3]<br />
** [https://nms.fjfi.cvut.cz/data/tr-optika/protokol-optika-302-srv1.pdf měřící protokol pro MM spojení 302 se SRV1]<br />
* propojeni serveroven ve sklepě<br />
** zadavatel měl dost nešťastný nápad rozvést pouze 2 páry optiky<br />
** navíc byla použita aktuálně asi nehorší dostupná vlákna MM OM1<br />
*** SFP-10G-SR (33m) nefungují spolehlivě ani mezi SRV1 &lt;-&gt; SRV2<br />
*** pro spojení bude asi nutné pořizovat 2x dražší SFP-10G-LRM (220m)<br />
*** při přímém propatchování SRV302 &lt;-&gt; SRV2 nefungovali spolehlivě ani tyto lepší moduly<br />
** spojení serveroven je seriové SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3 &lt;-&gt; SRV4<br />
** jedno vlákno (nejvíce vpravo) mezi SRV1 &lt;-&gt; SRV2 je mrtvé<br />
** PLÁN rekonstrukce<br />
*** předelat udělat všechno do SM optiky<br />
*** rozmyslet se ve které místnosti bude centralní rozvod optiky<br />
*** z centrálního rozvodu mít vlakna do všech serveroven<br />
*** hodně vláken s minimálně 6ti páry připravenými v patch panelu na každé SRVx<br />
*** natáhnout opravdu hodně SM vláken do SRV302(?!)<br />
<br />
==Trója==<br />
<br />
Připojení bylo až do 201606 realizováno routováním přes PASNET a připojením do jejich routeru v Tróji. Od 1.7.2016 je Trója připojena lambdou přímo do Dejvic (CWDM 1470nm) a to trasou přes UTIA. V Tróji je na serverovně (PASNETu) optika "z Dejvic" propatchovana do rozvaděče na chodbě L119 (optika je v patch panelu zakončena LC/PC konektory), kde je aktuálně 1Gb zapojena do [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=63755 MikroTik CCR1016-12S-1S+] (detaily viz. [https://lists.fjfi.cvut.cz/mailman/private/comp/2016/001510.html Zmena pripojeni lokality Troja (IPv6)]).<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Troja.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.pp.png těžké lab. 0.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.np.png těžké lab. 1.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-2.np.png těžké lab. 2.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-3.np.png těžké lab. 3.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-7.np.png KJCH 6. patro]<br />
<br />
==Děčín==<br />
<br />
Tato lokalita není připojená přímo do sítě ČVUT, ale [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=2665 routerem] CESNETu.<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Decin.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.pp.png 0. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.np.png 1. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-2.np.png 2. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-3.np.png 3. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-4.np.png 4. patro]<br />
<br />
=VLAN=<br />
<br />
ČVUT VIC prostupně přechází na globalní očíslování VLAN takovým způsobem, aby v se různých částech sítě nepoužívala stejná čísla VLAN (některým management nástrojům se takové konfigurace nezamlouvají). Z toho důvodu byl pro vnitřní potřeby FJFI přidělen rozsah VLAN 2400-2499. Některá starší (pochybnější) zařízení mohou mít problém s využítím takto vysokých čísel, v takovém případě bude nejlepší na nich žádné VLANy nekonfigurovat a budou se používat pouze pro netagovaný provoz.<br />
<br />
V následujících tabulkách je plán resp. dokumentace k využítí přidělených VLAN. První polovina přiděleného rozsahu je využita pro "standardní" VLANy (jejich jméno musí začínat prefixem <tt>fjfi-</tt>), které je vhodné mít vytvořené v každé budově FJFI a zbytek lze využít pro libovolné individuální VLANy (každé nově využité číslo VLAN z uvedeného rozsahu je zde nutné zdokumentovat). Pro Děčín je nutné tento plán brát dost s rezervou, jelikož tato lokalita není připojena přímo do ČVUT, ale je routována přímo CESNETem a lokální VLANy se nakonec mohou lišit.<br />
<br />
==Standardní VLANy==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2400-2439)<br/>(standardní VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<sup>*</sup><br />
!Břehová<br />
!Trojanova<br />
!Trója<br />
!Děčín<br />
!Status<br />
!Comment<br />
|-<br />
!fjfi-*-srv<br />
|2400<br />
|2410<br />
|2420<br />
|2430<br />
|active<br />
|Subnet pro servery<br />
|-<br />
!fjfi-*-def<br />
|2401<br />
|2411<br />
|2421<br />
|2431<br />
|active<br />
|Veřejná síť ("default VLAN" pro běžné počítače)<br />
|-<br />
!fjfi-*-mgmt-net<br />
|2402<br />
|2412<br />
|2422<br />
|2432<br />
|active<br />
|Management rozhraní síťových prvků (switch, router, ap, ...)<br />
|-<br />
!fjfi-*-mgmt-srv<br />
|2403<br />
|2413<br />
|2423<br />
|2433<br />
|active<br />
|Subnet pro management serverů (např. IPMI)<br />
|-<br />
!fjfi-*-sec<br />
|2404<br />
|2414<br />
|2424<br />
|2434<br />
|planed<br />
|Subnet pro zabezpečovací zařízeni (např. kamery, K4, ...)<br />
|-<br />
!fjfi-*-wifi<br />
|2405<br />
|2415<br />
|2425<br />
|2435<br />
|active<br />
|Wireless síť pro speciální příležitosti (např. samostatná konfigurace pro konference)<br />
|-<br />
!fjfi-*-eduroam<br />
|2406<br />
|2416<br />
|2426<br />
|2436<br />
|active<br />
|Wireless síť Eduroam<br />
|-<br />
!fjfi-*-wififjfi<br />
|2407<br />
|2417<br />
|2427<br />
|2437<br />
|active<br />
|Wireless síť s captive portálem<br />
|-<br />
!fjfi-*-voip<br />
|2408<br />
|2418<br />
|2428<br />
|2438<br />
|planed<br />
|Segment pro VoIP telefony<br />
|-<br />
!fjfi-*-fragile<br />
|2409<br />
|2419<br />
|2429<br />
|2439<br />
|active<br />
|Segment pro "nepočítačová" síťová zařízení (nepravidelné/neexistující updaty)<br />
|-<br />
!colspan="7"|U jmen VLAN je potřeba nahradit znak "*" zkratkou příslušné lokality (br/tr/vh/dp)<br />
|}<br />
<br />
==Standardní VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Detaily k rozdělení FJFI VLAN (2400-2439)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-eduroam<br />
|2416<br />
|active<br />
|tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Jeden subnet s veřejnými adresami <tt>147.32.11.0/24</tt> pro Eduroam síť v Trojance<br />
|}<br />
<br />
==Speciální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2440-2449)<br/>(speciální VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-brtr-srv-clu<br />
|2448<br />
|active<br />
|br+tr<br />
|12.1.2015 FJFI<br />
|vokacpet<br />
|Public segment pro clusterování strojů mezi Trojankou a Břehovkou s dvěmi HSRP active/standby gateway<br />
|-<br />
!fjfi-brtr-srv-priv<br />
|2449<br />
|active<br />
|br+tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery v clusteru (DFS replikace)<br />
|}<br />
<br />
==Individuální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2450-2499)<br/>(individuální VLANy, pro uživatelské potřeby)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>(owner)<br />
!Admin<br />
!Comment<br />
|-<br />
!test_max_20_znaku<br />
|2450<br />
|test<br />
| --<br />
|2.6.2014 (KM)<br />
|vokacpet<br />
|Testovací záznam - tato VLAN není reálně nikde zkonfigurována, jméno VLAN musí být do 20 znaků (CISCO limit, stará SMC podporují max 12 znaků)!<br />
|-<br />
!fjfi-tr-km<br />
|2451<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kf<br />
|2452<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kj<br />
|2453<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kipl<br />
|2454<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kfe<br />
|2455<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kmat<br />
|2456<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kjch<br />
|2457<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kdaiz<br />
|2458<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-vh-kjr<br />
|2459<br />
|test<br />
|vh<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-ksi<br />
|2460<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-dekanat<br />
|2461<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-??-??<br />
|2462<br/>-<br/>2469<br />
|rezervace<br />
| --<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|}<br />
<br />
==K promyšlení==<br />
<br />
* VLANy pro subnety kateder, rozdělení +/- dle čísel kateder<br />
* VLANy pro privátní subnety kateder (nebo mít jen jeden "veřejný" privátní subnet?)<br />
* VLAN pro přístupové systémy pro karty (je možné provozovat na privátní síťi?)<br />
* VLAN pro přístup k datům zabezpečení (kamery)<br />
* VLAN pro serverovou DMZ<br />
* Prohodit číslování standardních VLAN pro Tróju a Děčín (stejné pořadí jako seřazené IP segmenty?)<br />
** jedinný Děčín je "externí" lokalita routovaná přímo CESNETem (nemáme plnou kontrolu nad lokálními čísly VLAN a IPv6 čísly subnetů)<br />
** pořadí lokalit tedy bude br/tr/vh/dp<br />
<br />
=IP=<br />
<br />
==Veřejné adresy==<br />
<br />
Následující tabulka obsahuje souhrné informace o veřejných IP adresách přidělených a využívaných na FJFI.<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Rozdělení veřejných IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Gateway<br />
!VLAN Name<br />
!Admin<br />
!Comment<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.4.0%2F24&location=br 147.32.4.0/24]<br />
|Břehová<br />
|147.32.4.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-1<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.5.0%2F24&location=br 147.32.5.0/24]<br />
|Břehová<br />
|147.32.5.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-2<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.6.0%2F23&location=tr 147.32.6.0/23]<br />
|Trojanova<br />
|147.32.6.1<br />
|fjfi-tr-def<br />
|sinormil<br />
|Subnet KFE + dynamicky přidělované veřejné IP<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.8.0%2F24&location=tr 147.32.8.0/24]<br />
|Trojanova<br />
|147.32.8.1<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet KM+KJ+KSI+Elsa<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.0%2F26&location=tr 147.32.9.0/26]<br />
|Trojanova<br />
|147.32.9.1<br />
|fjfi-tr-srv<br />
|vokacpet<br />
|Serverový subnet v tr<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.64%2F26&location=tr 147.32.9.64/26]<br />
|Břehová+Trojanova<br />
|147.32.9.65<br />
|fjfi-brtr-srv-clu<br />
|vokacpet<br />
|Serverový subnet pro clustery mezi br+tr (duální gateway active/standby přes HSRP)<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.128%2F26&location=br 147.32.9.128/26]<br />
|Břehová<br />
|147.32.9.129<br />
|fjfi-br-srv<br />
|vokacpet<br />
|Serverový subnet v br<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.192%2F26&location=tr 147.32.9.192/26]<br />
|Trojanova<br />
|147.32.9.193<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet speciální zařízení<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.0%2F25&location=tr 147.32.10.0/25]<br />
|Trojanova<br />
|147.32.10.1<br />
|fjfi-tr-def<br />
|kopripe1<br />
|Subnet KMAT<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.128%2F25&location=tr 147.32.10.128/25]<br />
|Trojanova<br />
|147.32.10.129<br />
|fjfi-tr-def<br />
|drabmart<br />
|Subnet KIPL<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.11.0%2F24&location=tr 147.32.11.0/24]<br />
|Trojanova<br />
|147.32.11.1<br />
|fjfi-tr-eduroam<br />
|vokacpet<br />
|Eduroam<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.22.0%2F24&location=dp 147.32.22.0/24]<br />
|Děčín<br />
|147.32.22.1<br />
|fjfi-dp-def<br />
|sumpepre<br />
|Veřejné adresy dp<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.25.0%2F24&location=vh 147.32.25.0/24]<br />
|Trója<br />
|147.32.25.1<br />
|fjfi-vh-def<br />
|fialaja2<br />
|Veřejné adresy vh<br />
|}<br />
<br />
===Veřejné adresy detaily===<br />
<br />
Většina veřejných adres je rezervována pro konkrétní zařízení. V každé budově FJFI existuje ale i určitý rozsah veřejných adres, které jsou přidělovány registrovaným zařízením bez rezervace konkrétní adresy (zvýrazněno modře v níže uvedené tabulce). V případě aktuálního vyčerpání těchto volně dostupných veřejných adresu budou dalším zařízením přidělovány privátní adresy z privátního rozsahu na téže VLAN <tt>fjfi-*-def</tt>. V konfiguraci registrace síťového zařízení lze specifikovat, že danému zařízení má být vždy přidělena privátní adresa a to i v případě, že pool veřejných adres ještě nebyl vyčerpán.<br />
<br />
Trvale připojená zařízení využívají veřejné adresy by měla mít zaregistrovánu rezervovanou adresu z rozsahu, který je přidělen organizační jednotce vlastnící dané zařízení (viz. tabulka). Zařízení tak bude mít garantovánu stalou veřejnou IP adresu a nebude se zbytečně zmenšovat pool s veřejnými adresami pro ostatní zařízeni, která se na FJFI síti vyskytují pouze občas. Pro běžná zařízení (počítače) je preferováno použití veřejných adres, jelikož při jejich použití není fungování síťového zařízení omezeno potencíálními problémy NATu (vyplývající z podstaty NATu, vytížení NATovacího zařízení případně jeho nedostupnosti) a lze jednodušeji řešit případné stížnosti týkající se konkrétní adresy.<br />
<br />
Existuje ale i skupina speciálních zařízení (např. tiskárny) u nichž je lepší použít privátní adresy. Provoz některých zařízení na veřených adresách totiž představuje bezpečnostní hrobu vzhledem k neexistujícím automatickým security updatům firmware a omezeným možnostem konfigurace zabezpečení. Takové zařízení by ideálně měla být na samostatné VLAN <tt>fjfi-*-fragile</tt>, ale vzhledem ke komplikovanému managementu sítě pro ně je zatím vyhrazen rozsah privátních adres z VLAN <tt>fjfi-*-def</tt> (viz. [[#Priv.C3.A1n.C3.AD_adresy_na_default_VLAN_fjfi-.2A-def|níže]]). Adresu z tohoto rozsahu lze jednoduše vybrat v rozhraní pro registrace síťových zařízení.<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení veřejných IP rozsahů (detaily)<br />
|-<br />
!IP rozsah<br />
!adresy<br />
!Comment<br />
|-<br />
!rowspan="3"|147.32.4.0/24<br />
!147.32.4.0-70<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.4.71-189</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.4.190-255<br />
|??<br />
|-<br />
!rowspan="2"|147.32.5.0/24<br />
!147.32.5.0-49<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.5.50-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="4"|147.32.6.0/24<br />
!147.32.6.2-99<br />
|vyhrazeno unixářům (Richard Liska, Milan Šiňor) <br />
|-<br />
!147.32.6.100-199<br />
|pclab, kanceláře, ... (Antonín Novotný)<br />
|-<br />
!147.32.6.200-254<br />
|InfoLab, kanceláře (Josef Blažej)<br />
|-<br />
!147.32.6.255<br />
|rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
|-<br />
!rowspan="2"|147.32.7.0/24<br />
!147.32.7.1-31<br />
|tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
|-<br />
!<span style="color: blue">147.32.7.32-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="7"|147.32.8.0/24<br />
!147.32.8.2-79<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.80-96<br />
|studovna 214<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
|-<br />
!147.32.8.97-109<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.110-149<br />
|KM učebny<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
|-<br />
!147.32.8.150-223<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.224-230<br />
|KJ zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.224/27<br />
|Tereza<br />
* 147.32.8.241 - 147.32.8.250 desktopy<br />
* 147.32.8.253 - Printer 4x4 Pro<br />
|-<br />
!rowspan="3"|147.32.9.128/25<br />
!147.32.9.128/27<br />
|KSE (Miroslav Virius ?)<br />
|-<br />
!147.32.9.160-223<br />
|Tiskárny<br />
* 147.32.9.190 rezervace<br />
* 147.32.9.191 rezervace<br />
* 147.32.9.192 rezervace<br />
* 147.32.9.212 rezervace<br />
* 147.32.9.213 rezervace<br />
* správce Míra Minárik, Pavel Kerouš<br />
|-<br />
!147.32.9.224/27<br />
|různé (zatím pro "speciální" zařízení jako např. kartové systémy, ...), není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
|-<br />
!rowspan="2"|147.32.10.0/25<br />
!147.32.10.0/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.10.128/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.11.0/24<br />
!147.32.11.0/24<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.22.0/24<br />
!<span style="color: blue">147.32.22.101-199</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.25.0/24<br />
!<span style="color: blue">147.32.25.102-219</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|}<br />
<br />
==Privátní adresy==<br />
<br />
Vzhledem k nedostatku veřejných IP adres bylo nutné začít využívat i privátní IP adresy. Ty jsou používany jak čistě interně (např. management), tak i pro běžný provoz s NATem aktuálně hlavně na WiFi sítích, kde si vzhledem k enormnímu nárůstu počtu zařízení není možné vystačit s dostupnými veřejnými adresami. Privátní IPv4 adresy jsou také používány pro neregistrovaná zařízení a automatický přístup k captive portálu na stránku s registrací.<br />
<br />
Bohužel se na "Jednání IT techniků ČVUT - 11.6.2015" dohodlo, že se privátní adresy nebudou routovat po ČVUT (resp. nedošlo ani k základní shodě na tom, jaké rozsahy by bylo možné použít s tím, že ostatní fakulty už využívají všechny dostupné privátní subnety). Tohle je podmínka (téměř - viz. RFC6598) nutná pro možnost zřízení globálního NATu, takže ani v budoucnu nelze očekávat poskytnutí této služby v rámci celého ČVUT. Další komplikací je využití privátních adres mezi různými lokalitami FJFI, kde je potřeba využít policy based routing a privátní adresy do druhé lokality dostat přes tunel resp. dedikovanou VLAN. Centrální L3 switche použité v FJFI lokalitách také mají relativně omezené možnosti konfigurace (nepodporují NAT, netflow, GRE tunely, malá TCAM pro PBR, ...).<br />
{|class="wikitable"<br />
!colspan="6"|Počet adres v podsítích dané velikosti<br />
|-<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
|-<br />
!/24<br />
|256<br />
!/21<br />
|2048<br />
!/18<br />
|16384<br />
|-<br />
!/23<br />
|512<br />
!/20<br />
|4096<br />
!/17<br />
|32768<br />
|-<br />
!/22<br />
|1024<br />
!/19<br />
|8192<br />
!/16<br />
|65536<br />
|}<br />
<br />
<br />
===Privátní adresy dle lokality===<br />
<br />
Pro centrálně spravované privátní adresy na FJFI je využíván rozsah <tt>172.16.0.0/12</tt> z nějž má každá lokalita přidělen jeden segment <tt>/16</tt> (~ 65k adres) a poslední subnet <tt>172.31.0.0/16</tt> se využívá ke speciálním účelům (např. spojovačky). Přidělený segment je dále dělen na subnety jejichž základní číslování je shodné v každé lokalitě (např. dle VLAN, využití, ...).<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení privátních IP rozsahů na FJFI po lokalitách<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Comment<br />
|-<br />
!10.0.0.0/8<br />
| --<br />
|Vyhrazeno pro potřeby ČVUT (sice to nebylo nikde oficiálně řečeno, ale je to jedinný privátní rozsah u nejž vzhledem k velikosti má smysl uvažovat o využití v rámci celého ČVUT)<br />
|-<br />
!172.16.0.0/16<br />
|Břehová<br />
|<br />
|-<br />
!172.17.0.0/16<br />
|Trojanova<br />
|<br />
|-<br />
!172.18.0.0/16<br />
|Trója<br />
|<br />
|-<br />
!172.19.0.0/16<br />
|Děčín<br />
|<br />
|-<br />
!172.31.0.0/16<br />
| --<br />
|Vyhrazeno pro speciální využití (např. spojovačky na privátní síti)<br />
|-<br />
!192.168.0.0/16<br />
| --<br />
|Adresy z tohoto rozsahu nebudou na FJFI nijak regulovány a jsou preferované pro uživatelské testovací resp. dočásné privátní sítě. Je na jejich správci, aby si vybral nepoužívaný rozsah v dané síti resp. VLAN, ale není zde zaručeno resp. monitorováno jestli jestli stejné adresy začne používat někdo další. Pro potřeby trvalého privátního adresované na FJFI síti je doporučeno dohodnout alokaci podsítě z odpovídajících 172.1x.0.0/16 rozsahů. Nědky může být vhodné použít adresování 172.1x.0.0/16 i např. pro clustery resp. sítě kompletně oddělené od zbytku infrastruktury (např. je lze pak zpřístupnit přes centrální VPN).<br />
|-<br />
!colspan="3"|Privátní rozsahy značené 172.<span style="color: blue">1x</span>.aaa.bbb budou dále znamenat adresy v libovolné lokalitě (br=<span style="color: blue">16</span>/tr=<span style="color: blue">17</span>/vh=<span style="color: blue">18</span>/dp=<span style="color: blue">19</span>)<br />
|}<br />
<br />
===Privátní adresy dle VLAN===<br />
<br />
Všechny standardní využívané VLAN budou mít přidělen určitý rozsah privátních adres. V závislosti na využití bude přizpůsobena konfigurace "Private routing" týkající se routování mezi lokalitami FJFI (žádné routování, routování přes tunel/VLAN nebo IPSec zabezpečené spojení), routování do světa skrz NAT a různé filtrování paketů "Private ACL" mezi privátními subnety. Jednotlivé subnety je dobré alokovat také s ohledem na to, jak komplikované bude případné přečíslování zařízení na daném subnetu.<br />
<br />
{|class="wikitable"<br />
!colspan="8"|Rozdělení privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!VLAN Name<br />
!NAT<br />
!Private<br/>routing<br />
!Private<br/>ACL<br />
!Komplikace<br/>přeadresování<br />
!Comment<br />
|-<br />
!colspan="8"|172.1x.0.0/17 - adresy pro globální využití ve všech lokalitách<br />
|-<br />
!172.1x.0.0/22<br />
|172.1x.0.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování serverů dostupných přímo ze všech lokálních sítí, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.4.0/22<br />
|172.1x.4.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.8.0/22<br />
|172.1x.8.1<br />
|fjfi-*-srv<br />
|yes<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN s IPSec zabezpečenou komunikací mezi FJFI lokalitami, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.12.0/22<br />
| --<br />
|fjfi-*-srv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze z lokální VLAN (žádné routování či NAT)<br />
|-<br />
!172.1x.16.0/22<br />
|172.1x.16.1<br />
|fjfi-*-mgmt-net<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu síťových prvků (switche) dostupné pouze z mgmt-net VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.16.0/23<br />
|-<br />
!172.1x.20.0/22<br />
|172.1x.20.1<br />
|fjfi-*-mgmt-srv<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu serverů (IPMI, RAID controller, UPS, ...) dostupné pouze z mgmt-srv VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.20.0/23<br />
|-<br />
!172.1x.24.0/22<br />
|172.1x.24.1<br />
|fjfi-*-fragile<br />
|yes/no<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování pro samostatný subnet "nedůvěryhodných" zařízení (např. tiskárny, specializovaná zařízení bez pravidelných security update, ...), komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.24.0/23<br />
|-<br />
!172.1x.28.0/24<br />
|172.1x.28.1<br />
|fjfi-brtr-srv-clu<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.28.0/24)<br />
|-<br />
!172.1x.29.0/24<br />
| --<br />
|fjfi-brtr-srv-clu<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.29.0/24)<br />
|-<br />
!172.1x.30.0/24<br />
|172.1x.30.1<br />
|fjfi-brtr-srv-priv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.30.0/24)<br />
|-<br />
!172.1x.31.0/24<br />
| --<br />
|fjfi-brtr-srv-priv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.31.0/24)<br />
|-<br />
!172.1x.32.0<br/>-<br/>172.1x.51.255<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
|Rezervováno pro budoucí "globální využití"<br />
|-<br />
!172.1x.52.0/24<br/>172.1x.53.0/24<br />
|172.1x.52.1(*)<br/>172.1x.53.1(*)<br />
|VPN<br/>test<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro L2TP, PPTP, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.52.0/24 - PPTP server na nms-xx.fjfi.cvut.cz<br />
* 172.1x.53.0/24 - L2TP server na nms-xx.fjfi.cvut.cz<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.54.0/24<br/>172.1x.55.0/24<br />
|172.1x.54.1(*)<br/>172.1x.55.1(*)<br />
|OpenVPN<br/>admin<br />
|yes<br />
|default<br />
| --<br />
|malé<br />
|Privátní adresování pro admin OpenVPN klienty s přímým přístupem do sítě včetně privátních, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.54.0/24 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.55.0/24 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.56.0/22<br/>172.1x.60.0/22<br />
|172.1x.56.1(*)<br/>172.1x.60.1(*)<br />
|OpenVPN<br/>user<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro OpenVPN klienty, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.56.0/22 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.60.0/22 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.64.0/20<br />
|172.1x.64.1<br />
|fjfi-*-def<br />
|yes(*)<br />
|default<br />
|permit(*)<br />
|velké(*)<br />
|Privátní adresy na default VLAN (lokální síť v budově), detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-def]]<br />
|-<br />
!172.1x.80.0/20<br />
|172.1x.80.1<br />
|fjfi-*-wifi<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní rozsah pro speciální WiFi sítě, které mohou mít speciální konfiguraci např. pro konference, ...<strike>Rezervováno pro případné budoucí speciální požadavky na fjfi-*-def VLAN nebo rozšíření adresního prostoru na této VLAN</strike><br />
|-<br />
!172.1x.96.0/20<br />
|172.1x.96.1<br />
|fjfi-*-eduroam<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť Eduroam, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-eduroam]]<br />
|-<br />
!172.1x.112.0/20<br />
|172.1x.112.1(*)<br />
|fjfi-*-wififjfi<br />
|yes(*)<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť WiFiFJFI, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-wififjfi]], tato síť používá vlastní gateway pro řízení přístupu pomocí captive portálu a zařízení na ní nejsou z vnějšku dostupná.<br />
|-<br />
!colspan="8"|172.1x.128.0/18 - adresy pro lokální využití v konkrétní lokalitě lokalitě<br />
|-<br />
!colspan="8"|172.16.128.0/18 - Břehová<br />
|-<br />
!?rezervace?<br/>172.16.128.0/22<br />
|172.16.128.1(*)<br />
|fjfi-br-kf-private<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro síť KF s NAT a gateway zajištěnou [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=38061 vlastním zařízením]<br />
|-<br />
!colspan="8"|172.17.128.0/18 - Trojanova<br />
|-<br />
!?rezervace?<br/>172.17.128.0/22<br />
|172.17.128.1(*)<br />
|fjfi-tr-hyperion<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro KM+KIPL hyperion cluster s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=24149 NAT a gateway]<br />
|-<br />
!?rezervace?<br/>172.17.132.0/22<br />
|172.17.132.1<br />
|"xen-vdi"<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování pro Xen virtualizované desktopy, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!colspan="8"|172.18.128.0/18 - Trója<br />
|-<br />
!colspan="8"|172.19.128.0/18 - Děčín<br />
|-<br />
!colspan="8"|172.1x.192.0/18 - rezervováno<br />
|-<br />
|colspan="8"|Adresy pro lokální využití v konkrétní lokalitě rezervované pro případ, že dojde k L2 segmentaci sítě podle příslušnosti k různým součástem FJFI<br />
|}<br />
<br />
<br />
====Privátní adresy na default VLAN <tt>fjfi-*-def</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.64.0/20 na default VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.64.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
* 172.18.71.0/24 je v Tróji využíváno pro privátní adresování (měřících) zařízení KJR (humlond)<br />
|-<br />
!172.1x.72.0/22<br />
| --<br />
| --<br />
|vokacpet<br />
|unused<br />
|-<br />
!172.1x.76.0/23<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro "nepočítačová" zařízení (např. tiskárny)<br />
|-<br />
!172.1x.78.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro servery (např. printserver pro komunikaci na tomto subnetu)<br />
|-<br />
!172.1x.79.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným, smazaným a neregistrovaným zařízením<br />
|}<br />
<br />
====Privátní adresy na eduroam VLAN <tt>fjfi-*-eduroam</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.96.0/20 na eduroam VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.96.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.110.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.111.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným (smazaným) zařízením<br />
|}<br />
<br />
====Privátní adresy na wififjfi VLAN <tt>fjfi-*-wififjfi</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.112.0/20 na wififjfi VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.112.0/21<br />
|dynamic+reserved<br />
|auth<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.126.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.127.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným zařízením<br />
|}<br />
<br />
===Individuální rozsahy privátních adres===<br />
<br />
Využití těchto adres není nijak regulováno, takže zde neexistují žádné překážky k jejich použití ale na druhou stranu se také nelze spolehnout na to, že stejné adresy nezačne používat někdo další. V níže uvedené tabulce je (nekompletní) seznam aktuálně používaných adres z 192.168.0.0/16 rozsahu. Bylo by vhodné zvážit jestli do budoucna nezačít využívat rezervované subnety z 172.1x.0.0/16 rozsahů.<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení individuálních privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!Public<br />
!VLAN Name<br />
!OU<br />
!Admin<br />
!Comment<br />
|-<br />
!192.168.x.0/24<br />
|192.168.x.1<br />
|147.32.x.y<br />
|None<br />
|KIPL<br />
|drabmart<br />
|Privátní adresy pro KM+KIPL cluster<br />
|-<br />
!192.168.3.0/24<br />
|192.168.3.1<br />
|147.32.4.13<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF - kanceláře<br />
|-<br />
!192.168.11.0/24<br />
|192.168.11.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|-<br />
!192.168.20.0/24<br />
|192.168.20.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|}<br />
<br />
=IPv6=<br />
<br />
ČVUT přiděluje standardně <tt>/56</tt> rozsahy (lze použít pro vytvoření 256 podsítí) pro lokality připojené přes Dejvice ze přiděleného IPv6 rozsahu <tt>2001:718:2::/48</tt>. Bohužel vzhledem ke způsobu routování IPv6 není možné používat adresy z "dejvického" rozsahu v ostatních lokalitách (CESNET to ve své síti nepodporuje, tj. např. v Tóji a Děčíně), tam bude využit jiný rozsah přidělený ČVUT a routovaný Pasnetem resp. CESNETem.<br />
<br />
==IPv6 adresy dle lokality==<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI po lokalitách<br/>(FJFI IPv6 rozsahy 2001:718:2:1800::/54)<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Admin<br />
!Comment<br />
|-<br />
!2001:718:2:<span style="color: blue">17</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený na FJFI (včetně DNS reverzů, bude vrácen VICu po alokaci "1b")<br />
|-<br />
!2001:718:2:<span style="color: blue">18</span>00::/56<br />
|Břehová<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">19</span>00::/56<br />
|Trojanova<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">1a</span>00::/56<br />
|Trója<br />
|vokacpet<br />
|Veřejné adresy (aktuálně nevyužitý rozsah nazvaný FJFI test, čeká na novou serverovnu PASNETu v Tróji)<br />
|-<br />
!2001:718:2:<span style="color: blue">1b</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený FJFI ČVUT (pro "hezčí" FJFI IPv6 netmask)<br />
|-<br />
!??<br />
|Děčín<br />
|vokacpet<br />
|Veřejné adresy (další ČVUT adresy přidělené z routovatelného rozsahu CESNET)<br />
|}<br />
<br />
==IPv6 adresy dle VLAN==<br />
<br />
Každá VLAN přidělená FJFI má standardně přiřazen jeden IPv6 subnet <tt>/64</tt> z přiděleného rozsahu <tt>/56</tt> (256 možných <tt>/64</tt> subnetů). Příslušné číslo FJFI VLAN-2400 (tj. hodnoty v intervalu 0-99) budou přímo součástí IPv6 adresy na pozici 56-63. Vyjímkou je prvních 40 rezervovaných VLAN u nichž se používá pouze poslední číslice.<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI podle VLAN<br />
|-<br />
!IP rozsah<br />
!VLAN ID<br />
!VLAN Name<br />
!Comment<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">0</span>::/64<br />
|24?<span style="color: blue">0</span><br />
|fjfi-*-srv<br />
|Subnet pro servery<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">1</span>::/64<br />
|24?<span style="color: blue">1</span><br />
|fjfi-*-def<br />
|Veřejná síť ("default VLAN" pro běžné počítače) <br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">9</span>::/64<br />
|24?<span style="color: blue">9</span><br />
|fjfi-*-fragile<br />
|Segment pro "nepočítačová" síťová zařízení<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">48</span>::/64<br />
|24<span style="color: blue">48</span><br />
|fjfi-brtr-srv-clu<br />
|Public segment mezi Trojankou a Břehovkou s duální gateway přes HSRP<br />
|-<br />
!2001:718:2:xx<span style="color: blue">49</span>::/64<br />
|24<span style="color: blue">49</span><br />
|fjfi-brtr-srv-priv<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a0</span>::/64<br/> -- <br/>2001:718:2:xx<span style="color: blue">ff</span>::/64<br />
| --<br />
| --<br />
|Rezervováno pro budoucí/speciální využití<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a?</span>::/60<br />
|colspan="2"|Static route to OpenVPN server<br />
|OpenVPN IPv6 network<ul><br />
<li>...<span style="color: blue">a0</span>::/64 - openvpn.fjfi.cvut.cz:1194/udp</li><br />
<li>...<span style="color: blue">a1</span>::/64 - openvpn.fjfi.cvut.cz:1194/tcp</li><br />
<li>...<span style="color: blue">a2</span>::/64 - openvpn.fjfi.cvut.cz:443/udp</li><br />
<li>...<span style="color: blue">a3</span>::/64 - openvpn.fjfi.cvut.cz:443/tcp</li><br />
<li>...<span style="color: blue">a4</span>::/64 - openvpn.fjfi.cvut.cz:53/udp</li><br />
<li>...<span style="color: blue">a5</span>::/64 - openvpn.fjfi.cvut.cz:53/tcp</li><br />
<li>...<span style="color: blue">a6-af</span>::/64 - reserved</li><br />
</ul><br />
|}<br />
<br />
==Využití IPv6 adres v rámci <tt>/64</tt> subnetů==<br />
<br />
Každý subnet na IPv6 má prakticky vzato "neomezené" množství IPv6 adres. Lze tedy zavést další jemnější dělení těchto subnetů, aby bylo možné pro určité skupiny počítačů specifikovat například různá firewall pravidla (např. omezení přístupu na tiskárny pouze z IPv6 adres ČVUT). Nevyužité (zde nedefinované) části <tt>/64</tt> subnetů budou mít standardně zakázanou jakoukoliv komunikaci přímo na fakultním routeru.<br />
<br />
Navíc pro IPv6 nebudou v principu existovat dynamicky přidělované adresy jako je tomu na IPv4, kde je nutné recyklovat omezený adresní prostor. Všechna registrovaná zařízení (síťová rozhraní) budou mít statickou rezervaci konkrétní IPv6 adresy resp. jeji <tt>/64</tt> suffix, který tak bude stejný při připojení zařízení ve všech lokalitách (pro běžné uživatelské subnety jako např. <tt>def</tt>, <tt>eduroam</tt> a <tt>wififjfi</tt> VLAN). Takto přidělená adresa navíc nebude v budoucnu recyklována pro jiné uživatelské zařízení (existují vyjímky, jako např. servery u nichž je změna adresy občas nežádoucí). V případě potřeby je možné u existujícího zařízení smazat aktuální IPv6 adresu a nechat vygenerovat novou.<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-srv===<br />
<br />
* změny ve využití adres jsou u serverů velice komplikované<br />
** konfigurace sítě je na serverech statická (nepoužívají DHCP)<br />
** pro použité adresy může mít řada zařízení (nejen na tomto segmentu) zkonfigurována různá pravidla (např. firewall)<br />
** pokud se neobjeví ''závažné nedostatky'' aktuálního plánu (např. nové standardy) tak jsou adresy přiděleny navždy<br />
* aktuálně budou využívány pouze adresy z rozsahu 2001:718:2:1x00::/96<br />
* doporučený formát IPv6 addres<br />
*# IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x00::147.32.9.17) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x00::17)<br />
*# adresy z rosahu 2001:718:2:1x00::0001:0000-2001:718:2:1x00::00ff:ffff (~ 2^24 adres)<br />
*# registrační GUI bude automaticky generovat neobsazené IPv6 adresy ze správných rozsahů<br />
*# libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)<br />
* jeden server může mít zároveň přiděleno více aktivních IPv6 adres<br />
* je možné alokovat samostatný rozsah IPv6 adres pro skupinu počítačů<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru<br />
** aktuálně neexistují žádné předdefinované skupiny<br />
*** lze si představit např. skupiny dle OS (pro jednodušší psaní filtrů na aktuálně zneužívané chyby)<br />
*** také skupiny dle orgaizačních jednotek pro omezení komunikace na vlastní servery<br />
*** teprve praktické používání IPv6 ukáže reálné potřeby<br />
** využití skupin zde musí být zdokumentováno<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-srv</span> (2001:718:2:xx<span style="color: DarkGreen">00</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">00</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Standardní IPv6 rozsah serverů<br />
|}<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-def===<br />
<br />
* změny ve využití adres mohou být relativně jednoduché při dodržování následujících zásad<br />
** zařízení budou pro IPv6 konfigurace využívat výhradně router advertisementy + stavové DHCPv6<br />
*** vzhledem k nerecyklování IPv6 adres je možné nastavit velice dlouhý lease time<br />
*** nelze použít "nekonečno" jinak bychom přidělenou adresou v budoucnu nebyly schopni změnit<br />
*** maximální lease time tedy bude jeden měsíc<br />
** manuální konfigurace je silně nedoporučena<br />
*** pokud se rozhodneme změnit IPv6 adresování tak může dojít k problémům<br />
*** z hlediska správce IPv6 rozsahu je to problém čistě uživatele, který nedbal doporučení a nebude na něj brán ohled<br />
* podobně jako u serverové VLAN <tt>fjfi-*-srv</tt> bude možné zařízení zařazovat do skupin<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru (např. omezení komunikace po ČVUT pro tiskárny)<br />
** využití skupin zde musí být zdokumentováno<br />
* jedno zařízení může mít zároveň přiděleno více aktivních IPv6 adres<br />
* doporučený formát IPv6 addres (pouze správce sítě může s rozumným důvodem využít jinou než první možnost)<br />
*# registrační GUI bude [[Registrace_MAC#Pravidla pro automatické vytváření rezervovaných adres|automaticky generovat neobsazené IPv6 adresy ze správných rozsahů]]<br />
*# <strike>IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x01::147.32.8.52) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x01::852)</strike><br />
*# <strike>adresy z rosahu 2001:718:2:1x01::0001:0000-2001:718:2:1x01::00ff:ffff (~ 2^24 adres)</strike><br />
*# <strike>libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)</strike><br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-def</span> (2001:718:2:xx<span style="color: DarkGreen">01</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!colspan="4"|Adresy pro standardní a speciální rozsahy 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/88<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální IPv6 rozsah pro běžná zařízení (ručně přidělované adresy, např. 2001:718:2:1901::852), preferované jsou ale níže uvedené rozsahy s konkrétním účelem (dle typu zařízení, organizační jednotky, ...)<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy (nutné pro zařízení, které byli primárně registovany pro jinou lokaci)<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">2</span>::/96<br/>-<br/>2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">f</span>::/96<br />
|vokacpet<br />
|Rezervovaný rozsah pro budoucí využití<br />
|-<br />
!fragile<br/>printer<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro tiskárny s omezením komunikace po ČVUT<br />
|-<br />
!restricted<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací pouze přes http/https (+ lokální DNS)<br />
|-<br />
!restricted<sup>2</sup><br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací jen na vyhrazené lokální servery (adresy pro blokované, neregistrované, zlobivé, ... zařízení). Zatím by taková zařízení nemusela dostávat žádnou IPv6 adresu a do příslušná omezení a informační stranky by se zobrazili na základě přidělené IPv4 adresy.<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">??</span>::/96<br />
| --<br />
|Skupina zařízení s omezeními dle uživatelských požadavků - návrhy?<br />
|-<br />
!colspan="4"|Adresy vyhrazené pro zařízení kateder 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/88<br />
|-<br />
!ČVUT<br/>FJFI<br/>Other<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení ČVUT, FJFI a Ostatní<br />
|-<br />
!KM<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">101</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KM<br />
|-<br />
!KF<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">102</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KF<br />
|-<br />
!KJ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">103</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJ<br />
|-<br />
!KIPL<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">104</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KIPL<br />
|-<br />
!KFE<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">105</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KFE<br />
|-<br />
!KMAT<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">106</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KMAT<br />
|-<br />
!KJCH<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">107</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJCH<br />
|-<br />
!KDAIZ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">108</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KDAIZ<br />
|-<br />
!KJR<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">109</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJR<br />
|-<br />
!KSI<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10a</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KSI<br />
|-<br />
!CRRC<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10b</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení CRRC<br />
|-<br />
!Elsa<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10c</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Elsa<br />
|-<br />
!Děkanát<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10d</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Děkanátu<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-eduroam===<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* blokovaná zařízení nedostanou od DHCPv6 přidělenou IPv6 adresu<br />
** převedeno na problém samotného IPv4 a blokovaných zařízení, který je již vyřešen<br />
** aktuálně tedy nemáme plnou podporu IPv6 only zařízení, ale jen v případě ojedinělých případů blokace<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-eduroam</span> (2001:718:2:xx<span style="color: DarkGreen">06</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální rozsah (ručně přidělované/rezervované adresy), žádné restrikce<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy, minimální restrikce<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-wififjfi===<br />
<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* konfigurace by měla fungovat tak, aby klient mohl nakonec využívat nativní IPv6 konektivitu bez dalšího (linuxového) routeru (NAT) na cestě<br />
* zbývá dořešit technické detaily autentizace na captive portálu a také blokovaná (neregistrovaná a smazaná) zařízení<br />
** neautentizovaná zařízení dostanou pouze IPv4 adresu a budou tak mít přístup ke captive portálu<br />
** DHCPv6 bude defaultně zkonfigurováno, aby zařízením neposkytlo IPv6 adresu do té doby než je uživatel uspěšně ověřen<br />
** po autentizaci přes captive portál na IPv4 modifikovat dynamicky konfiguraci DHCPv6 a povolit přidělení adresy s lease time ~ 1hodina<br />
*** asi to je možné řešit přes DHCPv6 classes, ale ty nejsou podporovány v ISC DHCP 4.2.5, který je součástí CentOS7<br />
*** nebude fungovat pro IPv6 only zařízení (to tu aktuálně vůbec neřešíme a v budoucnu se uvidí co bude možné např. s 6to4 překlady adres)<br />
<br />
=Firewall=<br />
[[Blokované porty]]<br />
<br />
=Provozní poznámky=<br />
<br />
* SMC8626<br />
** nejnovější firmware v1.4.0.8 je nestabilní (pro multicast a mam pocit že docházelo i k odpadnutí managementu)<br />
** aktualni firmware v1.1.0.2 nelze managovat přes VLANu (jinou než 1), kdy je na daném portu zároveň zapnutý <tt>spanning-tree edge-port</tt>, jelikož po restartu se nelze k managementu připojit dokud se nevytáhne a vrátí zpět ethernetový kabel => uplink nesmí mít tuhle volbu zapnutou</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Network&diff=3799Network2017-04-20T11:27:57Z<p>Keroupav: /* Veřejné adresy */</p>
<hr />
<div>Dokumemtace a pravidla k organizaci sítě na FJFI. Jakékoliv změny v tomto dokumentu musí být oznámeny v mailing listu správců IT na FJFI (comp@lists.fjfi.cvut.cz), aby bylo možné sladit konfigurace lokálních systémů (např. firewallu) v závislosti na úpravách konfigurace sítě.<br />
<br />
=Páteřní rozvody a zapojení=<br />
<br />
==Břehová==<br />
<br />
Plány rozmístění rozvaděčů a barevně obarvené místnosti podle připojení síťových (ethernetových) zásuvek do rozvaděčů:<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1pp.png s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1_2np.png 1/2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1np.png 0.patro] (přízemí)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-2np.png 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-3np.png 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-4np.png 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-5np_krov.png 4.patro] (půdní vestavba)<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Brehova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* telefonní ústředna<br />
** foto z místnosti 008 [https://nms.fjfi.cvut.cz/user/images/ustredna-br-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-3.jpg 3], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-4.jpg 4]<br />
<br />
==Trojanova==<br />
<br />
Dokumentace z FJFI archivu k překladu optických tras realizovaných v roce 2009 (nascanováno, obrovské ~ 10MB JPG soubory):<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1pp.jpg s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1np.jpg 0.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/2np.jpg 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/3np.jpg 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/4np.jpg 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_blokove.jpg blokové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_prehledove.jpg přehledové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technická zpráva]<br />
* [[Topologie|nákres rozmístění rozvaděčů]]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Trojanova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/Kabel_Trojanka_HK.pdf připojení HK]<br />
** přívod chráničky do budovy je v místnosti s117 (hlavní uzávěr vody)<br />
** SM kabel - PIRELLI Deskwave 053/2001 LOOSE UNITUBE 12 9/125 T/VM<br />
** MM kabel - 12vl.<br />
** MM kabel je v místnosti s117 naspojkován (dříve vedl do 112 ale nyní přeložen do 302)<br />
** SM kabel nebyl nikdy ze 112 přeložen (po rekonstrukcích 112 v létě 2015 by měl být stažen do s117)<br />
* připojení do ČVUT<br />
** přívod chráničky do budovy je v místnosti s128<br />
** FRNC Belden optical Fibre 2x50/125 + 14x9/125<br />
** tento kabel nevede až na karlák, je naspojkován a dál vedou jen 2vl. SM optiky<br />
** cestou do místnosti 302 je nastaven (+/- někde u výtahu)<br />
* hlavní rozvaděč optiky v 302<br />
** foto optického patch panelu [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-3.jpg 3]<br />
** [https://nms.fjfi.cvut.cz/data/tr-optika/protokol-optika-302-srv1.pdf měřící protokol pro MM spojení 302 se SRV1]<br />
* propojeni serveroven ve sklepě<br />
** zadavatel měl dost nešťastný nápad rozvést pouze 2 páry optiky<br />
** navíc byla použita aktuálně asi nehorší dostupná vlákna MM OM1<br />
*** SFP-10G-SR (33m) nefungují spolehlivě ani mezi SRV1 &lt;-&gt; SRV2<br />
*** pro spojení bude asi nutné pořizovat 2x dražší SFP-10G-LRM (220m)<br />
*** při přímém propatchování SRV302 &lt;-&gt; SRV2 nefungovali spolehlivě ani tyto lepší moduly<br />
** spojení serveroven je seriové SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3 &lt;-&gt; SRV4<br />
** jedno vlákno (nejvíce vpravo) mezi SRV1 &lt;-&gt; SRV2 je mrtvé<br />
** PLÁN rekonstrukce<br />
*** předelat udělat všechno do SM optiky<br />
*** rozmyslet se ve které místnosti bude centralní rozvod optiky<br />
*** z centrálního rozvodu mít vlakna do všech serveroven<br />
*** hodně vláken s minimálně 6ti páry připravenými v patch panelu na každé SRVx<br />
*** natáhnout opravdu hodně SM vláken do SRV302(?!)<br />
<br />
==Trója==<br />
<br />
Připojení bylo až do 201606 realizováno routováním přes PASNET a připojením do jejich routeru v Tróji. Od 1.7.2016 je Trója připojena lambdou přímo do Dejvic (CWDM 1470nm) a to trasou přes UTIA. V Tróji je na serverovně (PASNETu) optika "z Dejvic" propatchovana do rozvaděče na chodbě L119 (optika je v patch panelu zakončena LC/PC konektory), kde je aktuálně 1Gb zapojena do [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=63755 MikroTik CCR1016-12S-1S+] (detaily viz. [https://lists.fjfi.cvut.cz/mailman/private/comp/2016/001510.html Zmena pripojeni lokality Troja (IPv6)]).<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Troja.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.pp.png těžké lab. 0.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.np.png těžké lab. 1.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-2.np.png těžké lab. 2.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-3.np.png těžké lab. 3.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-7.np.png KJCH 6. patro]<br />
<br />
==Děčín==<br />
<br />
Tato lokalita není připojená přímo do sítě ČVUT, ale [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=2665 routerem] CESNETu.<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Decin.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.pp.png 0. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.np.png 1. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-2.np.png 2. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-3.np.png 3. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-4.np.png 4. patro]<br />
<br />
=VLAN=<br />
<br />
ČVUT VIC prostupně přechází na globalní očíslování VLAN takovým způsobem, aby v se různých částech sítě nepoužívala stejná čísla VLAN (některým management nástrojům se takové konfigurace nezamlouvají). Z toho důvodu byl pro vnitřní potřeby FJFI přidělen rozsah VLAN 2400-2499. Některá starší (pochybnější) zařízení mohou mít problém s využítím takto vysokých čísel, v takovém případě bude nejlepší na nich žádné VLANy nekonfigurovat a budou se používat pouze pro netagovaný provoz.<br />
<br />
V následujících tabulkách je plán resp. dokumentace k využítí přidělených VLAN. První polovina přiděleného rozsahu je využita pro "standardní" VLANy (jejich jméno musí začínat prefixem <tt>fjfi-</tt>), které je vhodné mít vytvořené v každé budově FJFI a zbytek lze využít pro libovolné individuální VLANy (každé nově využité číslo VLAN z uvedeného rozsahu je zde nutné zdokumentovat). Pro Děčín je nutné tento plán brát dost s rezervou, jelikož tato lokalita není připojena přímo do ČVUT, ale je routována přímo CESNETem a lokální VLANy se nakonec mohou lišit.<br />
<br />
==Standardní VLANy==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2400-2439)<br/>(standardní VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<sup>*</sup><br />
!Břehová<br />
!Trojanova<br />
!Trója<br />
!Děčín<br />
!Status<br />
!Comment<br />
|-<br />
!fjfi-*-srv<br />
|2400<br />
|2410<br />
|2420<br />
|2430<br />
|active<br />
|Subnet pro servery<br />
|-<br />
!fjfi-*-def<br />
|2401<br />
|2411<br />
|2421<br />
|2431<br />
|active<br />
|Veřejná síť ("default VLAN" pro běžné počítače)<br />
|-<br />
!fjfi-*-mgmt-net<br />
|2402<br />
|2412<br />
|2422<br />
|2432<br />
|active<br />
|Management rozhraní síťových prvků (switch, router, ap, ...)<br />
|-<br />
!fjfi-*-mgmt-srv<br />
|2403<br />
|2413<br />
|2423<br />
|2433<br />
|active<br />
|Subnet pro management serverů (např. IPMI)<br />
|-<br />
!fjfi-*-sec<br />
|2404<br />
|2414<br />
|2424<br />
|2434<br />
|planed<br />
|Subnet pro zabezpečovací zařízeni (např. kamery, K4, ...)<br />
|-<br />
!fjfi-*-wifi<br />
|2405<br />
|2415<br />
|2425<br />
|2435<br />
|active<br />
|Wireless síť pro speciální příležitosti (např. samostatná konfigurace pro konference)<br />
|-<br />
!fjfi-*-eduroam<br />
|2406<br />
|2416<br />
|2426<br />
|2436<br />
|active<br />
|Wireless síť Eduroam<br />
|-<br />
!fjfi-*-wififjfi<br />
|2407<br />
|2417<br />
|2427<br />
|2437<br />
|active<br />
|Wireless síť s captive portálem<br />
|-<br />
!fjfi-*-voip<br />
|2408<br />
|2418<br />
|2428<br />
|2438<br />
|planed<br />
|Segment pro VoIP telefony<br />
|-<br />
!fjfi-*-fragile<br />
|2409<br />
|2419<br />
|2429<br />
|2439<br />
|active<br />
|Segment pro "nepočítačová" síťová zařízení (nepravidelné/neexistující updaty)<br />
|-<br />
!colspan="7"|U jmen VLAN je potřeba nahradit znak "*" zkratkou příslušné lokality (br/tr/vh/dp)<br />
|}<br />
<br />
==Standardní VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Detaily k rozdělení FJFI VLAN (2400-2439)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-eduroam<br />
|2416<br />
|active<br />
|tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Jeden subnet s veřejnými adresami <tt>147.32.11.0/24</tt> pro Eduroam síť v Trojance<br />
|}<br />
<br />
==Speciální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2440-2449)<br/>(speciální VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-brtr-srv-clu<br />
|2448<br />
|active<br />
|br+tr<br />
|12.1.2015 FJFI<br />
|vokacpet<br />
|Public segment pro clusterování strojů mezi Trojankou a Břehovkou s dvěmi HSRP active/standby gateway<br />
|-<br />
!fjfi-brtr-srv-priv<br />
|2449<br />
|active<br />
|br+tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery v clusteru (DFS replikace)<br />
|}<br />
<br />
==Individuální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2450-2499)<br/>(individuální VLANy, pro uživatelské potřeby)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>(owner)<br />
!Admin<br />
!Comment<br />
|-<br />
!test_max_20_znaku<br />
|2450<br />
|test<br />
| --<br />
|2.6.2014 (KM)<br />
|vokacpet<br />
|Testovací záznam - tato VLAN není reálně nikde zkonfigurována, jméno VLAN musí být do 20 znaků (CISCO limit, stará SMC podporují max 12 znaků)!<br />
|-<br />
!fjfi-tr-km<br />
|2451<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kf<br />
|2452<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kj<br />
|2453<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kipl<br />
|2454<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kfe<br />
|2455<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kmat<br />
|2456<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kjch<br />
|2457<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kdaiz<br />
|2458<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-vh-kjr<br />
|2459<br />
|test<br />
|vh<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-ksi<br />
|2460<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-dekanat<br />
|2461<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-??-??<br />
|2462<br/>-<br/>2469<br />
|rezervace<br />
| --<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|}<br />
<br />
==K promyšlení==<br />
<br />
* VLANy pro subnety kateder, rozdělení +/- dle čísel kateder<br />
* VLANy pro privátní subnety kateder (nebo mít jen jeden "veřejný" privátní subnet?)<br />
* VLAN pro přístupové systémy pro karty (je možné provozovat na privátní síťi?)<br />
* VLAN pro přístup k datům zabezpečení (kamery)<br />
* VLAN pro serverovou DMZ<br />
* Prohodit číslování standardních VLAN pro Tróju a Děčín (stejné pořadí jako seřazené IP segmenty?)<br />
** jedinný Děčín je "externí" lokalita routovaná přímo CESNETem (nemáme plnou kontrolu nad lokálními čísly VLAN a IPv6 čísly subnetů)<br />
** pořadí lokalit tedy bude br/tr/vh/dp<br />
<br />
=IP=<br />
<br />
==Veřejné adresy==<br />
<br />
Následující tabulka obsahuje souhrné informace o veřejných IP adresách přidělených a využívaných na FJFI.<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Rozdělení veřejných IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Gateway<br />
!VLAN Name<br />
!Admin<br />
!Comment<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.4.0%2F24&location=br 147.32.4.0/24]<br />
|Břehová<br />
|147.32.4.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-1<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.5.0%2F24&location=br 147.32.5.0/24]<br />
|Břehová<br />
|147.32.5.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-2<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.6.0%2F23&location=tr 147.32.6.0/23]<br />
|Trojanova<br />
|147.32.6.1<br />
|fjfi-tr-def<br />
|sinormil<br />
|Subnet KFE + dynamicky přidělované veřejné IP<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.8.0%2F24&location=tr 147.32.8.0/24]<br />
|Trojanova<br />
|147.32.8.1<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet KM+KJ+KSI+Elsa<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.0%2F26&location=tr 147.32.9.0/26]<br />
|Trojanova<br />
|147.32.9.1<br />
|fjfi-tr-srv<br />
|vokacpet<br />
|Serverový subnet v tr<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.96%2F27&location=tr 147.32.9.96/27]<br />
|Břehová+Trojanova<br />
|147.32.9.97<br />
|fjfi-brtr-srv-clu<br />
|vokacpet<br />
|Serverový subnet pro clustery mezi br+tr (duální gateway active/standby přes HSRP)<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.64%2F27&location=br 147.32.9.64/27]<br />
|Břehová<br />
|147.32.9.65<br />
|fjfi-br-srv<br />
|vokacpet<br />
|Serverový subnet v br<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.192%2F26&location=tr 147.32.9.192/26]<br />
|Trojanova<br />
|147.32.9.193<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet speciální zařízení<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.0%2F25&location=tr 147.32.10.0/25]<br />
|Trojanova<br />
|147.32.10.1<br />
|fjfi-tr-def<br />
|kopripe1<br />
|Subnet KMAT<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.128%2F25&location=tr 147.32.10.128/25]<br />
|Trojanova<br />
|147.32.10.129<br />
|fjfi-tr-def<br />
|drabmart<br />
|Subnet KIPL<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.11.0%2F24&location=tr 147.32.11.0/24]<br />
|Trojanova<br />
|147.32.11.1<br />
|fjfi-tr-eduroam<br />
|vokacpet<br />
|Eduroam<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.22.0%2F24&location=dp 147.32.22.0/24]<br />
|Děčín<br />
|147.32.22.1<br />
|fjfi-dp-def<br />
|sumpepre<br />
|Veřejné adresy dp<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.25.0%2F24&location=vh 147.32.25.0/24]<br />
|Trója<br />
|147.32.25.1<br />
|fjfi-vh-def<br />
|fialaja2<br />
|Veřejné adresy vh<br />
|}<br />
<br />
===Veřejné adresy detaily===<br />
<br />
Většina veřejných adres je rezervována pro konkrétní zařízení. V každé budově FJFI existuje ale i určitý rozsah veřejných adres, které jsou přidělovány registrovaným zařízením bez rezervace konkrétní adresy (zvýrazněno modře v níže uvedené tabulce). V případě aktuálního vyčerpání těchto volně dostupných veřejných adresu budou dalším zařízením přidělovány privátní adresy z privátního rozsahu na téže VLAN <tt>fjfi-*-def</tt>. V konfiguraci registrace síťového zařízení lze specifikovat, že danému zařízení má být vždy přidělena privátní adresa a to i v případě, že pool veřejných adres ještě nebyl vyčerpán.<br />
<br />
Trvale připojená zařízení využívají veřejné adresy by měla mít zaregistrovánu rezervovanou adresu z rozsahu, který je přidělen organizační jednotce vlastnící dané zařízení (viz. tabulka). Zařízení tak bude mít garantovánu stalou veřejnou IP adresu a nebude se zbytečně zmenšovat pool s veřejnými adresami pro ostatní zařízeni, která se na FJFI síti vyskytují pouze občas. Pro běžná zařízení (počítače) je preferováno použití veřejných adres, jelikož při jejich použití není fungování síťového zařízení omezeno potencíálními problémy NATu (vyplývající z podstaty NATu, vytížení NATovacího zařízení případně jeho nedostupnosti) a lze jednodušeji řešit případné stížnosti týkající se konkrétní adresy.<br />
<br />
Existuje ale i skupina speciálních zařízení (např. tiskárny) u nichž je lepší použít privátní adresy. Provoz některých zařízení na veřených adresách totiž představuje bezpečnostní hrobu vzhledem k neexistujícím automatickým security updatům firmware a omezeným možnostem konfigurace zabezpečení. Takové zařízení by ideálně měla být na samostatné VLAN <tt>fjfi-*-fragile</tt>, ale vzhledem ke komplikovanému managementu sítě pro ně je zatím vyhrazen rozsah privátních adres z VLAN <tt>fjfi-*-def</tt> (viz. [[#Priv.C3.A1n.C3.AD_adresy_na_default_VLAN_fjfi-.2A-def|níže]]). Adresu z tohoto rozsahu lze jednoduše vybrat v rozhraní pro registrace síťových zařízení.<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení veřejných IP rozsahů (detaily)<br />
|-<br />
!IP rozsah<br />
!adresy<br />
!Comment<br />
|-<br />
!rowspan="3"|147.32.4.0/24<br />
!147.32.4.0-70<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.4.71-189</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.4.190-255<br />
|??<br />
|-<br />
!rowspan="2"|147.32.5.0/24<br />
!147.32.5.0-49<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.5.50-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="4"|147.32.6.0/24<br />
!147.32.6.2-99<br />
|vyhrazeno unixářům (Richard Liska, Milan Šiňor) <br />
|-<br />
!147.32.6.100-199<br />
|pclab, kanceláře, ... (Antonín Novotný)<br />
|-<br />
!147.32.6.200-254<br />
|InfoLab, kanceláře (Josef Blažej)<br />
|-<br />
!147.32.6.255<br />
|rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
|-<br />
!rowspan="2"|147.32.7.0/24<br />
!147.32.7.1-31<br />
|tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
|-<br />
!<span style="color: blue">147.32.7.32-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="7"|147.32.8.0/24<br />
!147.32.8.2-79<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.80-96<br />
|studovna 214<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
|-<br />
!147.32.8.97-109<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.110-149<br />
|KM učebny<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
|-<br />
!147.32.8.150-223<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.224-230<br />
|KJ zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.224/27<br />
|Tereza<br />
* 147.32.8.241 - 147.32.8.250 desktopy<br />
* 147.32.8.253 - Printer 4x4 Pro<br />
|-<br />
!rowspan="3"|147.32.9.128/25<br />
!147.32.9.128/27<br />
|KSE (Miroslav Virius ?)<br />
|-<br />
!147.32.9.160-223<br />
|Tiskárny<br />
* 147.32.9.190 rezervace<br />
* 147.32.9.191 rezervace<br />
* 147.32.9.192 rezervace<br />
* 147.32.9.212 rezervace<br />
* 147.32.9.213 rezervace<br />
* správce Míra Minárik, Pavel Kerouš<br />
|-<br />
!147.32.9.224/27<br />
|různé (zatím pro "speciální" zařízení jako např. kartové systémy, ...), není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
|-<br />
!rowspan="2"|147.32.10.0/25<br />
!147.32.10.0/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.10.128/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.11.0/24<br />
!147.32.11.0/24<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.22.0/24<br />
!<span style="color: blue">147.32.22.101-199</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.25.0/24<br />
!<span style="color: blue">147.32.25.102-219</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|}<br />
<br />
==Privátní adresy==<br />
<br />
Vzhledem k nedostatku veřejných IP adres bylo nutné začít využívat i privátní IP adresy. Ty jsou používany jak čistě interně (např. management), tak i pro běžný provoz s NATem aktuálně hlavně na WiFi sítích, kde si vzhledem k enormnímu nárůstu počtu zařízení není možné vystačit s dostupnými veřejnými adresami. Privátní IPv4 adresy jsou také používány pro neregistrovaná zařízení a automatický přístup k captive portálu na stránku s registrací.<br />
<br />
Bohužel se na "Jednání IT techniků ČVUT - 11.6.2015" dohodlo, že se privátní adresy nebudou routovat po ČVUT (resp. nedošlo ani k základní shodě na tom, jaké rozsahy by bylo možné použít s tím, že ostatní fakulty už využívají všechny dostupné privátní subnety). Tohle je podmínka (téměř - viz. RFC6598) nutná pro možnost zřízení globálního NATu, takže ani v budoucnu nelze očekávat poskytnutí této služby v rámci celého ČVUT. Další komplikací je využití privátních adres mezi různými lokalitami FJFI, kde je potřeba využít policy based routing a privátní adresy do druhé lokality dostat přes tunel resp. dedikovanou VLAN. Centrální L3 switche použité v FJFI lokalitách také mají relativně omezené možnosti konfigurace (nepodporují NAT, netflow, GRE tunely, malá TCAM pro PBR, ...).<br />
{|class="wikitable"<br />
!colspan="6"|Počet adres v podsítích dané velikosti<br />
|-<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
|-<br />
!/24<br />
|256<br />
!/21<br />
|2048<br />
!/18<br />
|16384<br />
|-<br />
!/23<br />
|512<br />
!/20<br />
|4096<br />
!/17<br />
|32768<br />
|-<br />
!/22<br />
|1024<br />
!/19<br />
|8192<br />
!/16<br />
|65536<br />
|}<br />
<br />
<br />
===Privátní adresy dle lokality===<br />
<br />
Pro centrálně spravované privátní adresy na FJFI je využíván rozsah <tt>172.16.0.0/12</tt> z nějž má každá lokalita přidělen jeden segment <tt>/16</tt> (~ 65k adres) a poslední subnet <tt>172.31.0.0/16</tt> se využívá ke speciálním účelům (např. spojovačky). Přidělený segment je dále dělen na subnety jejichž základní číslování je shodné v každé lokalitě (např. dle VLAN, využití, ...).<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení privátních IP rozsahů na FJFI po lokalitách<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Comment<br />
|-<br />
!10.0.0.0/8<br />
| --<br />
|Vyhrazeno pro potřeby ČVUT (sice to nebylo nikde oficiálně řečeno, ale je to jedinný privátní rozsah u nejž vzhledem k velikosti má smysl uvažovat o využití v rámci celého ČVUT)<br />
|-<br />
!172.16.0.0/16<br />
|Břehová<br />
|<br />
|-<br />
!172.17.0.0/16<br />
|Trojanova<br />
|<br />
|-<br />
!172.18.0.0/16<br />
|Trója<br />
|<br />
|-<br />
!172.19.0.0/16<br />
|Děčín<br />
|<br />
|-<br />
!172.31.0.0/16<br />
| --<br />
|Vyhrazeno pro speciální využití (např. spojovačky na privátní síti)<br />
|-<br />
!192.168.0.0/16<br />
| --<br />
|Adresy z tohoto rozsahu nebudou na FJFI nijak regulovány a jsou preferované pro uživatelské testovací resp. dočásné privátní sítě. Je na jejich správci, aby si vybral nepoužívaný rozsah v dané síti resp. VLAN, ale není zde zaručeno resp. monitorováno jestli jestli stejné adresy začne používat někdo další. Pro potřeby trvalého privátního adresované na FJFI síti je doporučeno dohodnout alokaci podsítě z odpovídajících 172.1x.0.0/16 rozsahů. Nědky může být vhodné použít adresování 172.1x.0.0/16 i např. pro clustery resp. sítě kompletně oddělené od zbytku infrastruktury (např. je lze pak zpřístupnit přes centrální VPN).<br />
|-<br />
!colspan="3"|Privátní rozsahy značené 172.<span style="color: blue">1x</span>.aaa.bbb budou dále znamenat adresy v libovolné lokalitě (br=<span style="color: blue">16</span>/tr=<span style="color: blue">17</span>/vh=<span style="color: blue">18</span>/dp=<span style="color: blue">19</span>)<br />
|}<br />
<br />
===Privátní adresy dle VLAN===<br />
<br />
Všechny standardní využívané VLAN budou mít přidělen určitý rozsah privátních adres. V závislosti na využití bude přizpůsobena konfigurace "Private routing" týkající se routování mezi lokalitami FJFI (žádné routování, routování přes tunel/VLAN nebo IPSec zabezpečené spojení), routování do světa skrz NAT a různé filtrování paketů "Private ACL" mezi privátními subnety. Jednotlivé subnety je dobré alokovat také s ohledem na to, jak komplikované bude případné přečíslování zařízení na daném subnetu.<br />
<br />
{|class="wikitable"<br />
!colspan="8"|Rozdělení privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!VLAN Name<br />
!NAT<br />
!Private<br/>routing<br />
!Private<br/>ACL<br />
!Komplikace<br/>přeadresování<br />
!Comment<br />
|-<br />
!colspan="8"|172.1x.0.0/17 - adresy pro globální využití ve všech lokalitách<br />
|-<br />
!172.1x.0.0/22<br />
|172.1x.0.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování serverů dostupných přímo ze všech lokálních sítí, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.4.0/22<br />
|172.1x.4.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.8.0/22<br />
|172.1x.8.1<br />
|fjfi-*-srv<br />
|yes<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN s IPSec zabezpečenou komunikací mezi FJFI lokalitami, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.12.0/22<br />
| --<br />
|fjfi-*-srv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze z lokální VLAN (žádné routování či NAT)<br />
|-<br />
!172.1x.16.0/22<br />
|172.1x.16.1<br />
|fjfi-*-mgmt-net<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu síťových prvků (switche) dostupné pouze z mgmt-net VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.16.0/23<br />
|-<br />
!172.1x.20.0/22<br />
|172.1x.20.1<br />
|fjfi-*-mgmt-srv<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu serverů (IPMI, RAID controller, UPS, ...) dostupné pouze z mgmt-srv VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.20.0/23<br />
|-<br />
!172.1x.24.0/22<br />
|172.1x.24.1<br />
|fjfi-*-fragile<br />
|yes/no<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování pro samostatný subnet "nedůvěryhodných" zařízení (např. tiskárny, specializovaná zařízení bez pravidelných security update, ...), komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.24.0/23<br />
|-<br />
!172.1x.28.0/24<br />
|172.1x.28.1<br />
|fjfi-brtr-srv-clu<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.28.0/24)<br />
|-<br />
!172.1x.29.0/24<br />
| --<br />
|fjfi-brtr-srv-clu<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.29.0/24)<br />
|-<br />
!172.1x.30.0/24<br />
|172.1x.30.1<br />
|fjfi-brtr-srv-priv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.30.0/24)<br />
|-<br />
!172.1x.31.0/24<br />
| --<br />
|fjfi-brtr-srv-priv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.31.0/24)<br />
|-<br />
!172.1x.32.0<br/>-<br/>172.1x.51.255<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
|Rezervováno pro budoucí "globální využití"<br />
|-<br />
!172.1x.52.0/24<br/>172.1x.53.0/24<br />
|172.1x.52.1(*)<br/>172.1x.53.1(*)<br />
|VPN<br/>test<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro L2TP, PPTP, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.52.0/24 - PPTP server na nms-xx.fjfi.cvut.cz<br />
* 172.1x.53.0/24 - L2TP server na nms-xx.fjfi.cvut.cz<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.54.0/24<br/>172.1x.55.0/24<br />
|172.1x.54.1(*)<br/>172.1x.55.1(*)<br />
|OpenVPN<br/>admin<br />
|yes<br />
|default<br />
| --<br />
|malé<br />
|Privátní adresování pro admin OpenVPN klienty s přímým přístupem do sítě včetně privátních, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.54.0/24 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.55.0/24 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.56.0/22<br/>172.1x.60.0/22<br />
|172.1x.56.1(*)<br/>172.1x.60.1(*)<br />
|OpenVPN<br/>user<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro OpenVPN klienty, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.56.0/22 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.60.0/22 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.64.0/20<br />
|172.1x.64.1<br />
|fjfi-*-def<br />
|yes(*)<br />
|default<br />
|permit(*)<br />
|velké(*)<br />
|Privátní adresy na default VLAN (lokální síť v budově), detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-def]]<br />
|-<br />
!172.1x.80.0/20<br />
|172.1x.80.1<br />
|fjfi-*-wifi<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní rozsah pro speciální WiFi sítě, které mohou mít speciální konfiguraci např. pro konference, ...<strike>Rezervováno pro případné budoucí speciální požadavky na fjfi-*-def VLAN nebo rozšíření adresního prostoru na této VLAN</strike><br />
|-<br />
!172.1x.96.0/20<br />
|172.1x.96.1<br />
|fjfi-*-eduroam<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť Eduroam, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-eduroam]]<br />
|-<br />
!172.1x.112.0/20<br />
|172.1x.112.1(*)<br />
|fjfi-*-wififjfi<br />
|yes(*)<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť WiFiFJFI, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-wififjfi]], tato síť používá vlastní gateway pro řízení přístupu pomocí captive portálu a zařízení na ní nejsou z vnějšku dostupná.<br />
|-<br />
!colspan="8"|172.1x.128.0/18 - adresy pro lokální využití v konkrétní lokalitě lokalitě<br />
|-<br />
!colspan="8"|172.16.128.0/18 - Břehová<br />
|-<br />
!?rezervace?<br/>172.16.128.0/22<br />
|172.16.128.1(*)<br />
|fjfi-br-kf-private<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro síť KF s NAT a gateway zajištěnou [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=38061 vlastním zařízením]<br />
|-<br />
!colspan="8"|172.17.128.0/18 - Trojanova<br />
|-<br />
!?rezervace?<br/>172.17.128.0/22<br />
|172.17.128.1(*)<br />
|fjfi-tr-hyperion<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro KM+KIPL hyperion cluster s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=24149 NAT a gateway]<br />
|-<br />
!?rezervace?<br/>172.17.132.0/22<br />
|172.17.132.1<br />
|"xen-vdi"<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování pro Xen virtualizované desktopy, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!colspan="8"|172.18.128.0/18 - Trója<br />
|-<br />
!colspan="8"|172.19.128.0/18 - Děčín<br />
|-<br />
!colspan="8"|172.1x.192.0/18 - rezervováno<br />
|-<br />
|colspan="8"|Adresy pro lokální využití v konkrétní lokalitě rezervované pro případ, že dojde k L2 segmentaci sítě podle příslušnosti k různým součástem FJFI<br />
|}<br />
<br />
<br />
====Privátní adresy na default VLAN <tt>fjfi-*-def</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.64.0/20 na default VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.64.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
* 172.18.71.0/24 je v Tróji využíváno pro privátní adresování (měřících) zařízení KJR (humlond)<br />
|-<br />
!172.1x.72.0/22<br />
| --<br />
| --<br />
|vokacpet<br />
|unused<br />
|-<br />
!172.1x.76.0/23<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro "nepočítačová" zařízení (např. tiskárny)<br />
|-<br />
!172.1x.78.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro servery (např. printserver pro komunikaci na tomto subnetu)<br />
|-<br />
!172.1x.79.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným, smazaným a neregistrovaným zařízením<br />
|}<br />
<br />
====Privátní adresy na eduroam VLAN <tt>fjfi-*-eduroam</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.96.0/20 na eduroam VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.96.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.110.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.111.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným (smazaným) zařízením<br />
|}<br />
<br />
====Privátní adresy na wififjfi VLAN <tt>fjfi-*-wififjfi</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.112.0/20 na wififjfi VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.112.0/21<br />
|dynamic+reserved<br />
|auth<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.126.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.127.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným zařízením<br />
|}<br />
<br />
===Individuální rozsahy privátních adres===<br />
<br />
Využití těchto adres není nijak regulováno, takže zde neexistují žádné překážky k jejich použití ale na druhou stranu se také nelze spolehnout na to, že stejné adresy nezačne používat někdo další. V níže uvedené tabulce je (nekompletní) seznam aktuálně používaných adres z 192.168.0.0/16 rozsahu. Bylo by vhodné zvážit jestli do budoucna nezačít využívat rezervované subnety z 172.1x.0.0/16 rozsahů.<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení individuálních privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!Public<br />
!VLAN Name<br />
!OU<br />
!Admin<br />
!Comment<br />
|-<br />
!192.168.x.0/24<br />
|192.168.x.1<br />
|147.32.x.y<br />
|None<br />
|KIPL<br />
|drabmart<br />
|Privátní adresy pro KM+KIPL cluster<br />
|-<br />
!192.168.3.0/24<br />
|192.168.3.1<br />
|147.32.4.13<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF - kanceláře<br />
|-<br />
!192.168.11.0/24<br />
|192.168.11.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|-<br />
!192.168.20.0/24<br />
|192.168.20.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|}<br />
<br />
=IPv6=<br />
<br />
ČVUT přiděluje standardně <tt>/56</tt> rozsahy (lze použít pro vytvoření 256 podsítí) pro lokality připojené přes Dejvice ze přiděleného IPv6 rozsahu <tt>2001:718:2::/48</tt>. Bohužel vzhledem ke způsobu routování IPv6 není možné používat adresy z "dejvického" rozsahu v ostatních lokalitách (CESNET to ve své síti nepodporuje, tj. např. v Tóji a Děčíně), tam bude využit jiný rozsah přidělený ČVUT a routovaný Pasnetem resp. CESNETem.<br />
<br />
==IPv6 adresy dle lokality==<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI po lokalitách<br/>(FJFI IPv6 rozsahy 2001:718:2:1800::/54)<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Admin<br />
!Comment<br />
|-<br />
!2001:718:2:<span style="color: blue">17</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený na FJFI (včetně DNS reverzů, bude vrácen VICu po alokaci "1b")<br />
|-<br />
!2001:718:2:<span style="color: blue">18</span>00::/56<br />
|Břehová<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">19</span>00::/56<br />
|Trojanova<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">1a</span>00::/56<br />
|Trója<br />
|vokacpet<br />
|Veřejné adresy (aktuálně nevyužitý rozsah nazvaný FJFI test, čeká na novou serverovnu PASNETu v Tróji)<br />
|-<br />
!2001:718:2:<span style="color: blue">1b</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený FJFI ČVUT (pro "hezčí" FJFI IPv6 netmask)<br />
|-<br />
!??<br />
|Děčín<br />
|vokacpet<br />
|Veřejné adresy (další ČVUT adresy přidělené z routovatelného rozsahu CESNET)<br />
|}<br />
<br />
==IPv6 adresy dle VLAN==<br />
<br />
Každá VLAN přidělená FJFI má standardně přiřazen jeden IPv6 subnet <tt>/64</tt> z přiděleného rozsahu <tt>/56</tt> (256 možných <tt>/64</tt> subnetů). Příslušné číslo FJFI VLAN-2400 (tj. hodnoty v intervalu 0-99) budou přímo součástí IPv6 adresy na pozici 56-63. Vyjímkou je prvních 40 rezervovaných VLAN u nichž se používá pouze poslední číslice.<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI podle VLAN<br />
|-<br />
!IP rozsah<br />
!VLAN ID<br />
!VLAN Name<br />
!Comment<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">0</span>::/64<br />
|24?<span style="color: blue">0</span><br />
|fjfi-*-srv<br />
|Subnet pro servery<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">1</span>::/64<br />
|24?<span style="color: blue">1</span><br />
|fjfi-*-def<br />
|Veřejná síť ("default VLAN" pro běžné počítače) <br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">9</span>::/64<br />
|24?<span style="color: blue">9</span><br />
|fjfi-*-fragile<br />
|Segment pro "nepočítačová" síťová zařízení<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">48</span>::/64<br />
|24<span style="color: blue">48</span><br />
|fjfi-brtr-srv-clu<br />
|Public segment mezi Trojankou a Břehovkou s duální gateway přes HSRP<br />
|-<br />
!2001:718:2:xx<span style="color: blue">49</span>::/64<br />
|24<span style="color: blue">49</span><br />
|fjfi-brtr-srv-priv<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a0</span>::/64<br/> -- <br/>2001:718:2:xx<span style="color: blue">ff</span>::/64<br />
| --<br />
| --<br />
|Rezervováno pro budoucí/speciální využití<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a?</span>::/60<br />
|colspan="2"|Static route to OpenVPN server<br />
|OpenVPN IPv6 network<ul><br />
<li>...<span style="color: blue">a0</span>::/64 - openvpn.fjfi.cvut.cz:1194/udp</li><br />
<li>...<span style="color: blue">a1</span>::/64 - openvpn.fjfi.cvut.cz:1194/tcp</li><br />
<li>...<span style="color: blue">a2</span>::/64 - openvpn.fjfi.cvut.cz:443/udp</li><br />
<li>...<span style="color: blue">a3</span>::/64 - openvpn.fjfi.cvut.cz:443/tcp</li><br />
<li>...<span style="color: blue">a4</span>::/64 - openvpn.fjfi.cvut.cz:53/udp</li><br />
<li>...<span style="color: blue">a5</span>::/64 - openvpn.fjfi.cvut.cz:53/tcp</li><br />
<li>...<span style="color: blue">a6-af</span>::/64 - reserved</li><br />
</ul><br />
|}<br />
<br />
==Využití IPv6 adres v rámci <tt>/64</tt> subnetů==<br />
<br />
Každý subnet na IPv6 má prakticky vzato "neomezené" množství IPv6 adres. Lze tedy zavést další jemnější dělení těchto subnetů, aby bylo možné pro určité skupiny počítačů specifikovat například různá firewall pravidla (např. omezení přístupu na tiskárny pouze z IPv6 adres ČVUT). Nevyužité (zde nedefinované) části <tt>/64</tt> subnetů budou mít standardně zakázanou jakoukoliv komunikaci přímo na fakultním routeru.<br />
<br />
Navíc pro IPv6 nebudou v principu existovat dynamicky přidělované adresy jako je tomu na IPv4, kde je nutné recyklovat omezený adresní prostor. Všechna registrovaná zařízení (síťová rozhraní) budou mít statickou rezervaci konkrétní IPv6 adresy resp. jeji <tt>/64</tt> suffix, který tak bude stejný při připojení zařízení ve všech lokalitách (pro běžné uživatelské subnety jako např. <tt>def</tt>, <tt>eduroam</tt> a <tt>wififjfi</tt> VLAN). Takto přidělená adresa navíc nebude v budoucnu recyklována pro jiné uživatelské zařízení (existují vyjímky, jako např. servery u nichž je změna adresy občas nežádoucí). V případě potřeby je možné u existujícího zařízení smazat aktuální IPv6 adresu a nechat vygenerovat novou.<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-srv===<br />
<br />
* změny ve využití adres jsou u serverů velice komplikované<br />
** konfigurace sítě je na serverech statická (nepoužívají DHCP)<br />
** pro použité adresy může mít řada zařízení (nejen na tomto segmentu) zkonfigurována různá pravidla (např. firewall)<br />
** pokud se neobjeví ''závažné nedostatky'' aktuálního plánu (např. nové standardy) tak jsou adresy přiděleny navždy<br />
* aktuálně budou využívány pouze adresy z rozsahu 2001:718:2:1x00::/96<br />
* doporučený formát IPv6 addres<br />
*# IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x00::147.32.9.17) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x00::17)<br />
*# adresy z rosahu 2001:718:2:1x00::0001:0000-2001:718:2:1x00::00ff:ffff (~ 2^24 adres)<br />
*# registrační GUI bude automaticky generovat neobsazené IPv6 adresy ze správných rozsahů<br />
*# libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)<br />
* jeden server může mít zároveň přiděleno více aktivních IPv6 adres<br />
* je možné alokovat samostatný rozsah IPv6 adres pro skupinu počítačů<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru<br />
** aktuálně neexistují žádné předdefinované skupiny<br />
*** lze si představit např. skupiny dle OS (pro jednodušší psaní filtrů na aktuálně zneužívané chyby)<br />
*** také skupiny dle orgaizačních jednotek pro omezení komunikace na vlastní servery<br />
*** teprve praktické používání IPv6 ukáže reálné potřeby<br />
** využití skupin zde musí být zdokumentováno<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-srv</span> (2001:718:2:xx<span style="color: DarkGreen">00</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">00</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Standardní IPv6 rozsah serverů<br />
|}<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-def===<br />
<br />
* změny ve využití adres mohou být relativně jednoduché při dodržování následujících zásad<br />
** zařízení budou pro IPv6 konfigurace využívat výhradně router advertisementy + stavové DHCPv6<br />
*** vzhledem k nerecyklování IPv6 adres je možné nastavit velice dlouhý lease time<br />
*** nelze použít "nekonečno" jinak bychom přidělenou adresou v budoucnu nebyly schopni změnit<br />
*** maximální lease time tedy bude jeden měsíc<br />
** manuální konfigurace je silně nedoporučena<br />
*** pokud se rozhodneme změnit IPv6 adresování tak může dojít k problémům<br />
*** z hlediska správce IPv6 rozsahu je to problém čistě uživatele, který nedbal doporučení a nebude na něj brán ohled<br />
* podobně jako u serverové VLAN <tt>fjfi-*-srv</tt> bude možné zařízení zařazovat do skupin<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru (např. omezení komunikace po ČVUT pro tiskárny)<br />
** využití skupin zde musí být zdokumentováno<br />
* jedno zařízení může mít zároveň přiděleno více aktivních IPv6 adres<br />
* doporučený formát IPv6 addres (pouze správce sítě může s rozumným důvodem využít jinou než první možnost)<br />
*# registrační GUI bude [[Registrace_MAC#Pravidla pro automatické vytváření rezervovaných adres|automaticky generovat neobsazené IPv6 adresy ze správných rozsahů]]<br />
*# <strike>IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x01::147.32.8.52) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x01::852)</strike><br />
*# <strike>adresy z rosahu 2001:718:2:1x01::0001:0000-2001:718:2:1x01::00ff:ffff (~ 2^24 adres)</strike><br />
*# <strike>libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)</strike><br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-def</span> (2001:718:2:xx<span style="color: DarkGreen">01</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!colspan="4"|Adresy pro standardní a speciální rozsahy 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/88<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální IPv6 rozsah pro běžná zařízení (ručně přidělované adresy, např. 2001:718:2:1901::852), preferované jsou ale níže uvedené rozsahy s konkrétním účelem (dle typu zařízení, organizační jednotky, ...)<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy (nutné pro zařízení, které byli primárně registovany pro jinou lokaci)<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">2</span>::/96<br/>-<br/>2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">f</span>::/96<br />
|vokacpet<br />
|Rezervovaný rozsah pro budoucí využití<br />
|-<br />
!fragile<br/>printer<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro tiskárny s omezením komunikace po ČVUT<br />
|-<br />
!restricted<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací pouze přes http/https (+ lokální DNS)<br />
|-<br />
!restricted<sup>2</sup><br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací jen na vyhrazené lokální servery (adresy pro blokované, neregistrované, zlobivé, ... zařízení). Zatím by taková zařízení nemusela dostávat žádnou IPv6 adresu a do příslušná omezení a informační stranky by se zobrazili na základě přidělené IPv4 adresy.<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">??</span>::/96<br />
| --<br />
|Skupina zařízení s omezeními dle uživatelských požadavků - návrhy?<br />
|-<br />
!colspan="4"|Adresy vyhrazené pro zařízení kateder 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/88<br />
|-<br />
!ČVUT<br/>FJFI<br/>Other<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení ČVUT, FJFI a Ostatní<br />
|-<br />
!KM<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">101</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KM<br />
|-<br />
!KF<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">102</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KF<br />
|-<br />
!KJ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">103</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJ<br />
|-<br />
!KIPL<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">104</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KIPL<br />
|-<br />
!KFE<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">105</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KFE<br />
|-<br />
!KMAT<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">106</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KMAT<br />
|-<br />
!KJCH<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">107</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJCH<br />
|-<br />
!KDAIZ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">108</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KDAIZ<br />
|-<br />
!KJR<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">109</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJR<br />
|-<br />
!KSI<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10a</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KSI<br />
|-<br />
!CRRC<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10b</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení CRRC<br />
|-<br />
!Elsa<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10c</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Elsa<br />
|-<br />
!Děkanát<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10d</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Děkanátu<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-eduroam===<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* blokovaná zařízení nedostanou od DHCPv6 přidělenou IPv6 adresu<br />
** převedeno na problém samotného IPv4 a blokovaných zařízení, který je již vyřešen<br />
** aktuálně tedy nemáme plnou podporu IPv6 only zařízení, ale jen v případě ojedinělých případů blokace<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-eduroam</span> (2001:718:2:xx<span style="color: DarkGreen">06</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální rozsah (ručně přidělované/rezervované adresy), žádné restrikce<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy, minimální restrikce<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-wififjfi===<br />
<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* konfigurace by měla fungovat tak, aby klient mohl nakonec využívat nativní IPv6 konektivitu bez dalšího (linuxového) routeru (NAT) na cestě<br />
* zbývá dořešit technické detaily autentizace na captive portálu a také blokovaná (neregistrovaná a smazaná) zařízení<br />
** neautentizovaná zařízení dostanou pouze IPv4 adresu a budou tak mít přístup ke captive portálu<br />
** DHCPv6 bude defaultně zkonfigurováno, aby zařízením neposkytlo IPv6 adresu do té doby než je uživatel uspěšně ověřen<br />
** po autentizaci přes captive portál na IPv4 modifikovat dynamicky konfiguraci DHCPv6 a povolit přidělení adresy s lease time ~ 1hodina<br />
*** asi to je možné řešit přes DHCPv6 classes, ale ty nejsou podporovány v ISC DHCP 4.2.5, který je součástí CentOS7<br />
*** nebude fungovat pro IPv6 only zařízení (to tu aktuálně vůbec neřešíme a v budoucnu se uvidí co bude možné např. s 6to4 překlady adres)<br />
<br />
=Firewall=<br />
[[Blokované porty]]<br />
<br />
=Provozní poznámky=<br />
<br />
* SMC8626<br />
** nejnovější firmware v1.4.0.8 je nestabilní (pro multicast a mam pocit že docházelo i k odpadnutí managementu)<br />
** aktualni firmware v1.1.0.2 nelze managovat přes VLANu (jinou než 1), kdy je na daném portu zároveň zapnutý <tt>spanning-tree edge-port</tt>, jelikož po restartu se nelze k managementu připojit dokud se nevytáhne a vrátí zpět ethernetový kabel => uplink nesmí mít tuhle volbu zapnutou</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Network&diff=3798Network2017-04-20T11:22:40Z<p>Keroupav: /* Veřejné adresy */</p>
<hr />
<div>Dokumemtace a pravidla k organizaci sítě na FJFI. Jakékoliv změny v tomto dokumentu musí být oznámeny v mailing listu správců IT na FJFI (comp@lists.fjfi.cvut.cz), aby bylo možné sladit konfigurace lokálních systémů (např. firewallu) v závislosti na úpravách konfigurace sítě.<br />
<br />
=Páteřní rozvody a zapojení=<br />
<br />
==Břehová==<br />
<br />
Plány rozmístění rozvaděčů a barevně obarvené místnosti podle připojení síťových (ethernetových) zásuvek do rozvaděčů:<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1pp.png s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1_2np.png 1/2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1np.png 0.patro] (přízemí)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-2np.png 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-3np.png 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-4np.png 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-5np_krov.png 4.patro] (půdní vestavba)<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Brehova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* telefonní ústředna<br />
** foto z místnosti 008 [https://nms.fjfi.cvut.cz/user/images/ustredna-br-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-3.jpg 3], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-4.jpg 4]<br />
<br />
==Trojanova==<br />
<br />
Dokumentace z FJFI archivu k překladu optických tras realizovaných v roce 2009 (nascanováno, obrovské ~ 10MB JPG soubory):<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1pp.jpg s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1np.jpg 0.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/2np.jpg 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/3np.jpg 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/4np.jpg 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_blokove.jpg blokové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_prehledove.jpg přehledové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technická zpráva]<br />
* [[Topologie|nákres rozmístění rozvaděčů]]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Trojanova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/Kabel_Trojanka_HK.pdf připojení HK]<br />
** přívod chráničky do budovy je v místnosti s117 (hlavní uzávěr vody)<br />
** SM kabel - PIRELLI Deskwave 053/2001 LOOSE UNITUBE 12 9/125 T/VM<br />
** MM kabel - 12vl.<br />
** MM kabel je v místnosti s117 naspojkován (dříve vedl do 112 ale nyní přeložen do 302)<br />
** SM kabel nebyl nikdy ze 112 přeložen (po rekonstrukcích 112 v létě 2015 by měl být stažen do s117)<br />
* připojení do ČVUT<br />
** přívod chráničky do budovy je v místnosti s128<br />
** FRNC Belden optical Fibre 2x50/125 + 14x9/125<br />
** tento kabel nevede až na karlák, je naspojkován a dál vedou jen 2vl. SM optiky<br />
** cestou do místnosti 302 je nastaven (+/- někde u výtahu)<br />
* hlavní rozvaděč optiky v 302<br />
** foto optického patch panelu [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-3.jpg 3]<br />
** [https://nms.fjfi.cvut.cz/data/tr-optika/protokol-optika-302-srv1.pdf měřící protokol pro MM spojení 302 se SRV1]<br />
* propojeni serveroven ve sklepě<br />
** zadavatel měl dost nešťastný nápad rozvést pouze 2 páry optiky<br />
** navíc byla použita aktuálně asi nehorší dostupná vlákna MM OM1<br />
*** SFP-10G-SR (33m) nefungují spolehlivě ani mezi SRV1 &lt;-&gt; SRV2<br />
*** pro spojení bude asi nutné pořizovat 2x dražší SFP-10G-LRM (220m)<br />
*** při přímém propatchování SRV302 &lt;-&gt; SRV2 nefungovali spolehlivě ani tyto lepší moduly<br />
** spojení serveroven je seriové SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3 &lt;-&gt; SRV4<br />
** jedno vlákno (nejvíce vpravo) mezi SRV1 &lt;-&gt; SRV2 je mrtvé<br />
** PLÁN rekonstrukce<br />
*** předelat udělat všechno do SM optiky<br />
*** rozmyslet se ve které místnosti bude centralní rozvod optiky<br />
*** z centrálního rozvodu mít vlakna do všech serveroven<br />
*** hodně vláken s minimálně 6ti páry připravenými v patch panelu na každé SRVx<br />
*** natáhnout opravdu hodně SM vláken do SRV302(?!)<br />
<br />
==Trója==<br />
<br />
Připojení bylo až do 201606 realizováno routováním přes PASNET a připojením do jejich routeru v Tróji. Od 1.7.2016 je Trója připojena lambdou přímo do Dejvic (CWDM 1470nm) a to trasou přes UTIA. V Tróji je na serverovně (PASNETu) optika "z Dejvic" propatchovana do rozvaděče na chodbě L119 (optika je v patch panelu zakončena LC/PC konektory), kde je aktuálně 1Gb zapojena do [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=63755 MikroTik CCR1016-12S-1S+] (detaily viz. [https://lists.fjfi.cvut.cz/mailman/private/comp/2016/001510.html Zmena pripojeni lokality Troja (IPv6)]).<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Troja.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.pp.png těžké lab. 0.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.np.png těžké lab. 1.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-2.np.png těžké lab. 2.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-3.np.png těžké lab. 3.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-7.np.png KJCH 6. patro]<br />
<br />
==Děčín==<br />
<br />
Tato lokalita není připojená přímo do sítě ČVUT, ale [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=2665 routerem] CESNETu.<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Decin.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.pp.png 0. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.np.png 1. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-2.np.png 2. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-3.np.png 3. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-4.np.png 4. patro]<br />
<br />
=VLAN=<br />
<br />
ČVUT VIC prostupně přechází na globalní očíslování VLAN takovým způsobem, aby v se různých částech sítě nepoužívala stejná čísla VLAN (některým management nástrojům se takové konfigurace nezamlouvají). Z toho důvodu byl pro vnitřní potřeby FJFI přidělen rozsah VLAN 2400-2499. Některá starší (pochybnější) zařízení mohou mít problém s využítím takto vysokých čísel, v takovém případě bude nejlepší na nich žádné VLANy nekonfigurovat a budou se používat pouze pro netagovaný provoz.<br />
<br />
V následujících tabulkách je plán resp. dokumentace k využítí přidělených VLAN. První polovina přiděleného rozsahu je využita pro "standardní" VLANy (jejich jméno musí začínat prefixem <tt>fjfi-</tt>), které je vhodné mít vytvořené v každé budově FJFI a zbytek lze využít pro libovolné individuální VLANy (každé nově využité číslo VLAN z uvedeného rozsahu je zde nutné zdokumentovat). Pro Děčín je nutné tento plán brát dost s rezervou, jelikož tato lokalita není připojena přímo do ČVUT, ale je routována přímo CESNETem a lokální VLANy se nakonec mohou lišit.<br />
<br />
==Standardní VLANy==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2400-2439)<br/>(standardní VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<sup>*</sup><br />
!Břehová<br />
!Trojanova<br />
!Trója<br />
!Děčín<br />
!Status<br />
!Comment<br />
|-<br />
!fjfi-*-srv<br />
|2400<br />
|2410<br />
|2420<br />
|2430<br />
|active<br />
|Subnet pro servery<br />
|-<br />
!fjfi-*-def<br />
|2401<br />
|2411<br />
|2421<br />
|2431<br />
|active<br />
|Veřejná síť ("default VLAN" pro běžné počítače)<br />
|-<br />
!fjfi-*-mgmt-net<br />
|2402<br />
|2412<br />
|2422<br />
|2432<br />
|active<br />
|Management rozhraní síťových prvků (switch, router, ap, ...)<br />
|-<br />
!fjfi-*-mgmt-srv<br />
|2403<br />
|2413<br />
|2423<br />
|2433<br />
|active<br />
|Subnet pro management serverů (např. IPMI)<br />
|-<br />
!fjfi-*-sec<br />
|2404<br />
|2414<br />
|2424<br />
|2434<br />
|planed<br />
|Subnet pro zabezpečovací zařízeni (např. kamery, K4, ...)<br />
|-<br />
!fjfi-*-wifi<br />
|2405<br />
|2415<br />
|2425<br />
|2435<br />
|active<br />
|Wireless síť pro speciální příležitosti (např. samostatná konfigurace pro konference)<br />
|-<br />
!fjfi-*-eduroam<br />
|2406<br />
|2416<br />
|2426<br />
|2436<br />
|active<br />
|Wireless síť Eduroam<br />
|-<br />
!fjfi-*-wififjfi<br />
|2407<br />
|2417<br />
|2427<br />
|2437<br />
|active<br />
|Wireless síť s captive portálem<br />
|-<br />
!fjfi-*-voip<br />
|2408<br />
|2418<br />
|2428<br />
|2438<br />
|planed<br />
|Segment pro VoIP telefony<br />
|-<br />
!fjfi-*-fragile<br />
|2409<br />
|2419<br />
|2429<br />
|2439<br />
|active<br />
|Segment pro "nepočítačová" síťová zařízení (nepravidelné/neexistující updaty)<br />
|-<br />
!colspan="7"|U jmen VLAN je potřeba nahradit znak "*" zkratkou příslušné lokality (br/tr/vh/dp)<br />
|}<br />
<br />
==Standardní VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Detaily k rozdělení FJFI VLAN (2400-2439)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-eduroam<br />
|2416<br />
|active<br />
|tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Jeden subnet s veřejnými adresami <tt>147.32.11.0/24</tt> pro Eduroam síť v Trojance<br />
|}<br />
<br />
==Speciální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2440-2449)<br/>(speciální VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-brtr-srv-clu<br />
|2448<br />
|active<br />
|br+tr<br />
|12.1.2015 FJFI<br />
|vokacpet<br />
|Public segment pro clusterování strojů mezi Trojankou a Břehovkou s dvěmi HSRP active/standby gateway<br />
|-<br />
!fjfi-brtr-srv-priv<br />
|2449<br />
|active<br />
|br+tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery v clusteru (DFS replikace)<br />
|}<br />
<br />
==Individuální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2450-2499)<br/>(individuální VLANy, pro uživatelské potřeby)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>(owner)<br />
!Admin<br />
!Comment<br />
|-<br />
!test_max_20_znaku<br />
|2450<br />
|test<br />
| --<br />
|2.6.2014 (KM)<br />
|vokacpet<br />
|Testovací záznam - tato VLAN není reálně nikde zkonfigurována, jméno VLAN musí být do 20 znaků (CISCO limit, stará SMC podporují max 12 znaků)!<br />
|-<br />
!fjfi-tr-km<br />
|2451<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kf<br />
|2452<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kj<br />
|2453<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kipl<br />
|2454<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kfe<br />
|2455<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kmat<br />
|2456<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kjch<br />
|2457<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kdaiz<br />
|2458<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-vh-kjr<br />
|2459<br />
|test<br />
|vh<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-ksi<br />
|2460<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-dekanat<br />
|2461<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-??-??<br />
|2462<br/>-<br/>2469<br />
|rezervace<br />
| --<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|}<br />
<br />
==K promyšlení==<br />
<br />
* VLANy pro subnety kateder, rozdělení +/- dle čísel kateder<br />
* VLANy pro privátní subnety kateder (nebo mít jen jeden "veřejný" privátní subnet?)<br />
* VLAN pro přístupové systémy pro karty (je možné provozovat na privátní síťi?)<br />
* VLAN pro přístup k datům zabezpečení (kamery)<br />
* VLAN pro serverovou DMZ<br />
* Prohodit číslování standardních VLAN pro Tróju a Děčín (stejné pořadí jako seřazené IP segmenty?)<br />
** jedinný Děčín je "externí" lokalita routovaná přímo CESNETem (nemáme plnou kontrolu nad lokálními čísly VLAN a IPv6 čísly subnetů)<br />
** pořadí lokalit tedy bude br/tr/vh/dp<br />
<br />
=IP=<br />
<br />
==Veřejné adresy==<br />
<br />
Následující tabulka obsahuje souhrné informace o veřejných IP adresách přidělených a využívaných na FJFI.<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Rozdělení veřejných IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Gateway<br />
!VLAN Name<br />
!Admin<br />
!Comment<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.4.0%2F24&location=br 147.32.4.0/24]<br />
|Břehová<br />
|147.32.4.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-1<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.5.0%2F24&location=br 147.32.5.0/24]<br />
|Břehová<br />
|147.32.5.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-2<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.6.0%2F23&location=tr 147.32.6.0/23]<br />
|Trojanova<br />
|147.32.6.1<br />
|fjfi-tr-def<br />
|sinormil<br />
|Subnet KFE + dynamicky přidělované veřejné IP<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.8.0%2F24&location=tr 147.32.8.0/24]<br />
|Trojanova<br />
|147.32.8.1<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet KM+KJ+KSI+Elsa<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.0%2F26&location=tr 147.32.9.0/26]<br />
|Trojanova<br />
|147.32.9.1<br />
|fjfi-tr-srv<br />
|vokacpet<br />
|Serverový subnet v tr<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.64%2F27&location=br 147.32.9.64/27]<br />
|Břehová<br />
|147.32.9.65<br />
|fjfi-br-srv<br />
|vokacpet<br />
|Serverový subnet v br<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.96%2F27&location=tr 147.32.9.96/27]<br />
|Břehová+Trojanova<br />
|147.32.9.97<br />
|fjfi-brtr-srv-clu<br />
|vokacpet<br />
|Serverový subnet pro clustery mezi br+tr (duální gateway active/standby přes HSRP)<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.192%2F26&location=tr 147.32.9.192/26]<br />
|Trojanova<br />
|147.32.9.193<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet speciální zařízení<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.0%2F25&location=tr 147.32.10.0/25]<br />
|Trojanova<br />
|147.32.10.1<br />
|fjfi-tr-def<br />
|kopripe1<br />
|Subnet KMAT<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.128%2F25&location=tr 147.32.10.128/25]<br />
|Trojanova<br />
|147.32.10.129<br />
|fjfi-tr-def<br />
|drabmart<br />
|Subnet KIPL<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.11.0%2F24&location=tr 147.32.11.0/24]<br />
|Trojanova<br />
|147.32.11.1<br />
|fjfi-tr-eduroam<br />
|vokacpet<br />
|Eduroam<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.22.0%2F24&location=dp 147.32.22.0/24]<br />
|Děčín<br />
|147.32.22.1<br />
|fjfi-dp-def<br />
|sumpepre<br />
|Veřejné adresy dp<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.25.0%2F24&location=vh 147.32.25.0/24]<br />
|Trója<br />
|147.32.25.1<br />
|fjfi-vh-def<br />
|fialaja2<br />
|Veřejné adresy vh<br />
|}<br />
<br />
===Veřejné adresy detaily===<br />
<br />
Většina veřejných adres je rezervována pro konkrétní zařízení. V každé budově FJFI existuje ale i určitý rozsah veřejných adres, které jsou přidělovány registrovaným zařízením bez rezervace konkrétní adresy (zvýrazněno modře v níže uvedené tabulce). V případě aktuálního vyčerpání těchto volně dostupných veřejných adresu budou dalším zařízením přidělovány privátní adresy z privátního rozsahu na téže VLAN <tt>fjfi-*-def</tt>. V konfiguraci registrace síťového zařízení lze specifikovat, že danému zařízení má být vždy přidělena privátní adresa a to i v případě, že pool veřejných adres ještě nebyl vyčerpán.<br />
<br />
Trvale připojená zařízení využívají veřejné adresy by měla mít zaregistrovánu rezervovanou adresu z rozsahu, který je přidělen organizační jednotce vlastnící dané zařízení (viz. tabulka). Zařízení tak bude mít garantovánu stalou veřejnou IP adresu a nebude se zbytečně zmenšovat pool s veřejnými adresami pro ostatní zařízeni, která se na FJFI síti vyskytují pouze občas. Pro běžná zařízení (počítače) je preferováno použití veřejných adres, jelikož při jejich použití není fungování síťového zařízení omezeno potencíálními problémy NATu (vyplývající z podstaty NATu, vytížení NATovacího zařízení případně jeho nedostupnosti) a lze jednodušeji řešit případné stížnosti týkající se konkrétní adresy.<br />
<br />
Existuje ale i skupina speciálních zařízení (např. tiskárny) u nichž je lepší použít privátní adresy. Provoz některých zařízení na veřených adresách totiž představuje bezpečnostní hrobu vzhledem k neexistujícím automatickým security updatům firmware a omezeným možnostem konfigurace zabezpečení. Takové zařízení by ideálně měla být na samostatné VLAN <tt>fjfi-*-fragile</tt>, ale vzhledem ke komplikovanému managementu sítě pro ně je zatím vyhrazen rozsah privátních adres z VLAN <tt>fjfi-*-def</tt> (viz. [[#Priv.C3.A1n.C3.AD_adresy_na_default_VLAN_fjfi-.2A-def|níže]]). Adresu z tohoto rozsahu lze jednoduše vybrat v rozhraní pro registrace síťových zařízení.<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení veřejných IP rozsahů (detaily)<br />
|-<br />
!IP rozsah<br />
!adresy<br />
!Comment<br />
|-<br />
!rowspan="3"|147.32.4.0/24<br />
!147.32.4.0-70<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.4.71-189</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.4.190-255<br />
|??<br />
|-<br />
!rowspan="2"|147.32.5.0/24<br />
!147.32.5.0-49<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.5.50-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="4"|147.32.6.0/24<br />
!147.32.6.2-99<br />
|vyhrazeno unixářům (Richard Liska, Milan Šiňor) <br />
|-<br />
!147.32.6.100-199<br />
|pclab, kanceláře, ... (Antonín Novotný)<br />
|-<br />
!147.32.6.200-254<br />
|InfoLab, kanceláře (Josef Blažej)<br />
|-<br />
!147.32.6.255<br />
|rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
|-<br />
!rowspan="2"|147.32.7.0/24<br />
!147.32.7.1-31<br />
|tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
|-<br />
!<span style="color: blue">147.32.7.32-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="7"|147.32.8.0/24<br />
!147.32.8.2-79<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.80-96<br />
|studovna 214<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
|-<br />
!147.32.8.97-109<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.110-149<br />
|KM učebny<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
|-<br />
!147.32.8.150-223<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.224-230<br />
|KJ zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.224/27<br />
|Tereza<br />
* 147.32.8.241 - 147.32.8.250 desktopy<br />
* 147.32.8.253 - Printer 4x4 Pro<br />
|-<br />
!rowspan="3"|147.32.9.128/25<br />
!147.32.9.128/27<br />
|KSE (Miroslav Virius ?)<br />
|-<br />
!147.32.9.160-223<br />
|Tiskárny<br />
* 147.32.9.190 rezervace<br />
* 147.32.9.191 rezervace<br />
* 147.32.9.192 rezervace<br />
* 147.32.9.212 rezervace<br />
* 147.32.9.213 rezervace<br />
* správce Míra Minárik, Pavel Kerouš<br />
|-<br />
!147.32.9.224/27<br />
|různé (zatím pro "speciální" zařízení jako např. kartové systémy, ...), není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
|-<br />
!rowspan="2"|147.32.10.0/25<br />
!147.32.10.0/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.10.128/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.11.0/24<br />
!147.32.11.0/24<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.22.0/24<br />
!<span style="color: blue">147.32.22.101-199</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.25.0/24<br />
!<span style="color: blue">147.32.25.102-219</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|}<br />
<br />
==Privátní adresy==<br />
<br />
Vzhledem k nedostatku veřejných IP adres bylo nutné začít využívat i privátní IP adresy. Ty jsou používany jak čistě interně (např. management), tak i pro běžný provoz s NATem aktuálně hlavně na WiFi sítích, kde si vzhledem k enormnímu nárůstu počtu zařízení není možné vystačit s dostupnými veřejnými adresami. Privátní IPv4 adresy jsou také používány pro neregistrovaná zařízení a automatický přístup k captive portálu na stránku s registrací.<br />
<br />
Bohužel se na "Jednání IT techniků ČVUT - 11.6.2015" dohodlo, že se privátní adresy nebudou routovat po ČVUT (resp. nedošlo ani k základní shodě na tom, jaké rozsahy by bylo možné použít s tím, že ostatní fakulty už využívají všechny dostupné privátní subnety). Tohle je podmínka (téměř - viz. RFC6598) nutná pro možnost zřízení globálního NATu, takže ani v budoucnu nelze očekávat poskytnutí této služby v rámci celého ČVUT. Další komplikací je využití privátních adres mezi různými lokalitami FJFI, kde je potřeba využít policy based routing a privátní adresy do druhé lokality dostat přes tunel resp. dedikovanou VLAN. Centrální L3 switche použité v FJFI lokalitách také mají relativně omezené možnosti konfigurace (nepodporují NAT, netflow, GRE tunely, malá TCAM pro PBR, ...).<br />
{|class="wikitable"<br />
!colspan="6"|Počet adres v podsítích dané velikosti<br />
|-<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
|-<br />
!/24<br />
|256<br />
!/21<br />
|2048<br />
!/18<br />
|16384<br />
|-<br />
!/23<br />
|512<br />
!/20<br />
|4096<br />
!/17<br />
|32768<br />
|-<br />
!/22<br />
|1024<br />
!/19<br />
|8192<br />
!/16<br />
|65536<br />
|}<br />
<br />
<br />
===Privátní adresy dle lokality===<br />
<br />
Pro centrálně spravované privátní adresy na FJFI je využíván rozsah <tt>172.16.0.0/12</tt> z nějž má každá lokalita přidělen jeden segment <tt>/16</tt> (~ 65k adres) a poslední subnet <tt>172.31.0.0/16</tt> se využívá ke speciálním účelům (např. spojovačky). Přidělený segment je dále dělen na subnety jejichž základní číslování je shodné v každé lokalitě (např. dle VLAN, využití, ...).<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení privátních IP rozsahů na FJFI po lokalitách<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Comment<br />
|-<br />
!10.0.0.0/8<br />
| --<br />
|Vyhrazeno pro potřeby ČVUT (sice to nebylo nikde oficiálně řečeno, ale je to jedinný privátní rozsah u nejž vzhledem k velikosti má smysl uvažovat o využití v rámci celého ČVUT)<br />
|-<br />
!172.16.0.0/16<br />
|Břehová<br />
|<br />
|-<br />
!172.17.0.0/16<br />
|Trojanova<br />
|<br />
|-<br />
!172.18.0.0/16<br />
|Trója<br />
|<br />
|-<br />
!172.19.0.0/16<br />
|Děčín<br />
|<br />
|-<br />
!172.31.0.0/16<br />
| --<br />
|Vyhrazeno pro speciální využití (např. spojovačky na privátní síti)<br />
|-<br />
!192.168.0.0/16<br />
| --<br />
|Adresy z tohoto rozsahu nebudou na FJFI nijak regulovány a jsou preferované pro uživatelské testovací resp. dočásné privátní sítě. Je na jejich správci, aby si vybral nepoužívaný rozsah v dané síti resp. VLAN, ale není zde zaručeno resp. monitorováno jestli jestli stejné adresy začne používat někdo další. Pro potřeby trvalého privátního adresované na FJFI síti je doporučeno dohodnout alokaci podsítě z odpovídajících 172.1x.0.0/16 rozsahů. Nědky může být vhodné použít adresování 172.1x.0.0/16 i např. pro clustery resp. sítě kompletně oddělené od zbytku infrastruktury (např. je lze pak zpřístupnit přes centrální VPN).<br />
|-<br />
!colspan="3"|Privátní rozsahy značené 172.<span style="color: blue">1x</span>.aaa.bbb budou dále znamenat adresy v libovolné lokalitě (br=<span style="color: blue">16</span>/tr=<span style="color: blue">17</span>/vh=<span style="color: blue">18</span>/dp=<span style="color: blue">19</span>)<br />
|}<br />
<br />
===Privátní adresy dle VLAN===<br />
<br />
Všechny standardní využívané VLAN budou mít přidělen určitý rozsah privátních adres. V závislosti na využití bude přizpůsobena konfigurace "Private routing" týkající se routování mezi lokalitami FJFI (žádné routování, routování přes tunel/VLAN nebo IPSec zabezpečené spojení), routování do světa skrz NAT a různé filtrování paketů "Private ACL" mezi privátními subnety. Jednotlivé subnety je dobré alokovat také s ohledem na to, jak komplikované bude případné přečíslování zařízení na daném subnetu.<br />
<br />
{|class="wikitable"<br />
!colspan="8"|Rozdělení privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!VLAN Name<br />
!NAT<br />
!Private<br/>routing<br />
!Private<br/>ACL<br />
!Komplikace<br/>přeadresování<br />
!Comment<br />
|-<br />
!colspan="8"|172.1x.0.0/17 - adresy pro globální využití ve všech lokalitách<br />
|-<br />
!172.1x.0.0/22<br />
|172.1x.0.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování serverů dostupných přímo ze všech lokálních sítí, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.4.0/22<br />
|172.1x.4.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.8.0/22<br />
|172.1x.8.1<br />
|fjfi-*-srv<br />
|yes<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN s IPSec zabezpečenou komunikací mezi FJFI lokalitami, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.12.0/22<br />
| --<br />
|fjfi-*-srv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze z lokální VLAN (žádné routování či NAT)<br />
|-<br />
!172.1x.16.0/22<br />
|172.1x.16.1<br />
|fjfi-*-mgmt-net<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu síťových prvků (switche) dostupné pouze z mgmt-net VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.16.0/23<br />
|-<br />
!172.1x.20.0/22<br />
|172.1x.20.1<br />
|fjfi-*-mgmt-srv<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu serverů (IPMI, RAID controller, UPS, ...) dostupné pouze z mgmt-srv VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.20.0/23<br />
|-<br />
!172.1x.24.0/22<br />
|172.1x.24.1<br />
|fjfi-*-fragile<br />
|yes/no<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování pro samostatný subnet "nedůvěryhodných" zařízení (např. tiskárny, specializovaná zařízení bez pravidelných security update, ...), komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.24.0/23<br />
|-<br />
!172.1x.28.0/24<br />
|172.1x.28.1<br />
|fjfi-brtr-srv-clu<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.28.0/24)<br />
|-<br />
!172.1x.29.0/24<br />
| --<br />
|fjfi-brtr-srv-clu<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.29.0/24)<br />
|-<br />
!172.1x.30.0/24<br />
|172.1x.30.1<br />
|fjfi-brtr-srv-priv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.30.0/24)<br />
|-<br />
!172.1x.31.0/24<br />
| --<br />
|fjfi-brtr-srv-priv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.31.0/24)<br />
|-<br />
!172.1x.32.0<br/>-<br/>172.1x.51.255<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
|Rezervováno pro budoucí "globální využití"<br />
|-<br />
!172.1x.52.0/24<br/>172.1x.53.0/24<br />
|172.1x.52.1(*)<br/>172.1x.53.1(*)<br />
|VPN<br/>test<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro L2TP, PPTP, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.52.0/24 - PPTP server na nms-xx.fjfi.cvut.cz<br />
* 172.1x.53.0/24 - L2TP server na nms-xx.fjfi.cvut.cz<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.54.0/24<br/>172.1x.55.0/24<br />
|172.1x.54.1(*)<br/>172.1x.55.1(*)<br />
|OpenVPN<br/>admin<br />
|yes<br />
|default<br />
| --<br />
|malé<br />
|Privátní adresování pro admin OpenVPN klienty s přímým přístupem do sítě včetně privátních, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.54.0/24 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.55.0/24 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.56.0/22<br/>172.1x.60.0/22<br />
|172.1x.56.1(*)<br/>172.1x.60.1(*)<br />
|OpenVPN<br/>user<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro OpenVPN klienty, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.56.0/22 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.60.0/22 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.64.0/20<br />
|172.1x.64.1<br />
|fjfi-*-def<br />
|yes(*)<br />
|default<br />
|permit(*)<br />
|velké(*)<br />
|Privátní adresy na default VLAN (lokální síť v budově), detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-def]]<br />
|-<br />
!172.1x.80.0/20<br />
|172.1x.80.1<br />
|fjfi-*-wifi<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní rozsah pro speciální WiFi sítě, které mohou mít speciální konfiguraci např. pro konference, ...<strike>Rezervováno pro případné budoucí speciální požadavky na fjfi-*-def VLAN nebo rozšíření adresního prostoru na této VLAN</strike><br />
|-<br />
!172.1x.96.0/20<br />
|172.1x.96.1<br />
|fjfi-*-eduroam<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť Eduroam, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-eduroam]]<br />
|-<br />
!172.1x.112.0/20<br />
|172.1x.112.1(*)<br />
|fjfi-*-wififjfi<br />
|yes(*)<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť WiFiFJFI, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-wififjfi]], tato síť používá vlastní gateway pro řízení přístupu pomocí captive portálu a zařízení na ní nejsou z vnějšku dostupná.<br />
|-<br />
!colspan="8"|172.1x.128.0/18 - adresy pro lokální využití v konkrétní lokalitě lokalitě<br />
|-<br />
!colspan="8"|172.16.128.0/18 - Břehová<br />
|-<br />
!?rezervace?<br/>172.16.128.0/22<br />
|172.16.128.1(*)<br />
|fjfi-br-kf-private<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro síť KF s NAT a gateway zajištěnou [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=38061 vlastním zařízením]<br />
|-<br />
!colspan="8"|172.17.128.0/18 - Trojanova<br />
|-<br />
!?rezervace?<br/>172.17.128.0/22<br />
|172.17.128.1(*)<br />
|fjfi-tr-hyperion<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro KM+KIPL hyperion cluster s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=24149 NAT a gateway]<br />
|-<br />
!?rezervace?<br/>172.17.132.0/22<br />
|172.17.132.1<br />
|"xen-vdi"<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování pro Xen virtualizované desktopy, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!colspan="8"|172.18.128.0/18 - Trója<br />
|-<br />
!colspan="8"|172.19.128.0/18 - Děčín<br />
|-<br />
!colspan="8"|172.1x.192.0/18 - rezervováno<br />
|-<br />
|colspan="8"|Adresy pro lokální využití v konkrétní lokalitě rezervované pro případ, že dojde k L2 segmentaci sítě podle příslušnosti k různým součástem FJFI<br />
|}<br />
<br />
<br />
====Privátní adresy na default VLAN <tt>fjfi-*-def</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.64.0/20 na default VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.64.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
* 172.18.71.0/24 je v Tróji využíváno pro privátní adresování (měřících) zařízení KJR (humlond)<br />
|-<br />
!172.1x.72.0/22<br />
| --<br />
| --<br />
|vokacpet<br />
|unused<br />
|-<br />
!172.1x.76.0/23<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro "nepočítačová" zařízení (např. tiskárny)<br />
|-<br />
!172.1x.78.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro servery (např. printserver pro komunikaci na tomto subnetu)<br />
|-<br />
!172.1x.79.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným, smazaným a neregistrovaným zařízením<br />
|}<br />
<br />
====Privátní adresy na eduroam VLAN <tt>fjfi-*-eduroam</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.96.0/20 na eduroam VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.96.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.110.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.111.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným (smazaným) zařízením<br />
|}<br />
<br />
====Privátní adresy na wififjfi VLAN <tt>fjfi-*-wififjfi</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.112.0/20 na wififjfi VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.112.0/21<br />
|dynamic+reserved<br />
|auth<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.126.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.127.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným zařízením<br />
|}<br />
<br />
===Individuální rozsahy privátních adres===<br />
<br />
Využití těchto adres není nijak regulováno, takže zde neexistují žádné překážky k jejich použití ale na druhou stranu se také nelze spolehnout na to, že stejné adresy nezačne používat někdo další. V níže uvedené tabulce je (nekompletní) seznam aktuálně používaných adres z 192.168.0.0/16 rozsahu. Bylo by vhodné zvážit jestli do budoucna nezačít využívat rezervované subnety z 172.1x.0.0/16 rozsahů.<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení individuálních privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!Public<br />
!VLAN Name<br />
!OU<br />
!Admin<br />
!Comment<br />
|-<br />
!192.168.x.0/24<br />
|192.168.x.1<br />
|147.32.x.y<br />
|None<br />
|KIPL<br />
|drabmart<br />
|Privátní adresy pro KM+KIPL cluster<br />
|-<br />
!192.168.3.0/24<br />
|192.168.3.1<br />
|147.32.4.13<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF - kanceláře<br />
|-<br />
!192.168.11.0/24<br />
|192.168.11.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|-<br />
!192.168.20.0/24<br />
|192.168.20.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|}<br />
<br />
=IPv6=<br />
<br />
ČVUT přiděluje standardně <tt>/56</tt> rozsahy (lze použít pro vytvoření 256 podsítí) pro lokality připojené přes Dejvice ze přiděleného IPv6 rozsahu <tt>2001:718:2::/48</tt>. Bohužel vzhledem ke způsobu routování IPv6 není možné používat adresy z "dejvického" rozsahu v ostatních lokalitách (CESNET to ve své síti nepodporuje, tj. např. v Tóji a Děčíně), tam bude využit jiný rozsah přidělený ČVUT a routovaný Pasnetem resp. CESNETem.<br />
<br />
==IPv6 adresy dle lokality==<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI po lokalitách<br/>(FJFI IPv6 rozsahy 2001:718:2:1800::/54)<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Admin<br />
!Comment<br />
|-<br />
!2001:718:2:<span style="color: blue">17</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený na FJFI (včetně DNS reverzů, bude vrácen VICu po alokaci "1b")<br />
|-<br />
!2001:718:2:<span style="color: blue">18</span>00::/56<br />
|Břehová<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">19</span>00::/56<br />
|Trojanova<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">1a</span>00::/56<br />
|Trója<br />
|vokacpet<br />
|Veřejné adresy (aktuálně nevyužitý rozsah nazvaný FJFI test, čeká na novou serverovnu PASNETu v Tróji)<br />
|-<br />
!2001:718:2:<span style="color: blue">1b</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený FJFI ČVUT (pro "hezčí" FJFI IPv6 netmask)<br />
|-<br />
!??<br />
|Děčín<br />
|vokacpet<br />
|Veřejné adresy (další ČVUT adresy přidělené z routovatelného rozsahu CESNET)<br />
|}<br />
<br />
==IPv6 adresy dle VLAN==<br />
<br />
Každá VLAN přidělená FJFI má standardně přiřazen jeden IPv6 subnet <tt>/64</tt> z přiděleného rozsahu <tt>/56</tt> (256 možných <tt>/64</tt> subnetů). Příslušné číslo FJFI VLAN-2400 (tj. hodnoty v intervalu 0-99) budou přímo součástí IPv6 adresy na pozici 56-63. Vyjímkou je prvních 40 rezervovaných VLAN u nichž se používá pouze poslední číslice.<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI podle VLAN<br />
|-<br />
!IP rozsah<br />
!VLAN ID<br />
!VLAN Name<br />
!Comment<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">0</span>::/64<br />
|24?<span style="color: blue">0</span><br />
|fjfi-*-srv<br />
|Subnet pro servery<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">1</span>::/64<br />
|24?<span style="color: blue">1</span><br />
|fjfi-*-def<br />
|Veřejná síť ("default VLAN" pro běžné počítače) <br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">9</span>::/64<br />
|24?<span style="color: blue">9</span><br />
|fjfi-*-fragile<br />
|Segment pro "nepočítačová" síťová zařízení<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">48</span>::/64<br />
|24<span style="color: blue">48</span><br />
|fjfi-brtr-srv-clu<br />
|Public segment mezi Trojankou a Břehovkou s duální gateway přes HSRP<br />
|-<br />
!2001:718:2:xx<span style="color: blue">49</span>::/64<br />
|24<span style="color: blue">49</span><br />
|fjfi-brtr-srv-priv<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a0</span>::/64<br/> -- <br/>2001:718:2:xx<span style="color: blue">ff</span>::/64<br />
| --<br />
| --<br />
|Rezervováno pro budoucí/speciální využití<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a?</span>::/60<br />
|colspan="2"|Static route to OpenVPN server<br />
|OpenVPN IPv6 network<ul><br />
<li>...<span style="color: blue">a0</span>::/64 - openvpn.fjfi.cvut.cz:1194/udp</li><br />
<li>...<span style="color: blue">a1</span>::/64 - openvpn.fjfi.cvut.cz:1194/tcp</li><br />
<li>...<span style="color: blue">a2</span>::/64 - openvpn.fjfi.cvut.cz:443/udp</li><br />
<li>...<span style="color: blue">a3</span>::/64 - openvpn.fjfi.cvut.cz:443/tcp</li><br />
<li>...<span style="color: blue">a4</span>::/64 - openvpn.fjfi.cvut.cz:53/udp</li><br />
<li>...<span style="color: blue">a5</span>::/64 - openvpn.fjfi.cvut.cz:53/tcp</li><br />
<li>...<span style="color: blue">a6-af</span>::/64 - reserved</li><br />
</ul><br />
|}<br />
<br />
==Využití IPv6 adres v rámci <tt>/64</tt> subnetů==<br />
<br />
Každý subnet na IPv6 má prakticky vzato "neomezené" množství IPv6 adres. Lze tedy zavést další jemnější dělení těchto subnetů, aby bylo možné pro určité skupiny počítačů specifikovat například různá firewall pravidla (např. omezení přístupu na tiskárny pouze z IPv6 adres ČVUT). Nevyužité (zde nedefinované) části <tt>/64</tt> subnetů budou mít standardně zakázanou jakoukoliv komunikaci přímo na fakultním routeru.<br />
<br />
Navíc pro IPv6 nebudou v principu existovat dynamicky přidělované adresy jako je tomu na IPv4, kde je nutné recyklovat omezený adresní prostor. Všechna registrovaná zařízení (síťová rozhraní) budou mít statickou rezervaci konkrétní IPv6 adresy resp. jeji <tt>/64</tt> suffix, který tak bude stejný při připojení zařízení ve všech lokalitách (pro běžné uživatelské subnety jako např. <tt>def</tt>, <tt>eduroam</tt> a <tt>wififjfi</tt> VLAN). Takto přidělená adresa navíc nebude v budoucnu recyklována pro jiné uživatelské zařízení (existují vyjímky, jako např. servery u nichž je změna adresy občas nežádoucí). V případě potřeby je možné u existujícího zařízení smazat aktuální IPv6 adresu a nechat vygenerovat novou.<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-srv===<br />
<br />
* změny ve využití adres jsou u serverů velice komplikované<br />
** konfigurace sítě je na serverech statická (nepoužívají DHCP)<br />
** pro použité adresy může mít řada zařízení (nejen na tomto segmentu) zkonfigurována různá pravidla (např. firewall)<br />
** pokud se neobjeví ''závažné nedostatky'' aktuálního plánu (např. nové standardy) tak jsou adresy přiděleny navždy<br />
* aktuálně budou využívány pouze adresy z rozsahu 2001:718:2:1x00::/96<br />
* doporučený formát IPv6 addres<br />
*# IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x00::147.32.9.17) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x00::17)<br />
*# adresy z rosahu 2001:718:2:1x00::0001:0000-2001:718:2:1x00::00ff:ffff (~ 2^24 adres)<br />
*# registrační GUI bude automaticky generovat neobsazené IPv6 adresy ze správných rozsahů<br />
*# libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)<br />
* jeden server může mít zároveň přiděleno více aktivních IPv6 adres<br />
* je možné alokovat samostatný rozsah IPv6 adres pro skupinu počítačů<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru<br />
** aktuálně neexistují žádné předdefinované skupiny<br />
*** lze si představit např. skupiny dle OS (pro jednodušší psaní filtrů na aktuálně zneužívané chyby)<br />
*** také skupiny dle orgaizačních jednotek pro omezení komunikace na vlastní servery<br />
*** teprve praktické používání IPv6 ukáže reálné potřeby<br />
** využití skupin zde musí být zdokumentováno<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-srv</span> (2001:718:2:xx<span style="color: DarkGreen">00</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">00</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Standardní IPv6 rozsah serverů<br />
|}<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-def===<br />
<br />
* změny ve využití adres mohou být relativně jednoduché při dodržování následujících zásad<br />
** zařízení budou pro IPv6 konfigurace využívat výhradně router advertisementy + stavové DHCPv6<br />
*** vzhledem k nerecyklování IPv6 adres je možné nastavit velice dlouhý lease time<br />
*** nelze použít "nekonečno" jinak bychom přidělenou adresou v budoucnu nebyly schopni změnit<br />
*** maximální lease time tedy bude jeden měsíc<br />
** manuální konfigurace je silně nedoporučena<br />
*** pokud se rozhodneme změnit IPv6 adresování tak může dojít k problémům<br />
*** z hlediska správce IPv6 rozsahu je to problém čistě uživatele, který nedbal doporučení a nebude na něj brán ohled<br />
* podobně jako u serverové VLAN <tt>fjfi-*-srv</tt> bude možné zařízení zařazovat do skupin<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru (např. omezení komunikace po ČVUT pro tiskárny)<br />
** využití skupin zde musí být zdokumentováno<br />
* jedno zařízení může mít zároveň přiděleno více aktivních IPv6 adres<br />
* doporučený formát IPv6 addres (pouze správce sítě může s rozumným důvodem využít jinou než první možnost)<br />
*# registrační GUI bude [[Registrace_MAC#Pravidla pro automatické vytváření rezervovaných adres|automaticky generovat neobsazené IPv6 adresy ze správných rozsahů]]<br />
*# <strike>IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x01::147.32.8.52) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x01::852)</strike><br />
*# <strike>adresy z rosahu 2001:718:2:1x01::0001:0000-2001:718:2:1x01::00ff:ffff (~ 2^24 adres)</strike><br />
*# <strike>libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)</strike><br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-def</span> (2001:718:2:xx<span style="color: DarkGreen">01</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!colspan="4"|Adresy pro standardní a speciální rozsahy 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/88<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální IPv6 rozsah pro běžná zařízení (ručně přidělované adresy, např. 2001:718:2:1901::852), preferované jsou ale níže uvedené rozsahy s konkrétním účelem (dle typu zařízení, organizační jednotky, ...)<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy (nutné pro zařízení, které byli primárně registovany pro jinou lokaci)<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">2</span>::/96<br/>-<br/>2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">f</span>::/96<br />
|vokacpet<br />
|Rezervovaný rozsah pro budoucí využití<br />
|-<br />
!fragile<br/>printer<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro tiskárny s omezením komunikace po ČVUT<br />
|-<br />
!restricted<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací pouze přes http/https (+ lokální DNS)<br />
|-<br />
!restricted<sup>2</sup><br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací jen na vyhrazené lokální servery (adresy pro blokované, neregistrované, zlobivé, ... zařízení). Zatím by taková zařízení nemusela dostávat žádnou IPv6 adresu a do příslušná omezení a informační stranky by se zobrazili na základě přidělené IPv4 adresy.<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">??</span>::/96<br />
| --<br />
|Skupina zařízení s omezeními dle uživatelských požadavků - návrhy?<br />
|-<br />
!colspan="4"|Adresy vyhrazené pro zařízení kateder 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/88<br />
|-<br />
!ČVUT<br/>FJFI<br/>Other<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení ČVUT, FJFI a Ostatní<br />
|-<br />
!KM<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">101</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KM<br />
|-<br />
!KF<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">102</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KF<br />
|-<br />
!KJ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">103</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJ<br />
|-<br />
!KIPL<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">104</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KIPL<br />
|-<br />
!KFE<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">105</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KFE<br />
|-<br />
!KMAT<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">106</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KMAT<br />
|-<br />
!KJCH<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">107</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJCH<br />
|-<br />
!KDAIZ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">108</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KDAIZ<br />
|-<br />
!KJR<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">109</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJR<br />
|-<br />
!KSI<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10a</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KSI<br />
|-<br />
!CRRC<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10b</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení CRRC<br />
|-<br />
!Elsa<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10c</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Elsa<br />
|-<br />
!Děkanát<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10d</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Děkanátu<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-eduroam===<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* blokovaná zařízení nedostanou od DHCPv6 přidělenou IPv6 adresu<br />
** převedeno na problém samotného IPv4 a blokovaných zařízení, který je již vyřešen<br />
** aktuálně tedy nemáme plnou podporu IPv6 only zařízení, ale jen v případě ojedinělých případů blokace<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-eduroam</span> (2001:718:2:xx<span style="color: DarkGreen">06</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální rozsah (ručně přidělované/rezervované adresy), žádné restrikce<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy, minimální restrikce<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-wififjfi===<br />
<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* konfigurace by měla fungovat tak, aby klient mohl nakonec využívat nativní IPv6 konektivitu bez dalšího (linuxového) routeru (NAT) na cestě<br />
* zbývá dořešit technické detaily autentizace na captive portálu a také blokovaná (neregistrovaná a smazaná) zařízení<br />
** neautentizovaná zařízení dostanou pouze IPv4 adresu a budou tak mít přístup ke captive portálu<br />
** DHCPv6 bude defaultně zkonfigurováno, aby zařízením neposkytlo IPv6 adresu do té doby než je uživatel uspěšně ověřen<br />
** po autentizaci přes captive portál na IPv4 modifikovat dynamicky konfiguraci DHCPv6 a povolit přidělení adresy s lease time ~ 1hodina<br />
*** asi to je možné řešit přes DHCPv6 classes, ale ty nejsou podporovány v ISC DHCP 4.2.5, který je součástí CentOS7<br />
*** nebude fungovat pro IPv6 only zařízení (to tu aktuálně vůbec neřešíme a v budoucnu se uvidí co bude možné např. s 6to4 překlady adres)<br />
<br />
=Firewall=<br />
[[Blokované porty]]<br />
<br />
=Provozní poznámky=<br />
<br />
* SMC8626<br />
** nejnovější firmware v1.4.0.8 je nestabilní (pro multicast a mam pocit že docházelo i k odpadnutí managementu)<br />
** aktualni firmware v1.1.0.2 nelze managovat přes VLANu (jinou než 1), kdy je na daném portu zároveň zapnutý <tt>spanning-tree edge-port</tt>, jelikož po restartu se nelze k managementu připojit dokud se nevytáhne a vrátí zpět ethernetový kabel => uplink nesmí mít tuhle volbu zapnutou</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Network&diff=3797Network2017-04-20T11:22:09Z<p>Keroupav: /* Veřejné adresy */</p>
<hr />
<div>Dokumemtace a pravidla k organizaci sítě na FJFI. Jakékoliv změny v tomto dokumentu musí být oznámeny v mailing listu správců IT na FJFI (comp@lists.fjfi.cvut.cz), aby bylo možné sladit konfigurace lokálních systémů (např. firewallu) v závislosti na úpravách konfigurace sítě.<br />
<br />
=Páteřní rozvody a zapojení=<br />
<br />
==Břehová==<br />
<br />
Plány rozmístění rozvaděčů a barevně obarvené místnosti podle připojení síťových (ethernetových) zásuvek do rozvaděčů:<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1pp.png s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1_2np.png 1/2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1np.png 0.patro] (přízemí)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-2np.png 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-3np.png 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-4np.png 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-5np_krov.png 4.patro] (půdní vestavba)<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Brehova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* telefonní ústředna<br />
** foto z místnosti 008 [https://nms.fjfi.cvut.cz/user/images/ustredna-br-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-3.jpg 3], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-4.jpg 4]<br />
<br />
==Trojanova==<br />
<br />
Dokumentace z FJFI archivu k překladu optických tras realizovaných v roce 2009 (nascanováno, obrovské ~ 10MB JPG soubory):<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1pp.jpg s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1np.jpg 0.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/2np.jpg 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/3np.jpg 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/4np.jpg 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_blokove.jpg blokové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_prehledove.jpg přehledové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technická zpráva]<br />
* [[Topologie|nákres rozmístění rozvaděčů]]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Trojanova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/Kabel_Trojanka_HK.pdf připojení HK]<br />
** přívod chráničky do budovy je v místnosti s117 (hlavní uzávěr vody)<br />
** SM kabel - PIRELLI Deskwave 053/2001 LOOSE UNITUBE 12 9/125 T/VM<br />
** MM kabel - 12vl.<br />
** MM kabel je v místnosti s117 naspojkován (dříve vedl do 112 ale nyní přeložen do 302)<br />
** SM kabel nebyl nikdy ze 112 přeložen (po rekonstrukcích 112 v létě 2015 by měl být stažen do s117)<br />
* připojení do ČVUT<br />
** přívod chráničky do budovy je v místnosti s128<br />
** FRNC Belden optical Fibre 2x50/125 + 14x9/125<br />
** tento kabel nevede až na karlák, je naspojkován a dál vedou jen 2vl. SM optiky<br />
** cestou do místnosti 302 je nastaven (+/- někde u výtahu)<br />
* hlavní rozvaděč optiky v 302<br />
** foto optického patch panelu [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-3.jpg 3]<br />
** [https://nms.fjfi.cvut.cz/data/tr-optika/protokol-optika-302-srv1.pdf měřící protokol pro MM spojení 302 se SRV1]<br />
* propojeni serveroven ve sklepě<br />
** zadavatel měl dost nešťastný nápad rozvést pouze 2 páry optiky<br />
** navíc byla použita aktuálně asi nehorší dostupná vlákna MM OM1<br />
*** SFP-10G-SR (33m) nefungují spolehlivě ani mezi SRV1 &lt;-&gt; SRV2<br />
*** pro spojení bude asi nutné pořizovat 2x dražší SFP-10G-LRM (220m)<br />
*** při přímém propatchování SRV302 &lt;-&gt; SRV2 nefungovali spolehlivě ani tyto lepší moduly<br />
** spojení serveroven je seriové SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3 &lt;-&gt; SRV4<br />
** jedno vlákno (nejvíce vpravo) mezi SRV1 &lt;-&gt; SRV2 je mrtvé<br />
** PLÁN rekonstrukce<br />
*** předelat udělat všechno do SM optiky<br />
*** rozmyslet se ve které místnosti bude centralní rozvod optiky<br />
*** z centrálního rozvodu mít vlakna do všech serveroven<br />
*** hodně vláken s minimálně 6ti páry připravenými v patch panelu na každé SRVx<br />
*** natáhnout opravdu hodně SM vláken do SRV302(?!)<br />
<br />
==Trója==<br />
<br />
Připojení bylo až do 201606 realizováno routováním přes PASNET a připojením do jejich routeru v Tróji. Od 1.7.2016 je Trója připojena lambdou přímo do Dejvic (CWDM 1470nm) a to trasou přes UTIA. V Tróji je na serverovně (PASNETu) optika "z Dejvic" propatchovana do rozvaděče na chodbě L119 (optika je v patch panelu zakončena LC/PC konektory), kde je aktuálně 1Gb zapojena do [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=63755 MikroTik CCR1016-12S-1S+] (detaily viz. [https://lists.fjfi.cvut.cz/mailman/private/comp/2016/001510.html Zmena pripojeni lokality Troja (IPv6)]).<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Troja.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.pp.png těžké lab. 0.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.np.png těžké lab. 1.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-2.np.png těžké lab. 2.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-3.np.png těžké lab. 3.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-7.np.png KJCH 6. patro]<br />
<br />
==Děčín==<br />
<br />
Tato lokalita není připojená přímo do sítě ČVUT, ale [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=2665 routerem] CESNETu.<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Decin.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.pp.png 0. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.np.png 1. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-2.np.png 2. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-3.np.png 3. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-4.np.png 4. patro]<br />
<br />
=VLAN=<br />
<br />
ČVUT VIC prostupně přechází na globalní očíslování VLAN takovým způsobem, aby v se různých částech sítě nepoužívala stejná čísla VLAN (některým management nástrojům se takové konfigurace nezamlouvají). Z toho důvodu byl pro vnitřní potřeby FJFI přidělen rozsah VLAN 2400-2499. Některá starší (pochybnější) zařízení mohou mít problém s využítím takto vysokých čísel, v takovém případě bude nejlepší na nich žádné VLANy nekonfigurovat a budou se používat pouze pro netagovaný provoz.<br />
<br />
V následujících tabulkách je plán resp. dokumentace k využítí přidělených VLAN. První polovina přiděleného rozsahu je využita pro "standardní" VLANy (jejich jméno musí začínat prefixem <tt>fjfi-</tt>), které je vhodné mít vytvořené v každé budově FJFI a zbytek lze využít pro libovolné individuální VLANy (každé nově využité číslo VLAN z uvedeného rozsahu je zde nutné zdokumentovat). Pro Děčín je nutné tento plán brát dost s rezervou, jelikož tato lokalita není připojena přímo do ČVUT, ale je routována přímo CESNETem a lokální VLANy se nakonec mohou lišit.<br />
<br />
==Standardní VLANy==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2400-2439)<br/>(standardní VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<sup>*</sup><br />
!Břehová<br />
!Trojanova<br />
!Trója<br />
!Děčín<br />
!Status<br />
!Comment<br />
|-<br />
!fjfi-*-srv<br />
|2400<br />
|2410<br />
|2420<br />
|2430<br />
|active<br />
|Subnet pro servery<br />
|-<br />
!fjfi-*-def<br />
|2401<br />
|2411<br />
|2421<br />
|2431<br />
|active<br />
|Veřejná síť ("default VLAN" pro běžné počítače)<br />
|-<br />
!fjfi-*-mgmt-net<br />
|2402<br />
|2412<br />
|2422<br />
|2432<br />
|active<br />
|Management rozhraní síťových prvků (switch, router, ap, ...)<br />
|-<br />
!fjfi-*-mgmt-srv<br />
|2403<br />
|2413<br />
|2423<br />
|2433<br />
|active<br />
|Subnet pro management serverů (např. IPMI)<br />
|-<br />
!fjfi-*-sec<br />
|2404<br />
|2414<br />
|2424<br />
|2434<br />
|planed<br />
|Subnet pro zabezpečovací zařízeni (např. kamery, K4, ...)<br />
|-<br />
!fjfi-*-wifi<br />
|2405<br />
|2415<br />
|2425<br />
|2435<br />
|active<br />
|Wireless síť pro speciální příležitosti (např. samostatná konfigurace pro konference)<br />
|-<br />
!fjfi-*-eduroam<br />
|2406<br />
|2416<br />
|2426<br />
|2436<br />
|active<br />
|Wireless síť Eduroam<br />
|-<br />
!fjfi-*-wififjfi<br />
|2407<br />
|2417<br />
|2427<br />
|2437<br />
|active<br />
|Wireless síť s captive portálem<br />
|-<br />
!fjfi-*-voip<br />
|2408<br />
|2418<br />
|2428<br />
|2438<br />
|planed<br />
|Segment pro VoIP telefony<br />
|-<br />
!fjfi-*-fragile<br />
|2409<br />
|2419<br />
|2429<br />
|2439<br />
|active<br />
|Segment pro "nepočítačová" síťová zařízení (nepravidelné/neexistující updaty)<br />
|-<br />
!colspan="7"|U jmen VLAN je potřeba nahradit znak "*" zkratkou příslušné lokality (br/tr/vh/dp)<br />
|}<br />
<br />
==Standardní VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Detaily k rozdělení FJFI VLAN (2400-2439)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-eduroam<br />
|2416<br />
|active<br />
|tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Jeden subnet s veřejnými adresami <tt>147.32.11.0/24</tt> pro Eduroam síť v Trojance<br />
|}<br />
<br />
==Speciální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2440-2449)<br/>(speciální VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-brtr-srv-clu<br />
|2448<br />
|active<br />
|br+tr<br />
|12.1.2015 FJFI<br />
|vokacpet<br />
|Public segment pro clusterování strojů mezi Trojankou a Břehovkou s dvěmi HSRP active/standby gateway<br />
|-<br />
!fjfi-brtr-srv-priv<br />
|2449<br />
|active<br />
|br+tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery v clusteru (DFS replikace)<br />
|}<br />
<br />
==Individuální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2450-2499)<br/>(individuální VLANy, pro uživatelské potřeby)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>(owner)<br />
!Admin<br />
!Comment<br />
|-<br />
!test_max_20_znaku<br />
|2450<br />
|test<br />
| --<br />
|2.6.2014 (KM)<br />
|vokacpet<br />
|Testovací záznam - tato VLAN není reálně nikde zkonfigurována, jméno VLAN musí být do 20 znaků (CISCO limit, stará SMC podporují max 12 znaků)!<br />
|-<br />
!fjfi-tr-km<br />
|2451<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kf<br />
|2452<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kj<br />
|2453<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kipl<br />
|2454<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kfe<br />
|2455<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kmat<br />
|2456<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kjch<br />
|2457<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kdaiz<br />
|2458<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-vh-kjr<br />
|2459<br />
|test<br />
|vh<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-ksi<br />
|2460<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-dekanat<br />
|2461<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-??-??<br />
|2462<br/>-<br/>2469<br />
|rezervace<br />
| --<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|}<br />
<br />
==K promyšlení==<br />
<br />
* VLANy pro subnety kateder, rozdělení +/- dle čísel kateder<br />
* VLANy pro privátní subnety kateder (nebo mít jen jeden "veřejný" privátní subnet?)<br />
* VLAN pro přístupové systémy pro karty (je možné provozovat na privátní síťi?)<br />
* VLAN pro přístup k datům zabezpečení (kamery)<br />
* VLAN pro serverovou DMZ<br />
* Prohodit číslování standardních VLAN pro Tróju a Děčín (stejné pořadí jako seřazené IP segmenty?)<br />
** jedinný Děčín je "externí" lokalita routovaná přímo CESNETem (nemáme plnou kontrolu nad lokálními čísly VLAN a IPv6 čísly subnetů)<br />
** pořadí lokalit tedy bude br/tr/vh/dp<br />
<br />
=IP=<br />
<br />
==Veřejné adresy==<br />
<br />
Následující tabulka obsahuje souhrné informace o veřejných IP adresách přidělených a využívaných na FJFI.<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Rozdělení veřejných IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Gateway<br />
!VLAN Name<br />
!Admin<br />
!Comment<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.4.0%2F24&location=br 147.32.4.0/24]<br />
|Břehová<br />
|147.32.4.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-1<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.5.0%2F24&location=br 147.32.5.0/24]<br />
|Břehová<br />
|147.32.5.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-2<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.6.0%2F23&location=tr 147.32.6.0/23]<br />
|Trojanova<br />
|147.32.6.1<br />
|fjfi-tr-def<br />
|sinormil<br />
|Subnet KFE + dynamicky přidělované veřejné IP<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.8.0%2F24&location=tr 147.32.8.0/24]<br />
|Trojanova<br />
|147.32.8.1<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet KM+KJ+KSI+Elsa<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.0%2F26&location=tr 147.32.9.0/26]<br />
|Trojanova<br />
|147.32.9.1<br />
|fjfi-tr-srv<br />
|vokacpet<br />
|Serverový subnet v tr<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.64%2F27&location=br 147.32.9.64/27]<br />
|Břehová<br />
|147.32.9.65<br />
|fjfi-br-srv<br />
|vokacpet<br />
|Serverový subnet v br<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.96%2F27&location=tr 147.32.9.96/27]<br />
|Břehová+Trojanova<br />
|147.32.9.97<br />
|fjfi-brtr-srv-clu<br />
|vokacpet<br />
|Serverový subnet pro clustery mezi br+tr (duální gateway active/standby přes HSRP)<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.128%2F25&location=tr 147.32.9.192/26]<br />
|Trojanova<br />
|147.32.9.193<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet speciální zařízení<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.0%2F25&location=tr 147.32.10.0/25]<br />
|Trojanova<br />
|147.32.10.1<br />
|fjfi-tr-def<br />
|kopripe1<br />
|Subnet KMAT<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.128%2F25&location=tr 147.32.10.128/25]<br />
|Trojanova<br />
|147.32.10.129<br />
|fjfi-tr-def<br />
|drabmart<br />
|Subnet KIPL<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.11.0%2F24&location=tr 147.32.11.0/24]<br />
|Trojanova<br />
|147.32.11.1<br />
|fjfi-tr-eduroam<br />
|vokacpet<br />
|Eduroam<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.22.0%2F24&location=dp 147.32.22.0/24]<br />
|Děčín<br />
|147.32.22.1<br />
|fjfi-dp-def<br />
|sumpepre<br />
|Veřejné adresy dp<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.25.0%2F24&location=vh 147.32.25.0/24]<br />
|Trója<br />
|147.32.25.1<br />
|fjfi-vh-def<br />
|fialaja2<br />
|Veřejné adresy vh<br />
|}<br />
<br />
===Veřejné adresy detaily===<br />
<br />
Většina veřejných adres je rezervována pro konkrétní zařízení. V každé budově FJFI existuje ale i určitý rozsah veřejných adres, které jsou přidělovány registrovaným zařízením bez rezervace konkrétní adresy (zvýrazněno modře v níže uvedené tabulce). V případě aktuálního vyčerpání těchto volně dostupných veřejných adresu budou dalším zařízením přidělovány privátní adresy z privátního rozsahu na téže VLAN <tt>fjfi-*-def</tt>. V konfiguraci registrace síťového zařízení lze specifikovat, že danému zařízení má být vždy přidělena privátní adresa a to i v případě, že pool veřejných adres ještě nebyl vyčerpán.<br />
<br />
Trvale připojená zařízení využívají veřejné adresy by měla mít zaregistrovánu rezervovanou adresu z rozsahu, který je přidělen organizační jednotce vlastnící dané zařízení (viz. tabulka). Zařízení tak bude mít garantovánu stalou veřejnou IP adresu a nebude se zbytečně zmenšovat pool s veřejnými adresami pro ostatní zařízeni, která se na FJFI síti vyskytují pouze občas. Pro běžná zařízení (počítače) je preferováno použití veřejných adres, jelikož při jejich použití není fungování síťového zařízení omezeno potencíálními problémy NATu (vyplývající z podstaty NATu, vytížení NATovacího zařízení případně jeho nedostupnosti) a lze jednodušeji řešit případné stížnosti týkající se konkrétní adresy.<br />
<br />
Existuje ale i skupina speciálních zařízení (např. tiskárny) u nichž je lepší použít privátní adresy. Provoz některých zařízení na veřených adresách totiž představuje bezpečnostní hrobu vzhledem k neexistujícím automatickým security updatům firmware a omezeným možnostem konfigurace zabezpečení. Takové zařízení by ideálně měla být na samostatné VLAN <tt>fjfi-*-fragile</tt>, ale vzhledem ke komplikovanému managementu sítě pro ně je zatím vyhrazen rozsah privátních adres z VLAN <tt>fjfi-*-def</tt> (viz. [[#Priv.C3.A1n.C3.AD_adresy_na_default_VLAN_fjfi-.2A-def|níže]]). Adresu z tohoto rozsahu lze jednoduše vybrat v rozhraní pro registrace síťových zařízení.<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení veřejných IP rozsahů (detaily)<br />
|-<br />
!IP rozsah<br />
!adresy<br />
!Comment<br />
|-<br />
!rowspan="3"|147.32.4.0/24<br />
!147.32.4.0-70<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.4.71-189</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.4.190-255<br />
|??<br />
|-<br />
!rowspan="2"|147.32.5.0/24<br />
!147.32.5.0-49<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.5.50-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="4"|147.32.6.0/24<br />
!147.32.6.2-99<br />
|vyhrazeno unixářům (Richard Liska, Milan Šiňor) <br />
|-<br />
!147.32.6.100-199<br />
|pclab, kanceláře, ... (Antonín Novotný)<br />
|-<br />
!147.32.6.200-254<br />
|InfoLab, kanceláře (Josef Blažej)<br />
|-<br />
!147.32.6.255<br />
|rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
|-<br />
!rowspan="2"|147.32.7.0/24<br />
!147.32.7.1-31<br />
|tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
|-<br />
!<span style="color: blue">147.32.7.32-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="7"|147.32.8.0/24<br />
!147.32.8.2-79<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.80-96<br />
|studovna 214<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
|-<br />
!147.32.8.97-109<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.110-149<br />
|KM učebny<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
|-<br />
!147.32.8.150-223<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.224-230<br />
|KJ zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.224/27<br />
|Tereza<br />
* 147.32.8.241 - 147.32.8.250 desktopy<br />
* 147.32.8.253 - Printer 4x4 Pro<br />
|-<br />
!rowspan="3"|147.32.9.128/25<br />
!147.32.9.128/27<br />
|KSE (Miroslav Virius ?)<br />
|-<br />
!147.32.9.160-223<br />
|Tiskárny<br />
* 147.32.9.190 rezervace<br />
* 147.32.9.191 rezervace<br />
* 147.32.9.192 rezervace<br />
* 147.32.9.212 rezervace<br />
* 147.32.9.213 rezervace<br />
* správce Míra Minárik, Pavel Kerouš<br />
|-<br />
!147.32.9.224/27<br />
|různé (zatím pro "speciální" zařízení jako např. kartové systémy, ...), není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
|-<br />
!rowspan="2"|147.32.10.0/25<br />
!147.32.10.0/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.10.128/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.11.0/24<br />
!147.32.11.0/24<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.22.0/24<br />
!<span style="color: blue">147.32.22.101-199</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.25.0/24<br />
!<span style="color: blue">147.32.25.102-219</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|}<br />
<br />
==Privátní adresy==<br />
<br />
Vzhledem k nedostatku veřejných IP adres bylo nutné začít využívat i privátní IP adresy. Ty jsou používany jak čistě interně (např. management), tak i pro běžný provoz s NATem aktuálně hlavně na WiFi sítích, kde si vzhledem k enormnímu nárůstu počtu zařízení není možné vystačit s dostupnými veřejnými adresami. Privátní IPv4 adresy jsou také používány pro neregistrovaná zařízení a automatický přístup k captive portálu na stránku s registrací.<br />
<br />
Bohužel se na "Jednání IT techniků ČVUT - 11.6.2015" dohodlo, že se privátní adresy nebudou routovat po ČVUT (resp. nedošlo ani k základní shodě na tom, jaké rozsahy by bylo možné použít s tím, že ostatní fakulty už využívají všechny dostupné privátní subnety). Tohle je podmínka (téměř - viz. RFC6598) nutná pro možnost zřízení globálního NATu, takže ani v budoucnu nelze očekávat poskytnutí této služby v rámci celého ČVUT. Další komplikací je využití privátních adres mezi různými lokalitami FJFI, kde je potřeba využít policy based routing a privátní adresy do druhé lokality dostat přes tunel resp. dedikovanou VLAN. Centrální L3 switche použité v FJFI lokalitách také mají relativně omezené možnosti konfigurace (nepodporují NAT, netflow, GRE tunely, malá TCAM pro PBR, ...).<br />
{|class="wikitable"<br />
!colspan="6"|Počet adres v podsítích dané velikosti<br />
|-<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
|-<br />
!/24<br />
|256<br />
!/21<br />
|2048<br />
!/18<br />
|16384<br />
|-<br />
!/23<br />
|512<br />
!/20<br />
|4096<br />
!/17<br />
|32768<br />
|-<br />
!/22<br />
|1024<br />
!/19<br />
|8192<br />
!/16<br />
|65536<br />
|}<br />
<br />
<br />
===Privátní adresy dle lokality===<br />
<br />
Pro centrálně spravované privátní adresy na FJFI je využíván rozsah <tt>172.16.0.0/12</tt> z nějž má každá lokalita přidělen jeden segment <tt>/16</tt> (~ 65k adres) a poslední subnet <tt>172.31.0.0/16</tt> se využívá ke speciálním účelům (např. spojovačky). Přidělený segment je dále dělen na subnety jejichž základní číslování je shodné v každé lokalitě (např. dle VLAN, využití, ...).<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení privátních IP rozsahů na FJFI po lokalitách<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Comment<br />
|-<br />
!10.0.0.0/8<br />
| --<br />
|Vyhrazeno pro potřeby ČVUT (sice to nebylo nikde oficiálně řečeno, ale je to jedinný privátní rozsah u nejž vzhledem k velikosti má smysl uvažovat o využití v rámci celého ČVUT)<br />
|-<br />
!172.16.0.0/16<br />
|Břehová<br />
|<br />
|-<br />
!172.17.0.0/16<br />
|Trojanova<br />
|<br />
|-<br />
!172.18.0.0/16<br />
|Trója<br />
|<br />
|-<br />
!172.19.0.0/16<br />
|Děčín<br />
|<br />
|-<br />
!172.31.0.0/16<br />
| --<br />
|Vyhrazeno pro speciální využití (např. spojovačky na privátní síti)<br />
|-<br />
!192.168.0.0/16<br />
| --<br />
|Adresy z tohoto rozsahu nebudou na FJFI nijak regulovány a jsou preferované pro uživatelské testovací resp. dočásné privátní sítě. Je na jejich správci, aby si vybral nepoužívaný rozsah v dané síti resp. VLAN, ale není zde zaručeno resp. monitorováno jestli jestli stejné adresy začne používat někdo další. Pro potřeby trvalého privátního adresované na FJFI síti je doporučeno dohodnout alokaci podsítě z odpovídajících 172.1x.0.0/16 rozsahů. Nědky může být vhodné použít adresování 172.1x.0.0/16 i např. pro clustery resp. sítě kompletně oddělené od zbytku infrastruktury (např. je lze pak zpřístupnit přes centrální VPN).<br />
|-<br />
!colspan="3"|Privátní rozsahy značené 172.<span style="color: blue">1x</span>.aaa.bbb budou dále znamenat adresy v libovolné lokalitě (br=<span style="color: blue">16</span>/tr=<span style="color: blue">17</span>/vh=<span style="color: blue">18</span>/dp=<span style="color: blue">19</span>)<br />
|}<br />
<br />
===Privátní adresy dle VLAN===<br />
<br />
Všechny standardní využívané VLAN budou mít přidělen určitý rozsah privátních adres. V závislosti na využití bude přizpůsobena konfigurace "Private routing" týkající se routování mezi lokalitami FJFI (žádné routování, routování přes tunel/VLAN nebo IPSec zabezpečené spojení), routování do světa skrz NAT a různé filtrování paketů "Private ACL" mezi privátními subnety. Jednotlivé subnety je dobré alokovat také s ohledem na to, jak komplikované bude případné přečíslování zařízení na daném subnetu.<br />
<br />
{|class="wikitable"<br />
!colspan="8"|Rozdělení privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!VLAN Name<br />
!NAT<br />
!Private<br/>routing<br />
!Private<br/>ACL<br />
!Komplikace<br/>přeadresování<br />
!Comment<br />
|-<br />
!colspan="8"|172.1x.0.0/17 - adresy pro globální využití ve všech lokalitách<br />
|-<br />
!172.1x.0.0/22<br />
|172.1x.0.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování serverů dostupných přímo ze všech lokálních sítí, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.4.0/22<br />
|172.1x.4.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.8.0/22<br />
|172.1x.8.1<br />
|fjfi-*-srv<br />
|yes<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN s IPSec zabezpečenou komunikací mezi FJFI lokalitami, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.12.0/22<br />
| --<br />
|fjfi-*-srv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze z lokální VLAN (žádné routování či NAT)<br />
|-<br />
!172.1x.16.0/22<br />
|172.1x.16.1<br />
|fjfi-*-mgmt-net<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu síťových prvků (switche) dostupné pouze z mgmt-net VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.16.0/23<br />
|-<br />
!172.1x.20.0/22<br />
|172.1x.20.1<br />
|fjfi-*-mgmt-srv<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu serverů (IPMI, RAID controller, UPS, ...) dostupné pouze z mgmt-srv VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.20.0/23<br />
|-<br />
!172.1x.24.0/22<br />
|172.1x.24.1<br />
|fjfi-*-fragile<br />
|yes/no<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování pro samostatný subnet "nedůvěryhodných" zařízení (např. tiskárny, specializovaná zařízení bez pravidelných security update, ...), komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.24.0/23<br />
|-<br />
!172.1x.28.0/24<br />
|172.1x.28.1<br />
|fjfi-brtr-srv-clu<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.28.0/24)<br />
|-<br />
!172.1x.29.0/24<br />
| --<br />
|fjfi-brtr-srv-clu<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.29.0/24)<br />
|-<br />
!172.1x.30.0/24<br />
|172.1x.30.1<br />
|fjfi-brtr-srv-priv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.30.0/24)<br />
|-<br />
!172.1x.31.0/24<br />
| --<br />
|fjfi-brtr-srv-priv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.31.0/24)<br />
|-<br />
!172.1x.32.0<br/>-<br/>172.1x.51.255<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
|Rezervováno pro budoucí "globální využití"<br />
|-<br />
!172.1x.52.0/24<br/>172.1x.53.0/24<br />
|172.1x.52.1(*)<br/>172.1x.53.1(*)<br />
|VPN<br/>test<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro L2TP, PPTP, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.52.0/24 - PPTP server na nms-xx.fjfi.cvut.cz<br />
* 172.1x.53.0/24 - L2TP server na nms-xx.fjfi.cvut.cz<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.54.0/24<br/>172.1x.55.0/24<br />
|172.1x.54.1(*)<br/>172.1x.55.1(*)<br />
|OpenVPN<br/>admin<br />
|yes<br />
|default<br />
| --<br />
|malé<br />
|Privátní adresování pro admin OpenVPN klienty s přímým přístupem do sítě včetně privátních, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.54.0/24 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.55.0/24 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.56.0/22<br/>172.1x.60.0/22<br />
|172.1x.56.1(*)<br/>172.1x.60.1(*)<br />
|OpenVPN<br/>user<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro OpenVPN klienty, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.56.0/22 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.60.0/22 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.64.0/20<br />
|172.1x.64.1<br />
|fjfi-*-def<br />
|yes(*)<br />
|default<br />
|permit(*)<br />
|velké(*)<br />
|Privátní adresy na default VLAN (lokální síť v budově), detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-def]]<br />
|-<br />
!172.1x.80.0/20<br />
|172.1x.80.1<br />
|fjfi-*-wifi<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní rozsah pro speciální WiFi sítě, které mohou mít speciální konfiguraci např. pro konference, ...<strike>Rezervováno pro případné budoucí speciální požadavky na fjfi-*-def VLAN nebo rozšíření adresního prostoru na této VLAN</strike><br />
|-<br />
!172.1x.96.0/20<br />
|172.1x.96.1<br />
|fjfi-*-eduroam<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť Eduroam, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-eduroam]]<br />
|-<br />
!172.1x.112.0/20<br />
|172.1x.112.1(*)<br />
|fjfi-*-wififjfi<br />
|yes(*)<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť WiFiFJFI, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-wififjfi]], tato síť používá vlastní gateway pro řízení přístupu pomocí captive portálu a zařízení na ní nejsou z vnějšku dostupná.<br />
|-<br />
!colspan="8"|172.1x.128.0/18 - adresy pro lokální využití v konkrétní lokalitě lokalitě<br />
|-<br />
!colspan="8"|172.16.128.0/18 - Břehová<br />
|-<br />
!?rezervace?<br/>172.16.128.0/22<br />
|172.16.128.1(*)<br />
|fjfi-br-kf-private<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro síť KF s NAT a gateway zajištěnou [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=38061 vlastním zařízením]<br />
|-<br />
!colspan="8"|172.17.128.0/18 - Trojanova<br />
|-<br />
!?rezervace?<br/>172.17.128.0/22<br />
|172.17.128.1(*)<br />
|fjfi-tr-hyperion<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro KM+KIPL hyperion cluster s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=24149 NAT a gateway]<br />
|-<br />
!?rezervace?<br/>172.17.132.0/22<br />
|172.17.132.1<br />
|"xen-vdi"<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování pro Xen virtualizované desktopy, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!colspan="8"|172.18.128.0/18 - Trója<br />
|-<br />
!colspan="8"|172.19.128.0/18 - Děčín<br />
|-<br />
!colspan="8"|172.1x.192.0/18 - rezervováno<br />
|-<br />
|colspan="8"|Adresy pro lokální využití v konkrétní lokalitě rezervované pro případ, že dojde k L2 segmentaci sítě podle příslušnosti k různým součástem FJFI<br />
|}<br />
<br />
<br />
====Privátní adresy na default VLAN <tt>fjfi-*-def</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.64.0/20 na default VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.64.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
* 172.18.71.0/24 je v Tróji využíváno pro privátní adresování (měřících) zařízení KJR (humlond)<br />
|-<br />
!172.1x.72.0/22<br />
| --<br />
| --<br />
|vokacpet<br />
|unused<br />
|-<br />
!172.1x.76.0/23<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro "nepočítačová" zařízení (např. tiskárny)<br />
|-<br />
!172.1x.78.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro servery (např. printserver pro komunikaci na tomto subnetu)<br />
|-<br />
!172.1x.79.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným, smazaným a neregistrovaným zařízením<br />
|}<br />
<br />
====Privátní adresy na eduroam VLAN <tt>fjfi-*-eduroam</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.96.0/20 na eduroam VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.96.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.110.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.111.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným (smazaným) zařízením<br />
|}<br />
<br />
====Privátní adresy na wififjfi VLAN <tt>fjfi-*-wififjfi</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.112.0/20 na wififjfi VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.112.0/21<br />
|dynamic+reserved<br />
|auth<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.126.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.127.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným zařízením<br />
|}<br />
<br />
===Individuální rozsahy privátních adres===<br />
<br />
Využití těchto adres není nijak regulováno, takže zde neexistují žádné překážky k jejich použití ale na druhou stranu se také nelze spolehnout na to, že stejné adresy nezačne používat někdo další. V níže uvedené tabulce je (nekompletní) seznam aktuálně používaných adres z 192.168.0.0/16 rozsahu. Bylo by vhodné zvážit jestli do budoucna nezačít využívat rezervované subnety z 172.1x.0.0/16 rozsahů.<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení individuálních privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!Public<br />
!VLAN Name<br />
!OU<br />
!Admin<br />
!Comment<br />
|-<br />
!192.168.x.0/24<br />
|192.168.x.1<br />
|147.32.x.y<br />
|None<br />
|KIPL<br />
|drabmart<br />
|Privátní adresy pro KM+KIPL cluster<br />
|-<br />
!192.168.3.0/24<br />
|192.168.3.1<br />
|147.32.4.13<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF - kanceláře<br />
|-<br />
!192.168.11.0/24<br />
|192.168.11.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|-<br />
!192.168.20.0/24<br />
|192.168.20.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|}<br />
<br />
=IPv6=<br />
<br />
ČVUT přiděluje standardně <tt>/56</tt> rozsahy (lze použít pro vytvoření 256 podsítí) pro lokality připojené přes Dejvice ze přiděleného IPv6 rozsahu <tt>2001:718:2::/48</tt>. Bohužel vzhledem ke způsobu routování IPv6 není možné používat adresy z "dejvického" rozsahu v ostatních lokalitách (CESNET to ve své síti nepodporuje, tj. např. v Tóji a Děčíně), tam bude využit jiný rozsah přidělený ČVUT a routovaný Pasnetem resp. CESNETem.<br />
<br />
==IPv6 adresy dle lokality==<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI po lokalitách<br/>(FJFI IPv6 rozsahy 2001:718:2:1800::/54)<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Admin<br />
!Comment<br />
|-<br />
!2001:718:2:<span style="color: blue">17</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený na FJFI (včetně DNS reverzů, bude vrácen VICu po alokaci "1b")<br />
|-<br />
!2001:718:2:<span style="color: blue">18</span>00::/56<br />
|Břehová<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">19</span>00::/56<br />
|Trojanova<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">1a</span>00::/56<br />
|Trója<br />
|vokacpet<br />
|Veřejné adresy (aktuálně nevyužitý rozsah nazvaný FJFI test, čeká na novou serverovnu PASNETu v Tróji)<br />
|-<br />
!2001:718:2:<span style="color: blue">1b</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený FJFI ČVUT (pro "hezčí" FJFI IPv6 netmask)<br />
|-<br />
!??<br />
|Děčín<br />
|vokacpet<br />
|Veřejné adresy (další ČVUT adresy přidělené z routovatelného rozsahu CESNET)<br />
|}<br />
<br />
==IPv6 adresy dle VLAN==<br />
<br />
Každá VLAN přidělená FJFI má standardně přiřazen jeden IPv6 subnet <tt>/64</tt> z přiděleného rozsahu <tt>/56</tt> (256 možných <tt>/64</tt> subnetů). Příslušné číslo FJFI VLAN-2400 (tj. hodnoty v intervalu 0-99) budou přímo součástí IPv6 adresy na pozici 56-63. Vyjímkou je prvních 40 rezervovaných VLAN u nichž se používá pouze poslední číslice.<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI podle VLAN<br />
|-<br />
!IP rozsah<br />
!VLAN ID<br />
!VLAN Name<br />
!Comment<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">0</span>::/64<br />
|24?<span style="color: blue">0</span><br />
|fjfi-*-srv<br />
|Subnet pro servery<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">1</span>::/64<br />
|24?<span style="color: blue">1</span><br />
|fjfi-*-def<br />
|Veřejná síť ("default VLAN" pro běžné počítače) <br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">9</span>::/64<br />
|24?<span style="color: blue">9</span><br />
|fjfi-*-fragile<br />
|Segment pro "nepočítačová" síťová zařízení<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">48</span>::/64<br />
|24<span style="color: blue">48</span><br />
|fjfi-brtr-srv-clu<br />
|Public segment mezi Trojankou a Břehovkou s duální gateway přes HSRP<br />
|-<br />
!2001:718:2:xx<span style="color: blue">49</span>::/64<br />
|24<span style="color: blue">49</span><br />
|fjfi-brtr-srv-priv<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a0</span>::/64<br/> -- <br/>2001:718:2:xx<span style="color: blue">ff</span>::/64<br />
| --<br />
| --<br />
|Rezervováno pro budoucí/speciální využití<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a?</span>::/60<br />
|colspan="2"|Static route to OpenVPN server<br />
|OpenVPN IPv6 network<ul><br />
<li>...<span style="color: blue">a0</span>::/64 - openvpn.fjfi.cvut.cz:1194/udp</li><br />
<li>...<span style="color: blue">a1</span>::/64 - openvpn.fjfi.cvut.cz:1194/tcp</li><br />
<li>...<span style="color: blue">a2</span>::/64 - openvpn.fjfi.cvut.cz:443/udp</li><br />
<li>...<span style="color: blue">a3</span>::/64 - openvpn.fjfi.cvut.cz:443/tcp</li><br />
<li>...<span style="color: blue">a4</span>::/64 - openvpn.fjfi.cvut.cz:53/udp</li><br />
<li>...<span style="color: blue">a5</span>::/64 - openvpn.fjfi.cvut.cz:53/tcp</li><br />
<li>...<span style="color: blue">a6-af</span>::/64 - reserved</li><br />
</ul><br />
|}<br />
<br />
==Využití IPv6 adres v rámci <tt>/64</tt> subnetů==<br />
<br />
Každý subnet na IPv6 má prakticky vzato "neomezené" množství IPv6 adres. Lze tedy zavést další jemnější dělení těchto subnetů, aby bylo možné pro určité skupiny počítačů specifikovat například různá firewall pravidla (např. omezení přístupu na tiskárny pouze z IPv6 adres ČVUT). Nevyužité (zde nedefinované) části <tt>/64</tt> subnetů budou mít standardně zakázanou jakoukoliv komunikaci přímo na fakultním routeru.<br />
<br />
Navíc pro IPv6 nebudou v principu existovat dynamicky přidělované adresy jako je tomu na IPv4, kde je nutné recyklovat omezený adresní prostor. Všechna registrovaná zařízení (síťová rozhraní) budou mít statickou rezervaci konkrétní IPv6 adresy resp. jeji <tt>/64</tt> suffix, který tak bude stejný při připojení zařízení ve všech lokalitách (pro běžné uživatelské subnety jako např. <tt>def</tt>, <tt>eduroam</tt> a <tt>wififjfi</tt> VLAN). Takto přidělená adresa navíc nebude v budoucnu recyklována pro jiné uživatelské zařízení (existují vyjímky, jako např. servery u nichž je změna adresy občas nežádoucí). V případě potřeby je možné u existujícího zařízení smazat aktuální IPv6 adresu a nechat vygenerovat novou.<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-srv===<br />
<br />
* změny ve využití adres jsou u serverů velice komplikované<br />
** konfigurace sítě je na serverech statická (nepoužívají DHCP)<br />
** pro použité adresy může mít řada zařízení (nejen na tomto segmentu) zkonfigurována různá pravidla (např. firewall)<br />
** pokud se neobjeví ''závažné nedostatky'' aktuálního plánu (např. nové standardy) tak jsou adresy přiděleny navždy<br />
* aktuálně budou využívány pouze adresy z rozsahu 2001:718:2:1x00::/96<br />
* doporučený formát IPv6 addres<br />
*# IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x00::147.32.9.17) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x00::17)<br />
*# adresy z rosahu 2001:718:2:1x00::0001:0000-2001:718:2:1x00::00ff:ffff (~ 2^24 adres)<br />
*# registrační GUI bude automaticky generovat neobsazené IPv6 adresy ze správných rozsahů<br />
*# libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)<br />
* jeden server může mít zároveň přiděleno více aktivních IPv6 adres<br />
* je možné alokovat samostatný rozsah IPv6 adres pro skupinu počítačů<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru<br />
** aktuálně neexistují žádné předdefinované skupiny<br />
*** lze si představit např. skupiny dle OS (pro jednodušší psaní filtrů na aktuálně zneužívané chyby)<br />
*** také skupiny dle orgaizačních jednotek pro omezení komunikace na vlastní servery<br />
*** teprve praktické používání IPv6 ukáže reálné potřeby<br />
** využití skupin zde musí být zdokumentováno<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-srv</span> (2001:718:2:xx<span style="color: DarkGreen">00</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">00</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Standardní IPv6 rozsah serverů<br />
|}<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-def===<br />
<br />
* změny ve využití adres mohou být relativně jednoduché při dodržování následujících zásad<br />
** zařízení budou pro IPv6 konfigurace využívat výhradně router advertisementy + stavové DHCPv6<br />
*** vzhledem k nerecyklování IPv6 adres je možné nastavit velice dlouhý lease time<br />
*** nelze použít "nekonečno" jinak bychom přidělenou adresou v budoucnu nebyly schopni změnit<br />
*** maximální lease time tedy bude jeden měsíc<br />
** manuální konfigurace je silně nedoporučena<br />
*** pokud se rozhodneme změnit IPv6 adresování tak může dojít k problémům<br />
*** z hlediska správce IPv6 rozsahu je to problém čistě uživatele, který nedbal doporučení a nebude na něj brán ohled<br />
* podobně jako u serverové VLAN <tt>fjfi-*-srv</tt> bude možné zařízení zařazovat do skupin<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru (např. omezení komunikace po ČVUT pro tiskárny)<br />
** využití skupin zde musí být zdokumentováno<br />
* jedno zařízení může mít zároveň přiděleno více aktivních IPv6 adres<br />
* doporučený formát IPv6 addres (pouze správce sítě může s rozumným důvodem využít jinou než první možnost)<br />
*# registrační GUI bude [[Registrace_MAC#Pravidla pro automatické vytváření rezervovaných adres|automaticky generovat neobsazené IPv6 adresy ze správných rozsahů]]<br />
*# <strike>IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x01::147.32.8.52) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x01::852)</strike><br />
*# <strike>adresy z rosahu 2001:718:2:1x01::0001:0000-2001:718:2:1x01::00ff:ffff (~ 2^24 adres)</strike><br />
*# <strike>libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)</strike><br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-def</span> (2001:718:2:xx<span style="color: DarkGreen">01</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!colspan="4"|Adresy pro standardní a speciální rozsahy 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/88<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální IPv6 rozsah pro běžná zařízení (ručně přidělované adresy, např. 2001:718:2:1901::852), preferované jsou ale níže uvedené rozsahy s konkrétním účelem (dle typu zařízení, organizační jednotky, ...)<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy (nutné pro zařízení, které byli primárně registovany pro jinou lokaci)<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">2</span>::/96<br/>-<br/>2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">f</span>::/96<br />
|vokacpet<br />
|Rezervovaný rozsah pro budoucí využití<br />
|-<br />
!fragile<br/>printer<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro tiskárny s omezením komunikace po ČVUT<br />
|-<br />
!restricted<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací pouze přes http/https (+ lokální DNS)<br />
|-<br />
!restricted<sup>2</sup><br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací jen na vyhrazené lokální servery (adresy pro blokované, neregistrované, zlobivé, ... zařízení). Zatím by taková zařízení nemusela dostávat žádnou IPv6 adresu a do příslušná omezení a informační stranky by se zobrazili na základě přidělené IPv4 adresy.<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">??</span>::/96<br />
| --<br />
|Skupina zařízení s omezeními dle uživatelských požadavků - návrhy?<br />
|-<br />
!colspan="4"|Adresy vyhrazené pro zařízení kateder 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/88<br />
|-<br />
!ČVUT<br/>FJFI<br/>Other<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení ČVUT, FJFI a Ostatní<br />
|-<br />
!KM<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">101</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KM<br />
|-<br />
!KF<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">102</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KF<br />
|-<br />
!KJ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">103</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJ<br />
|-<br />
!KIPL<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">104</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KIPL<br />
|-<br />
!KFE<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">105</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KFE<br />
|-<br />
!KMAT<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">106</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KMAT<br />
|-<br />
!KJCH<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">107</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJCH<br />
|-<br />
!KDAIZ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">108</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KDAIZ<br />
|-<br />
!KJR<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">109</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJR<br />
|-<br />
!KSI<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10a</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KSI<br />
|-<br />
!CRRC<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10b</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení CRRC<br />
|-<br />
!Elsa<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10c</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Elsa<br />
|-<br />
!Děkanát<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10d</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Děkanátu<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-eduroam===<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* blokovaná zařízení nedostanou od DHCPv6 přidělenou IPv6 adresu<br />
** převedeno na problém samotného IPv4 a blokovaných zařízení, který je již vyřešen<br />
** aktuálně tedy nemáme plnou podporu IPv6 only zařízení, ale jen v případě ojedinělých případů blokace<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-eduroam</span> (2001:718:2:xx<span style="color: DarkGreen">06</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální rozsah (ručně přidělované/rezervované adresy), žádné restrikce<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy, minimální restrikce<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-wififjfi===<br />
<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* konfigurace by měla fungovat tak, aby klient mohl nakonec využívat nativní IPv6 konektivitu bez dalšího (linuxového) routeru (NAT) na cestě<br />
* zbývá dořešit technické detaily autentizace na captive portálu a také blokovaná (neregistrovaná a smazaná) zařízení<br />
** neautentizovaná zařízení dostanou pouze IPv4 adresu a budou tak mít přístup ke captive portálu<br />
** DHCPv6 bude defaultně zkonfigurováno, aby zařízením neposkytlo IPv6 adresu do té doby než je uživatel uspěšně ověřen<br />
** po autentizaci přes captive portál na IPv4 modifikovat dynamicky konfiguraci DHCPv6 a povolit přidělení adresy s lease time ~ 1hodina<br />
*** asi to je možné řešit přes DHCPv6 classes, ale ty nejsou podporovány v ISC DHCP 4.2.5, který je součástí CentOS7<br />
*** nebude fungovat pro IPv6 only zařízení (to tu aktuálně vůbec neřešíme a v budoucnu se uvidí co bude možné např. s 6to4 překlady adres)<br />
<br />
=Firewall=<br />
[[Blokované porty]]<br />
<br />
=Provozní poznámky=<br />
<br />
* SMC8626<br />
** nejnovější firmware v1.4.0.8 je nestabilní (pro multicast a mam pocit že docházelo i k odpadnutí managementu)<br />
** aktualni firmware v1.1.0.2 nelze managovat přes VLANu (jinou než 1), kdy je na daném portu zároveň zapnutý <tt>spanning-tree edge-port</tt>, jelikož po restartu se nelze k managementu připojit dokud se nevytáhne a vrátí zpět ethernetový kabel => uplink nesmí mít tuhle volbu zapnutou</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Network&diff=3796Network2017-04-20T11:17:58Z<p>Keroupav: /* Veřejné adresy */</p>
<hr />
<div>Dokumemtace a pravidla k organizaci sítě na FJFI. Jakékoliv změny v tomto dokumentu musí být oznámeny v mailing listu správců IT na FJFI (comp@lists.fjfi.cvut.cz), aby bylo možné sladit konfigurace lokálních systémů (např. firewallu) v závislosti na úpravách konfigurace sítě.<br />
<br />
=Páteřní rozvody a zapojení=<br />
<br />
==Břehová==<br />
<br />
Plány rozmístění rozvaděčů a barevně obarvené místnosti podle připojení síťových (ethernetových) zásuvek do rozvaděčů:<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1pp.png s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1_2np.png 1/2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-1np.png 0.patro] (přízemí)<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-2np.png 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-3np.png 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-4np.png 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/netinfo/057-5np_krov.png 4.patro] (půdní vestavba)<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Brehova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* telefonní ústředna<br />
** foto z místnosti 008 [https://nms.fjfi.cvut.cz/user/images/ustredna-br-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-3.jpg 3], [https://nms.fjfi.cvut.cz/user/images/ustredna-br-4.jpg 4]<br />
<br />
==Trojanova==<br />
<br />
Dokumentace z FJFI archivu k překladu optických tras realizovaných v roce 2009 (nascanováno, obrovské ~ 10MB JPG soubory):<br />
<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1pp.jpg s1.patro] (sklep)<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/1np.jpg 0.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/2np.jpg 1.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/3np.jpg 2.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/4np.jpg 3.patro]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_blokove.jpg blokové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/schema_prehledove.jpg přehledové schema]<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/sit_technicka_zprava.pdf technická zpráva]<br />
* [[Topologie|nákres rozmístění rozvaděčů]]<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Trojanova.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* [https://nms.fjfi.cvut.cz/user/images/trojanova-sit-2006/Kabel_Trojanka_HK.pdf připojení HK]<br />
** přívod chráničky do budovy je v místnosti s117 (hlavní uzávěr vody)<br />
** SM kabel - PIRELLI Deskwave 053/2001 LOOSE UNITUBE 12 9/125 T/VM<br />
** MM kabel - 12vl.<br />
** MM kabel je v místnosti s117 naspojkován (dříve vedl do 112 ale nyní přeložen do 302)<br />
** SM kabel nebyl nikdy ze 112 přeložen (po rekonstrukcích 112 v létě 2015 by měl být stažen do s117)<br />
* připojení do ČVUT<br />
** přívod chráničky do budovy je v místnosti s128<br />
** FRNC Belden optical Fibre 2x50/125 + 14x9/125<br />
** tento kabel nevede až na karlák, je naspojkován a dál vedou jen 2vl. SM optiky<br />
** cestou do místnosti 302 je nastaven (+/- někde u výtahu)<br />
* hlavní rozvaděč optiky v 302<br />
** foto optického patch panelu [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-1.jpg 1], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-2.jpg 2], [https://nms.fjfi.cvut.cz/user/images/pripojeni-tr-3.jpg 3]<br />
** [https://nms.fjfi.cvut.cz/data/tr-optika/protokol-optika-302-srv1.pdf měřící protokol pro MM spojení 302 se SRV1]<br />
* propojeni serveroven ve sklepě<br />
** zadavatel měl dost nešťastný nápad rozvést pouze 2 páry optiky<br />
** navíc byla použita aktuálně asi nehorší dostupná vlákna MM OM1<br />
*** SFP-10G-SR (33m) nefungují spolehlivě ani mezi SRV1 &lt;-&gt; SRV2<br />
*** pro spojení bude asi nutné pořizovat 2x dražší SFP-10G-LRM (220m)<br />
*** při přímém propatchování SRV302 &lt;-&gt; SRV2 nefungovali spolehlivě ani tyto lepší moduly<br />
** spojení serveroven je seriové SRV1 &lt;-&gt; SRV2 &lt;-&gt; SRV3 &lt;-&gt; SRV4<br />
** jedno vlákno (nejvíce vpravo) mezi SRV1 &lt;-&gt; SRV2 je mrtvé<br />
** PLÁN rekonstrukce<br />
*** předelat udělat všechno do SM optiky<br />
*** rozmyslet se ve které místnosti bude centralní rozvod optiky<br />
*** z centrálního rozvodu mít vlakna do všech serveroven<br />
*** hodně vláken s minimálně 6ti páry připravenými v patch panelu na každé SRVx<br />
*** natáhnout opravdu hodně SM vláken do SRV302(?!)<br />
<br />
==Trója==<br />
<br />
Připojení bylo až do 201606 realizováno routováním přes PASNET a připojením do jejich routeru v Tróji. Od 1.7.2016 je Trója připojena lambdou přímo do Dejvic (CWDM 1470nm) a to trasou přes UTIA. V Tróji je na serverovně (PASNETu) optika "z Dejvic" propatchovana do rozvaděče na chodbě L119 (optika je v patch panelu zakončena LC/PC konektory), kde je aktuálně 1Gb zapojena do [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=63755 MikroTik CCR1016-12S-1S+] (detaily viz. [https://lists.fjfi.cvut.cz/mailman/private/comp/2016/001510.html Zmena pripojeni lokality Troja (IPv6)]).<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Troja.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.pp.png těžké lab. 0.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-1.np.png těžké lab. 1.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-2.np.png těžké lab. 2.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-3.np.png těžké lab. 3.patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-vh-2013-7.np.png KJCH 6. patro]<br />
<br />
==Děčín==<br />
<br />
Tato lokalita není připojená přímo do sítě ČVUT, ale [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=2665 routerem] CESNETu.<br />
<br />
Ostatní dokumentace<br />
<br />
* [http://observium.fjfi.cvut.cz/weathermap/maps/Decin.html weathermap] (plně funkční po přihlášení k [http://observium.fjfi.cvut.cz observium])<br />
* plány budovy<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.pp.png 0. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-1.np.png 1. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-2.np.png 2. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-3.np.png 3. patro]<br />
** [https://nms.fjfi.cvut.cz/user/images/plan-dp-2013-4.np.png 4. patro]<br />
<br />
=VLAN=<br />
<br />
ČVUT VIC prostupně přechází na globalní očíslování VLAN takovým způsobem, aby v se různých částech sítě nepoužívala stejná čísla VLAN (některým management nástrojům se takové konfigurace nezamlouvají). Z toho důvodu byl pro vnitřní potřeby FJFI přidělen rozsah VLAN 2400-2499. Některá starší (pochybnější) zařízení mohou mít problém s využítím takto vysokých čísel, v takovém případě bude nejlepší na nich žádné VLANy nekonfigurovat a budou se používat pouze pro netagovaný provoz.<br />
<br />
V následujících tabulkách je plán resp. dokumentace k využítí přidělených VLAN. První polovina přiděleného rozsahu je využita pro "standardní" VLANy (jejich jméno musí začínat prefixem <tt>fjfi-</tt>), které je vhodné mít vytvořené v každé budově FJFI a zbytek lze využít pro libovolné individuální VLANy (každé nově využité číslo VLAN z uvedeného rozsahu je zde nutné zdokumentovat). Pro Děčín je nutné tento plán brát dost s rezervou, jelikož tato lokalita není připojena přímo do ČVUT, ale je routována přímo CESNETem a lokální VLANy se nakonec mohou lišit.<br />
<br />
==Standardní VLANy==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2400-2439)<br/>(standardní VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<sup>*</sup><br />
!Břehová<br />
!Trojanova<br />
!Trója<br />
!Děčín<br />
!Status<br />
!Comment<br />
|-<br />
!fjfi-*-srv<br />
|2400<br />
|2410<br />
|2420<br />
|2430<br />
|active<br />
|Subnet pro servery<br />
|-<br />
!fjfi-*-def<br />
|2401<br />
|2411<br />
|2421<br />
|2431<br />
|active<br />
|Veřejná síť ("default VLAN" pro běžné počítače)<br />
|-<br />
!fjfi-*-mgmt-net<br />
|2402<br />
|2412<br />
|2422<br />
|2432<br />
|active<br />
|Management rozhraní síťových prvků (switch, router, ap, ...)<br />
|-<br />
!fjfi-*-mgmt-srv<br />
|2403<br />
|2413<br />
|2423<br />
|2433<br />
|active<br />
|Subnet pro management serverů (např. IPMI)<br />
|-<br />
!fjfi-*-sec<br />
|2404<br />
|2414<br />
|2424<br />
|2434<br />
|planed<br />
|Subnet pro zabezpečovací zařízeni (např. kamery, K4, ...)<br />
|-<br />
!fjfi-*-wifi<br />
|2405<br />
|2415<br />
|2425<br />
|2435<br />
|active<br />
|Wireless síť pro speciální příležitosti (např. samostatná konfigurace pro konference)<br />
|-<br />
!fjfi-*-eduroam<br />
|2406<br />
|2416<br />
|2426<br />
|2436<br />
|active<br />
|Wireless síť Eduroam<br />
|-<br />
!fjfi-*-wififjfi<br />
|2407<br />
|2417<br />
|2427<br />
|2437<br />
|active<br />
|Wireless síť s captive portálem<br />
|-<br />
!fjfi-*-voip<br />
|2408<br />
|2418<br />
|2428<br />
|2438<br />
|planed<br />
|Segment pro VoIP telefony<br />
|-<br />
!fjfi-*-fragile<br />
|2409<br />
|2419<br />
|2429<br />
|2439<br />
|active<br />
|Segment pro "nepočítačová" síťová zařízení (nepravidelné/neexistující updaty)<br />
|-<br />
!colspan="7"|U jmen VLAN je potřeba nahradit znak "*" zkratkou příslušné lokality (br/tr/vh/dp)<br />
|}<br />
<br />
==Standardní VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Detaily k rozdělení FJFI VLAN (2400-2439)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-tr-eduroam<br />
|2416<br />
|active<br />
|tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Jeden subnet s veřejnými adresami <tt>147.32.11.0/24</tt> pro Eduroam síť v Trojance<br />
|}<br />
<br />
==Speciální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2440-2449)<br/>(speciální VLANy, vyhrazeny pro správu sítě)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>owner<br />
!Admin<br />
!Comment<br />
|-<br />
!fjfi-brtr-srv-clu<br />
|2448<br />
|active<br />
|br+tr<br />
|12.1.2015 FJFI<br />
|vokacpet<br />
|Public segment pro clusterování strojů mezi Trojankou a Břehovkou s dvěmi HSRP active/standby gateway<br />
|-<br />
!fjfi-brtr-srv-priv<br />
|2449<br />
|active<br />
|br+tr<br />
|16.6.2014 FJFI<br />
|vokacpet<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery v clusteru (DFS replikace)<br />
|}<br />
<br />
==Individuální VLANy (detaily)==<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení FJFI VLAN (2450-2499)<br/>(individuální VLANy, pro uživatelské potřeby)<br />
|-<br />
!VLAN Name<br />
!VLAN ID<br />
!Status<br />
!Location<br/>(br/tr/vh/dp)<br />
!Created<br/>(owner)<br />
!Admin<br />
!Comment<br />
|-<br />
!test_max_20_znaku<br />
|2450<br />
|test<br />
| --<br />
|2.6.2014 (KM)<br />
|vokacpet<br />
|Testovací záznam - tato VLAN není reálně nikde zkonfigurována, jméno VLAN musí být do 20 znaků (CISCO limit, stará SMC podporují max 12 znaků)!<br />
|-<br />
!fjfi-tr-km<br />
|2451<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kf<br />
|2452<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kj<br />
|2453<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kipl<br />
|2454<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kfe<br />
|2455<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-kmat<br />
|2456<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kjch<br />
|2457<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-kdaiz<br />
|2458<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-vh-kjr<br />
|2459<br />
|test<br />
|vh<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-tr-ksi<br />
|2460<br />
|test<br />
|tr<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-br-dekanat<br />
|2461<br />
|test<br />
|br<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|-<br />
!fjfi-??-??<br />
|2462<br/>-<br/>2469<br />
|rezervace<br />
| --<br />
|1.4.2016<br />
|vokacpet<br />
|alokace VLAN pro katedry (pro případ L2 rozdělení sítě dle OU)<br />
|}<br />
<br />
==K promyšlení==<br />
<br />
* VLANy pro subnety kateder, rozdělení +/- dle čísel kateder<br />
* VLANy pro privátní subnety kateder (nebo mít jen jeden "veřejný" privátní subnet?)<br />
* VLAN pro přístupové systémy pro karty (je možné provozovat na privátní síťi?)<br />
* VLAN pro přístup k datům zabezpečení (kamery)<br />
* VLAN pro serverovou DMZ<br />
* Prohodit číslování standardních VLAN pro Tróju a Děčín (stejné pořadí jako seřazené IP segmenty?)<br />
** jedinný Děčín je "externí" lokalita routovaná přímo CESNETem (nemáme plnou kontrolu nad lokálními čísly VLAN a IPv6 čísly subnetů)<br />
** pořadí lokalit tedy bude br/tr/vh/dp<br />
<br />
=IP=<br />
<br />
==Veřejné adresy==<br />
<br />
Následující tabulka obsahuje souhrné informace o veřejných IP adresách přidělených a využívaných na FJFI.<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Rozdělení veřejných IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Gateway<br />
!VLAN Name<br />
!Admin<br />
!Comment<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.4.0%2F24&location=br 147.32.4.0/24]<br />
|Břehová<br />
|147.32.4.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-1<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.5.0%2F24&location=br 147.32.5.0/24]<br />
|Břehová<br />
|147.32.5.1<br />
|fjfi-br-def<br />
|schlopet<br />
|Veřejné adresy br-2<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.6.0%2F23&location=tr 147.32.6.0/23]<br />
|Trojanova<br />
|147.32.6.1<br />
|fjfi-tr-def<br />
|sinormil<br />
|Subnet KFE + dynamicky přidělované veřejné IP<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.8.0%2F24&location=tr 147.32.8.0/24]<br />
|Trojanova<br />
|147.32.8.1<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet KM+KJ+KSI+Elsa<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.0%2F26&location=tr 147.32.9.0/26]<br />
|Trojanova<br />
|147.32.9.1<br />
|fjfi-tr-srv<br />
|vokacpet<br />
|Serverový subnet v tr<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.64%2F27&location=br 147.32.9.64/27]<br />
|Břehová<br />
|147.32.9.65<br />
|fjfi-br-srv<br />
|vokacpet<br />
|Serverový subnet v br<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.96%2F27&location=tr 147.32.9.96/27]<br />
|Břehová+Trojanova<br />
|147.32.9.97<br />
|fjfi-brtr-srv-clu<br />
|vokacpet<br />
|Serverový subnet pro clustery mezi br+tr (duální gateway active/standby přes HSRP)<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.9.128%2F25&location=tr 147.32.9.128/25]<br />
|Trojanova<br />
|147.32.9.129<br />
|fjfi-tr-def<br />
|keroupav<br />
|Subnet speciální zařízení<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.0%2F25&location=tr 147.32.10.0/25]<br />
|Trojanova<br />
|147.32.10.1<br />
|fjfi-tr-def<br />
|kopripe1<br />
|Subnet KMAT<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.10.128%2F25&location=tr 147.32.10.128/25]<br />
|Trojanova<br />
|147.32.10.129<br />
|fjfi-tr-def<br />
|drabmart<br />
|Subnet KIPL<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.11.0%2F24&location=tr 147.32.11.0/24]<br />
|Trojanova<br />
|147.32.11.1<br />
|fjfi-tr-eduroam<br />
|vokacpet<br />
|Eduroam<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.22.0%2F24&location=dp 147.32.22.0/24]<br />
|Děčín<br />
|147.32.22.1<br />
|fjfi-dp-def<br />
|sumpepre<br />
|Veřejné adresy dp<br />
|-<br />
![https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping&ip=147.32.25.0%2F24&location=vh 147.32.25.0/24]<br />
|Trója<br />
|147.32.25.1<br />
|fjfi-vh-def<br />
|fialaja2<br />
|Veřejné adresy vh<br />
|}<br />
<br />
===Veřejné adresy detaily===<br />
<br />
Většina veřejných adres je rezervována pro konkrétní zařízení. V každé budově FJFI existuje ale i určitý rozsah veřejných adres, které jsou přidělovány registrovaným zařízením bez rezervace konkrétní adresy (zvýrazněno modře v níže uvedené tabulce). V případě aktuálního vyčerpání těchto volně dostupných veřejných adresu budou dalším zařízením přidělovány privátní adresy z privátního rozsahu na téže VLAN <tt>fjfi-*-def</tt>. V konfiguraci registrace síťového zařízení lze specifikovat, že danému zařízení má být vždy přidělena privátní adresa a to i v případě, že pool veřejných adres ještě nebyl vyčerpán.<br />
<br />
Trvale připojená zařízení využívají veřejné adresy by měla mít zaregistrovánu rezervovanou adresu z rozsahu, který je přidělen organizační jednotce vlastnící dané zařízení (viz. tabulka). Zařízení tak bude mít garantovánu stalou veřejnou IP adresu a nebude se zbytečně zmenšovat pool s veřejnými adresami pro ostatní zařízeni, která se na FJFI síti vyskytují pouze občas. Pro běžná zařízení (počítače) je preferováno použití veřejných adres, jelikož při jejich použití není fungování síťového zařízení omezeno potencíálními problémy NATu (vyplývající z podstaty NATu, vytížení NATovacího zařízení případně jeho nedostupnosti) a lze jednodušeji řešit případné stížnosti týkající se konkrétní adresy.<br />
<br />
Existuje ale i skupina speciálních zařízení (např. tiskárny) u nichž je lepší použít privátní adresy. Provoz některých zařízení na veřených adresách totiž představuje bezpečnostní hrobu vzhledem k neexistujícím automatickým security updatům firmware a omezeným možnostem konfigurace zabezpečení. Takové zařízení by ideálně měla být na samostatné VLAN <tt>fjfi-*-fragile</tt>, ale vzhledem ke komplikovanému managementu sítě pro ně je zatím vyhrazen rozsah privátních adres z VLAN <tt>fjfi-*-def</tt> (viz. [[#Priv.C3.A1n.C3.AD_adresy_na_default_VLAN_fjfi-.2A-def|níže]]). Adresu z tohoto rozsahu lze jednoduše vybrat v rozhraní pro registrace síťových zařízení.<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení veřejných IP rozsahů (detaily)<br />
|-<br />
!IP rozsah<br />
!adresy<br />
!Comment<br />
|-<br />
!rowspan="3"|147.32.4.0/24<br />
!147.32.4.0-70<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.4.71-189</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.4.190-255<br />
|??<br />
|-<br />
!rowspan="2"|147.32.5.0/24<br />
!147.32.5.0-49<br />
|??<br />
|-<br />
!<span style="color: blue">147.32.5.50-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="4"|147.32.6.0/24<br />
!147.32.6.2-99<br />
|vyhrazeno unixářům (Richard Liska, Milan Šiňor) <br />
|-<br />
!147.32.6.100-199<br />
|pclab, kanceláře, ... (Antonín Novotný)<br />
|-<br />
!147.32.6.200-254<br />
|InfoLab, kanceláře (Josef Blažej)<br />
|-<br />
!147.32.6.255<br />
|rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
|-<br />
!rowspan="2"|147.32.7.0/24<br />
!147.32.7.1-31<br />
|tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
|-<br />
!<span style="color: blue">147.32.7.32-254</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!rowspan="7"|147.32.8.0/24<br />
!147.32.8.2-79<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.80-96<br />
|studovna 214<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
|-<br />
!147.32.8.97-109<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.110-149<br />
|KM učebny<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
|-<br />
!147.32.8.150-223<br />
|KM zaměstnanci (desktopy, frekventované notebooky)<br />
|-<br />
!147.32.8.224-230<br />
|KJ zaměstnanci (desktopy)<br />
|-<br />
!147.32.8.224/27<br />
|Tereza<br />
* 147.32.8.241 - 147.32.8.250 desktopy<br />
* 147.32.8.253 - Printer 4x4 Pro<br />
|-<br />
!rowspan="3"|147.32.9.128/25<br />
!147.32.9.128/27<br />
|KSE (Miroslav Virius ?)<br />
|-<br />
!147.32.9.160-223<br />
|Tiskárny<br />
* 147.32.9.190 rezervace<br />
* 147.32.9.191 rezervace<br />
* 147.32.9.192 rezervace<br />
* 147.32.9.212 rezervace<br />
* 147.32.9.213 rezervace<br />
* správce Míra Minárik, Pavel Kerouš<br />
|-<br />
!147.32.9.224/27<br />
|různé (zatím pro "speciální" zařízení jako např. kartové systémy, ...), není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
|-<br />
!rowspan="2"|147.32.10.0/25<br />
!147.32.10.0/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.10.128/25<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.11.0/24<br />
!147.32.11.0/24<br />
|žádné další podrobnosti ke konfiguraci<br />
|-<br />
!147.32.22.0/24<br />
!<span style="color: blue">147.32.22.101-199</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|-<br />
!147.32.25.0/24<br />
!<span style="color: blue">147.32.25.102-219</span><br />
|"Veřejný segment" s dynamicky přidělovanými adresami pro registrovaná zařízení<br />
|}<br />
<br />
==Privátní adresy==<br />
<br />
Vzhledem k nedostatku veřejných IP adres bylo nutné začít využívat i privátní IP adresy. Ty jsou používany jak čistě interně (např. management), tak i pro běžný provoz s NATem aktuálně hlavně na WiFi sítích, kde si vzhledem k enormnímu nárůstu počtu zařízení není možné vystačit s dostupnými veřejnými adresami. Privátní IPv4 adresy jsou také používány pro neregistrovaná zařízení a automatický přístup k captive portálu na stránku s registrací.<br />
<br />
Bohužel se na "Jednání IT techniků ČVUT - 11.6.2015" dohodlo, že se privátní adresy nebudou routovat po ČVUT (resp. nedošlo ani k základní shodě na tom, jaké rozsahy by bylo možné použít s tím, že ostatní fakulty už využívají všechny dostupné privátní subnety). Tohle je podmínka (téměř - viz. RFC6598) nutná pro možnost zřízení globálního NATu, takže ani v budoucnu nelze očekávat poskytnutí této služby v rámci celého ČVUT. Další komplikací je využití privátních adres mezi různými lokalitami FJFI, kde je potřeba využít policy based routing a privátní adresy do druhé lokality dostat přes tunel resp. dedikovanou VLAN. Centrální L3 switche použité v FJFI lokalitách také mají relativně omezené možnosti konfigurace (nepodporují NAT, netflow, GRE tunely, malá TCAM pro PBR, ...).<br />
{|class="wikitable"<br />
!colspan="6"|Počet adres v podsítích dané velikosti<br />
|-<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
!IP rozsah<br />
!počet<br />
|-<br />
!/24<br />
|256<br />
!/21<br />
|2048<br />
!/18<br />
|16384<br />
|-<br />
!/23<br />
|512<br />
!/20<br />
|4096<br />
!/17<br />
|32768<br />
|-<br />
!/22<br />
|1024<br />
!/19<br />
|8192<br />
!/16<br />
|65536<br />
|}<br />
<br />
<br />
===Privátní adresy dle lokality===<br />
<br />
Pro centrálně spravované privátní adresy na FJFI je využíván rozsah <tt>172.16.0.0/12</tt> z nějž má každá lokalita přidělen jeden segment <tt>/16</tt> (~ 65k adres) a poslední subnet <tt>172.31.0.0/16</tt> se využívá ke speciálním účelům (např. spojovačky). Přidělený segment je dále dělen na subnety jejichž základní číslování je shodné v každé lokalitě (např. dle VLAN, využití, ...).<br />
<br />
{|class="wikitable"<br />
!colspan="3"|Rozdělení privátních IP rozsahů na FJFI po lokalitách<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Comment<br />
|-<br />
!10.0.0.0/8<br />
| --<br />
|Vyhrazeno pro potřeby ČVUT (sice to nebylo nikde oficiálně řečeno, ale je to jedinný privátní rozsah u nejž vzhledem k velikosti má smysl uvažovat o využití v rámci celého ČVUT)<br />
|-<br />
!172.16.0.0/16<br />
|Břehová<br />
|<br />
|-<br />
!172.17.0.0/16<br />
|Trojanova<br />
|<br />
|-<br />
!172.18.0.0/16<br />
|Trója<br />
|<br />
|-<br />
!172.19.0.0/16<br />
|Děčín<br />
|<br />
|-<br />
!172.31.0.0/16<br />
| --<br />
|Vyhrazeno pro speciální využití (např. spojovačky na privátní síti)<br />
|-<br />
!192.168.0.0/16<br />
| --<br />
|Adresy z tohoto rozsahu nebudou na FJFI nijak regulovány a jsou preferované pro uživatelské testovací resp. dočásné privátní sítě. Je na jejich správci, aby si vybral nepoužívaný rozsah v dané síti resp. VLAN, ale není zde zaručeno resp. monitorováno jestli jestli stejné adresy začne používat někdo další. Pro potřeby trvalého privátního adresované na FJFI síti je doporučeno dohodnout alokaci podsítě z odpovídajících 172.1x.0.0/16 rozsahů. Nědky může být vhodné použít adresování 172.1x.0.0/16 i např. pro clustery resp. sítě kompletně oddělené od zbytku infrastruktury (např. je lze pak zpřístupnit přes centrální VPN).<br />
|-<br />
!colspan="3"|Privátní rozsahy značené 172.<span style="color: blue">1x</span>.aaa.bbb budou dále znamenat adresy v libovolné lokalitě (br=<span style="color: blue">16</span>/tr=<span style="color: blue">17</span>/vh=<span style="color: blue">18</span>/dp=<span style="color: blue">19</span>)<br />
|}<br />
<br />
===Privátní adresy dle VLAN===<br />
<br />
Všechny standardní využívané VLAN budou mít přidělen určitý rozsah privátních adres. V závislosti na využití bude přizpůsobena konfigurace "Private routing" týkající se routování mezi lokalitami FJFI (žádné routování, routování přes tunel/VLAN nebo IPSec zabezpečené spojení), routování do světa skrz NAT a různé filtrování paketů "Private ACL" mezi privátními subnety. Jednotlivé subnety je dobré alokovat také s ohledem na to, jak komplikované bude případné přečíslování zařízení na daném subnetu.<br />
<br />
{|class="wikitable"<br />
!colspan="8"|Rozdělení privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!VLAN Name<br />
!NAT<br />
!Private<br/>routing<br />
!Private<br/>ACL<br />
!Komplikace<br/>přeadresování<br />
!Comment<br />
|-<br />
!colspan="8"|172.1x.0.0/17 - adresy pro globální využití ve všech lokalitách<br />
|-<br />
!172.1x.0.0/22<br />
|172.1x.0.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování serverů dostupných přímo ze všech lokálních sítí, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.4.0/22<br />
|172.1x.4.1<br />
|fjfi-*-srv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.8.0/22<br />
|172.1x.8.1<br />
|fjfi-*-srv<br />
|yes<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze ze serverových VLAN s IPSec zabezpečenou komunikací mezi FJFI lokalitami, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!172.1x.12.0/22<br />
| --<br />
|fjfi-*-srv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování serverů dostupné pouze z lokální VLAN (žádné routování či NAT)<br />
|-<br />
!172.1x.16.0/22<br />
|172.1x.16.1<br />
|fjfi-*-mgmt-net<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu síťových prvků (switche) dostupné pouze z mgmt-net VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.16.0/23<br />
|-<br />
!172.1x.20.0/22<br />
|172.1x.20.1<br />
|fjfi-*-mgmt-srv<br />
|yes/no<br />
|IPSec<br />
|deny<br />
|velké<br />
|Privátní adresování managementu serverů (IPMI, RAID controller, UPS, ...) dostupné pouze z mgmt-srv VLAN s IPSec zabezpečenou komunikací mezi lokalitami, komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.20.0/23<br />
|-<br />
!172.1x.24.0/22<br />
|172.1x.24.1<br />
|fjfi-*-fragile<br />
|yes/no<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování pro samostatný subnet "nedůvěryhodných" zařízení (např. tiskárny, specializovaná zařízení bez pravidelných security update, ...), komunikace z privátní adresy do internetu je NATována pro první polovinu adres 172.1x.24.0/23<br />
|-<br />
!172.1x.28.0/24<br />
|172.1x.28.1<br />
|fjfi-brtr-srv-clu<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.28.0/24)<br />
|-<br />
!172.1x.29.0/24<br />
| --<br />
|fjfi-brtr-srv-clu<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-clu VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.29.0/24)<br />
|-<br />
!172.1x.30.0/24<br />
|172.1x.30.1<br />
|fjfi-brtr-srv-priv<br />
|yes<br />
|default<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN, komunikace z privátní adresy do internetu je NATována (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.30.0/24)<br />
|-<br />
!172.1x.31.0/24<br />
| --<br />
|fjfi-brtr-srv-priv<br />
|no<br />
|no<br />
|deny<br />
|velké<br />
|Privátní adresování dostupné pouze z fjfi-brtr-srv-priv VLAN (pro VLANy natažené do více lokalit se použijí adresy podle prvního názvu lokality ze jména VLAN, tj. 172.16.31.0/24)<br />
|-<br />
!172.1x.32.0<br/>-<br/>172.1x.51.255<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
| --<br />
|Rezervováno pro budoucí "globální využití"<br />
|-<br />
!172.1x.52.0/24<br/>172.1x.53.0/24<br />
|172.1x.52.1(*)<br/>172.1x.53.1(*)<br />
|VPN<br/>test<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro L2TP, PPTP, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.52.0/24 - PPTP server na nms-xx.fjfi.cvut.cz<br />
* 172.1x.53.0/24 - L2TP server na nms-xx.fjfi.cvut.cz<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.54.0/24<br/>172.1x.55.0/24<br />
|172.1x.54.1(*)<br/>172.1x.55.1(*)<br />
|OpenVPN<br/>admin<br />
|yes<br />
|default<br />
| --<br />
|malé<br />
|Privátní adresování pro admin OpenVPN klienty s přímým přístupem do sítě včetně privátních, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.54.0/24 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.55.0/24 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.56.0/22<br/>172.1x.60.0/22<br />
|172.1x.56.1(*)<br/>172.1x.60.1(*)<br />
|OpenVPN<br/>user<br />
|yes<br />
|default<br />
| --<br />
|nulové<br />
|Privátní adresování pro OpenVPN klienty, komunikace z privátní adresy do internetu je NATována<br />
* 172.1x.56.0/22 - UDP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
* 172.1x.60.0/22 - TCP OpenVPN server na nms-xx.fjfi.cvut.cz port 1194<br />
Tato síť používá vlastní gateway a zařízení na ní nejsou z vnějšku dostupná<br />
|-<br />
!172.1x.64.0/20<br />
|172.1x.64.1<br />
|fjfi-*-def<br />
|yes(*)<br />
|default<br />
|permit(*)<br />
|velké(*)<br />
|Privátní adresy na default VLAN (lokální síť v budově), detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-def]]<br />
|-<br />
!172.1x.80.0/20<br />
|172.1x.80.1<br />
|fjfi-*-wifi<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní rozsah pro speciální WiFi sítě, které mohou mít speciální konfiguraci např. pro konference, ...<strike>Rezervováno pro případné budoucí speciální požadavky na fjfi-*-def VLAN nebo rozšíření adresního prostoru na této VLAN</strike><br />
|-<br />
!172.1x.96.0/20<br />
|172.1x.96.1<br />
|fjfi-*-eduroam<br />
|yes<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť Eduroam, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-eduroam]]<br />
|-<br />
!172.1x.112.0/20<br />
|172.1x.112.1(*)<br />
|fjfi-*-wififjfi<br />
|yes(*)<br />
|default<br />
|permit<br />
|malé<br />
|Privátní adresy pro wireless síť WiFiFJFI, detaily viz. [[Network#Privátní adresy na default VLAN fjfi-*-wififjfi]], tato síť používá vlastní gateway pro řízení přístupu pomocí captive portálu a zařízení na ní nejsou z vnějšku dostupná.<br />
|-<br />
!colspan="8"|172.1x.128.0/18 - adresy pro lokální využití v konkrétní lokalitě lokalitě<br />
|-<br />
!colspan="8"|172.16.128.0/18 - Břehová<br />
|-<br />
!?rezervace?<br/>172.16.128.0/22<br />
|172.16.128.1(*)<br />
|fjfi-br-kf-private<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro síť KF s NAT a gateway zajištěnou [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=38061 vlastním zařízením]<br />
|-<br />
!colspan="8"|172.17.128.0/18 - Trojanova<br />
|-<br />
!?rezervace?<br/>172.17.128.0/22<br />
|172.17.128.1(*)<br />
|fjfi-tr-hyperion<br />
|yes(*)<br />
|default<br />
|permit<br />
| --<br />
|Rezervace privátních adres pro KM+KIPL hyperion cluster s vlastní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=24149 NAT a gateway]<br />
|-<br />
!?rezervace?<br/>172.17.132.0/22<br />
|172.17.132.1<br />
|"xen-vdi"<br />
|yes<br />
|default<br />
|permit<br />
|velké<br />
|Privátní adresování pro Xen virtualizované desktopy, komunikace z privátní adresy do internetu je NATována<br />
|-<br />
!colspan="8"|172.18.128.0/18 - Trója<br />
|-<br />
!colspan="8"|172.19.128.0/18 - Děčín<br />
|-<br />
!colspan="8"|172.1x.192.0/18 - rezervováno<br />
|-<br />
|colspan="8"|Adresy pro lokální využití v konkrétní lokalitě rezervované pro případ, že dojde k L2 segmentaci sítě podle příslušnosti k různým součástem FJFI<br />
|}<br />
<br />
<br />
====Privátní adresy na default VLAN <tt>fjfi-*-def</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.64.0/20 na default VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.64.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
* 172.18.71.0/24 je v Tróji využíváno pro privátní adresování (měřících) zařízení KJR (humlond)<br />
|-<br />
!172.1x.72.0/22<br />
| --<br />
| --<br />
|vokacpet<br />
|unused<br />
|-<br />
!172.1x.76.0/23<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro "nepočítačová" zařízení (např. tiskárny)<br />
|-<br />
!172.1x.78.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy rezervované pro servery (např. printserver pro komunikaci na tomto subnetu)<br />
|-<br />
!172.1x.79.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným, smazaným a neregistrovaným zařízením<br />
|}<br />
<br />
====Privátní adresy na eduroam VLAN <tt>fjfi-*-eduroam</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.96.0/20 na eduroam VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.96.0/21<br />
|dynamic+reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.110.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.111.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným (smazaným) zařízením<br />
|}<br />
<br />
====Privátní adresy na wififjfi VLAN <tt>fjfi-*-wififjfi</tt>====<br />
<br />
{|class="wikitable"<br />
!colspan="6"|Využití privátních IP adres 172.1x.112.0/20 na wififjfi VLAN<br />
|-<br />
!IP rozsah<br />
!DHCP<br />
!NAT<br />
!Admin<br />
!Comment<br />
|-<br />
!172.1x.112.0/21<br />
|dynamic+reserved<br />
|auth<br />
|vokacpet<br />
|Adresy pro běžná registrovaná zařízeni s přístupem do světa přes NAT<br />
|-<br />
!172.1x.126.0/24<br />
|reserved<br />
|yes<br />
|vokacpet<br />
|Adresy pro AP na interfacu pro příslušnout VLAN (není povinné, ale vhodné pro monitoring)<br />
|-<br />
!172.1x.127.0/24<br />
|dynamic<br />
|limited<br />
|vokacpet<br />
|Adresy přidělované blokovaným zařízením<br />
|}<br />
<br />
===Individuální rozsahy privátních adres===<br />
<br />
Využití těchto adres není nijak regulováno, takže zde neexistují žádné překážky k jejich použití ale na druhou stranu se také nelze spolehnout na to, že stejné adresy nezačne používat někdo další. V níže uvedené tabulce je (nekompletní) seznam aktuálně používaných adres z 192.168.0.0/16 rozsahu. Bylo by vhodné zvážit jestli do budoucna nezačít využívat rezervované subnety z 172.1x.0.0/16 rozsahů.<br />
<br />
{|class="wikitable"<br />
!colspan="7"|Rozdělení individuálních privátních IP rozsahů na FJFI<br />
|-<br />
!IP rozsah<br />
!Gateway<br />
!Public<br />
!VLAN Name<br />
!OU<br />
!Admin<br />
!Comment<br />
|-<br />
!192.168.x.0/24<br />
|192.168.x.1<br />
|147.32.x.y<br />
|None<br />
|KIPL<br />
|drabmart<br />
|Privátní adresy pro KM+KIPL cluster<br />
|-<br />
!192.168.3.0/24<br />
|192.168.3.1<br />
|147.32.4.13<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF - kanceláře<br />
|-<br />
!192.168.11.0/24<br />
|192.168.11.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|-<br />
!192.168.20.0/24<br />
|192.168.20.1<br />
|147.32.x.y<br />
|None<br />
|KF<br />
|cepiljan<br />
|Privátní adresy na KF (?)<br />
|}<br />
<br />
=IPv6=<br />
<br />
ČVUT přiděluje standardně <tt>/56</tt> rozsahy (lze použít pro vytvoření 256 podsítí) pro lokality připojené přes Dejvice ze přiděleného IPv6 rozsahu <tt>2001:718:2::/48</tt>. Bohužel vzhledem ke způsobu routování IPv6 není možné používat adresy z "dejvického" rozsahu v ostatních lokalitách (CESNET to ve své síti nepodporuje, tj. např. v Tóji a Děčíně), tam bude využit jiný rozsah přidělený ČVUT a routovaný Pasnetem resp. CESNETem.<br />
<br />
==IPv6 adresy dle lokality==<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI po lokalitách<br/>(FJFI IPv6 rozsahy 2001:718:2:1800::/54)<br />
|-<br />
!IP rozsah<br />
!Lokalita<br />
!Admin<br />
!Comment<br />
|-<br />
!2001:718:2:<span style="color: blue">17</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený na FJFI (včetně DNS reverzů, bude vrácen VICu po alokaci "1b")<br />
|-<br />
!2001:718:2:<span style="color: blue">18</span>00::/56<br />
|Břehová<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">19</span>00::/56<br />
|Trojanova<br />
|vokacpet<br />
|Veřejné adresy<br />
|-<br />
!2001:718:2:<span style="color: blue">1a</span>00::/56<br />
|Trója<br />
|vokacpet<br />
|Veřejné adresy (aktuálně nevyužitý rozsah nazvaný FJFI test, čeká na novou serverovnu PASNETu v Tróji)<br />
|-<br />
!2001:718:2:<span style="color: blue">1b</span>00::/56<br />
| --<br />
|vokacpet<br />
|Nevyužitý rozsah aktuálně přidělený FJFI ČVUT (pro "hezčí" FJFI IPv6 netmask)<br />
|-<br />
!??<br />
|Děčín<br />
|vokacpet<br />
|Veřejné adresy (další ČVUT adresy přidělené z routovatelného rozsahu CESNET)<br />
|}<br />
<br />
==IPv6 adresy dle VLAN==<br />
<br />
Každá VLAN přidělená FJFI má standardně přiřazen jeden IPv6 subnet <tt>/64</tt> z přiděleného rozsahu <tt>/56</tt> (256 možných <tt>/64</tt> subnetů). Příslušné číslo FJFI VLAN-2400 (tj. hodnoty v intervalu 0-99) budou přímo součástí IPv6 adresy na pozici 56-63. Vyjímkou je prvních 40 rezervovaných VLAN u nichž se používá pouze poslední číslice.<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Rozdělení IPv6 rozsahů na FJFI podle VLAN<br />
|-<br />
!IP rozsah<br />
!VLAN ID<br />
!VLAN Name<br />
!Comment<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">0</span>::/64<br />
|24?<span style="color: blue">0</span><br />
|fjfi-*-srv<br />
|Subnet pro servery<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">1</span>::/64<br />
|24?<span style="color: blue">1</span><br />
|fjfi-*-def<br />
|Veřejná síť ("default VLAN" pro běžné počítače) <br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx0<span style="color: blue">9</span>::/64<br />
|24?<span style="color: blue">9</span><br />
|fjfi-*-fragile<br />
|Segment pro "nepočítačová" síťová zařízení<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">48</span>::/64<br />
|24<span style="color: blue">48</span><br />
|fjfi-brtr-srv-clu<br />
|Public segment mezi Trojankou a Břehovkou s duální gateway přes HSRP<br />
|-<br />
!2001:718:2:xx<span style="color: blue">49</span>::/64<br />
|24<span style="color: blue">49</span><br />
|fjfi-brtr-srv-priv<br />
|Privátní segment mezi Trojankou a Břehovkou využívaní pro komunikaci mezi servery<br />
|-<br />
|colspan="4"| ...<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a0</span>::/64<br/> -- <br/>2001:718:2:xx<span style="color: blue">ff</span>::/64<br />
| --<br />
| --<br />
|Rezervováno pro budoucí/speciální využití<br />
|-<br />
!2001:718:2:xx<span style="color: blue">a?</span>::/60<br />
|colspan="2"|Static route to OpenVPN server<br />
|OpenVPN IPv6 network<ul><br />
<li>...<span style="color: blue">a0</span>::/64 - openvpn.fjfi.cvut.cz:1194/udp</li><br />
<li>...<span style="color: blue">a1</span>::/64 - openvpn.fjfi.cvut.cz:1194/tcp</li><br />
<li>...<span style="color: blue">a2</span>::/64 - openvpn.fjfi.cvut.cz:443/udp</li><br />
<li>...<span style="color: blue">a3</span>::/64 - openvpn.fjfi.cvut.cz:443/tcp</li><br />
<li>...<span style="color: blue">a4</span>::/64 - openvpn.fjfi.cvut.cz:53/udp</li><br />
<li>...<span style="color: blue">a5</span>::/64 - openvpn.fjfi.cvut.cz:53/tcp</li><br />
<li>...<span style="color: blue">a6-af</span>::/64 - reserved</li><br />
</ul><br />
|}<br />
<br />
==Využití IPv6 adres v rámci <tt>/64</tt> subnetů==<br />
<br />
Každý subnet na IPv6 má prakticky vzato "neomezené" množství IPv6 adres. Lze tedy zavést další jemnější dělení těchto subnetů, aby bylo možné pro určité skupiny počítačů specifikovat například různá firewall pravidla (např. omezení přístupu na tiskárny pouze z IPv6 adres ČVUT). Nevyužité (zde nedefinované) části <tt>/64</tt> subnetů budou mít standardně zakázanou jakoukoliv komunikaci přímo na fakultním routeru.<br />
<br />
Navíc pro IPv6 nebudou v principu existovat dynamicky přidělované adresy jako je tomu na IPv4, kde je nutné recyklovat omezený adresní prostor. Všechna registrovaná zařízení (síťová rozhraní) budou mít statickou rezervaci konkrétní IPv6 adresy resp. jeji <tt>/64</tt> suffix, který tak bude stejný při připojení zařízení ve všech lokalitách (pro běžné uživatelské subnety jako např. <tt>def</tt>, <tt>eduroam</tt> a <tt>wififjfi</tt> VLAN). Takto přidělená adresa navíc nebude v budoucnu recyklována pro jiné uživatelské zařízení (existují vyjímky, jako např. servery u nichž je změna adresy občas nežádoucí). V případě potřeby je možné u existujícího zařízení smazat aktuální IPv6 adresu a nechat vygenerovat novou.<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-srv===<br />
<br />
* změny ve využití adres jsou u serverů velice komplikované<br />
** konfigurace sítě je na serverech statická (nepoužívají DHCP)<br />
** pro použité adresy může mít řada zařízení (nejen na tomto segmentu) zkonfigurována různá pravidla (např. firewall)<br />
** pokud se neobjeví ''závažné nedostatky'' aktuálního plánu (např. nové standardy) tak jsou adresy přiděleny navždy<br />
* aktuálně budou využívány pouze adresy z rozsahu 2001:718:2:1x00::/96<br />
* doporučený formát IPv6 addres<br />
*# IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x00::147.32.9.17) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x00::17)<br />
*# adresy z rosahu 2001:718:2:1x00::0001:0000-2001:718:2:1x00::00ff:ffff (~ 2^24 adres)<br />
*# registrační GUI bude automaticky generovat neobsazené IPv6 adresy ze správných rozsahů<br />
*# libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)<br />
* jeden server může mít zároveň přiděleno více aktivních IPv6 adres<br />
* je možné alokovat samostatný rozsah IPv6 adres pro skupinu počítačů<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru<br />
** aktuálně neexistují žádné předdefinované skupiny<br />
*** lze si představit např. skupiny dle OS (pro jednodušší psaní filtrů na aktuálně zneužívané chyby)<br />
*** také skupiny dle orgaizačních jednotek pro omezení komunikace na vlastní servery<br />
*** teprve praktické používání IPv6 ukáže reálné potřeby<br />
** využití skupin zde musí být zdokumentováno<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-srv</span> (2001:718:2:xx<span style="color: DarkGreen">00</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">00</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Standardní IPv6 rozsah serverů<br />
|}<br />
<br />
===Pravidla IPv6 pro server VLAN fjfi-*-def===<br />
<br />
* změny ve využití adres mohou být relativně jednoduché při dodržování následujících zásad<br />
** zařízení budou pro IPv6 konfigurace využívat výhradně router advertisementy + stavové DHCPv6<br />
*** vzhledem k nerecyklování IPv6 adres je možné nastavit velice dlouhý lease time<br />
*** nelze použít "nekonečno" jinak bychom přidělenou adresou v budoucnu nebyly schopni změnit<br />
*** maximální lease time tedy bude jeden měsíc<br />
** manuální konfigurace je silně nedoporučena<br />
*** pokud se rozhodneme změnit IPv6 adresování tak může dojít k problémům<br />
*** z hlediska správce IPv6 rozsahu je to problém čistě uživatele, který nedbal doporučení a nebude na něj brán ohled<br />
* podobně jako u serverové VLAN <tt>fjfi-*-srv</tt> bude možné zařízení zařazovat do skupin<br />
** pro jednodušší psaní pravidel s IPv6 rozsahy<br />
** každá skupina bude mít rozsah <tt>/96</tt><br />
** skupina může mít např. vlastní ACL přímo na routeru (např. omezení komunikace po ČVUT pro tiskárny)<br />
** využití skupin zde musí být zdokumentováno<br />
* jedno zařízení může mít zároveň přiděleno více aktivních IPv6 adres<br />
* doporučený formát IPv6 addres (pouze správce sítě může s rozumným důvodem využít jinou než první možnost)<br />
*# registrační GUI bude [[Registrace_MAC#Pravidla pro automatické vytváření rezervovaných adres|automaticky generovat neobsazené IPv6 adresy ze správných rozsahů]]<br />
*# <strike>IPv6 prefix + stávající IPv4 adresa serveru (např. 2001:718:2:1x01::147.32.8.52) nebo pouze poslední číslice z IPv4 adresy (např. 2001:718:2:1x01::852)</strike><br />
*# <strike>adresy z rosahu 2001:718:2:1x01::0001:0000-2001:718:2:1x01::00ff:ffff (~ 2^24 adres)</strike><br />
*# <strike>libovolné jiné z <tt>/96</tt> které se nekryjí s IPv4 formáty 147.32.0.0/16 (::9320:0000-ffff), 10.0.0.0/8 (::0a00:0000-0aff:ffff), 172.16.0.0/12 (::ac10:0000-::ac1f:0000), 192.168.0.0/16 (::c0a8:0000-ffff)</strike><br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-def</span> (2001:718:2:xx<span style="color: DarkGreen">01</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!colspan="4"|Adresy pro standardní a speciální rozsahy 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/88<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální IPv6 rozsah pro běžná zařízení (ručně přidělované adresy, např. 2001:718:2:1901::852), preferované jsou ale níže uvedené rozsahy s konkrétním účelem (dle typu zařízení, organizační jednotky, ...)<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy (nutné pro zařízení, které byli primárně registovany pro jinou lokaci)<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">2</span>::/96<br/>-<br/>2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">f</span>::/96<br />
|vokacpet<br />
|Rezervovaný rozsah pro budoucí využití<br />
|-<br />
!fragile<br/>printer<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro tiskárny s omezením komunikace po ČVUT<br />
|-<br />
!restricted<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací pouze přes http/https (+ lokální DNS)<br />
|-<br />
!restricted<sup>2</sup><br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">1?</span>::/96<br />
|vokacpet<br />
|Rozsah s povolenou komunikací jen na vyhrazené lokální servery (adresy pro blokované, neregistrované, zlobivé, ... zařízení). Zatím by taková zařízení nemusela dostávat žádnou IPv6 adresu a do příslušná omezení a informační stranky by se zobrazili na základě přidělené IPv4 adresy.<br />
|-<br />
! --<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">??</span>::/96<br />
| --<br />
|Skupina zařízení s omezeními dle uživatelských požadavků - návrhy?<br />
|-<br />
!colspan="4"|Adresy vyhrazené pro zařízení kateder 2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/88<br />
|-<br />
!ČVUT<br/>FJFI<br/>Other<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">100</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení ČVUT, FJFI a Ostatní<br />
|-<br />
!KM<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">101</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KM<br />
|-<br />
!KF<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">102</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KF<br />
|-<br />
!KJ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">103</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJ<br />
|-<br />
!KIPL<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">104</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KIPL<br />
|-<br />
!KFE<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">105</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KFE<br />
|-<br />
!KMAT<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">106</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KMAT<br />
|-<br />
!KJCH<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">107</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJCH<br />
|-<br />
!KDAIZ<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">108</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KDAIZ<br />
|-<br />
!KJR<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">109</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KJR<br />
|-<br />
!KSI<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10a</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení KSI<br />
|-<br />
!CRRC<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10b</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení CRRC<br />
|-<br />
!Elsa<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10c</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Elsa<br />
|-<br />
!Děkanát<br />
!2001:718:2:xx<span style="color: DarkGreen">01</span>:0:<span style="color: blue">10d</span>::/96<br />
|vokacpet<br />
|IP rozsah vyhrazený pro zařízení Děkanátu<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-eduroam===<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* blokovaná zařízení nedostanou od DHCPv6 přidělenou IPv6 adresu<br />
** převedeno na problém samotného IPv4 a blokovaných zařízení, který je již vyřešen<br />
** aktuálně tedy nemáme plnou podporu IPv6 only zařízení, ale jen v případě ojedinělých případů blokace<br />
<br />
{|class="wikitable"<br />
!colspan="4"|Skupiny adres na server VLAN <span style="color: DarkGreen">fjfi-*-eduroam</span> (2001:718:2:xx<span style="color: DarkGreen">06</span>::/64)<br />
|-<br />
!Název<br />
!IPv6 rozsah<br />
!Owner<br />
!Comment<br />
|-<br />
!default<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">0</span>::/96<br />
|vokacpet<br />
|Speciální rozsah (ručně přidělované/rezervované adresy), žádné restrikce<br />
|-<br />
!dynamic<br />
!2001:718:2:xx<span style="color: DarkGreen">06</span>:0:<span style="color: blue">1</span>::/96<br />
|vokacpet<br />
|Rozsah vyhrazený pro dynamicky přidělované adresy, minimální restrikce<br />
|}<br />
<br />
===Pravidla IPv6 pro wireless VLAN fjfi-*-wififjfi===<br />
<br />
* změny ve využití adres triviální (žádné statické konfigurace krom management serveru)<br />
* konfigurace by měla fungovat tak, aby klient mohl nakonec využívat nativní IPv6 konektivitu bez dalšího (linuxového) routeru (NAT) na cestě<br />
* zbývá dořešit technické detaily autentizace na captive portálu a také blokovaná (neregistrovaná a smazaná) zařízení<br />
** neautentizovaná zařízení dostanou pouze IPv4 adresu a budou tak mít přístup ke captive portálu<br />
** DHCPv6 bude defaultně zkonfigurováno, aby zařízením neposkytlo IPv6 adresu do té doby než je uživatel uspěšně ověřen<br />
** po autentizaci přes captive portál na IPv4 modifikovat dynamicky konfiguraci DHCPv6 a povolit přidělení adresy s lease time ~ 1hodina<br />
*** asi to je možné řešit přes DHCPv6 classes, ale ty nejsou podporovány v ISC DHCP 4.2.5, který je součástí CentOS7<br />
*** nebude fungovat pro IPv6 only zařízení (to tu aktuálně vůbec neřešíme a v budoucnu se uvidí co bude možné např. s 6to4 překlady adres)<br />
<br />
=Firewall=<br />
[[Blokované porty]]<br />
<br />
=Provozní poznámky=<br />
<br />
* SMC8626<br />
** nejnovější firmware v1.4.0.8 je nestabilní (pro multicast a mam pocit že docházelo i k odpadnutí managementu)<br />
** aktualni firmware v1.1.0.2 nelze managovat přes VLANu (jinou než 1), kdy je na daném portu zároveň zapnutý <tt>spanning-tree edge-port</tt>, jelikož po restartu se nelze k managementu připojit dokud se nevytáhne a vrátí zpět ethernetový kabel => uplink nesmí mít tuhle volbu zapnutou</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Slu%C5%BEby_a_servery&diff=3750Služby a servery2016-05-02T09:47:02Z<p>Keroupav: /* Domovské a web adresáře */</p>
<hr />
<div>{{Servers}}<br />
<br />
=[http://it.fjfi.cvut.cz Oficiální dokumentace]=<br />
<br />
=Oficiální mail=<br />
*servery<br />
** MS Exchange Edge BRK1, BRK2 (příjem pošty, fronty, antivir, antispam) (frontside)<br />
**DAG "DAG-FJFI" na serverech MRK1, MRK2 MS Exchange Hub-Transport (backside)<br />
***DagNetwork1 IP 147.32.9.81 (MRK1) Subnet 147.32.9.64/26 - replication diabled<br />
***DagNetwork2 IP 10.198.76.11 (MRK1), 10.198.76.62 (MRK2) Subnet 10.198.76.0/24 - replication enabled<br />
***DagNetwork3 IP 147.32.9.23 (MRK2) Subnet 147.32.9.0/26 - replication disabled<br />
**databáze DB-TR (zaměstnanci Trojanova)<br />
**databáze DB-ST (studenti)<br />
**databáze DB-BR (zaměstnanci Břehová)<br />
*ověřování hlavním uživatelským jménem / heslem<br />
*výběr pošty<br />
**[https://webmail.fjfi.cvut.cz webmail] https://webmail.fjfi.cvut.cz<br />
**IMAP, POP3 - imap.fjfi.cvut.cz<br />
**X.400 - protokol MS Outlooku<br />
*odesílání pošty - SMTP AUTH - smtp.fjfi.cvut.cz<br />
*limity emailových služeb<br />
**příjem zprávy max.40MB, odchozí zpráva max.40MB<br />
**velikost poštovní přihrádky: zaměstnanec 2 GB, student 300 MB (na žádost lze zvětšit)<br />
<br />
=Domovské a web adresáře=<br />
*servery<br />
**doménový namespace FRK, replikované adresáře na ARK1 a ARK2<br />
**adresáře Home, WWW, Share, Profile<br />
*MS sdílení (samba) - přístup pouze ze školních IP nebo po připojení přes [[VPN]]<br />
**domovské adresáře na \\fjfi.cvut.cz\frk\home\username<br />
**web adresáře na \\fjfi.cvut.cz\frk\www\username<br />
**profile adresáře na \\fjfi.cvut.cz\frk\profile\username (pouze pro studenty nabo na vyžádání zaměstnance)<br />
*vzdálený přístup<br />
**webdav (přistup odkudkoliv - zabezpečení přes SSL) pozn. dost nespolehlivé<br />
***domovské adresáře na https://people.fjfi.cvut.cz/home/username<br />
***web adresáře na https://people.fjfi.cvut.cz/web/username<br />
**webdav terminálový server<br />
***Vzdálená plocha (RemoteDesktop) server SRK.fjfi.cvut.ct (účet FJFI)<br />
**SSH<br />
***připojení prostřednictvím scp.fjfi.cvut.cz (např. WinSCP)<br />
<br />
=Vzdálený přístup=<br />
*testovací Windows Terminal Server na [[ts.fjfi.cvut.cz]] (klient "Remote Desktop Connection", [http://www.rdesktop.org/ rdesktop])<br />
*testovací [[VPN]] server<br />
*shell na [[kmlinux.fjfi.cvut.cz]] (klient [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html putty], ssh)<br />
*... (viz. info o [[Servers|serverech]])</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=3709Doména FJFI2016-03-01T13:27:07Z<p>Keroupav: /* Rozsahy UID/GID */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ARK1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ARK2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| SRK || Trojanova || terminal server Windows<br />
|-<br />
| VRK2 || Trojanova || virtualizační server<br />
|-<br />
| Troja1 || Trója || DC, fileserver<br />
|-<br />
| DRK || Děčín || DC, LDAP<br />
|-<br />
| ARK3 || Děčín || Fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| KMK || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| Print2 || VRK2 || printserver Trojanova<br />
|-<br />
| IT || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| SCP || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Novější verze MIT Kerbera navíc standardně nepodporují starší/slabé šifry. Aktuálně máme otestováno pouze používání těchto starých šifer (konkrétně arcfour-hmac, což je dáno historickými důvody, kdy první konfigurace byla prováděna ještě proti w2k3 serveru) a v takovém případě je nutné MIT Kerberu povolit používání starých šifrovacích algoritmů pomocí volby <tt>allow_weak_crypto = true</tt>.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** účet typu stu<br />
*** uživatel obdrží info o chystaném zablokování jeho účtu emailem<br />
*** po 30 dnech je odebrán z organizačních jednotek a skupin<br />
*** přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
*** po dalších 90 dnech je odstraněn včetně dat<br />
** účet typu emp<br />
*** uživatel obdrží emailem info o zachování účtu včetně emailu, pokud to výslovně nežádá opak<br />
*** po 30 dnech je odebrán z organizačních jednotek a skupin<br />
*** přesunut do ou=katedra\emerit, status nastaven na "emerit" a poznamená se timestamp<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <4000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 2000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>Deprecated!<br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
</strike><br />
<br />
===Synchronizační skripty===<br />
<strike><br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
</strike><br />
<br />
===FnspeCmdService===<br />
<strike><br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
</strike><br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<strike><br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
</strike><br />
<br />
===ADScripts - synchronizace 2014===<br />
<br />
Přepis FnspeLibrary přímo do powershellu z důvodu malé flexibility v úpravě a kompilaci C# DLL knihovny. Rozhraní pro přístup k uživatelským datům zůstalo stejné jako v případě FnspeLibrary, rozdíl je pouze v několika řádcích inicializace a ta je demonstrována v <tt>example-usermap.ps1</tt>. Nové powershell rozhraní navíc přistupuje přímo k datům v usermap LDAPu a databázi Oracle obsahující číselníky (telefony, adresy, funkce ...).<br />
<br />
# zdrojové soubory powershell skriptů<br />
# (nejprve je nutné požádat správce gitlab o přidaní do skupiny comp)<br />
git clone https://gitlab.fjfi.cvut.cz/comp/adscripts.git<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
Pokud je/byl uživatel někdy členem skupiny administratorů, potom si tuto informaci AD poznamená do atributu <tt>adminCount</tt>, který podle dokumentace znamená: "Indicates that a given object has had its ACLs changed to a more secure value by the system because it was a member of one of the administrative groups (directly or transitively)". Účty, které mají nastaven "adminCount" příznak může modifikovat jen administrátor (vlastnost AD) - speciální uživatel používaný přes rozhraní na NMS není admin a proto např. nastavováni hesel pro wireless sítě nebude z rozhraní na NMS fungovat. Toto je další důvod proč by běžné uživatelské účty neměli být v admin skupinách.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 2000 a < 4000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 2000-2099 || vyhrazeno pro potřeby fakulty (2000-2019 vyhrazeno pro automaticky spravované skupiny, 2020-2099 rezervováno pro budoucí využití)<br />
|-<br />
| fusers || 2000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| Domain Users || 2001 || standardní skupina doménového uživatele<br />
|-<br />
| emp || 2002 || skupina pro všechny zaměstnance<br />
|-<br />
| stu || 2003 || skupina pro všechny studenty (mimo PhD a CZV)<br />
|-<br />
| stu_bc || 2004 || skupina pro všechny studenty bakalářských programů<br />
|-<br />
| stu_ing || 2005 || skupina pro všechny studenty magisterských programů<br />
|-<br />
| phd || 2006 || skupina pro všechny phd studenty<br />
|-<br />
| czv || 2007 || skupina pro všechny studenty celoživotního vzdělávání<br />
|-<br />
| external || 2010 || skupina pro externisty<br />
|-<br />
| brehova || 2011 || skupina pro uživatele v Břehové (primární pracoviště - např. pro home na místním fileserveru)<br />
|-<br />
| trojanova || 2012 || skupina pro uživatele v Trojanova (primární pracoviště - např. pro home na místním fileserveru)<br />
|-<br />
| decin || 2013 || skupina pro uživatele v Děčíně (primární pracoviště - např. pro home na místním fileserveru)<br />
|-<br />
| troja || 2014 || skupina pro uživatele v Troji (primární pracoviště - např. pro home na místním fileserveru)<br />
|-<br />
| || 2X00-2X99 || vyhrazeno pro potřeby katedry (2X00-2X09 vyhrazeno pro standardní automaticky spravované skupiny, 2X10-2X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 2X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 2X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 2X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 2X03 || student katedry, mimo PhD (not currently implemented)<br />
|-<br />
| "depName"_stu_bc || 2X04 || student bakalářského programu katedry<br />
|-<br />
| "depName"_stu_ing || 2X05 || student magisterského programu katedry<br />
|-<br />
| "depName"_phd || 2X06 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_czv || 2X07 || czv student katedry (aktuáně nejsou data pro realizaci)<br />
|-<br />
| <strike>"depName"_staff</strike> || 2X0? || <strike>učitel na katedře (automaticky synchronizováno dle Usermapu)</strike><br />
|-<br />
| "depName"_stu_bc_aaa || 2X1Y || student bakalářského programu "aaa" katedry<br />
|-<br />
| "depName"_stu_ing_bbb || 2X1Y || student magisterského programu "bbb" katedry<br />
|}<br />
<br />
=== Rozsahy gidNumber pro různé součásti ===<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 2000<br />
|-<br />
| km || 2100-2199<br />
|-<br />
| kf || 2200-2299<br />
|-<br />
| kj || 2300-2399<br />
|-<br />
| kipl || 2400-2499<br />
|-<br />
| kfe || 2500-2599<br />
|-<br />
| kmat || 2600-2699<br />
|-<br />
| kjch || 2700-2799<br />
|-<br />
| kdaiz || 2800-2899<br />
|-<br />
| kjr || 2900-2999<br />
|-<br />
| kse || 3000-3099<br />
|-<br />
| dekanat || 3100-3199<br />
|-<br />
| tereza || 3200-3299<br />
|-<br />
| crrc || 3300-3399<br />
|}<br />
<br />
<br />
=== Rozsahy UID/GID ===<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy UID/GID'''<br />
|- style="background: LightGrey;"<br />
! rozsah !! použití<br />
|-<br />
| 0-999 || systémové účty (neunikátní pro uid+gid)<br />
|-<br />
| 1000-1499 || lokální speciální účty (neunikátní pro uid+gid)<br />
|-<br />
| 1500-1999 || rezervováno pro budoucí využití<br />
|-<br />
| 2000-3999 || unikátní gidNumber v posixGroup objektech FJFI AD<br />
|-<br />
| 4000-4499 || unikátní uidNumber v posixUser objektech FJFI AD, který nemá odpovídající záznam v Usermapu<br />
|-<br />
| 4500-9999 || rezervováno pro budoucí využití<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-S''' || vyhrazeno pro potřeby fakulty (globálních a lokálních správců - využití nutno uvést do této tabulky!)<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''T-Z''' || vyhrazeno pro potřeby lokálního uživatele<br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), ARK3 (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště (DFS)<br />
**servery AR1, ARK2<br />
**Replicated folders: <br />
***Home (osobní síťové adresáře)<br />
***Profile (roaming profiles pro účely učeben)<br />
***Share (obsahuje sdílené složky organizačních jednotek a jiné)<br />
***WWW (webhosting zaměstnanců)<br />
***WW2 (webhosting pro studenty)<br />
**Published to Namespace: FRK (Servers ARK1, ARK2)<br />
* Lokální datové úložiště Děčín (SMB 2.1)<br />
*server ARK3<br />
**Shared folders: Home, Profile, WWW, WWW2, Share<br />
**data jsou zde umístěna na základě pracovního/studijního zařazení<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Jednoduchý test přístupu k datům v AD se simple autentizací<br />
# klasické SSL spojení<br />
ldapsearch -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
<br />
Jednoduchý test přístupu k datům v AD s kerberos autentizací<br />
# získání kerberos ticketu pro autentizaci LDAP spojení<br />
kinit username@FJFI.CVUT.CZ <br />
# klasické SSL spojení<br />
ldapsearch -O minssf=0,maxssf=0 -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -O minssf=0,maxssf=0 -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
<br />
Příklad simple autentizace v pythonu:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu) v pythonu:<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
#conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
#conn.start_tls_s()<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Při použití SASL (GSSAPI) autentizace a zabezpečeného přenostu dat přes STARTTLS (port 389) nebo SSL (port 636) je navíc potřeba OpenLDAP knihovně vysvětlit, aby nepoužívala "SASL privacy layers", které LDAP rozhraní AD nepodporuje (z hlediska zabezpečení je to pořád OK). V takovém případě je potřeba přidat do <tt>/etc/openldap/ldap.conf</tt> řádek s <tt>sasl_secprops minssf=0,maxssf=0</tt> nebo přímo v kódu nastavit tyto parametry např. pomoci<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [4000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 2000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
* Synchronizace času v doméně<br />
** PDC emulator (ARK2) je manuálně nastaven na synchronizaci s externím zdrojem (tik.cesnet.cz,tak.cesnet.cz).<br />
*** w32tm /config /syncfromflags:MANUAL /manualpeerlist:tik.cesnet.cz,tak.cesnet.cz /reliable:yes /update<br />
*** Net stop w32time && net start w32time<br />
** Ostatní DC se synchronizují z domény.<br />
*** w32tm /config /syncfromflags:DOMHIER /update<br />
*** w32tm /resync /rediscover<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 4000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
===SSSD===<br />
<br />
Je řešení RedHatu pro autentizace (pam) a zpřístupnění informací o uživatelských učtech (nss). Má hromadu konfiguračních možností a obecně vypadá jako robustnějši řešení než např. samotný pam_ldap+nss_ldap (např. umožňuje cachování informací a "offline režim"). V principu lze použít dvě různé konfigurace pro lokální prostředí s AD. První řešení je na míru šité pro AD a vyžaduje, aby daný počítač byl joinutý do domény, druhé řešení používa klasickým způsobem LDAP a Kerberos rozhraní AD a nevyžaduje joinutí do domény.<br />
<br />
Aby systém vůbec začal využívat služby SSSD daemona, můsí se požadavky na autentizaci přesměrovat na <tt>pam_sss</tt> modul a uživatelské učty musí využívat <tt>nss_sss</tt>. Je potřeba upravit (zkontrolovat) následující konfigurační soubory:<br />
<br />
# /etc/nsswitch.conf<br />
...<br />
passwd: files '''sss'''<br />
shadow: files '''sss'''<br />
group: files '''sss'''<br />
...<br />
<br />
# /etc/pam.d/password-auth resp. /etc/pam.d/system-auth<br />
<br />
#%PAM-1.0<br />
# This file is auto-generated.<br />
# User changes will be destroyed the next time authconfig is run.<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 500 quiet<br />
'''auth sufficient pam_sss.so use_first_pass'''<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 500 quiet<br />
'''account [default=bad success=ok user_unknown=ignore] pam_sss.so'''<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3 type=<br />
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok<br />
'''password sufficient pam_sss.so use_authtok'''<br />
password required pam_deny.so<br />
<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
'''session optional pam_sss.so'''<br />
<br />
Na RedHat 6.x jsou tyto soubory automaticky správně modifikovány po instalaci SSSD. Tu lze provést následujícím příkazem:<br />
<br />
# důležité je nainstalovat i 32bit verzi jinak nebudou běhat<br />
# žádné aplikace zkompilované 32bit<br />
yum install sssd sssd-tools sssd-client sssd-client.i686<br />
<br />
Případně lze provést všechny potřebné modifikace PAM a NSS jedním příkazem<br />
<br />
authconfig --update --enablesssd --enablesssdauth<br />
<br />
====SSSD AD====<br />
<br />
Relativně minimální konfigurace SSSD proti FJFI AD může vypadat následujícím způsobem. Aby níže uvedená konfigurace fungovala, musí být splněny následující požadavky<br />
<br />
* počítač musí být zařazen v AD doméně (viz. [[Doména FJFI#Host/Service Kerberos Key|Host/Service Kerberos Key]])<br />
** musí existovat <tt>/etc/krb5.keytab</tt><br />
** musí být zkonfigurován kerberos v <tt>/etc/krb5.conf</tt> (viz. např. [[Doména FJFI#Kerberos|ukázka konfigurace]])<br />
** musí fungovat ověření pomocí keytabu <tt>kinit -k -t /etc/krb5.keytab host/name.fjfi.cvut.cz@FJFI.CVUT.CZ</tt><br />
* uživatelské účty musí mit posixAccount atributy (viz. [[Doména FJFI#Konfigurace účtu v AD|Konfigurace účtu v AD]])<br />
* <tt>pam_sssd</tt> v konfiguraci <tt>/etc/pam.d/system-auth</tt> a <tt>/etc/pam.d/password-auth</tt> (viz. [[Doména FJFI#SSSD|SSSD]])<br />
* <tt>sssd</tt> pro příslušné položky (<tt>passwd</tt>, <tt>shadow</tt>, <tt>group</tt>) v <tt>/etc/nsswitch.conf</tt> (viz. [[Doména FJFI#SSSD|SSSD]])<br />
* zkonfigurovat sssd daemona<br />
** použitelné konfigurace sssd uložené v <tt>/etc/sssd/sssd.conf</tt> jsou uvedeny níže<br />
** konfigurační soubor musí mít nastavena práva: <tt>chmod 600 /etc/sssd/sssd.conf</tt><br />
** při použití SELinuxu je potřeba mít správné securitz labely na konfiguracích: <tt>restorecon -R -v /etc</tt><br />
** nutné povolit a nastartovat sssd daemona<br />
<br />
# základní minimální konfigurace /etc/sssd/sssd.conf pro FJFI AD<br />
[sssd]<br />
domains = fjfi.cvut.cz<br />
services = nss, pam<br />
config_file_version = 2<br />
# requires sssd >= 1.11.7 - RHEL6.6, RHEL7.1 (similar to samba option "winbind normalize names")<br />
override_space = _<br />
<br />
[nss]<br />
<br />
[pam]<br />
# caching credentials for offline logging<br />
#offline_credentials_expiration = 3<br />
#offline_failed_login_attempts = 3<br />
<br />
[domain/fjfi.cvut.cz]<br />
id_provider = ad<br />
access_provider = ad<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# ad_hostname is necessary only if hostname can't be matched with entries in keytab<br />
#ad_hostname = host.fjfi.cvut.cz<br />
#ad_access_filter = (memberOf=cn=skupina,ou=Groups,dc=fjfi,dc=cvut,dc=cz)<br />
dyndns_update = false<br />
ldap_schema = ad<br />
ldap_id_mapping = false<br />
ldap_referrals = false<br />
# global<br />
min_id = 2000<br />
#max_id = 29999 # nutné zakomentovat kvůli přechodu na osobní čísla<br />
cache_credentials = true<br />
<br />
<strike><br />
Pokud chceme omezit skupinu lidí, kteří budou mít přístup k linuxovému stroji se zkonfigurovaným SSSD AD, potom musíme zvolit <tt>access_provider = ldap</tt>, jelikož výše uvedený <tt>ad</tt> provider nemá (v aktuální verzi na RHEL6.5) žádné další možnosti konfigurace. Konfigurace vlastního service by pak mohla vypadat např. následovně:<br />
<br />
# část konfigurace /etc/sssd/sssd.conf omezující přístup pro členy dané skupiny (RHEL6.x resp. sssd < 1.11)<br />
[domain/AD]<br />
id_provider = ad<br />
auth_provider = ad<br />
chpass_provider = ad<br />
'''access_provider = ldap'''<br />
ad_domain = fjfi.cvut.cz<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# folloving name is necessary only if local hostname doesn't correspond entries in keytab file<br />
#ad_hostname = host.fjfi.cvut.cz<br />
# defines user/group schema type<br />
ldap_schema = ad<br />
# using explicit POSIX attributes in the Windows entries (default is false)<br />
ldap_id_mapping = false<br />
# ldap access controls - requires access_provider set to ldap<br />
'''ldap_sasl_mech = GSSAPI'''<br />
'''ldap_access_filter = memberOf=cn=skupina,ou=Groups,dc=fjfi,dc=cvut,dc=cz'''<br />
'''ldap_access_order = filter,expire'''<br />
'''ldap_account_expire_policy = ad'''<br />
'''ldap_force_upper_case_realm = true'''<br />
# performance<br />
ldap_referrals = false<br />
# global<br />
min_id = 2000<br />
#max_id = 29999 # nutné zakomentovat kvůli přechodu na osobní čísla<br />
cache_credentials = true<br />
enumerate = true<br />
<br />
V budoucnu bude možné využít ad_access_filter, který je ale až v novější verzi SSSD 1.11 (RHEL7)<br />
</strike><br />
<br />
Po vytvoření požadované konfigurace je potřeba zajistit, aby se při startu systému spustil také sssd daemon<br />
<br />
# povolení spuštění sssd při startu + okamžitý start sssd služby na RHEL 6.x (init skripty)<br />
chkconfig sssd on<br />
service sssd start<br />
# povolení spuštění sssd při startu + okamžitý start sssd služby na RHEL 7.x (systemd)<br />
systemctl enable sssd<br />
systemctl start sssd<br />
<br />
====SSSD LDAP+Kerberos====<br />
<br />
[sssd]<br />
domains = LOCAL,LDAP<br />
services = nss, pam<br />
config_file_version = 2<br />
<br />
[nss]<br />
filter_groups = root<br />
filter_users = root<br />
reconnection_retries = 3<br />
entry_cache_timeout = 300<br />
entry_cache_nowait_percentage = 75<br />
<br />
[pam]<br />
reconnection_retries = 3<br />
offline_credentials_expiration = 3<br />
offline_failed_login_attempts = 3<br />
offline_failed_login_delay = 5<br />
pam_pwd_expiration_warning = 3<br />
<br />
[domain/LOCAL]<br />
id_provider = local<br />
auth_provider = local<br />
access_provider = permit<br />
<br />
[domain/LDAP]<br />
id_provider = ldap<br />
auth_provider = krb5<br />
chpass_provider = krb5<br />
access_provider = ldap<br />
ldap_uri = ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz,ldap://ldap3.fjfi.cvut.cz<br />
ldap_search_base = dc=fjfi,dc=cvut,dc=cz<br />
#ldap_id_use_start_tls = true<br />
#ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt<br />
# simple autentizace uživatele pro přístup k LDAP informacím<br />
# (při této konfiguraci je nutné použít TLS resp. ldap_id_use_start_tls,<br />
# jinak budou přenášená data nešifrovaná a existuje možnost jejich změny<br />
# na cestě což pro uidNumber představuje bezpečnostní hrozbu)<br />
#ldap_default_bind_dn = CN=proxy_posix,OU=Specials,DC=fjfi,DC=cvut,DC=cz<br />
#ldap_default_authtok_type = password<br />
#ldap_default_authtok = secret<br />
# kerberos autentizace uživatele pro přístup k LDAP informacím<br />
# (data jsou také šifrována kerberem a TLS tak není nezbytně nutné)<br />
ldap_sasl_mech = GSSAPI<br />
ldap_sasl_authid = host/'''''hostname.fjfi.cvut.cz'''''@FJFI.CVUT.CZ<br />
ldap_referrals = false<br />
ldap_schema = rfc2307bis<br />
ldap_user_search_base = ou=People,dc=fjfi,dc=cvut,dc=cz<br />
ldap_user_object_class = user<br />
ldap_user_home_directory = unixHomeDirectory<br />
ldap_user_principal = userPrincipalName<br />
ldap_user_name = sAMAccountName<br />
ldap_group_search_base = ou=groups,dc=fjfi,dc=cvut,dc=cz<br />
ldap_group_object_class = group<br />
#ldap_search_timeout = ??? # switch to offline mode after this timeout<br />
#ldap_network_timeout = 6<br />
#ldap_opt_timeout = 5<br />
#ldap_access_filter = memberOf=cn=emp,ou=Groups,dc=fjfi,dc=cvut,dc=cz<br />
#ldap_access_order = filter,expire<br />
ldap_access_order = expire<br />
ldap_account_expire_policy = ad<br />
ldap_force_upper_case_realm = true<br />
# kerberos configuration<br />
krb5_server = krb1.fjfi.cvut.cz,krb2.fjfi.cvut.cz,krb3.fjfi.cvut.cz<br />
krb5_realm = FJFI.CVUT.CZ<br />
krb5_canonicalize = false<br />
#min_id = 4000<br />
#max_id = 29999<br />
cache_credentials = true<br />
#account_cache_expiration = 7<br />
#entry_cache_timeout = 14400<br />
#enumerate = true<br />
<br />
Při použití výše uvedené konfigurace proti AD (tj. kerberos autentizace + TLS zabezpečený přenos dat) je potřeba na RHEL 6.x do <tt>/etc/openldap/ldap.conf</tt> přídat řádek<br />
<br />
# Active Directory not supporting nested security or privacy layers<br />
sasl_secprops minssf=0,maxssf=0<br />
<br />
===Kerberos===<br />
<br />
Toto je starší způsob z doby, kdy ještě neexistovala možnost použít sssd. Navíc lze tento starší návod aplikovat na platformách, které nepodporují sssd.<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu 5.x (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt>, na RedHatu 6.x (RHEL6) je to samé potřeba provést ještě v <tt>/etc/pam.d/password-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 4000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=4000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 4000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=4000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=4000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=4000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
Níže jsou uvedeny různé způsoby vygenerování keytabu. Tady jsou moje doporučení:<br />
<br />
* nejpohodlnější je [[Doména FJFI#Vytvoření keytabu v linuxu pomocí samby|vytvoření pomocí samby]]<br />
* bez instalace samby se lze obejít při [[Doména FJFI#vytvoření keytabu ve windows|vytvoření keytabu ve windows]]<br />
** nutné zkopírovat vygenerovaný keytab na cílový stroj nebo předat správci použité heslo, které lze použít k [[Doména FJFI#Ruční vytvoření keytabu|ručnímu vytvoření keytabu]]<br />
** některé <tt>net ads</tt> příkazy nemusí po tomto joinutí fungovat (vyžadují heslo v plaintextu v <tt>secrets.tdb</tt>)<br />
*** známe-li heslo použité ke generování keytabu je možné <tt>secrets.tdb</tt> dodatečně vytvořit<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu HOSTNAME$ v AD<br />
# (lze také naklikat v admin mmc User and Computer consoli)<br />
C:> dsrm -noprompt "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
C:> dsadd computer "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu (na w2k8 by měl být ktpass.exe součástí default instalace)<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -out c:\hostname.keytab -crypto all -mapOp set [-kvno 1]<br />
# vytvoření služby ftp pro hosta hostname.fjfi.cvut.cz (pouze pokud na "hostname" provozujeme službu FTP)<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -SetUpn -out hostname.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5 (asi historicke a zbytečné)<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
Pokud jsou potřeba různé host principaly, které budou mít možnost přímo získat ticket (např. samba potřebuje v ideálním případě host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ, host/hostname@FJFI.CVUT.CZ a HOSTNAME$@FJFI.CVUT.CZ), potom je možné další záznamy přidávat do již existujícího keytabu při zachování originálního hesla a kvno:<br />
<br />
dsrm -noprompt "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass.exe /princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ /out hostname.keytab /crypto All /ptype KRB5_NT_PRINCIPAL -desonly /mapuser FJFI\HOSTNAME$ +setupn +rndPass +setpass +answer<br />
#ktpass.exe /princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ /in hostname.keytab /out hostname.keytab /crypto All /ptype KRB5_NT_PRINCIPAL -desonly /mapuser FJFI\HOSTNAME$ -setupn +rndPass -setpass +answer<br />
ktpass.exe /princ host/HOSTNAME$@FJFI.CVUT.CZ /in hostname.keytab /out hostname.keytab /crypto All /ptype KRB5_NT_PRINCIPAL -desonly /mapuser FJFI\HOSTNAME$ -setupn +rndPass -setpass +answer<br />
ktpass.exe /princ HTTP/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ /in hostname.keytab /out hostname.keytab /crypto All /ptype KRB5_NT_PRINCIPAL -desonly /mapuser FJFI\HOSTNAME$ -setupn +rndPass -setpass +answer<br />
# k přidávání SPN záznamů lze také použít setspn.exe nebo adsiedit.msc<br />
#setspn -A other/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ hostname<br />
<br />
====powershell skript ====<br />
<br />
<syntaxhighlight lang="powershell"><br />
# Allow to run unsigned powershell code.<br />
# set-executionpolicy unrestricted<br />
<br />
# enable the AD module<br />
Import-Module ActiveDirectory<br />
<br />
# get domain info<br />
$domain = Get-ADDomain<br />
$domain_short = $domain.Name<br />
$domain_suffix = $domain.DNSRoot<br />
$domain_realm = $domain.DNSRoot.ToUpper()<br />
<br />
Write-Host -nonewline "Please enter system name (e.g. kmlinux): "<br />
$cname = Read-Host<br />
$cname_upper = $cname.ToUpper()<br />
$cname_fqdn = "$cname.$domain_suffix"<br />
<br />
# check for existing computer account or keytab file<br />
$cname_object = Get-ADComputer -Filter { Name -eq $cname }<br />
if( $cname_object -ne $null ) {<br />
#Remove-ADComputer -Identity "$cname" -Confirm:$false<br />
Write-Host "Computer account $cname already exists, remove using cmd or powershell:"<br />
Write-Host " cmd: dsrm -noprompt '$cname_object'"<br />
Write-Host " power: Remove-ADComputer -Identity '$cname' -Confirm:$false"<br />
Exit<br />
}<br />
<br />
If (Test-Path "$cname.keytab") {<br />
Write-Host "Keytab file $cname.keytab already exists"<br />
Write-Host "Remove using: rm $cname.keytab"<br />
Exit<br />
}<br />
<br />
# create new computer account and keytab file<br />
Write-Host "Create $cname.keytab for host/$cname_fqdn@$domain_realm"<br />
$cname_object = Get-ADComputer -Filter { Name -eq $cname }<br />
if( $cname_object -eq $null ) {<br />
New-ADComputer $cname_upper<br />
# setspn -A host/$cname_fqdn@$domain_realm $cname<br />
$ktpass_options = "/out $cname.keytab /crypto All /ptype KRB5_NT_PRINCIPAL -desonly /mapuser $domain_short\$cname_upper$"<br />
$ktpass_options_first = "$ktpass_options +setupn +rndPass +setpass +answer"<br />
$ktpass_options_next = "/in $cname.keytab $ktpass_options -setupn +rndPass -setpass +answer"<br />
cmd /c "ktpass.exe /princ host/$cname_fqdn@$domain_realm $ktpass_options_first"<br />
cmd /c "ktpass.exe /princ host/$cname@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ $cname_upper$@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ cifs/$cname_fqdn@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ cifs/$cname@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ nfs/$cname_fqdn@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ nfs/$cname@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ HTTP/$cname_fqdn@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ HTTP/$cname@$domain_realm $ktpass_options_next"<br />
}<br />
</syntaxhighlight><br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139). Výše uvedený kousek <tt>smb.conf</tt> konfigurace neobsahuje všechny změny nutné pro plnohodnotný provoz samba služeb a detailněji je to popsáné v [[Doména FJFI#Samba|další sekci]].<br />
<br />
# získání kerberos ticketu, abychom pro některé z následujících příkazu nemuseli zadávat heslo<br />
# (na RHEL7 je potřeba uložit ticket do souboru pomocí <tt>export KRB5CCNAME=/tmp/krb5cc_0</tt>)<br />
kinit admin # nutný pro join/leave operace<br />
#kinit host/test1234.fjfi.cvut.cz # má +/- dostačující práva pro "keytab" operace<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -k [ -n TEST1234 ] ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -k [ -n TEST1234 ] ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# přidání záznamu o počítači TEST1234 do AD bez nutnosti konfigurovat /etc/samba/smb.conf<br />
# net ads join -U administrator -n test1234 \<br />
# --option='workgroup = FJFI' --option='security = domain' \<br />
# --option='realm = FJFI.CVUT.CZ' --option='kerberos method = secrets and keytab' \<br />
# createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ osName=CentOS osVer=7.x createcomputer=Computers<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -k [ -n TEST1234 ] ads status<br />
<br />
# _kompletní_ vyčístění keytabu (případně lze smazat/přesunout /etc/krb5.keytab)<br />
net -k [ -n TEST1234 ] ads keytab flush<br />
# vytvoření keytabu (tento příkaz funguje jen když je host heslo v secrets.tdb)<br />
net -k [ -n TEST1234 ] ads keytab create<br />
# pokud předchozí příkaz nic neprovede můžete ještě vyzkoušet<br />
net -U host/test1234.fjfi.cvut.cz [ -n TEST1234 ] ads keytab create<br />
# vypsání informací z keytabu<br />
net -k [ -n TEST1234 ] ads keytab list<br />
# přidání služby do keytabu (tento příkaz funguje jen když je host heslo v secrets.tdb)<br />
net -k [ -n TEST1234 ] ads keytab add HTTP<br />
net -k [ -n TEST1234 ] ads keytab add ldap<br />
net -k [ -n TEST1234 ] ads keytab add DNS<br />
...<br />
<br />
# změna hesla pro machine account, provede modifikaci<br />
# /etc/krb5.keytab i /var/lib/samba/private/secrets.tdb<br />
net -k ads changetrustpw<br />
<br />
Pokud použijete tento způsob připojení počítače do domény (<tt>net ads join</tt>), vytvoří samba mimo jiné soubor <tt>/var/lib/samba/private/secrets.tdb</tt> (při použití "kerberos method = secrets and keytab"), který bude v plain textu obsahovat náhodné heslo vygenerované pro nový computer account v AD. Existence tohoto souboru je podmínkou pro další fungovaní příkazů <tt>net ads keytab create</tt> a <tt>net ads keytab add SERVICE</tt>, které ve svém důsledku musí mít nějaký přístup k plain text heslu, když přidávají další principaly do keytabu. Zatím mi není známo, jestli je <tt>secrets.tdb</tt> využíván i přímo daemony, které zprostředkovávájí samba služby.<br />
<br />
===Ruční vytvoření keytabu===<br />
<br />
Pokud znáte heslo k odpovídajícímu computer accountu v AD, můžete si keytab vytvořit sami ručně. V podstatě jde o tu samou operaci, která je ve svém důsledku realizována po zavolání <tt>net -U host/hostname.fjfi.cvut.cz ads keytab create</tt>, která ale fungoje jen pokud již máte vygenerován správný <tt>secrets.tdb</tt> s uloženým plain text heslem pro computer account (tento soubor není složité ručně vygenerovat).<br />
<br />
# zjištění aktualního kvno pro computer account<br />
kinit host/hostname.fjfi.cvut.cz<br />
kvno host/hostname.fjfi.cvut.cz<br />
# nebo přímo dotazem do LDAPu pomocí<br />
ldapsearch -LLL -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=HOSTNAME$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
kdestroy<br />
# vytvoření nového keytabu pro computer account "hostname"<br />
# heslo "'''''secret'''''" nahraďte platným heslem pro computer account<br />
# výraz "'''''kvno'''''" musíte nahradit číslem, které vrátí výše uvedený příkaz<br />
[root@host ~]# ktutil<br />
ktutil: addent -password -p host/hostname.fjfi.cvut.cz -k '''''kvno''''' -e des-cbc-crc<br />
ktutil: addent -password -p host/hostname.fjfi.cvut.cz -k '''''kvno''''' -e des-cbc-md5<br />
ktutil: addent -password -p host/hostname.fjfi.cvut.cz -k '''''kvno''''' -e aes128-cts-hmac-sha1-96<br />
ktutil: addent -password -p host/hostname.fjfi.cvut.cz -k '''''kvno''''' -e aes256-cts-hmac-sha1-96<br />
ktutil: addent -password -p host/hostname.fjfi.cvut.cz -k '''''kvno''''' -e arcfour-hmac<br />
ktutil: addent -password -p host/hostname ...<br />
ktutil: addent -password -p HOSTNAME$ ...<br />
ktutil: ...<br />
ktutil: wkt /etc/krb5.keytab<br />
<br />
Z nějakého důvodu tohle nefungovalo pro <tt>HOSTNAME$</tt> principal (pokud nechcete používat přímo sambu/cifs, tak tento principal není potřeba), takže bylo nakonec nejjednodušší použít opět sambu (bez kerbera), ale nejdříve je nutné mít správné heslo v <tt>/var/lib/samba/private/secrets.tdb</tt> u položky <tt>SECRETS/MACHINE_PASSWORD/FJFI</tt> (<tt>secrets.tdb</tt> je možné [https://gitlab.fjfi.cvut.cz/comp/scripts/blob/master/secrets.py vygenerovat pomocí toho skriptu]):<br />
<br />
# vytvoření keytabu při znalosti hesla a správným secrets.tdb<br />
net -U host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ ads keytab create<br />
# změna hesla pro computer account včetně update krb5.keytab a secrets.tdb<br />
kinit -k<br />
net -k ads changetrustpw<br />
<br />
Tímto příkazem se také aktualizuje seznam všech podporovaných šifer uloženích v nově updatovaném keytabu.<br />
<br />
V principu lze použít i náhodné heslo při generování keytabu pomoci <tt>ktpass.exe</tt>, ale pak budeme navíc potřebovat výpis standardního outputu tohoto přikazu, kde jsou uvedeny informace potřebné pro úspěšný import dat pomoci <tt>ktutil</tt><br />
# na windows si vytvoříme hostname.keytab + hostname.out<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -out c:\hostname.keytab -crypto all -mapOp set > c:\hostname.out<br />
# v ktutil pak přidáme požadované principaly s využitím informací z hostname.out<br />
[root@host ~]# ktutil<br />
ktutil: addent -key "'''''hex číslo z hostname.out'''''" -p host/hostname.fjfi.cvut.cz -k "'''''kvno z hostname.out'''''" -e "'''''encryption z hostname.out'''''<br />
ktutil: ...<br />
<br />
S computer account credentials lze měnit i některé atributy jemu odpovídajícímu objektu, např. můžeme přidat další SPN pomocí následujícich ldap příkazů:<br />
<br />
# HOSTNAME.ldif<br />
dn: CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz<br />
changetype: modify<br />
add: servicePrincipalName<br />
servicePrincipalName: host/hostname<br />
<br />
# update dat v AD<br />
kinit -k<br />
ldapmodify -H ldap://ldap.fjfi.cvut.cz -f HOSTNAME.ldif<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
Na linuxu je potreba nainstalovat [https://code.google.com/p/msktutil/ msktutil] (pr RHEL/CentOS existují balíčky v EPEL), který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a pro některé operace platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# to samé, ale stoj bude zařazen CN=Unix,CN=Computers,DC=fjfi,DC=cvut,DC=cz<br />
msktutil --computer-name TEST -h test -b CN=Unix,CN=Computers -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Kombinace windows + linux===<br />
<strike><br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
</strike><br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
===Použití kerbera pro SSO v browserech===<br />
====Firefox for Windows====<br />
* nutné zkonfigurovat domény pro něž se bude používat kerberos SSO<br />
network.negotiate-auth.delegation-uris = .fjfi.cvut.cz<br />
network.negotiate-auth.trusted-uris = .fjfi.cvut.cz<br />
* pokud nejste součástí windows domény resp. používáte "MIT Kerberos for Windows" potom musíte ještě nastavit<br />
network.auth.use-sspi = false<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
idmap config * : backend = tdb<br />
idmap config * : range = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 4000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
;winbind enum users = yes<br />
;winbind enum groups = yes<br />
# Winbind usernames without DOMAIN prefix<br />
# (this should be probably set to "no" for huge domains)<br />
winbind use default domain = yes<br />
# Replace whitespace in user and group names with an underscore<br />
winbind normalize names = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind<br />
<br />
==Kerberized NFSv4.1==<br />
===NFSv4.1 Windows Server===<br />
* podporováno od w2k12<br />
* nutné přidat roli NFS server<br />
* nutné povolit POSIX compatible case-sensitive práci se složkami/soubory (HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive = 0)<br />
* nutná existence Kerberos service principalu na NFS serveru<br />
** pro NFS server přidat do servicePrincipalName službu nfs/NAME resp. nfs/name.fjfi.cvut.cz }nutné pro každý computer account NFS serveru)<br />
** alterantivou je atribut sPNMappings obsahující globální nastavení standardního mapování různých služeb (cifs, snmp, ...) na "host" službu (viz. CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=fjfi,DC=cvut,DC=cz) + restart serveru<br />
* na složce pro nastavit NFS sdílení s krb5,krb5i,krb5p security (resp. odstranit "Auth_SYS" neposkytující dostatečné zabezpečení pro uživatelská data)<br />
** krb5 - Kerberem ověřená uživatelská identita využitá pro kontrolu přístupových práv k souborům na serveru<br />
** krb5i - všechna data (tj. nejen metadata) posílaná mezi klientem a serverem jsou podepsána, aby je nebylo možné na cestě změnit (minimální vliv na výkon NFS)<br />
** krb5p - všechna data jsou navíc zašifrována a není je možné odposlechnout (na moderních strojích s hw podporou šifrování snížení výkonu NFS do +/- 20%)<br />
* mapování unixových práv (u+rwx,g+rwx,o+rwx) je prováděno následujícím způsobem<br />
** u - CREATOR OWNER (uživatel vlastnící daný objekt a jeho uidNumber)<br />
*** r - read data (list folder)/attributes/extended attributes, write attributes/extended attributes, delete, read/change premissions, take ownership<br />
*** w - read attributes/extended attributes, write (create file)/append (create folder) data, write attributes/extended attributes, delete, read/change premissions, take ownership<br />
*** x - execute file (traverse folder), read attributes/extended attributes, write attributes/extended attributes, delete, read/change premissions, take ownership<br />
** g - primary group pro uživatele CREATOR OWNER ("Domain Users" s gidNumber = 2001)<br />
** o - Everyone<br />
** -<br />
** unixová práva rwx jsou namapována na "full control" na NTFS<br />
** nemá-li group/other žádná unixová práva, stejně jsou na NTFS nastaveny práva (pro čtení metadat): read attributes/extended attributes, read premissions<br />
** nemá-li uživatel žádná unixová práva je to na NTFS implementováno přes "Deny ACL"<br />
* problémy<br />
** RHEL7.1 klient nezapisuje data do vytvořených souborů (pouze vytváří soubory nulové delky)<br />
** RHEL7.1 a Fedora21 klient se kousne po restartu w2k12 NFS Serveru (resp. čeká na nějaký timeout +/- minutu a pak zas začne fungovat)<br />
<br />
===NFSv4.x Linux Server===<br />
* nutný keytab s "nfs" službou, tj. nfs/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ<br />
kinit -k<br />
net ads keytab add nfs --option='workgroup = FJFI' --option='realm = FJFI.CVUT.CZ' --option='kerberos method = secrets and keytab'<br />
##net ads keytab add nfs --option='workgroup = FJFI' --option='security = domain' --option='realm = FJFI.CVUT.CZ' --option='kerberos method = secrets and keytab'<br />
##net ads changetrustpw --option='workgroup = FJFI' --option='security = domain' --option='realm = FJFI.CVUT.CZ' --option='kerberos method = secrets and keytab'<br />
* vytvořit konfigurace v /etc/exports, např.<br />
/exports 147.32.0.0/255.255.0.0(rw,fsid=0,insecure,no_subtree_check,sync,sec=sys:krb5:krb5i:krb5p) 2001:718:2::/48(...)<br />
/exports/secure 147.32.0.0/255.255.0.0(rw,nohide,insecure,no_subtree_check,sync,sec=krb5p) 2001:718:2::/48(...)<br />
/exports/insecure 147.32.0.0/255.255.0.0(rw,nohide,insecure,no_subtree_check,sync,sec=sys) 2001:718:2::/48(...)<br />
* spustit potřebné daemony<br />
systemctl enable nfs-secure-server<br />
systemctl start nfs-secure-server<br />
* konfigurace RHEL7.0 se liší od novější RHEL7.1<br />
** rpc.svcgssd je nahrazen novým gssproxy daemonem<br />
** důvodem je to, že starší interface zvládal pouze ~ 2kb tickety MS-PAC (info o skupinách) může být daleko větší<br />
** bohužel se mi s gssproxy zatím nepodařilo kerberizovano NFS zprovoznit (RHEL7.1 a Fedora21)<br />
** na RHEL7.1 lze změnou startovacích skriptů nahradit nový ("nefunkční") gssproxy starým rpc.svcgssd (vyžaduje restart! kvůli neměnitelnému /proc/net/rpc/use-gss-proxy resp. konfiguraci jaderných callbacků)<br />
** nerozhodil jsem to s NFSv4.1 ale pouze s NFSv4.0<br />
* na klientovi připojit příkazem<br />
mount -t nfs -o vers=4.0,sec=krb5p 147.32.9.9:/home /home<br />
<br />
===NFSv4.x Linux Client===<br />
* připojit lze příkazem (sec parametr musí obsahovat krb5 resp. krb5i resp. krb5p):<br />
# NFS Kerberized client of the w2k12 NFSv4.1 server requires host keytab stored in /etc/krb5.keytab<br />
# (linux NFS Kerberized client by default works even without host keytab)<br />
net ads join -U administrator%password -n test1234 \<br />
--option='workgroup = FJFI' --option='security = domain' \<br />
--option='realm = FJFI.CVUT.CZ' --option='kerberos method = secrets and keytab' \<br />
createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ osName=CentOS osVer=7.x createcomputer=Computers<br />
# start client daemons required by Keberized NFS server<br />
systemctl start nfs-secure<br />
systemctl restart nfs-secure # in case rpc.gssd already running and we changed /etc/krb5.conf<br />
# username <-> uidNumber mapping (requires right domain in /etc/idmapd.conf)<br />
systemctl start nfs-idmapd<br />
# mount NFS shares<br />
mount -t nfs -o vers=4.1,sec=krb5 -v w2k12nfs.fjfi.cvut.cz:/public /mnt/public<br />
# to mount NFS shares on startup add folloving line in /etc/fstab<br />
w2k12nfs.fjfi.cvut.cz:/data /data nfs vers=4.1,sec=krb5p 0 0<br />
* aktuálně je rozbitý zápis do souborů na RHEL7.1 (ve Fedoře 21 funguje)<br />
* debug<br />
# nastavit -vvvv parametr v /etc/sysconfig/nfs pro RPCGSSDARGS<br />
echo 32767 > /proc/sys/sunrpc/rpc_debug<br />
echo 65535 > /proc/sys/sunrpc/nfs_debug</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=3708Doména FJFI2016-03-01T13:26:50Z<p>Keroupav: /* Rozsahy UID/GID */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ARK1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ARK2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| SRK || Trojanova || terminal server Windows<br />
|-<br />
| VRK2 || Trojanova || virtualizační server<br />
|-<br />
| Troja1 || Trója || DC, fileserver<br />
|-<br />
| DRK || Děčín || DC, LDAP<br />
|-<br />
| ARK3 || Děčín || Fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| KMK || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| Print2 || VRK2 || printserver Trojanova<br />
|-<br />
| IT || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| SCP || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Novější verze MIT Kerbera navíc standardně nepodporují starší/slabé šifry. Aktuálně máme otestováno pouze používání těchto starých šifer (konkrétně arcfour-hmac, což je dáno historickými důvody, kdy první konfigurace byla prováděna ještě proti w2k3 serveru) a v takovém případě je nutné MIT Kerberu povolit používání starých šifrovacích algoritmů pomocí volby <tt>allow_weak_crypto = true</tt>.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** účet typu stu<br />
*** uživatel obdrží info o chystaném zablokování jeho účtu emailem<br />
*** po 30 dnech je odebrán z organizačních jednotek a skupin<br />
*** přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
*** po dalších 90 dnech je odstraněn včetně dat<br />
** účet typu emp<br />
*** uživatel obdrží emailem info o zachování účtu včetně emailu, pokud to výslovně nežádá opak<br />
*** po 30 dnech je odebrán z organizačních jednotek a skupin<br />
*** přesunut do ou=katedra\emerit, status nastaven na "emerit" a poznamená se timestamp<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <4000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 2000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>Deprecated!<br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
</strike><br />
<br />
===Synchronizační skripty===<br />
<strike><br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
</strike><br />
<br />
===FnspeCmdService===<br />
<strike><br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
</strike><br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<strike><br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
</strike><br />
<br />
===ADScripts - synchronizace 2014===<br />
<br />
Přepis FnspeLibrary přímo do powershellu z důvodu malé flexibility v úpravě a kompilaci C# DLL knihovny. Rozhraní pro přístup k uživatelským datům zůstalo stejné jako v případě FnspeLibrary, rozdíl je pouze v několika řádcích inicializace a ta je demonstrována v <tt>example-usermap.ps1</tt>. Nové powershell rozhraní navíc přistupuje přímo k datům v usermap LDAPu a databázi Oracle obsahující číselníky (telefony, adresy, funkce ...).<br />
<br />
# zdrojové soubory powershell skriptů<br />
# (nejprve je nutné požádat správce gitlab o přidaní do skupiny comp)<br />
git clone https://gitlab.fjfi.cvut.cz/comp/adscripts.git<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
Pokud je/byl uživatel někdy členem skupiny administratorů, potom si tuto informaci AD poznamená do atributu <tt>adminCount</tt>, který podle dokumentace znamená: "Indicates that a given object has had its ACLs changed to a more secure value by the system because it was a member of one of the administrative groups (directly or transitively)". Účty, které mají nastaven "adminCount" příznak může modifikovat jen administrátor (vlastnost AD) - speciální uživatel používaný přes rozhraní na NMS není admin a proto např. nastavováni hesel pro wireless sítě nebude z rozhraní na NMS fungovat. Toto je další důvod proč by běžné uživatelské účty neměli být v admin skupinách.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 2000 a < 4000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 2000-2099 || vyhrazeno pro potřeby fakulty (2000-2019 vyhrazeno pro automaticky spravované skupiny, 2020-2099 rezervováno pro budoucí využití)<br />
|-<br />
| fusers || 2000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| Domain Users || 2001 || standardní skupina doménového uživatele<br />
|-<br />
| emp || 2002 || skupina pro všechny zaměstnance<br />
|-<br />
| stu || 2003 || skupina pro všechny studenty (mimo PhD a CZV)<br />
|-<br />
| stu_bc || 2004 || skupina pro všechny studenty bakalářských programů<br />
|-<br />
| stu_ing || 2005 || skupina pro všechny studenty magisterských programů<br />
|-<br />
| phd || 2006 || skupina pro všechny phd studenty<br />
|-<br />
| czv || 2007 || skupina pro všechny studenty celoživotního vzdělávání<br />
|-<br />
| external || 2010 || skupina pro externisty<br />
|-<br />
| brehova || 2011 || skupina pro uživatele v Břehové (primární pracoviště - např. pro home na místním fileserveru)<br />
|-<br />
| trojanova || 2012 || skupina pro uživatele v Trojanova (primární pracoviště - např. pro home na místním fileserveru)<br />
|-<br />
| decin || 2013 || skupina pro uživatele v Děčíně (primární pracoviště - např. pro home na místním fileserveru)<br />
|-<br />
| troja || 2014 || skupina pro uživatele v Troji (primární pracoviště - např. pro home na místním fileserveru)<br />
|-<br />
| || 2X00-2X99 || vyhrazeno pro potřeby katedry (2X00-2X09 vyhrazeno pro standardní automaticky spravované skupiny, 2X10-2X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 2X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 2X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 2X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 2X03 || student katedry, mimo PhD (not currently implemented)<br />
|-<br />
| "depName"_stu_bc || 2X04 || student bakalářského programu katedry<br />
|-<br />
| "depName"_stu_ing || 2X05 || student magisterského programu katedry<br />
|-<br />
| "depName"_phd || 2X06 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_czv || 2X07 || czv student katedry (aktuáně nejsou data pro realizaci)<br />
|-<br />
| <strike>"depName"_staff</strike> || 2X0? || <strike>učitel na katedře (automaticky synchronizováno dle Usermapu)</strike><br />
|-<br />
| "depName"_stu_bc_aaa || 2X1Y || student bakalářského programu "aaa" katedry<br />
|-<br />
| "depName"_stu_ing_bbb || 2X1Y || student magisterského programu "bbb" katedry<br />
|}<br />
<br />
=== Rozsahy gidNumber pro různé součásti ===<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 2000<br />
|-<br />
| km || 2100-2199<br />
|-<br />
| kf || 2200-2299<br />
|-<br />
| kj || 2300-2399<br />
|-<br />
| kipl || 2400-2499<br />
|-<br />
| kfe || 2500-2599<br />
|-<br />
| kmat || 2600-2699<br />
|-<br />
| kjch || 2700-2799<br />
|-<br />
| kdaiz || 2800-2899<br />
|-<br />
| kjr || 2900-2999<br />
|-<br />
| kse || 3000-3099<br />
|-<br />
| dekanat || 3100-3199<br />
|-<br />
| tereza || 3200-3299<br />
|-<br />
| crrc || 3300-3399<br />
|}<br />
<br />
<br />
=== Rozsahy UID/GID ===<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy UID/GID'''<br />
|- style="background: LightGrey;"<br />
! rozsah !! použití<br />
|-<br />
| 0-999 || systémové účty (neunikátní pro uid+gid)<br />
|-<br />
| 1000-1499 || lokální speciální účty (neunikátní pro uid+gid)<br />
|-<br />
| 1500-1999 || rezervováno pro budoucí využití<br />
|-<br />
| 2000-3999 || unikátní gidNumber v posixGroup objektech FJFI AD<br />
|-<br />
| 4000-4499 || unikátní uidNumber v posixUser objektech FJFI AD, který nemá odpovídající záznam v Usermapu<br />
|-<br />
| 4500-9999 || rezervováno pro budoucí využití<br />
<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-S''' || vyhrazeno pro potřeby fakulty (globálních a lokálních správců - využití nutno uvést do této tabulky!)<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''T-Z''' || vyhrazeno pro potřeby lokálního uživatele<br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), ARK3 (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště (DFS)<br />
**servery AR1, ARK2<br />
**Replicated folders: <br />
***Home (osobní síťové adresáře)<br />
***Profile (roaming profiles pro účely učeben)<br />
***Share (obsahuje sdílené složky organizačních jednotek a jiné)<br />
***WWW (webhosting zaměstnanců)<br />
***WW2 (webhosting pro studenty)<br />
**Published to Namespace: FRK (Servers ARK1, ARK2)<br />
* Lokální datové úložiště Děčín (SMB 2.1)<br />
*server ARK3<br />
**Shared folders: Home, Profile, WWW, WWW2, Share<br />
**data jsou zde umístěna na základě pracovního/studijního zařazení<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Jednoduchý test přístupu k datům v AD se simple autentizací<br />
# klasické SSL spojení<br />
ldapsearch -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
<br />
Jednoduchý test přístupu k datům v AD s kerberos autentizací<br />
# získání kerberos ticketu pro autentizaci LDAP spojení<br />
kinit username@FJFI.CVUT.CZ <br />
# klasické SSL spojení<br />
ldapsearch -O minssf=0,maxssf=0 -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -O minssf=0,maxssf=0 -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
<br />
Příklad simple autentizace v pythonu:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu) v pythonu:<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
#conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
#conn.start_tls_s()<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Při použití SASL (GSSAPI) autentizace a zabezpečeného přenostu dat přes STARTTLS (port 389) nebo SSL (port 636) je navíc potřeba OpenLDAP knihovně vysvětlit, aby nepoužívala "SASL privacy layers", které LDAP rozhraní AD nepodporuje (z hlediska zabezpečení je to pořád OK). V takovém případě je potřeba přidat do <tt>/etc/openldap/ldap.conf</tt> řádek s <tt>sasl_secprops minssf=0,maxssf=0</tt> nebo přímo v kódu nastavit tyto parametry např. pomoci<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [4000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 2000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
* Synchronizace času v doméně<br />
** PDC emulator (ARK2) je manuálně nastaven na synchronizaci s externím zdrojem (tik.cesnet.cz,tak.cesnet.cz).<br />
*** w32tm /config /syncfromflags:MANUAL /manualpeerlist:tik.cesnet.cz,tak.cesnet.cz /reliable:yes /update<br />
*** Net stop w32time && net start w32time<br />
** Ostatní DC se synchronizují z domény.<br />
*** w32tm /config /syncfromflags:DOMHIER /update<br />
*** w32tm /resync /rediscover<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 4000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
===SSSD===<br />
<br />
Je řešení RedHatu pro autentizace (pam) a zpřístupnění informací o uživatelských učtech (nss). Má hromadu konfiguračních možností a obecně vypadá jako robustnějši řešení než např. samotný pam_ldap+nss_ldap (např. umožňuje cachování informací a "offline režim"). V principu lze použít dvě různé konfigurace pro lokální prostředí s AD. První řešení je na míru šité pro AD a vyžaduje, aby daný počítač byl joinutý do domény, druhé řešení používa klasickým způsobem LDAP a Kerberos rozhraní AD a nevyžaduje joinutí do domény.<br />
<br />
Aby systém vůbec začal využívat služby SSSD daemona, můsí se požadavky na autentizaci přesměrovat na <tt>pam_sss</tt> modul a uživatelské učty musí využívat <tt>nss_sss</tt>. Je potřeba upravit (zkontrolovat) následující konfigurační soubory:<br />
<br />
# /etc/nsswitch.conf<br />
...<br />
passwd: files '''sss'''<br />
shadow: files '''sss'''<br />
group: files '''sss'''<br />
...<br />
<br />
# /etc/pam.d/password-auth resp. /etc/pam.d/system-auth<br />
<br />
#%PAM-1.0<br />
# This file is auto-generated.<br />
# User changes will be destroyed the next time authconfig is run.<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 500 quiet<br />
'''auth sufficient pam_sss.so use_first_pass'''<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 500 quiet<br />
'''account [default=bad success=ok user_unknown=ignore] pam_sss.so'''<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3 type=<br />
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok<br />
'''password sufficient pam_sss.so use_authtok'''<br />
password required pam_deny.so<br />
<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
'''session optional pam_sss.so'''<br />
<br />
Na RedHat 6.x jsou tyto soubory automaticky správně modifikovány po instalaci SSSD. Tu lze provést následujícím příkazem:<br />
<br />
# důležité je nainstalovat i 32bit verzi jinak nebudou běhat<br />
# žádné aplikace zkompilované 32bit<br />
yum install sssd sssd-tools sssd-client sssd-client.i686<br />
<br />
Případně lze provést všechny potřebné modifikace PAM a NSS jedním příkazem<br />
<br />
authconfig --update --enablesssd --enablesssdauth<br />
<br />
====SSSD AD====<br />
<br />
Relativně minimální konfigurace SSSD proti FJFI AD může vypadat následujícím způsobem. Aby níže uvedená konfigurace fungovala, musí být splněny následující požadavky<br />
<br />
* počítač musí být zařazen v AD doméně (viz. [[Doména FJFI#Host/Service Kerberos Key|Host/Service Kerberos Key]])<br />
** musí existovat <tt>/etc/krb5.keytab</tt><br />
** musí být zkonfigurován kerberos v <tt>/etc/krb5.conf</tt> (viz. např. [[Doména FJFI#Kerberos|ukázka konfigurace]])<br />
** musí fungovat ověření pomocí keytabu <tt>kinit -k -t /etc/krb5.keytab host/name.fjfi.cvut.cz@FJFI.CVUT.CZ</tt><br />
* uživatelské účty musí mit posixAccount atributy (viz. [[Doména FJFI#Konfigurace účtu v AD|Konfigurace účtu v AD]])<br />
* <tt>pam_sssd</tt> v konfiguraci <tt>/etc/pam.d/system-auth</tt> a <tt>/etc/pam.d/password-auth</tt> (viz. [[Doména FJFI#SSSD|SSSD]])<br />
* <tt>sssd</tt> pro příslušné položky (<tt>passwd</tt>, <tt>shadow</tt>, <tt>group</tt>) v <tt>/etc/nsswitch.conf</tt> (viz. [[Doména FJFI#SSSD|SSSD]])<br />
* zkonfigurovat sssd daemona<br />
** použitelné konfigurace sssd uložené v <tt>/etc/sssd/sssd.conf</tt> jsou uvedeny níže<br />
** konfigurační soubor musí mít nastavena práva: <tt>chmod 600 /etc/sssd/sssd.conf</tt><br />
** při použití SELinuxu je potřeba mít správné securitz labely na konfiguracích: <tt>restorecon -R -v /etc</tt><br />
** nutné povolit a nastartovat sssd daemona<br />
<br />
# základní minimální konfigurace /etc/sssd/sssd.conf pro FJFI AD<br />
[sssd]<br />
domains = fjfi.cvut.cz<br />
services = nss, pam<br />
config_file_version = 2<br />
# requires sssd >= 1.11.7 - RHEL6.6, RHEL7.1 (similar to samba option "winbind normalize names")<br />
override_space = _<br />
<br />
[nss]<br />
<br />
[pam]<br />
# caching credentials for offline logging<br />
#offline_credentials_expiration = 3<br />
#offline_failed_login_attempts = 3<br />
<br />
[domain/fjfi.cvut.cz]<br />
id_provider = ad<br />
access_provider = ad<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# ad_hostname is necessary only if hostname can't be matched with entries in keytab<br />
#ad_hostname = host.fjfi.cvut.cz<br />
#ad_access_filter = (memberOf=cn=skupina,ou=Groups,dc=fjfi,dc=cvut,dc=cz)<br />
dyndns_update = false<br />
ldap_schema = ad<br />
ldap_id_mapping = false<br />
ldap_referrals = false<br />
# global<br />
min_id = 2000<br />
#max_id = 29999 # nutné zakomentovat kvůli přechodu na osobní čísla<br />
cache_credentials = true<br />
<br />
<strike><br />
Pokud chceme omezit skupinu lidí, kteří budou mít přístup k linuxovému stroji se zkonfigurovaným SSSD AD, potom musíme zvolit <tt>access_provider = ldap</tt>, jelikož výše uvedený <tt>ad</tt> provider nemá (v aktuální verzi na RHEL6.5) žádné další možnosti konfigurace. Konfigurace vlastního service by pak mohla vypadat např. následovně:<br />
<br />
# část konfigurace /etc/sssd/sssd.conf omezující přístup pro členy dané skupiny (RHEL6.x resp. sssd < 1.11)<br />
[domain/AD]<br />
id_provider = ad<br />
auth_provider = ad<br />
chpass_provider = ad<br />
'''access_provider = ldap'''<br />
ad_domain = fjfi.cvut.cz<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# folloving name is necessary only if local hostname doesn't correspond entries in keytab file<br />
#ad_hostname = host.fjfi.cvut.cz<br />
# defines user/group schema type<br />
ldap_schema = ad<br />
# using explicit POSIX attributes in the Windows entries (default is false)<br />
ldap_id_mapping = false<br />
# ldap access controls - requires access_provider set to ldap<br />
'''ldap_sasl_mech = GSSAPI'''<br />
'''ldap_access_filter = memberOf=cn=skupina,ou=Groups,dc=fjfi,dc=cvut,dc=cz'''<br />
'''ldap_access_order = filter,expire'''<br />
'''ldap_account_expire_policy = ad'''<br />
'''ldap_force_upper_case_realm = true'''<br />
# performance<br />
ldap_referrals = false<br />
# global<br />
min_id = 2000<br />
#max_id = 29999 # nutné zakomentovat kvůli přechodu na osobní čísla<br />
cache_credentials = true<br />
enumerate = true<br />
<br />
V budoucnu bude možné využít ad_access_filter, který je ale až v novější verzi SSSD 1.11 (RHEL7)<br />
</strike><br />
<br />
Po vytvoření požadované konfigurace je potřeba zajistit, aby se při startu systému spustil také sssd daemon<br />
<br />
# povolení spuštění sssd při startu + okamžitý start sssd služby na RHEL 6.x (init skripty)<br />
chkconfig sssd on<br />
service sssd start<br />
# povolení spuštění sssd při startu + okamžitý start sssd služby na RHEL 7.x (systemd)<br />
systemctl enable sssd<br />
systemctl start sssd<br />
<br />
====SSSD LDAP+Kerberos====<br />
<br />
[sssd]<br />
domains = LOCAL,LDAP<br />
services = nss, pam<br />
config_file_version = 2<br />
<br />
[nss]<br />
filter_groups = root<br />
filter_users = root<br />
reconnection_retries = 3<br />
entry_cache_timeout = 300<br />
entry_cache_nowait_percentage = 75<br />
<br />
[pam]<br />
reconnection_retries = 3<br />
offline_credentials_expiration = 3<br />
offline_failed_login_attempts = 3<br />
offline_failed_login_delay = 5<br />
pam_pwd_expiration_warning = 3<br />
<br />
[domain/LOCAL]<br />
id_provider = local<br />
auth_provider = local<br />
access_provider = permit<br />
<br />
[domain/LDAP]<br />
id_provider = ldap<br />
auth_provider = krb5<br />
chpass_provider = krb5<br />
access_provider = ldap<br />
ldap_uri = ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz,ldap://ldap3.fjfi.cvut.cz<br />
ldap_search_base = dc=fjfi,dc=cvut,dc=cz<br />
#ldap_id_use_start_tls = true<br />
#ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt<br />
# simple autentizace uživatele pro přístup k LDAP informacím<br />
# (při této konfiguraci je nutné použít TLS resp. ldap_id_use_start_tls,<br />
# jinak budou přenášená data nešifrovaná a existuje možnost jejich změny<br />
# na cestě což pro uidNumber představuje bezpečnostní hrozbu)<br />
#ldap_default_bind_dn = CN=proxy_posix,OU=Specials,DC=fjfi,DC=cvut,DC=cz<br />
#ldap_default_authtok_type = password<br />
#ldap_default_authtok = secret<br />
# kerberos autentizace uživatele pro přístup k LDAP informacím<br />
# (data jsou také šifrována kerberem a TLS tak není nezbytně nutné)<br />
ldap_sasl_mech = GSSAPI<br />
ldap_sasl_authid = host/'''''hostname.fjfi.cvut.cz'''''@FJFI.CVUT.CZ<br />
ldap_referrals = false<br />
ldap_schema = rfc2307bis<br />
ldap_user_search_base = ou=People,dc=fjfi,dc=cvut,dc=cz<br />
ldap_user_object_class = user<br />
ldap_user_home_directory = unixHomeDirectory<br />
ldap_user_principal = userPrincipalName<br />
ldap_user_name = sAMAccountName<br />
ldap_group_search_base = ou=groups,dc=fjfi,dc=cvut,dc=cz<br />
ldap_group_object_class = group<br />
#ldap_search_timeout = ??? # switch to offline mode after this timeout<br />
#ldap_network_timeout = 6<br />
#ldap_opt_timeout = 5<br />
#ldap_access_filter = memberOf=cn=emp,ou=Groups,dc=fjfi,dc=cvut,dc=cz<br />
#ldap_access_order = filter,expire<br />
ldap_access_order = expire<br />
ldap_account_expire_policy = ad<br />
ldap_force_upper_case_realm = true<br />
# kerberos configuration<br />
krb5_server = krb1.fjfi.cvut.cz,krb2.fjfi.cvut.cz,krb3.fjfi.cvut.cz<br />
krb5_realm = FJFI.CVUT.CZ<br />
krb5_canonicalize = false<br />
#min_id = 4000<br />
#max_id = 29999<br />
cache_credentials = true<br />
#account_cache_expiration = 7<br />
#entry_cache_timeout = 14400<br />
#enumerate = true<br />
<br />
Při použití výše uvedené konfigurace proti AD (tj. kerberos autentizace + TLS zabezpečený přenos dat) je potřeba na RHEL 6.x do <tt>/etc/openldap/ldap.conf</tt> přídat řádek<br />
<br />
# Active Directory not supporting nested security or privacy layers<br />
sasl_secprops minssf=0,maxssf=0<br />
<br />
===Kerberos===<br />
<br />
Toto je starší způsob z doby, kdy ještě neexistovala možnost použít sssd. Navíc lze tento starší návod aplikovat na platformách, které nepodporují sssd.<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu 5.x (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt>, na RedHatu 6.x (RHEL6) je to samé potřeba provést ještě v <tt>/etc/pam.d/password-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 4000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=4000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 4000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=4000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=4000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=4000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
Níže jsou uvedeny různé způsoby vygenerování keytabu. Tady jsou moje doporučení:<br />
<br />
* nejpohodlnější je [[Doména FJFI#Vytvoření keytabu v linuxu pomocí samby|vytvoření pomocí samby]]<br />
* bez instalace samby se lze obejít při [[Doména FJFI#vytvoření keytabu ve windows|vytvoření keytabu ve windows]]<br />
** nutné zkopírovat vygenerovaný keytab na cílový stroj nebo předat správci použité heslo, které lze použít k [[Doména FJFI#Ruční vytvoření keytabu|ručnímu vytvoření keytabu]]<br />
** některé <tt>net ads</tt> příkazy nemusí po tomto joinutí fungovat (vyžadují heslo v plaintextu v <tt>secrets.tdb</tt>)<br />
*** známe-li heslo použité ke generování keytabu je možné <tt>secrets.tdb</tt> dodatečně vytvořit<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu HOSTNAME$ v AD<br />
# (lze také naklikat v admin mmc User and Computer consoli)<br />
C:> dsrm -noprompt "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
C:> dsadd computer "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu (na w2k8 by měl být ktpass.exe součástí default instalace)<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -out c:\hostname.keytab -crypto all -mapOp set [-kvno 1]<br />
# vytvoření služby ftp pro hosta hostname.fjfi.cvut.cz (pouze pokud na "hostname" provozujeme službu FTP)<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -SetUpn -out hostname.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5 (asi historicke a zbytečné)<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
Pokud jsou potřeba různé host principaly, které budou mít možnost přímo získat ticket (např. samba potřebuje v ideálním případě host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ, host/hostname@FJFI.CVUT.CZ a HOSTNAME$@FJFI.CVUT.CZ), potom je možné další záznamy přidávat do již existujícího keytabu při zachování originálního hesla a kvno:<br />
<br />
dsrm -noprompt "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass.exe /princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ /out hostname.keytab /crypto All /ptype KRB5_NT_PRINCIPAL -desonly /mapuser FJFI\HOSTNAME$ +setupn +rndPass +setpass +answer<br />
#ktpass.exe /princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ /in hostname.keytab /out hostname.keytab /crypto All /ptype KRB5_NT_PRINCIPAL -desonly /mapuser FJFI\HOSTNAME$ -setupn +rndPass -setpass +answer<br />
ktpass.exe /princ host/HOSTNAME$@FJFI.CVUT.CZ /in hostname.keytab /out hostname.keytab /crypto All /ptype KRB5_NT_PRINCIPAL -desonly /mapuser FJFI\HOSTNAME$ -setupn +rndPass -setpass +answer<br />
ktpass.exe /princ HTTP/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ /in hostname.keytab /out hostname.keytab /crypto All /ptype KRB5_NT_PRINCIPAL -desonly /mapuser FJFI\HOSTNAME$ -setupn +rndPass -setpass +answer<br />
# k přidávání SPN záznamů lze také použít setspn.exe nebo adsiedit.msc<br />
#setspn -A other/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ hostname<br />
<br />
====powershell skript ====<br />
<br />
<syntaxhighlight lang="powershell"><br />
# Allow to run unsigned powershell code.<br />
# set-executionpolicy unrestricted<br />
<br />
# enable the AD module<br />
Import-Module ActiveDirectory<br />
<br />
# get domain info<br />
$domain = Get-ADDomain<br />
$domain_short = $domain.Name<br />
$domain_suffix = $domain.DNSRoot<br />
$domain_realm = $domain.DNSRoot.ToUpper()<br />
<br />
Write-Host -nonewline "Please enter system name (e.g. kmlinux): "<br />
$cname = Read-Host<br />
$cname_upper = $cname.ToUpper()<br />
$cname_fqdn = "$cname.$domain_suffix"<br />
<br />
# check for existing computer account or keytab file<br />
$cname_object = Get-ADComputer -Filter { Name -eq $cname }<br />
if( $cname_object -ne $null ) {<br />
#Remove-ADComputer -Identity "$cname" -Confirm:$false<br />
Write-Host "Computer account $cname already exists, remove using cmd or powershell:"<br />
Write-Host " cmd: dsrm -noprompt '$cname_object'"<br />
Write-Host " power: Remove-ADComputer -Identity '$cname' -Confirm:$false"<br />
Exit<br />
}<br />
<br />
If (Test-Path "$cname.keytab") {<br />
Write-Host "Keytab file $cname.keytab already exists"<br />
Write-Host "Remove using: rm $cname.keytab"<br />
Exit<br />
}<br />
<br />
# create new computer account and keytab file<br />
Write-Host "Create $cname.keytab for host/$cname_fqdn@$domain_realm"<br />
$cname_object = Get-ADComputer -Filter { Name -eq $cname }<br />
if( $cname_object -eq $null ) {<br />
New-ADComputer $cname_upper<br />
# setspn -A host/$cname_fqdn@$domain_realm $cname<br />
$ktpass_options = "/out $cname.keytab /crypto All /ptype KRB5_NT_PRINCIPAL -desonly /mapuser $domain_short\$cname_upper$"<br />
$ktpass_options_first = "$ktpass_options +setupn +rndPass +setpass +answer"<br />
$ktpass_options_next = "/in $cname.keytab $ktpass_options -setupn +rndPass -setpass +answer"<br />
cmd /c "ktpass.exe /princ host/$cname_fqdn@$domain_realm $ktpass_options_first"<br />
cmd /c "ktpass.exe /princ host/$cname@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ $cname_upper$@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ cifs/$cname_fqdn@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ cifs/$cname@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ nfs/$cname_fqdn@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ nfs/$cname@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ HTTP/$cname_fqdn@$domain_realm $ktpass_options_next"<br />
cmd /c "ktpass.exe /princ HTTP/$cname@$domain_realm $ktpass_options_next"<br />
}<br />
</syntaxhighlight><br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139). Výše uvedený kousek <tt>smb.conf</tt> konfigurace neobsahuje všechny změny nutné pro plnohodnotný provoz samba služeb a detailněji je to popsáné v [[Doména FJFI#Samba|další sekci]].<br />
<br />
# získání kerberos ticketu, abychom pro některé z následujících příkazu nemuseli zadávat heslo<br />
# (na RHEL7 je potřeba uložit ticket do souboru pomocí <tt>export KRB5CCNAME=/tmp/krb5cc_0</tt>)<br />
kinit admin # nutný pro join/leave operace<br />
#kinit host/test1234.fjfi.cvut.cz # má +/- dostačující práva pro "keytab" operace<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -k [ -n TEST1234 ] ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -k [ -n TEST1234 ] ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# přidání záznamu o počítači TEST1234 do AD bez nutnosti konfigurovat /etc/samba/smb.conf<br />
# net ads join -U administrator -n test1234 \<br />
# --option='workgroup = FJFI' --option='security = domain' \<br />
# --option='realm = FJFI.CVUT.CZ' --option='kerberos method = secrets and keytab' \<br />
# createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ osName=CentOS osVer=7.x createcomputer=Computers<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -k [ -n TEST1234 ] ads status<br />
<br />
# _kompletní_ vyčístění keytabu (případně lze smazat/přesunout /etc/krb5.keytab)<br />
net -k [ -n TEST1234 ] ads keytab flush<br />
# vytvoření keytabu (tento příkaz funguje jen když je host heslo v secrets.tdb)<br />
net -k [ -n TEST1234 ] ads keytab create<br />
# pokud předchozí příkaz nic neprovede můžete ještě vyzkoušet<br />
net -U host/test1234.fjfi.cvut.cz [ -n TEST1234 ] ads keytab create<br />
# vypsání informací z keytabu<br />
net -k [ -n TEST1234 ] ads keytab list<br />
# přidání služby do keytabu (tento příkaz funguje jen když je host heslo v secrets.tdb)<br />
net -k [ -n TEST1234 ] ads keytab add HTTP<br />
net -k [ -n TEST1234 ] ads keytab add ldap<br />
net -k [ -n TEST1234 ] ads keytab add DNS<br />
...<br />
<br />
# změna hesla pro machine account, provede modifikaci<br />
# /etc/krb5.keytab i /var/lib/samba/private/secrets.tdb<br />
net -k ads changetrustpw<br />
<br />
Pokud použijete tento způsob připojení počítače do domény (<tt>net ads join</tt>), vytvoří samba mimo jiné soubor <tt>/var/lib/samba/private/secrets.tdb</tt> (při použití "kerberos method = secrets and keytab"), který bude v plain textu obsahovat náhodné heslo vygenerované pro nový computer account v AD. Existence tohoto souboru je podmínkou pro další fungovaní příkazů <tt>net ads keytab create</tt> a <tt>net ads keytab add SERVICE</tt>, které ve svém důsledku musí mít nějaký přístup k plain text heslu, když přidávají další principaly do keytabu. Zatím mi není známo, jestli je <tt>secrets.tdb</tt> využíván i přímo daemony, které zprostředkovávájí samba služby.<br />
<br />
===Ruční vytvoření keytabu===<br />
<br />
Pokud znáte heslo k odpovídajícímu computer accountu v AD, můžete si keytab vytvořit sami ručně. V podstatě jde o tu samou operaci, která je ve svém důsledku realizována po zavolání <tt>net -U host/hostname.fjfi.cvut.cz ads keytab create</tt>, která ale fungoje jen pokud již máte vygenerován správný <tt>secrets.tdb</tt> s uloženým plain text heslem pro computer account (tento soubor není složité ručně vygenerovat).<br />
<br />
# zjištění aktualního kvno pro computer account<br />
kinit host/hostname.fjfi.cvut.cz<br />
kvno host/hostname.fjfi.cvut.cz<br />
# nebo přímo dotazem do LDAPu pomocí<br />
ldapsearch -LLL -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=HOSTNAME$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
kdestroy<br />
# vytvoření nového keytabu pro computer account "hostname"<br />
# heslo "'''''secret'''''" nahraďte platným heslem pro computer account<br />
# výraz "'''''kvno'''''" musíte nahradit číslem, které vrátí výše uvedený příkaz<br />
[root@host ~]# ktutil<br />
ktutil: addent -password -p host/hostname.fjfi.cvut.cz -k '''''kvno''''' -e des-cbc-crc<br />
ktutil: addent -password -p host/hostname.fjfi.cvut.cz -k '''''kvno''''' -e des-cbc-md5<br />
ktutil: addent -password -p host/hostname.fjfi.cvut.cz -k '''''kvno''''' -e aes128-cts-hmac-sha1-96<br />
ktutil: addent -password -p host/hostname.fjfi.cvut.cz -k '''''kvno''''' -e aes256-cts-hmac-sha1-96<br />
ktutil: addent -password -p host/hostname.fjfi.cvut.cz -k '''''kvno''''' -e arcfour-hmac<br />
ktutil: addent -password -p host/hostname ...<br />
ktutil: addent -password -p HOSTNAME$ ...<br />
ktutil: ...<br />
ktutil: wkt /etc/krb5.keytab<br />
<br />
Z nějakého důvodu tohle nefungovalo pro <tt>HOSTNAME$</tt> principal (pokud nechcete používat přímo sambu/cifs, tak tento principal není potřeba), takže bylo nakonec nejjednodušší použít opět sambu (bez kerbera), ale nejdříve je nutné mít správné heslo v <tt>/var/lib/samba/private/secrets.tdb</tt> u položky <tt>SECRETS/MACHINE_PASSWORD/FJFI</tt> (<tt>secrets.tdb</tt> je možné [https://gitlab.fjfi.cvut.cz/comp/scripts/blob/master/secrets.py vygenerovat pomocí toho skriptu]):<br />
<br />
# vytvoření keytabu při znalosti hesla a správným secrets.tdb<br />
net -U host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ ads keytab create<br />
# změna hesla pro computer account včetně update krb5.keytab a secrets.tdb<br />
kinit -k<br />
net -k ads changetrustpw<br />
<br />
Tímto příkazem se také aktualizuje seznam všech podporovaných šifer uloženích v nově updatovaném keytabu.<br />
<br />
V principu lze použít i náhodné heslo při generování keytabu pomoci <tt>ktpass.exe</tt>, ale pak budeme navíc potřebovat výpis standardního outputu tohoto přikazu, kde jsou uvedeny informace potřebné pro úspěšný import dat pomoci <tt>ktutil</tt><br />
# na windows si vytvoříme hostname.keytab + hostname.out<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -out c:\hostname.keytab -crypto all -mapOp set > c:\hostname.out<br />
# v ktutil pak přidáme požadované principaly s využitím informací z hostname.out<br />
[root@host ~]# ktutil<br />
ktutil: addent -key "'''''hex číslo z hostname.out'''''" -p host/hostname.fjfi.cvut.cz -k "'''''kvno z hostname.out'''''" -e "'''''encryption z hostname.out'''''<br />
ktutil: ...<br />
<br />
S computer account credentials lze měnit i některé atributy jemu odpovídajícímu objektu, např. můžeme přidat další SPN pomocí následujícich ldap příkazů:<br />
<br />
# HOSTNAME.ldif<br />
dn: CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz<br />
changetype: modify<br />
add: servicePrincipalName<br />
servicePrincipalName: host/hostname<br />
<br />
# update dat v AD<br />
kinit -k<br />
ldapmodify -H ldap://ldap.fjfi.cvut.cz -f HOSTNAME.ldif<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
Na linuxu je potreba nainstalovat [https://code.google.com/p/msktutil/ msktutil] (pr RHEL/CentOS existují balíčky v EPEL), který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a pro některé operace platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# to samé, ale stoj bude zařazen CN=Unix,CN=Computers,DC=fjfi,DC=cvut,DC=cz<br />
msktutil --computer-name TEST -h test -b CN=Unix,CN=Computers -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Kombinace windows + linux===<br />
<strike><br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
</strike><br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
===Použití kerbera pro SSO v browserech===<br />
====Firefox for Windows====<br />
* nutné zkonfigurovat domény pro něž se bude používat kerberos SSO<br />
network.negotiate-auth.delegation-uris = .fjfi.cvut.cz<br />
network.negotiate-auth.trusted-uris = .fjfi.cvut.cz<br />
* pokud nejste součástí windows domény resp. používáte "MIT Kerberos for Windows" potom musíte ještě nastavit<br />
network.auth.use-sspi = false<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
idmap config * : backend = tdb<br />
idmap config * : range = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 4000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
;winbind enum users = yes<br />
;winbind enum groups = yes<br />
# Winbind usernames without DOMAIN prefix<br />
# (this should be probably set to "no" for huge domains)<br />
winbind use default domain = yes<br />
# Replace whitespace in user and group names with an underscore<br />
winbind normalize names = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind<br />
<br />
==Kerberized NFSv4.1==<br />
===NFSv4.1 Windows Server===<br />
* podporováno od w2k12<br />
* nutné přidat roli NFS server<br />
* nutné povolit POSIX compatible case-sensitive práci se složkami/soubory (HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive = 0)<br />
* nutná existence Kerberos service principalu na NFS serveru<br />
** pro NFS server přidat do servicePrincipalName službu nfs/NAME resp. nfs/name.fjfi.cvut.cz }nutné pro každý computer account NFS serveru)<br />
** alterantivou je atribut sPNMappings obsahující globální nastavení standardního mapování různých služeb (cifs, snmp, ...) na "host" službu (viz. CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=fjfi,DC=cvut,DC=cz) + restart serveru<br />
* na složce pro nastavit NFS sdílení s krb5,krb5i,krb5p security (resp. odstranit "Auth_SYS" neposkytující dostatečné zabezpečení pro uživatelská data)<br />
** krb5 - Kerberem ověřená uživatelská identita využitá pro kontrolu přístupových práv k souborům na serveru<br />
** krb5i - všechna data (tj. nejen metadata) posílaná mezi klientem a serverem jsou podepsána, aby je nebylo možné na cestě změnit (minimální vliv na výkon NFS)<br />
** krb5p - všechna data jsou navíc zašifrována a není je možné odposlechnout (na moderních strojích s hw podporou šifrování snížení výkonu NFS do +/- 20%)<br />
* mapování unixových práv (u+rwx,g+rwx,o+rwx) je prováděno následujícím způsobem<br />
** u - CREATOR OWNER (uživatel vlastnící daný objekt a jeho uidNumber)<br />
*** r - read data (list folder)/attributes/extended attributes, write attributes/extended attributes, delete, read/change premissions, take ownership<br />
*** w - read attributes/extended attributes, write (create file)/append (create folder) data, write attributes/extended attributes, delete, read/change premissions, take ownership<br />
*** x - execute file (traverse folder), read attributes/extended attributes, write attributes/extended attributes, delete, read/change premissions, take ownership<br />
** g - primary group pro uživatele CREATOR OWNER ("Domain Users" s gidNumber = 2001)<br />
** o - Everyone<br />
** -<br />
** unixová práva rwx jsou namapována na "full control" na NTFS<br />
** nemá-li group/other žádná unixová práva, stejně jsou na NTFS nastaveny práva (pro čtení metadat): read attributes/extended attributes, read premissions<br />
** nemá-li uživatel žádná unixová práva je to na NTFS implementováno přes "Deny ACL"<br />
* problémy<br />
** RHEL7.1 klient nezapisuje data do vytvořených souborů (pouze vytváří soubory nulové delky)<br />
** RHEL7.1 a Fedora21 klient se kousne po restartu w2k12 NFS Serveru (resp. čeká na nějaký timeout +/- minutu a pak zas začne fungovat)<br />
<br />
===NFSv4.x Linux Server===<br />
* nutný keytab s "nfs" službou, tj. nfs/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ<br />
kinit -k<br />
net ads keytab add nfs --option='workgroup = FJFI' --option='realm = FJFI.CVUT.CZ' --option='kerberos method = secrets and keytab'<br />
##net ads keytab add nfs --option='workgroup = FJFI' --option='security = domain' --option='realm = FJFI.CVUT.CZ' --option='kerberos method = secrets and keytab'<br />
##net ads changetrustpw --option='workgroup = FJFI' --option='security = domain' --option='realm = FJFI.CVUT.CZ' --option='kerberos method = secrets and keytab'<br />
* vytvořit konfigurace v /etc/exports, např.<br />
/exports 147.32.0.0/255.255.0.0(rw,fsid=0,insecure,no_subtree_check,sync,sec=sys:krb5:krb5i:krb5p) 2001:718:2::/48(...)<br />
/exports/secure 147.32.0.0/255.255.0.0(rw,nohide,insecure,no_subtree_check,sync,sec=krb5p) 2001:718:2::/48(...)<br />
/exports/insecure 147.32.0.0/255.255.0.0(rw,nohide,insecure,no_subtree_check,sync,sec=sys) 2001:718:2::/48(...)<br />
* spustit potřebné daemony<br />
systemctl enable nfs-secure-server<br />
systemctl start nfs-secure-server<br />
* konfigurace RHEL7.0 se liší od novější RHEL7.1<br />
** rpc.svcgssd je nahrazen novým gssproxy daemonem<br />
** důvodem je to, že starší interface zvládal pouze ~ 2kb tickety MS-PAC (info o skupinách) může být daleko větší<br />
** bohužel se mi s gssproxy zatím nepodařilo kerberizovano NFS zprovoznit (RHEL7.1 a Fedora21)<br />
** na RHEL7.1 lze změnou startovacích skriptů nahradit nový ("nefunkční") gssproxy starým rpc.svcgssd (vyžaduje restart! kvůli neměnitelnému /proc/net/rpc/use-gss-proxy resp. konfiguraci jaderných callbacků)<br />
** nerozhodil jsem to s NFSv4.1 ale pouze s NFSv4.0<br />
* na klientovi připojit příkazem<br />
mount -t nfs -o vers=4.0,sec=krb5p 147.32.9.9:/home /home<br />
<br />
===NFSv4.x Linux Client===<br />
* připojit lze příkazem (sec parametr musí obsahovat krb5 resp. krb5i resp. krb5p):<br />
# NFS Kerberized client of the w2k12 NFSv4.1 server requires host keytab stored in /etc/krb5.keytab<br />
# (linux NFS Kerberized client by default works even without host keytab)<br />
net ads join -U administrator%password -n test1234 \<br />
--option='workgroup = FJFI' --option='security = domain' \<br />
--option='realm = FJFI.CVUT.CZ' --option='kerberos method = secrets and keytab' \<br />
createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ osName=CentOS osVer=7.x createcomputer=Computers<br />
# start client daemons required by Keberized NFS server<br />
systemctl start nfs-secure<br />
systemctl restart nfs-secure # in case rpc.gssd already running and we changed /etc/krb5.conf<br />
# username <-> uidNumber mapping (requires right domain in /etc/idmapd.conf)<br />
systemctl start nfs-idmapd<br />
# mount NFS shares<br />
mount -t nfs -o vers=4.1,sec=krb5 -v w2k12nfs.fjfi.cvut.cz:/public /mnt/public<br />
# to mount NFS shares on startup add folloving line in /etc/fstab<br />
w2k12nfs.fjfi.cvut.cz:/data /data nfs vers=4.1,sec=krb5p 0 0<br />
* aktuálně je rozbitý zápis do souborů na RHEL7.1 (ve Fedoře 21 funguje)<br />
* debug<br />
# nastavit -vvvv parametr v /etc/sysconfig/nfs pro RPCGSSDARGS<br />
echo 32767 > /proc/sys/sunrpc/rpc_debug<br />
echo 65535 > /proc/sys/sunrpc/nfs_debug</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Schema_fnspeUser&diff=3624Schema fnspeUser2015-05-29T15:19:51Z<p>Keroupav: </p>
<hr />
<div> # LDAP schema for CTU FNSPE<br />
#<br />
# Copyright (c) 2007 JAS<br />
#<br />
# Author: Petr Vokac <vokac at fjfi.cvut.cz><br />
#<br />
# $Id$<br />
#<br />
#<br />
# OID CTU FNSPE prefix: 1.3.6.1.4.1.4993.16<br />
# .0 Reserved (at any level)<br />
# .1 SNMP<br />
# .2 LDAP Elements<br />
# .1 Syntaxes<br />
# .2 Matching Rules<br />
# .3 Attribute Types<br />
# .4 Object Classes<br />
# .5 Supported Feature<br />
# .9 Protocol Mechanism<br />
# .10 Control<br />
# .11 Extended Operaions<br />
# ...<br />
# OID CTU FNSPE LDAP Attribute Types<br />
# .1 CTU attributes<br />
# .2 CTU FNSPE attributes<br />
# .2.1 CTU FNSPE attributes - Account<br />
# .2.1.1 CTU FNSPE attributes - Account - User<br />
# .2.1.2 CTU FNSPE attributes - Account - Eduroam<br />
# .2.2 CTU FNSPE attributes - Mail<br />
#<br />
#<br />
# To import this schema you can use command:<br />
# ldifde -v -i -k -f your_modified_schema_file.ldif -c DC=TARGET_DOMAIN DC=fjfi,DC=cvut,DC=cz<br />
#<br />
<br />
<br />
<br />
#<br />
# CTU attributes (1.3.6.1.4.1.4993.16.2.3.1)<br />
#<br />
<br />
dn: CN=ctuPersonalId,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: attributeSchema<br />
ldapDisplayName: ctuPersonalId<br />
adminDisplayName: ctuPersonalId<br />
adminDescription: CTU personal Id<br />
attributeId: 1.3.6.1.4.1.4993.16.2.3.1.1<br />
attributeSyntax: 2.5.5.9<br />
omSyntax: 2<br />
#attributeSyntax: 2.5.5.6 # numeric string, may be it is<br />
#omSyntax: 18 # more close to Usermap exchPersonalId<br />
isSingleValued: TRUE<br />
systemOnly: FALSE<br />
searchFlags: 1<br />
<br />
#dn: CN=ctuGovAssignedNumber,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
#changetype: add<br />
#objectClass: attributeSchema<br />
#ldapDisplayName: ctuGovAssignedNumber<br />
#adminDisplayName: ctuGovAssignedNumber<br />
#adminDescription: Number assigned by the government<br />
#attributeId: 1.3.6.1.4.1.4993.16.2.3.1.2<br />
#attributeSyntax: 2.5.5.5<br />
#omSyntax: 22<br />
#isSingleValued: TRUE<br />
#systemOnly: FALSE<br />
#searchFlags: 1<br />
<br />
dn: CN=ctuUsername,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: attributeSchema<br />
ldapDisplayName: ctuUsername<br />
adminDisplayName: ctuUsername<br />
adminDescription: CTU username (Usermap/KOS username)<br />
attributeId: 1.3.6.1.4.1.4993.16.2.3.1.3<br />
attributeSyntax: 2.5.5.12<br />
omSyntax: 64<br />
isSingleValued: FALSE<br />
systemOnly: FALSE<br />
searchFlags: 1<br />
<br />
dn: CN=ctuStudium,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: attributeSchema<br />
ldapDisplayName: ctuStudium<br />
adminDisplayName: ctuStudium<br />
adminDescription: Study branch and study type<br />
attributeId: 1.3.6.1.4.1.4993.16.2.3.1.4<br />
attributeSyntax: 2.5.5.12<br />
omSyntax: 64<br />
isSingleValued: FALSE<br />
systemOnly: FALSE<br />
searchFlags: 1<br />
<br />
dn: CN=ctuFormerSn,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: attributeSchema<br />
ldapDisplayName: ctuFormerSn<br />
adminDisplayName: ctuFormerSn<br />
adminDescription: Study branch and study type<br />
attributeId: 1.3.6.1.4.1.4993.16.2.3.1.5<br />
attributeSyntax: 2.5.5.12<br />
omSyntax: 64<br />
isSingleValued: FALSE<br />
systemOnly: FALSE<br />
searchFlags: 1<br />
<br />
dn: CN=ctuRolesTypeB,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: attributeSchema<br />
ldapDisplayName: ctuRolesTypeB<br />
adminDisplayName: ctuRolesTypeB<br />
adminDescription: Study branch and study type<br />
attributeId: 1.3.6.1.4.1.4993.16.2.3.1.6<br />
attributeSyntax: 2.5.5.12<br />
omSyntax: 64<br />
isSingleValued: FALSE<br />
systemOnly: FALSE<br />
searchFlags: 1<br />
<br />
#<br />
# CTU FNSPE attributes (1.3.6.1.4.1.4993.16.2.3.2)<br />
#<br />
<br />
# Account (1.3.6.1.4.1.4993.16.2.3.2.1)<br />
<br />
# User (1.3.6.1.4.1.4993.16.2.3.2.1.1)<br />
<br />
dn: CN=fnspeStatus,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: attributeSchema<br />
ldapDisplayName: fnspeStatus<br />
adminDisplayName: fnspeStatus<br />
adminDescription: FNSPE Account status (new, active, kill, zombie, dead, unknown)<br />
attributeId: 1.3.6.1.4.1.4993.16.2.3.1.3<br />
attributeSyntax: 2.5.5.12<br />
omSyntax: 64<br />
isSingleValued: TRUE<br />
systemOnly: FALSE<br />
<br />
dn: CN=fnspeStatusTimestamp,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: attributeSchema<br />
ldapDisplayName: fnspeStatusTimestamp<br />
adminDisplayName: fnspeStatusTimestamp<br />
adminDescription: Timestamp of last change of status<br />
attributeId: 1.3.6.1.4.1.4993.16.2.3.2.1.1.2<br />
attributeSyntax: 2.5.5.16<br />
omSyntax: 65<br />
isSingleValued: TRUE<br />
systemOnly: FALSE<br />
<br />
dn: CN=fnspeForceGroup,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: attributeSchema<br />
ldapDisplayName: fnspeForceGroup<br />
adminDisplayName: fnspeForceGroup<br />
adminDescription: Force this account to be memberOf all defined groups<br />
attributeId: 1.3.6.1.4.1.4993.16.2.3.2.1.1.3<br />
attributeSyntax: 2.5.5.12<br />
omSyntax: 64<br />
isSingleValued: FALSE<br />
systemOnly: FALSE<br />
<br />
# Eduroam (1.3.6.1.4.1.4993.16.2.3.2.1.2)<br />
<br />
dn: CN=fnspeEduroamPassword,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: attributeSchema<br />
ldapDisplayName: fnspeEduroamPassword<br />
adminDisplayName: fnspeEduroamPassword<br />
adminDescription: RFC2256/2307: password of user for eduroam project<br />
attributeId: 1.3.6.1.4.1.4993.16.2.3.2.1.2.1<br />
attributeSyntax: 2.5.5.10<br />
omSyntax: 4<br />
isSingleValued: TRUE<br />
systemOnly: FALSE<br />
<br />
dn: CN=fnspeEduroamDisabled,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: attributeSchema<br />
ldapDisplayName: fnspeEduroamDisabled<br />
adminDisplayName: fnspeEduroamDisabled<br />
adminDescription: Flag for disabled FNSPE Eduroam account<br />
attributeId: 1.3.6.1.4.1.4993.16.2.3.2.1.2.2<br />
attributeSyntax: 2.5.5.8<br />
omSyntax: 1<br />
isSingleValued: TRUE<br />
systemOnly: FALSE<br />
<br />
dn: CN=fnspeEduroamLocal,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: attributeSchema<br />
ldapDisplayName: fnspeEduroamLocal<br />
adminDisplayName: fnspeEduroamLocal<br />
adminDescription: Flag this account has only access to local realm<br />
attributeId: 1.3.6.1.4.1.4993.16.2.3.2.1.2.3<br />
attributeSyntax: 2.5.5.8<br />
omSyntax: 1<br />
isSingleValued: TRUE<br />
systemOnly: FALSE<br />
<br />
dn: CN=fnspeEduroamExpire,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: attributeSchema<br />
ldapDisplayName: fnspeEduroamExpire<br />
adminDisplayName: fnspeEduroamExpire<br />
adminDescription: Date of expiration for this account (empty means never)<br />
attributeId: 1.3.6.1.4.1.4993.16.2.3.2.1.2.4<br />
attributeSyntax: 2.5.5.16<br />
omSyntax: 65<br />
isSingleValued: TRUE<br />
systemOnly: FALSE<br />
<br />
<br />
# Mail (1.3.6.1.4.1.4993.16.2.3.2.2)<br />
<br />
#dn: CN=fnspeMailAddresses,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
#changetype: add<br />
#objectClass: attributeSchema<br />
#ldapDisplayName: fnspeMailAddresses<br />
#adminDisplayName: fnspeMailAddresses<br />
#adminDescription: RFC822 addresses for mail filtering personalization<br />
#attributeId: 1.3.6.1.4.1.4993.16.2.3.2.2.1<br />
#attributeSyntax: 2.5.5.12<br />
#omSyntax: 64<br />
#isSingleValued: FALSE<br />
#systemOnly: FALSE<br />
#searchFlags: 1<br />
<br />
<br />
<br />
# -----------------------------------------------------------------------<br />
# Reload the schema cache to pick up altered classes and attributes<br />
# -----------------------------------------------------------------------<br />
dn:<br />
changetype: ntdsSchemaModify<br />
add: schemaUpdateNow<br />
schemaUpdateNow: 1<br />
-<br />
<br />
<br />
<br />
dn: CN=fnspeAccount,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
changetype: add<br />
objectClass: classSchema<br />
ldapDisplayName: fnspeAccount<br />
adminDisplayName: fnspeAccount<br />
adminDescription: CTU FNSPE user account<br />
governsID: 1.3.6.1.4.1.4993.16.2.4.1<br />
objectClassCategory: 3<br />
rDNAttID: cn<br />
subClassOf: top<br />
mustContain: cn<br />
mayContain: ctuPersonalId<br />
mayContain: ctuUsername<br />
mayContain: fnspeStatus<br />
mayContain: fnspeStatusTimestamp<br />
mayContain: fnspeForceGroup<br />
mayContain: fnspeEduroamPassword<br />
mayContain: fnspeEduroamDisabled<br />
mayContain: fnspeEduroamLocal<br />
mayContain: fnspeEduroamExpire<br />
showInAdvancedViewOnly: FALSE<br />
defaultHidingValue: FALSE<br />
systemOnly: FALSE<br />
defaultObjectCategory: CN=fnspeAccount,CN=Schema,CN=Configuration,DC=TARGET_DOMAIN<br />
<br />
<br />
<br />
# -----------------------------------------------------------------------<br />
# Reload the schema cache to pick up altered classes and attributes<br />
# -----------------------------------------------------------------------<br />
dn:<br />
changetype: ntdsSchemaModify<br />
add: schemaUpdateNow<br />
schemaUpdateNow: 1<br />
-</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=3250Doména FJFI2014-11-26T12:10:24Z<p>Keroupav: /* Synchronizace času */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ARK1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ARK2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| SRK || Trojanova || terminal server Windows<br />
|-<br />
| VRK2 || Trojanova || virtualizační server<br />
|-<br />
| Troja1 || Trója || DC, fileserver<br />
|-<br />
| DRK || Děčín || DC, LDAP<br />
|-<br />
| ARK3 || Děčín || Fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| KMK || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| Print2 || VRK2 || printserver Trojanova<br />
|-<br />
| IT || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| SCP || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** účet typu stu<br />
*** uživatel obdrží info o chystaném zablokování jeho účtu emailem<br />
*** po 30 dnech je odebrán z organizačních jednotek a skupin<br />
*** přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
*** po dalších 90 dnech je odstraněn včetně dat<br />
** účet typu emp<br />
*** uživatel obdrží emailem info o zachování účtu včetně emailu, pokud to výslovně nežádá opak<br />
*** po 30 dnech je odebrán z organizačních jednotek a skupin<br />
*** přesunut do ou=katedra\emerit, status nastaven na "emerit" a poznamená se timestamp<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<strike><br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
</strike><br />
<br />
===FnspeCmdService===<br />
<strike><br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
</strike><br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<strike><br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
</strike><br />
<br />
===ADScripts - synchronizace 2014===<br />
<br />
Přepis FnspeLibrary přímo do powershellu z důvodu malé flexibility v úpravě a kompilaci C# DLL knihovny. Rozhraní pro přístup k uživatelským datům zůstalo stejné jako v případě FnspeLibrary, rozdíl je pouze v několika řádcích inicializace a ta je demonstrována v <tt>example-usermap.ps1</tt>. Nové powershell rozhraní navíc přistupuje přímo k datům v usermap LDAPu a databázi Oracle obsahující číselníky (telefony, adresy, funkce ...).<br />
<br />
# zdrojové soubory powershell skriptů<br />
svn co https://comp.fjfi.cvut.cz/repos/adscripts adscripts<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
Pokud je/byl uživatel někdy členem skupiny administratorů, potom si tuto informaci AD poznamená do atributu <tt>adminCount</tt>, který podle dokumentace znamená: "Indicates that a given object has had its ACLs changed to a more secure value by the system because it was a member of one of the administrative groups (directly or transitively)". Účty, které mají nastaven "adminCount" příznak může modifikovat jen administrátor (vlastnost AD) - speciální uživatel používaný přes rozhraní na NMS není admin a proto např. nastavováni hesel pro wireless sítě nebude z rozhraní na NMS fungovat. Toto je další důvod proč by běžné uživatelské účty neměli být v admin skupinách.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-S''' || vyhrazeno pro potřeby fakulty (globálních a lokálních správců - využití nutno uvést do této tabulky!)<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''T-Z''' || vyhrazeno pro potřeby lokálního uživatele<br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), ARK3 (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště (DFS)<br />
**servery AR1, ARK2<br />
**Replicated folders: <br />
***Home (osobní síťové adresáře)<br />
***Profile (roaming profiles pro účely učeben)<br />
***Share (obsahuje sdílené složky organizačních jednotek a jiné)<br />
***WWW (webhosting zaměstnanců)<br />
***WW2 (webhosting pro studenty)<br />
**Published to Namespace: FRK (Servers ARK1, ARK2)<br />
* Lokální datové úložiště Děčín (SMB 2.1)<br />
*server ARK3<br />
**Shared folders: Home, Profile, WWW, WWW2, Share<br />
**data jsou zde umístěna na základě pracovního/studijního zařazení<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Jednoduchý test přístupu k datům v AD se simple autentizací<br />
# klasické SSL spojení<br />
ldapsearch -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
<br />
Jednoduchý test přístupu k datům v AD s kerberos autentizací<br />
# získání kerberos ticketu pro autentizaci LDAP spojení<br />
kinit username@FJFI.CVUT.CZ <br />
# klasické SSL spojení<br />
ldapsearch -O minssf=0,maxssf=0 -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -O minssf=0,maxssf=0 -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
<br />
Příklad simple autentizace v pythonu:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu) v pythonu:<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
#conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
#conn.start_tls_s()<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Při použití SASL (GSSAPI) autentizace a zabezpečeného přenostu dat přes STARTTLS (port 389) nebo SSL (port 636) je navíc potřeba OpenLDAP knihovně vysvětlit, aby nepoužívala "SASL privacy layers", které LDAP rozhraní AD nepodporuje (z hlediska zabezpečení je to pořád OK). V takovém případě je potřeba přidat do <tt>/etc/openldap/ldap.conf</tt> řádek s <tt>sasl_secprops minssf=0,maxssf=0</tt> nebo přímo v kódu nastavit tyto parametry např. pomoci<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
* Synchronizace času v doméně<br />
** PDC emulator (ARK2) je manuálně nastaven na synchronizaci s externím zdrojem (tik.cesnet.cz,tak.cesnet.cz).<br />
*** w32tm /config /syncfromflags:MANUAL /manualpeerlist:tik.cesnet.cz,tak.cesnet.cz /reliable:yes /update<br />
*** Net stop w32time && net start w32time<br />
** Ostatní DC se synchronizují z domény.<br />
*** w32tm /config /syncfromflags:DOMHIER /update<br />
*** w32tm /resync /rediscover<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
===SSSD===<br />
<br />
Je řešení RedHatu pro autentizace (pam) a zpřístupnění informací o uživatelských učtech (nss). Má hromadu konfiguračních možností a obecně vypadá jako robustnějši řešení než např. samotný pam_ldap+nss_ldap (např. umožňuje cachování informací a "offline režim"). V principu lze použít dvě různé konfigurace pro lokální prostředí s AD. První řešení je na míru šité pro AD a vyžaduje, aby daný počítač byl joinutý do domény, druhé řešení používa klasickým způsobem LDAP a Kerberos rozhraní AD a nevyžaduje joinutí do domény.<br />
<br />
Aby systém vůbec začal využívat služby SSSD daemona, můsí se požadavky na autentizaci přesměrovat na <tt>pam_sss</tt> modul a uživatelské učty musí využívat <tt>nss_sss</tt>. Je potřeba upravit (zkontrolovat) následující konfigurační soubory:<br />
<br />
# /etc/nsswitch.conf<br />
...<br />
passwd: files '''sss'''<br />
shadow: files '''sss'''<br />
group: files '''sss'''<br />
...<br />
<br />
# /etc/pam.d/password-auth resp. /etc/pam.d/system-auth<br />
<br />
#%PAM-1.0<br />
# This file is auto-generated.<br />
# User changes will be destroyed the next time authconfig is run.<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 500 quiet<br />
'''auth sufficient pam_sss.so use_first_pass'''<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 500 quiet<br />
'''account [default=bad success=ok user_unknown=ignore] pam_sss.so'''<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3 type=<br />
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok<br />
'''password sufficient pam_sss.so use_authtok'''<br />
password required pam_deny.so<br />
<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
'''session optional pam_sss.so'''<br />
<br />
Na RedHat 6.x jsou tyto soubory automaticky správně modifikovány po instalaci SSSD. Tu lze provést následujícím příkazem:<br />
<br />
# důležité je nainstalovat i 32bit verzi jinak nebudou běhat<br />
# žádné aplikace zkompilované 32bit<br />
yum install sssd sssd-tools sssd-client sssd-client.i686<br />
<br />
Případně lze provést všechny potřebné modifikace PAM a NSS jedním příkazem<br />
<br />
authconfig --update --enablesssd --enablesssdauth<br />
<br />
====SSSD AD====<br />
<br />
Relativně minimální konfigurace SSSD proti FJFI AD může vypadat následujícím způsobem. Aby níže uvedená konfigurace fungovala, musí být splněny následující požadavky<br />
<br />
* počítač musí být zařazen v AD doméně (viz. [[Doména FJFI#Host/Service Kerberos Key|Host/Service Kerberos Key]])<br />
** musí existovat <tt>/etc/krb5.keytab</tt><br />
** musí být zkonfigurován kerberos v <tt>/etc/krb5.conf</tt> (viz. např. [[Doména FJFI#Kerberos|ukázka konfigurace]])<br />
** musí fungovat ověření pomocí keytabu <tt>kinit -k -t /etc/krb5.keytab host/name.fjfi.cvut.cz@FJFI.CVUT.CZ</tt><br />
* uživatelské účty musí mit posixAccount atributy (viz. [[Doména FJFI#Konfigurace účtu v AD|Konfigurace účtu v AD]])<br />
* <tt>pam_sssd</tt> v konfiguraci <tt>/etc/pam.d/system-auth</tt> a <tt>/etc/pam.d/password-auth</tt> (viz. [[Doména FJFI#SSSD|SSSD]])<br />
* <tt>sssd</tt> pro příslušné položky (<tt>passwd</tt>, <tt>shadow</tt>, <tt>group</tt>) v <tt>/etc/nsswitch.conf</tt> (viz. [[Doména FJFI#SSSD|SSSD]])<br />
* zkonfigurovat sssd daemona<br />
** použitelné konfigurace sssd uložené v <tt>/etc/sssd/sssd.conf</tt> jsou uvedeny níže<br />
** konfigurační soubor musí mít nastavena práva: <tt>chmod 600 /etc/sssd/sssd.conf</tt><br />
** při použití SELinuxu je potřeba mít správné securitz labely na konfiguracích: <tt>restorecon -R -v /etc</tt><br />
** nutné povolit a nastartovat sssd daemona<br />
<br />
# základní minimální konfigurace /etc/sssd/sssd.conf pro FJFI AD<br />
[sssd]<br />
domains = fjfi.cvut.cz<br />
services = nss, pam<br />
config_file_version = 2<br />
<br />
[nss]<br />
<br />
[pam]<br />
# caching credentials for offline logging<br />
#offline_credentials_expiration = 3<br />
#offline_failed_login_attempts = 3<br />
<br />
[domain/fjfi.cvut.cz]<br />
id_provider = ad<br />
access_provider = ad<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# ad_hostname is necessary only if hostname can't be matched with entries in keytab<br />
#ad_hostname = host.fjfi.cvut.cz<br />
#ad_access_filter = (memberOf=cn=skupina,ou=Groups,dc=fjfi,dc=cvut,dc=cz)<br />
dyndns_update = false<br />
ldap_schema = ad<br />
ldap_id_mapping = false<br />
ldap_disable_referrals = true<br />
# global<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
<br />
<strike><br />
Pokud chceme omezit skupinu lidí, kteří budou mít přístup k linuxovému stroji se zkonfigurovaným SSSD AD, potom musíme zvolit <tt>access_provider = ldap</tt>, jelikož výše uvedený <tt>ad</tt> provider nemá (v aktuální verzi na RHEL6.5) žádné další možnosti konfigurace. Konfigurace vlastního service by pak mohla vypadat např. následovně:<br />
<br />
# část konfigurace /etc/sssd/sssd.conf omezující přístup pro členy dané skupiny (RHEL6.x resp. sssd < 1.11)<br />
[domain/AD]<br />
id_provider = ad<br />
auth_provider = ad<br />
chpass_provider = ad<br />
'''access_provider = ldap'''<br />
ad_domain = fjfi.cvut.cz<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# folloving name is necessary only if local hostname doesn't correspond entries in keytab file<br />
#ad_hostname = host.fjfi.cvut.cz<br />
# defines user/group schema type<br />
ldap_schema = ad<br />
# using explicit POSIX attributes in the Windows entries (default is false)<br />
ldap_id_mapping = false<br />
# ldap access controls - requires access_provider set to ldap<br />
'''ldap_sasl_mech = GSSAPI'''<br />
'''ldap_access_filter = memberOf=cn=skupina,ou=Groups,dc=fjfi,dc=cvut,dc=cz'''<br />
'''ldap_access_order = filter,expire'''<br />
'''ldap_account_expire_policy = ad'''<br />
'''ldap_force_upper_case_realm = true'''<br />
# performance<br />
ldap_disable_referrals = true<br />
# global<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
enumerate = true<br />
<br />
V budoucnu bude možné využít ad_access_filter, který je ale až v novější verzi SSSD 1.11 (RHEL7)<br />
</strike><br />
<br />
Po vytvoření požadované konfigurace je potřeba zajistit, aby se při startu systému spustil také sssd daemon<br />
<br />
# povolení spuštění sssd při startu + okamžitý start sssd služby na RHEL 6.x (init skripty)<br />
chkconfig sssd on<br />
service sssd start<br />
# povolení spuštění sssd při startu + okamžitý start sssd služby na RHEL 7.x (systemd)<br />
systemctl enable sssd<br />
systemctl start sssd<br />
<br />
====SSSD LDAP+Kerberos====<br />
<br />
[sssd]<br />
domains = LOCAL,LDAP<br />
services = nss, pam<br />
config_file_version = 2<br />
<br />
[nss]<br />
filter_groups = root<br />
filter_users = root<br />
reconnection_retries = 3<br />
entry_cache_timeout = 300<br />
entry_cache_nowait_percentage = 75<br />
<br />
[pam]<br />
reconnection_retries = 3<br />
offline_credentials_expiration = 3<br />
offline_failed_login_attempts = 3<br />
offline_failed_login_delay = 5<br />
pam_pwd_expiration_warning = 3<br />
<br />
[domain/LOCAL]<br />
id_provider = local<br />
auth_provider = local<br />
access_provider = permit<br />
<br />
[domain/LDAP]<br />
id_provider = ldap<br />
auth_provider = krb5<br />
chpass_provider = krb5<br />
access_provider = ldap<br />
min_id = 1000<br />
max_id = 30000<br />
ldap_uri = ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz,ldap://ldap3.fjfi.cvut.cz<br />
ldap_search_base = dc=fjfi,dc=cvut,dc=cz<br />
ldap_id_use_start_tls = true<br />
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt<br />
# simple autentizace uživatele pro přístup k LDAP informacím<br />
#ldap_default_bind_dn = CN=proxy_posix,OU=Specials,DC=fjfi,DC=cvut,DC=cz<br />
#ldap_default_authtok_type = password<br />
#ldap_default_authtok = secret<br />
# kerberos autentizace uživatele pro přístup k LDAP informacím<br />
ldap_sasl_mech = GSSAPI<br />
ldap_sasl_authid = host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ<br />
ldap_referrals = false<br />
ldap_schema = rfc2307bis<br />
ldap_user_search_base = ou=People,dc=fjfi,dc=cvut,dc=cz<br />
ldap_user_object_class = user<br />
ldap_user_home_directory = unixHomeDirectory<br />
ldap_user_principal = userPrincipalName<br />
ldap_user_name = sAMAccountName<br />
ldap_group_search_base = ou=groups,dc=fjfi,dc=cvut,dc=cz<br />
ldap_group_object_class = group<br />
#ldap_search_timeout = ??? # switch to offline mode after this timeout<br />
#ldap_network_timeout = 6<br />
#ldap_opt_timeout = 5<br />
#ldap_access_filter = memberOf=cn=emp,ou=Groups,dc=fjfi,dc=cvut,dc=cz<br />
#ldap_access_order = filter,expire<br />
ldap_access_order = expire<br />
ldap_account_expire_policy = ad<br />
ldap_force_upper_case_realm = true<br />
ldap_disable_referrals = true<br />
# kerberos configuration<br />
krb5_server = krb1.fjfi.cvut.cz,krb2.fjfi.cvut.cz,krb3.fjfi.cvut.cz<br />
krb5_realm = FJFI.CVUT.CZ<br />
krb5_canonicalize = false<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
account_cache_expiration = 7<br />
entry_cache_timeout = 14400<br />
enumerate = true<br />
<br />
Při použití výše uvedené konfigurace proti AD (tj. kerberos autentizace + TLS zabezpečený přenos dat) je potřeba na RHEL 6.x do <tt>/etc/openldap/ldap.conf</tt> přídat řádek<br />
<br />
# Active Directory not supporting nested security or privacy layers<br />
sasl_secprops minssf=0,maxssf=0<br />
<br />
===Kerberos===<br />
<br />
Toto je starší způsob z doby, kdy ještě neexistovala možnost použít sssd. Navíc lze tento starší návod aplikovat na platformách, které nepodporují sssd.<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu 5.x (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt>, na RedHatu 6.x (RHEL6) je to samé potřeba provést ještě v <tt>/etc/pam.d/password-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu HOSTNAME$ v AD<br />
# (lze také naklikat v admin mmc User and Computer consoli)<br />
dsrm -noprompt "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu (na w2k8 by měl být ktpass.exe součástí default instalace)<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -out c:\hostname.keytab -crypto all -mapOp set [-kvno 1]<br />
# vytvoření služby ftp pro hosta hostname.fjfi.cvut.cz (pouze pokud na "hostname" provozujeme službu FTP)<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -SetUpn -out hostname.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5 (asi historicke a zbytečné)<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu, abychom pro některé z následujících příkazu nemuseli zadávat heslo<br />
# (na RHEL7 je potřeba uložit ticket do souboru pomocí <tt>export KRB5CCNAME=/tmp/krb5cc_0</tt>)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -k -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -k -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -k -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -k -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -k -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -k -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -k -n TEST1234 ads keytab add HTTP<br />
net -k -n TEST1234 ads keytab add ldap<br />
net -k -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=3249Doména FJFI2014-11-26T12:04:50Z<p>Keroupav: /* Synchronizace času */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ARK1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ARK2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| SRK || Trojanova || terminal server Windows<br />
|-<br />
| VRK2 || Trojanova || virtualizační server<br />
|-<br />
| Troja1 || Trója || DC, fileserver<br />
|-<br />
| DRK || Děčín || DC, LDAP<br />
|-<br />
| ARK3 || Děčín || Fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| KMK || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| Print2 || VRK2 || printserver Trojanova<br />
|-<br />
| IT || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| SCP || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** účet typu stu<br />
*** uživatel obdrží info o chystaném zablokování jeho účtu emailem<br />
*** po 30 dnech je odebrán z organizačních jednotek a skupin<br />
*** přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
*** po dalších 90 dnech je odstraněn včetně dat<br />
** účet typu emp<br />
*** uživatel obdrží emailem info o zachování účtu včetně emailu, pokud to výslovně nežádá opak<br />
*** po 30 dnech je odebrán z organizačních jednotek a skupin<br />
*** přesunut do ou=katedra\emerit, status nastaven na "emerit" a poznamená se timestamp<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<strike><br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
</strike><br />
<br />
===FnspeCmdService===<br />
<strike><br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
</strike><br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<strike><br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
</strike><br />
<br />
===ADScripts - synchronizace 2014===<br />
<br />
Přepis FnspeLibrary přímo do powershellu z důvodu malé flexibility v úpravě a kompilaci C# DLL knihovny. Rozhraní pro přístup k uživatelským datům zůstalo stejné jako v případě FnspeLibrary, rozdíl je pouze v několika řádcích inicializace a ta je demonstrována v <tt>example-usermap.ps1</tt>. Nové powershell rozhraní navíc přistupuje přímo k datům v usermap LDAPu a databázi Oracle obsahující číselníky (telefony, adresy, funkce ...).<br />
<br />
# zdrojové soubory powershell skriptů<br />
svn co https://comp.fjfi.cvut.cz/repos/adscripts adscripts<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
Pokud je/byl uživatel někdy členem skupiny administratorů, potom si tuto informaci AD poznamená do atributu <tt>adminCount</tt>, který podle dokumentace znamená: "Indicates that a given object has had its ACLs changed to a more secure value by the system because it was a member of one of the administrative groups (directly or transitively)". Účty, které mají nastaven "adminCount" příznak může modifikovat jen administrátor (vlastnost AD) - speciální uživatel používaný přes rozhraní na NMS není admin a proto např. nastavováni hesel pro wireless sítě nebude z rozhraní na NMS fungovat. Toto je další důvod proč by běžné uživatelské účty neměli být v admin skupinách.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-S''' || vyhrazeno pro potřeby fakulty (globálních a lokálních správců - využití nutno uvést do této tabulky!)<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''T-Z''' || vyhrazeno pro potřeby lokálního uživatele<br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), ARK3 (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště (DFS)<br />
**servery AR1, ARK2<br />
**Replicated folders: <br />
***Home (osobní síťové adresáře)<br />
***Profile (roaming profiles pro účely učeben)<br />
***Share (obsahuje sdílené složky organizačních jednotek a jiné)<br />
***WWW (webhosting zaměstnanců)<br />
***WW2 (webhosting pro studenty)<br />
**Published to Namespace: FRK (Servers ARK1, ARK2)<br />
* Lokální datové úložiště Děčín (SMB 2.1)<br />
*server ARK3<br />
**Shared folders: Home, Profile, WWW, WWW2, Share<br />
**data jsou zde umístěna na základě pracovního/studijního zařazení<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Jednoduchý test přístupu k datům v AD se simple autentizací<br />
# klasické SSL spojení<br />
ldapsearch -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
<br />
Jednoduchý test přístupu k datům v AD s kerberos autentizací<br />
# získání kerberos ticketu pro autentizaci LDAP spojení<br />
kinit username@FJFI.CVUT.CZ <br />
# klasické SSL spojení<br />
ldapsearch -O minssf=0,maxssf=0 -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -O minssf=0,maxssf=0 -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
<br />
Příklad simple autentizace v pythonu:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu) v pythonu:<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
#conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
#conn.start_tls_s()<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Při použití SASL (GSSAPI) autentizace a zabezpečeného přenostu dat přes STARTTLS (port 389) nebo SSL (port 636) je navíc potřeba OpenLDAP knihovně vysvětlit, aby nepoužívala "SASL privacy layers", které LDAP rozhraní AD nepodporuje (z hlediska zabezpečení je to pořád OK). V takovém případě je potřeba přidat do <tt>/etc/openldap/ldap.conf</tt> řádek s <tt>sasl_secprops minssf=0,maxssf=0</tt> nebo přímo v kódu nastavit tyto parametry např. pomoci<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
* Synchronizace času v doméně<br />
** PDC emulator (ARK2) je manuálně nastaven na synchronizaci s externím zdrojem (tik.cesnet.cz,tak.cesnet.cz).<br />
*** w32tm /config /syncfromflags:MANUAL /manualpeerlist:tik.cesnet.cz,tak.cesnet.cz /reliable:yes /update<br />
*** Net stop w32time && net start w32time<br />
** Ostatní DC se synchronizují z domény.<br />
*** w32tm /config /syncfromflags:DOMHIER /update<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
===SSSD===<br />
<br />
Je řešení RedHatu pro autentizace (pam) a zpřístupnění informací o uživatelských učtech (nss). Má hromadu konfiguračních možností a obecně vypadá jako robustnějši řešení než např. samotný pam_ldap+nss_ldap (např. umožňuje cachování informací a "offline režim"). V principu lze použít dvě různé konfigurace pro lokální prostředí s AD. První řešení je na míru šité pro AD a vyžaduje, aby daný počítač byl joinutý do domény, druhé řešení používa klasickým způsobem LDAP a Kerberos rozhraní AD a nevyžaduje joinutí do domény.<br />
<br />
Aby systém vůbec začal využívat služby SSSD daemona, můsí se požadavky na autentizaci přesměrovat na <tt>pam_sss</tt> modul a uživatelské učty musí využívat <tt>nss_sss</tt>. Je potřeba upravit (zkontrolovat) následující konfigurační soubory:<br />
<br />
# /etc/nsswitch.conf<br />
...<br />
passwd: files '''sss'''<br />
shadow: files '''sss'''<br />
group: files '''sss'''<br />
...<br />
<br />
# /etc/pam.d/password-auth resp. /etc/pam.d/system-auth<br />
<br />
#%PAM-1.0<br />
# This file is auto-generated.<br />
# User changes will be destroyed the next time authconfig is run.<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 500 quiet<br />
'''auth sufficient pam_sss.so use_first_pass'''<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 500 quiet<br />
'''account [default=bad success=ok user_unknown=ignore] pam_sss.so'''<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3 type=<br />
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok<br />
'''password sufficient pam_sss.so use_authtok'''<br />
password required pam_deny.so<br />
<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
'''session optional pam_sss.so'''<br />
<br />
Na RedHat 6.x jsou tyto soubory automaticky správně modifikovány po instalaci SSSD. Tu lze provést následujícím příkazem:<br />
<br />
# důležité je nainstalovat i 32bit verzi jinak nebudou běhat<br />
# žádné aplikace zkompilované 32bit<br />
yum install sssd sssd-tools sssd-client sssd-client.i686<br />
<br />
Případně lze provést všechny potřebné modifikace PAM a NSS jedním příkazem<br />
<br />
authconfig --update --enablesssd --enablesssdauth<br />
<br />
====SSSD AD====<br />
<br />
Relativně minimální konfigurace SSSD proti FJFI AD může vypadat následujícím způsobem. Aby níže uvedená konfigurace fungovala, musí být splněny následující požadavky<br />
<br />
* počítač musí být zařazen v AD doméně (viz. [[Doména FJFI#Host/Service Kerberos Key|Host/Service Kerberos Key]])<br />
** musí existovat <tt>/etc/krb5.keytab</tt><br />
** musí být zkonfigurován kerberos v <tt>/etc/krb5.conf</tt> (viz. např. [[Doména FJFI#Kerberos|ukázka konfigurace]])<br />
** musí fungovat ověření pomocí keytabu <tt>kinit -k -t /etc/krb5.keytab host/name.fjfi.cvut.cz@FJFI.CVUT.CZ</tt><br />
* uživatelské účty musí mit posixAccount atributy (viz. [[Doména FJFI#Konfigurace účtu v AD|Konfigurace účtu v AD]])<br />
* <tt>pam_sssd</tt> v konfiguraci <tt>/etc/pam.d/system-auth</tt> a <tt>/etc/pam.d/password-auth</tt> (viz. [[Doména FJFI#SSSD|SSSD]])<br />
* <tt>sssd</tt> pro příslušné položky (<tt>passwd</tt>, <tt>shadow</tt>, <tt>group</tt>) v <tt>/etc/nsswitch.conf</tt> (viz. [[Doména FJFI#SSSD|SSSD]])<br />
* zkonfigurovat sssd daemona<br />
** použitelné konfigurace sssd uložené v <tt>/etc/sssd/sssd.conf</tt> jsou uvedeny níže<br />
** konfigurační soubor musí mít nastavena práva: <tt>chmod 600 /etc/sssd/sssd.conf</tt><br />
** při použití SELinuxu je potřeba mít správné securitz labely na konfiguracích: <tt>restorecon -R -v /etc</tt><br />
** nutné povolit a nastartovat sssd daemona<br />
<br />
# základní minimální konfigurace /etc/sssd/sssd.conf pro FJFI AD<br />
[sssd]<br />
domains = fjfi.cvut.cz<br />
services = nss, pam<br />
config_file_version = 2<br />
<br />
[nss]<br />
<br />
[pam]<br />
# caching credentials for offline logging<br />
#offline_credentials_expiration = 3<br />
#offline_failed_login_attempts = 3<br />
<br />
[domain/fjfi.cvut.cz]<br />
id_provider = ad<br />
access_provider = ad<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# ad_hostname is necessary only if hostname can't be matched with entries in keytab<br />
#ad_hostname = host.fjfi.cvut.cz<br />
#ad_access_filter = (memberOf=cn=skupina,ou=Groups,dc=fjfi,dc=cvut,dc=cz)<br />
dyndns_update = false<br />
ldap_schema = ad<br />
ldap_id_mapping = false<br />
ldap_disable_referrals = true<br />
# global<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
<br />
<strike><br />
Pokud chceme omezit skupinu lidí, kteří budou mít přístup k linuxovému stroji se zkonfigurovaným SSSD AD, potom musíme zvolit <tt>access_provider = ldap</tt>, jelikož výše uvedený <tt>ad</tt> provider nemá (v aktuální verzi na RHEL6.5) žádné další možnosti konfigurace. Konfigurace vlastního service by pak mohla vypadat např. následovně:<br />
<br />
# část konfigurace /etc/sssd/sssd.conf omezující přístup pro členy dané skupiny (RHEL6.x resp. sssd < 1.11)<br />
[domain/AD]<br />
id_provider = ad<br />
auth_provider = ad<br />
chpass_provider = ad<br />
'''access_provider = ldap'''<br />
ad_domain = fjfi.cvut.cz<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# folloving name is necessary only if local hostname doesn't correspond entries in keytab file<br />
#ad_hostname = host.fjfi.cvut.cz<br />
# defines user/group schema type<br />
ldap_schema = ad<br />
# using explicit POSIX attributes in the Windows entries (default is false)<br />
ldap_id_mapping = false<br />
# ldap access controls - requires access_provider set to ldap<br />
'''ldap_sasl_mech = GSSAPI'''<br />
'''ldap_access_filter = memberOf=cn=skupina,ou=Groups,dc=fjfi,dc=cvut,dc=cz'''<br />
'''ldap_access_order = filter,expire'''<br />
'''ldap_account_expire_policy = ad'''<br />
'''ldap_force_upper_case_realm = true'''<br />
# performance<br />
ldap_disable_referrals = true<br />
# global<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
enumerate = true<br />
<br />
V budoucnu bude možné využít ad_access_filter, který je ale až v novější verzi SSSD 1.11 (RHEL7)<br />
</strike><br />
<br />
Po vytvoření požadované konfigurace je potřeba zajistit, aby se při startu systému spustil také sssd daemon<br />
<br />
# povolení spuštění sssd při startu + okamžitý start sssd služby na RHEL 6.x (init skripty)<br />
chkconfig sssd on<br />
service sssd start<br />
# povolení spuštění sssd při startu + okamžitý start sssd služby na RHEL 7.x (systemd)<br />
systemctl enable sssd<br />
systemctl start sssd<br />
<br />
====SSSD LDAP+Kerberos====<br />
<br />
[sssd]<br />
domains = LOCAL,LDAP<br />
services = nss, pam<br />
config_file_version = 2<br />
<br />
[nss]<br />
filter_groups = root<br />
filter_users = root<br />
reconnection_retries = 3<br />
entry_cache_timeout = 300<br />
entry_cache_nowait_percentage = 75<br />
<br />
[pam]<br />
reconnection_retries = 3<br />
offline_credentials_expiration = 3<br />
offline_failed_login_attempts = 3<br />
offline_failed_login_delay = 5<br />
pam_pwd_expiration_warning = 3<br />
<br />
[domain/LOCAL]<br />
id_provider = local<br />
auth_provider = local<br />
access_provider = permit<br />
<br />
[domain/LDAP]<br />
id_provider = ldap<br />
auth_provider = krb5<br />
chpass_provider = krb5<br />
access_provider = ldap<br />
min_id = 1000<br />
max_id = 30000<br />
ldap_uri = ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz,ldap://ldap3.fjfi.cvut.cz<br />
ldap_search_base = dc=fjfi,dc=cvut,dc=cz<br />
ldap_id_use_start_tls = true<br />
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt<br />
# simple autentizace uživatele pro přístup k LDAP informacím<br />
#ldap_default_bind_dn = CN=proxy_posix,OU=Specials,DC=fjfi,DC=cvut,DC=cz<br />
#ldap_default_authtok_type = password<br />
#ldap_default_authtok = secret<br />
# kerberos autentizace uživatele pro přístup k LDAP informacím<br />
ldap_sasl_mech = GSSAPI<br />
ldap_sasl_authid = host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ<br />
ldap_referrals = false<br />
ldap_schema = rfc2307bis<br />
ldap_user_search_base = ou=People,dc=fjfi,dc=cvut,dc=cz<br />
ldap_user_object_class = user<br />
ldap_user_home_directory = unixHomeDirectory<br />
ldap_user_principal = userPrincipalName<br />
ldap_user_name = sAMAccountName<br />
ldap_group_search_base = ou=groups,dc=fjfi,dc=cvut,dc=cz<br />
ldap_group_object_class = group<br />
#ldap_search_timeout = ??? # switch to offline mode after this timeout<br />
#ldap_network_timeout = 6<br />
#ldap_opt_timeout = 5<br />
#ldap_access_filter = memberOf=cn=emp,ou=Groups,dc=fjfi,dc=cvut,dc=cz<br />
#ldap_access_order = filter,expire<br />
ldap_access_order = expire<br />
ldap_account_expire_policy = ad<br />
ldap_force_upper_case_realm = true<br />
ldap_disable_referrals = true<br />
# kerberos configuration<br />
krb5_server = krb1.fjfi.cvut.cz,krb2.fjfi.cvut.cz,krb3.fjfi.cvut.cz<br />
krb5_realm = FJFI.CVUT.CZ<br />
krb5_canonicalize = false<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
account_cache_expiration = 7<br />
entry_cache_timeout = 14400<br />
enumerate = true<br />
<br />
Při použití výše uvedené konfigurace proti AD (tj. kerberos autentizace + TLS zabezpečený přenos dat) je potřeba na RHEL 6.x do <tt>/etc/openldap/ldap.conf</tt> přídat řádek<br />
<br />
# Active Directory not supporting nested security or privacy layers<br />
sasl_secprops minssf=0,maxssf=0<br />
<br />
===Kerberos===<br />
<br />
Toto je starší způsob z doby, kdy ještě neexistovala možnost použít sssd. Navíc lze tento starší návod aplikovat na platformách, které nepodporují sssd.<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu 5.x (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt>, na RedHatu 6.x (RHEL6) je to samé potřeba provést ještě v <tt>/etc/pam.d/password-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu HOSTNAME$ v AD<br />
# (lze také naklikat v admin mmc User and Computer consoli)<br />
dsrm -noprompt "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu (na w2k8 by měl být ktpass.exe součástí default instalace)<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -out c:\hostname.keytab -crypto all -mapOp set [-kvno 1]<br />
# vytvoření služby ftp pro hosta hostname.fjfi.cvut.cz (pouze pokud na "hostname" provozujeme službu FTP)<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -SetUpn -out hostname.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5 (asi historicke a zbytečné)<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu, abychom pro některé z následujících příkazu nemuseli zadávat heslo<br />
# (na RHEL7 je potřeba uložit ticket do souboru pomocí <tt>export KRB5CCNAME=/tmp/krb5cc_0</tt>)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -k -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -k -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -k -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -k -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -k -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -k -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -k -n TEST1234 ads keytab add HTTP<br />
net -k -n TEST1234 ads keytab add ldap<br />
net -k -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=3248Doména FJFI2014-11-26T11:59:16Z<p>Keroupav: /* Synchronizace času */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ARK1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ARK2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| SRK || Trojanova || terminal server Windows<br />
|-<br />
| VRK2 || Trojanova || virtualizační server<br />
|-<br />
| Troja1 || Trója || DC, fileserver<br />
|-<br />
| DRK || Děčín || DC, LDAP<br />
|-<br />
| ARK3 || Děčín || Fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| KMK || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| Print2 || VRK2 || printserver Trojanova<br />
|-<br />
| IT || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| SCP || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** účet typu stu<br />
*** uživatel obdrží info o chystaném zablokování jeho účtu emailem<br />
*** po 30 dnech je odebrán z organizačních jednotek a skupin<br />
*** přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
*** po dalších 90 dnech je odstraněn včetně dat<br />
** účet typu emp<br />
*** uživatel obdrží emailem info o zachování účtu včetně emailu, pokud to výslovně nežádá opak<br />
*** po 30 dnech je odebrán z organizačních jednotek a skupin<br />
*** přesunut do ou=katedra\emerit, status nastaven na "emerit" a poznamená se timestamp<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<strike><br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
</strike><br />
<br />
===FnspeCmdService===<br />
<strike><br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
</strike><br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<strike><br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
</strike><br />
<br />
===ADScripts - synchronizace 2014===<br />
<br />
Přepis FnspeLibrary přímo do powershellu z důvodu malé flexibility v úpravě a kompilaci C# DLL knihovny. Rozhraní pro přístup k uživatelským datům zůstalo stejné jako v případě FnspeLibrary, rozdíl je pouze v několika řádcích inicializace a ta je demonstrována v <tt>example-usermap.ps1</tt>. Nové powershell rozhraní navíc přistupuje přímo k datům v usermap LDAPu a databázi Oracle obsahující číselníky (telefony, adresy, funkce ...).<br />
<br />
# zdrojové soubory powershell skriptů<br />
svn co https://comp.fjfi.cvut.cz/repos/adscripts adscripts<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
Pokud je/byl uživatel někdy členem skupiny administratorů, potom si tuto informaci AD poznamená do atributu <tt>adminCount</tt>, který podle dokumentace znamená: "Indicates that a given object has had its ACLs changed to a more secure value by the system because it was a member of one of the administrative groups (directly or transitively)". Účty, které mají nastaven "adminCount" příznak může modifikovat jen administrátor (vlastnost AD) - speciální uživatel používaný přes rozhraní na NMS není admin a proto např. nastavováni hesel pro wireless sítě nebude z rozhraní na NMS fungovat. Toto je další důvod proč by běžné uživatelské účty neměli být v admin skupinách.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-S''' || vyhrazeno pro potřeby fakulty (globálních a lokálních správců - využití nutno uvést do této tabulky!)<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''T-Z''' || vyhrazeno pro potřeby lokálního uživatele<br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), ARK3 (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště (DFS)<br />
**servery AR1, ARK2<br />
**Replicated folders: <br />
***Home (osobní síťové adresáře)<br />
***Profile (roaming profiles pro účely učeben)<br />
***Share (obsahuje sdílené složky organizačních jednotek a jiné)<br />
***WWW (webhosting zaměstnanců)<br />
***WW2 (webhosting pro studenty)<br />
**Published to Namespace: FRK (Servers ARK1, ARK2)<br />
* Lokální datové úložiště Děčín (SMB 2.1)<br />
*server ARK3<br />
**Shared folders: Home, Profile, WWW, WWW2, Share<br />
**data jsou zde umístěna na základě pracovního/studijního zařazení<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Jednoduchý test přístupu k datům v AD se simple autentizací<br />
# klasické SSL spojení<br />
ldapsearch -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
<br />
Jednoduchý test přístupu k datům v AD s kerberos autentizací<br />
# získání kerberos ticketu pro autentizaci LDAP spojení<br />
kinit username@FJFI.CVUT.CZ <br />
# klasické SSL spojení<br />
ldapsearch -O minssf=0,maxssf=0 -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -O minssf=0,maxssf=0 -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
<br />
Příklad simple autentizace v pythonu:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu) v pythonu:<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
#conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
#conn.start_tls_s()<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Při použití SASL (GSSAPI) autentizace a zabezpečeného přenostu dat přes STARTTLS (port 389) nebo SSL (port 636) je navíc potřeba OpenLDAP knihovně vysvětlit, aby nepoužívala "SASL privacy layers", které LDAP rozhraní AD nepodporuje (z hlediska zabezpečení je to pořád OK). V takovém případě je potřeba přidat do <tt>/etc/openldap/ldap.conf</tt> řádek s <tt>sasl_secprops minssf=0,maxssf=0</tt> nebo přímo v kódu nastavit tyto parametry např. pomoci<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
* Synchronizace času v doméně<br />
** PDC emulator (ARK2) je manuálně nastaven na synchronizaci s externím zdrojem (tik.cesnet.cz,tak.cesnet.cz). Ostatní DC se synchronizují z domény.<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
===SSSD===<br />
<br />
Je řešení RedHatu pro autentizace (pam) a zpřístupnění informací o uživatelských učtech (nss). Má hromadu konfiguračních možností a obecně vypadá jako robustnějši řešení než např. samotný pam_ldap+nss_ldap (např. umožňuje cachování informací a "offline režim"). V principu lze použít dvě různé konfigurace pro lokální prostředí s AD. První řešení je na míru šité pro AD a vyžaduje, aby daný počítač byl joinutý do domény, druhé řešení používa klasickým způsobem LDAP a Kerberos rozhraní AD a nevyžaduje joinutí do domény.<br />
<br />
Aby systém vůbec začal využívat služby SSSD daemona, můsí se požadavky na autentizaci přesměrovat na <tt>pam_sss</tt> modul a uživatelské učty musí využívat <tt>nss_sss</tt>. Je potřeba upravit (zkontrolovat) následující konfigurační soubory:<br />
<br />
# /etc/nsswitch.conf<br />
...<br />
passwd: files '''sss'''<br />
shadow: files '''sss'''<br />
group: files '''sss'''<br />
...<br />
<br />
# /etc/pam.d/password-auth resp. /etc/pam.d/system-auth<br />
<br />
#%PAM-1.0<br />
# This file is auto-generated.<br />
# User changes will be destroyed the next time authconfig is run.<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 500 quiet<br />
'''auth sufficient pam_sss.so use_first_pass'''<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 500 quiet<br />
'''account [default=bad success=ok user_unknown=ignore] pam_sss.so'''<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3 type=<br />
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok<br />
'''password sufficient pam_sss.so use_authtok'''<br />
password required pam_deny.so<br />
<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
'''session optional pam_sss.so'''<br />
<br />
Na RedHat 6.x jsou tyto soubory automaticky správně modifikovány po instalaci SSSD. Tu lze provést následujícím příkazem:<br />
<br />
# důležité je nainstalovat i 32bit verzi jinak nebudou běhat<br />
# žádné aplikace zkompilované 32bit<br />
yum install sssd sssd-tools sssd-client sssd-client.i686<br />
<br />
Případně lze provést všechny potřebné modifikace PAM a NSS jedním příkazem<br />
<br />
authconfig --update --enablesssd --enablesssdauth<br />
<br />
====SSSD AD====<br />
<br />
Relativně minimální konfigurace SSSD proti FJFI AD může vypadat následujícím způsobem. Aby níže uvedená konfigurace fungovala, musí být splněny následující požadavky<br />
<br />
* počítač musí být zařazen v AD doméně (viz. [[Doména FJFI#Host/Service Kerberos Key|Host/Service Kerberos Key]])<br />
** musí existovat <tt>/etc/krb5.keytab</tt><br />
** musí být zkonfigurován kerberos v <tt>/etc/krb5.conf</tt> (viz. např. [[Doména FJFI#Kerberos|ukázka konfigurace]])<br />
** musí fungovat ověření pomocí keytabu <tt>kinit -k -t /etc/krb5.keytab host/name.fjfi.cvut.cz@FJFI.CVUT.CZ</tt><br />
* uživatelské účty musí mit posixAccount atributy (viz. [[Doména FJFI#Konfigurace účtu v AD|Konfigurace účtu v AD]])<br />
* <tt>pam_sssd</tt> v konfiguraci <tt>/etc/pam.d/system-auth</tt> a <tt>/etc/pam.d/password-auth</tt> (viz. [[Doména FJFI#SSSD|SSSD]])<br />
* <tt>sssd</tt> pro příslušné položky (<tt>passwd</tt>, <tt>shadow</tt>, <tt>group</tt>) v <tt>/etc/nsswitch.conf</tt> (viz. [[Doména FJFI#SSSD|SSSD]])<br />
* zkonfigurovat sssd daemona<br />
** použitelné konfigurace sssd uložené v <tt>/etc/sssd/sssd.conf</tt> jsou uvedeny níže<br />
** konfigurační soubor musí mít nastavena práva: <tt>chmod 600 /etc/sssd/sssd.conf</tt><br />
** při použití SELinuxu je potřeba mít správné securitz labely na konfiguracích: <tt>restorecon -R -v /etc</tt><br />
** nutné povolit a nastartovat sssd daemona<br />
<br />
# základní minimální konfigurace /etc/sssd/sssd.conf pro FJFI AD<br />
[sssd]<br />
domains = fjfi.cvut.cz<br />
services = nss, pam<br />
config_file_version = 2<br />
<br />
[nss]<br />
<br />
[pam]<br />
# caching credentials for offline logging<br />
#offline_credentials_expiration = 3<br />
#offline_failed_login_attempts = 3<br />
<br />
[domain/fjfi.cvut.cz]<br />
id_provider = ad<br />
access_provider = ad<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# ad_hostname is necessary only if hostname can't be matched with entries in keytab<br />
#ad_hostname = host.fjfi.cvut.cz<br />
#ad_access_filter = (memberOf=cn=skupina,ou=Groups,dc=fjfi,dc=cvut,dc=cz)<br />
dyndns_update = false<br />
ldap_schema = ad<br />
ldap_id_mapping = false<br />
ldap_disable_referrals = true<br />
# global<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
<br />
<strike><br />
Pokud chceme omezit skupinu lidí, kteří budou mít přístup k linuxovému stroji se zkonfigurovaným SSSD AD, potom musíme zvolit <tt>access_provider = ldap</tt>, jelikož výše uvedený <tt>ad</tt> provider nemá (v aktuální verzi na RHEL6.5) žádné další možnosti konfigurace. Konfigurace vlastního service by pak mohla vypadat např. následovně:<br />
<br />
# část konfigurace /etc/sssd/sssd.conf omezující přístup pro členy dané skupiny (RHEL6.x resp. sssd < 1.11)<br />
[domain/AD]<br />
id_provider = ad<br />
auth_provider = ad<br />
chpass_provider = ad<br />
'''access_provider = ldap'''<br />
ad_domain = fjfi.cvut.cz<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# folloving name is necessary only if local hostname doesn't correspond entries in keytab file<br />
#ad_hostname = host.fjfi.cvut.cz<br />
# defines user/group schema type<br />
ldap_schema = ad<br />
# using explicit POSIX attributes in the Windows entries (default is false)<br />
ldap_id_mapping = false<br />
# ldap access controls - requires access_provider set to ldap<br />
'''ldap_sasl_mech = GSSAPI'''<br />
'''ldap_access_filter = memberOf=cn=skupina,ou=Groups,dc=fjfi,dc=cvut,dc=cz'''<br />
'''ldap_access_order = filter,expire'''<br />
'''ldap_account_expire_policy = ad'''<br />
'''ldap_force_upper_case_realm = true'''<br />
# performance<br />
ldap_disable_referrals = true<br />
# global<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
enumerate = true<br />
<br />
V budoucnu bude možné využít ad_access_filter, který je ale až v novější verzi SSSD 1.11 (RHEL7)<br />
</strike><br />
<br />
Po vytvoření požadované konfigurace je potřeba zajistit, aby se při startu systému spustil také sssd daemon<br />
<br />
# povolení spuštění sssd při startu + okamžitý start sssd služby na RHEL 6.x (init skripty)<br />
chkconfig sssd on<br />
service sssd start<br />
# povolení spuštění sssd při startu + okamžitý start sssd služby na RHEL 7.x (systemd)<br />
systemctl enable sssd<br />
systemctl start sssd<br />
<br />
====SSSD LDAP+Kerberos====<br />
<br />
[sssd]<br />
domains = LOCAL,LDAP<br />
services = nss, pam<br />
config_file_version = 2<br />
<br />
[nss]<br />
filter_groups = root<br />
filter_users = root<br />
reconnection_retries = 3<br />
entry_cache_timeout = 300<br />
entry_cache_nowait_percentage = 75<br />
<br />
[pam]<br />
reconnection_retries = 3<br />
offline_credentials_expiration = 3<br />
offline_failed_login_attempts = 3<br />
offline_failed_login_delay = 5<br />
pam_pwd_expiration_warning = 3<br />
<br />
[domain/LOCAL]<br />
id_provider = local<br />
auth_provider = local<br />
access_provider = permit<br />
<br />
[domain/LDAP]<br />
id_provider = ldap<br />
auth_provider = krb5<br />
chpass_provider = krb5<br />
access_provider = ldap<br />
min_id = 1000<br />
max_id = 30000<br />
ldap_uri = ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz,ldap://ldap3.fjfi.cvut.cz<br />
ldap_search_base = dc=fjfi,dc=cvut,dc=cz<br />
ldap_id_use_start_tls = true<br />
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt<br />
# simple autentizace uživatele pro přístup k LDAP informacím<br />
#ldap_default_bind_dn = CN=proxy_posix,OU=Specials,DC=fjfi,DC=cvut,DC=cz<br />
#ldap_default_authtok_type = password<br />
#ldap_default_authtok = secret<br />
# kerberos autentizace uživatele pro přístup k LDAP informacím<br />
ldap_sasl_mech = GSSAPI<br />
ldap_sasl_authid = host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ<br />
ldap_referrals = false<br />
ldap_schema = rfc2307bis<br />
ldap_user_search_base = ou=People,dc=fjfi,dc=cvut,dc=cz<br />
ldap_user_object_class = user<br />
ldap_user_home_directory = unixHomeDirectory<br />
ldap_user_principal = userPrincipalName<br />
ldap_user_name = sAMAccountName<br />
ldap_group_search_base = ou=groups,dc=fjfi,dc=cvut,dc=cz<br />
ldap_group_object_class = group<br />
#ldap_search_timeout = ??? # switch to offline mode after this timeout<br />
#ldap_network_timeout = 6<br />
#ldap_opt_timeout = 5<br />
#ldap_access_filter = memberOf=cn=emp,ou=Groups,dc=fjfi,dc=cvut,dc=cz<br />
#ldap_access_order = filter,expire<br />
ldap_access_order = expire<br />
ldap_account_expire_policy = ad<br />
ldap_force_upper_case_realm = true<br />
ldap_disable_referrals = true<br />
# kerberos configuration<br />
krb5_server = krb1.fjfi.cvut.cz,krb2.fjfi.cvut.cz,krb3.fjfi.cvut.cz<br />
krb5_realm = FJFI.CVUT.CZ<br />
krb5_canonicalize = false<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
account_cache_expiration = 7<br />
entry_cache_timeout = 14400<br />
enumerate = true<br />
<br />
Při použití výše uvedené konfigurace proti AD (tj. kerberos autentizace + TLS zabezpečený přenos dat) je potřeba na RHEL 6.x do <tt>/etc/openldap/ldap.conf</tt> přídat řádek<br />
<br />
# Active Directory not supporting nested security or privacy layers<br />
sasl_secprops minssf=0,maxssf=0<br />
<br />
===Kerberos===<br />
<br />
Toto je starší způsob z doby, kdy ještě neexistovala možnost použít sssd. Navíc lze tento starší návod aplikovat na platformách, které nepodporují sssd.<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu 5.x (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt>, na RedHatu 6.x (RHEL6) je to samé potřeba provést ještě v <tt>/etc/pam.d/password-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu HOSTNAME$ v AD<br />
# (lze také naklikat v admin mmc User and Computer consoli)<br />
dsrm -noprompt "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu (na w2k8 by měl být ktpass.exe součástí default instalace)<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -out c:\hostname.keytab -crypto all -mapOp set [-kvno 1]<br />
# vytvoření služby ftp pro hosta hostname.fjfi.cvut.cz (pouze pokud na "hostname" provozujeme službu FTP)<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -SetUpn -out hostname.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5 (asi historicke a zbytečné)<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu, abychom pro některé z následujících příkazu nemuseli zadávat heslo<br />
# (na RHEL7 je potřeba uložit ticket do souboru pomocí <tt>export KRB5CCNAME=/tmp/krb5cc_0</tt>)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -k -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -k -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -k -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -k -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -k -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -k -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -k -n TEST1234 ads keytab add HTTP<br />
net -k -n TEST1234 ads keytab add ldap<br />
net -k -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Slu%C5%BEby_a_servery&diff=3221Služby a servery2014-11-12T10:56:20Z<p>Keroupav: /* Oficiální mail */</p>
<hr />
<div>{{Servers}}<br />
<br />
=[http://it.fjfi.cvut.cz Oficiální dokumentace]=<br />
<br />
=Oficiální mail=<br />
*servery<br />
** MS Exchange Edge BRK1, BRK2 (příjem pošty, fronty, antivir, antispam) (frontside)<br />
**DAG "DAG-FJFI" na serverech MRK1, MRK2 MS Exchange Hub-Transport (backside)<br />
***DagNetwork1 IP 147.32.9.81 (MRK1) Subnet 147.32.9.64/26 - replication diabled<br />
***DagNetwork2 IP 10.198.76.11 (MRK1), 10.198.76.62 (MRK2) Subnet 10.198.76.0/24 - replication enabled<br />
***DagNetwork3 IP 147.32.9.23 (MRK2) Subnet 147.32.9.0/26 - replication disabled<br />
**databáze DB-TR (zaměstnanci Trojanova)<br />
**databáze DB-ST (studenti)<br />
**databáze DB-BR (zaměstnanci Břehová)<br />
*ověřování hlavním uživatelským jménem / heslem<br />
*výběr pošty<br />
**[https://webmail.fjfi.cvut.cz webmail] https://webmail.fjfi.cvut.cz<br />
**IMAP, POP3 - imap.fjfi.cvut.cz<br />
**X.400 - protokol MS Outlooku<br />
*odesílání pošty - SMTP AUTH - smtp.fjfi.cvut.cz<br />
*limity emailových služeb<br />
**příjem zprávy max.40MB, odchozí zpráva max.40MB<br />
**velikost poštovní přihrádky: zaměstnanec 2 GB, student 300 MB (na žádost lze zvětšit)<br />
<br />
=Domovské a web adresáře=<br />
*servery<br />
**doménový namespace FRK, replikované adresáře na ARK1 a ARK2<br />
**adresáře Home, WWW, Share, Profile<br />
*MS sdílení (samba) - přístup pouze ze školních IP nebo po připojení přes [[VPN]]<br />
**domovské adresáře na \\fjfi.cvut.cz\frk\home\username<br />
**web adresáře na \\fjfi.cvut.cz\frk\www\username<br />
**profile adresáře na \\fjfi.cvut.cz\frk\profile\username (pouze pro studenty nabo na vyžádání zaměstnance)<br />
*vzdálený přístup<br />
**webdav (přistup odkudkoliv - zabezpečení přes SSL) pozn. dost nespolehlivé<br />
***domovské adresáře na https://people.fjfi.cvut.cz/home/username<br />
***web adresáře na https://people.fjfi.cvut.cz/web/username<br />
**SSH<br />
***připojení prostřednictvím scp.fjfi.cvut.cz (např. WinSCP)<br />
<br />
=Vzdálený přístup=<br />
*testovací Windows Terminal Server na [[ts.fjfi.cvut.cz]] (klient "Remote Desktop Connection", [http://www.rdesktop.org/ rdesktop])<br />
*testovací [[VPN]] server<br />
*shell na [[kmlinux.fjfi.cvut.cz]] (klient [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html putty], ssh)<br />
*... (viz. info o [[Servers|serverech]])</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Slu%C5%BEby_a_servery&diff=3220Služby a servery2014-11-12T10:48:54Z<p>Keroupav: /* Domovské a web adresáře */</p>
<hr />
<div>{{Servers}}<br />
<br />
=[http://it.fjfi.cvut.cz Oficiální dokumentace]=<br />
<br />
=Oficiální mail=<br />
*servery<br />
** MS Exchange Edge BRK1, BRK2 (příjem pošty, fronty, antivir, antispam) (frontside)<br />
**DAG "DAG-FJFI" na serverech MRK1, MRK2 MS Exchange Hub-Transport (backside)<br />
**databáze DB-TR (zaměstnanci Trojanova) na MRK2 replikována na MRK1<br />
**databáze DB-ST (studenti) na MRK2 replikována na MRK1<br />
**databáze DB-BR (zaměstnanci Břehová) na MRK1 replikována na MRK2<br />
*ověřování hlavním uživatelským jménem / heslem<br />
*výběr pošty<br />
**[https://webmail.fjfi.cvut.cz webmail] https://webmail.fjfi.cvut.cz<br />
**IMAP, POP3 - imap.fjfi.cvut.cz<br />
**X.400 - protokol MS Outlooku<br />
*odesílání pošty - SMTP AUTH - smtp.fjfi.cvut.cz<br />
*limity emailových služeb<br />
**příjem zprávy max.40MB, odchozí zpráva max.40MB<br />
**velikost poštovní přihrádky: zaměstnanec 2 GB, student 300 MB (na žádost lze zvětšit)<br />
<br />
=Domovské a web adresáře=<br />
*servery<br />
**doménový namespace FRK, replikované adresáře na ARK1 a ARK2<br />
**adresáře Home, WWW, Share, Profile<br />
*MS sdílení (samba) - přístup pouze ze školních IP nebo po připojení přes [[VPN]]<br />
**domovské adresáře na \\fjfi.cvut.cz\frk\home\username<br />
**web adresáře na \\fjfi.cvut.cz\frk\www\username<br />
**profile adresáře na \\fjfi.cvut.cz\frk\profile\username (pouze pro studenty nabo na vyžádání zaměstnance)<br />
*vzdálený přístup<br />
**webdav (přistup odkudkoliv - zabezpečení přes SSL) pozn. dost nespolehlivé<br />
***domovské adresáře na https://people.fjfi.cvut.cz/home/username<br />
***web adresáře na https://people.fjfi.cvut.cz/web/username<br />
**SSH<br />
***připojení prostřednictvím scp.fjfi.cvut.cz (např. WinSCP)<br />
<br />
=Vzdálený přístup=<br />
*testovací Windows Terminal Server na [[ts.fjfi.cvut.cz]] (klient "Remote Desktop Connection", [http://www.rdesktop.org/ rdesktop])<br />
*testovací [[VPN]] server<br />
*shell na [[kmlinux.fjfi.cvut.cz]] (klient [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html putty], ssh)<br />
*... (viz. info o [[Servers|serverech]])</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Slu%C5%BEby_a_servery&diff=3219Služby a servery2014-11-12T10:47:43Z<p>Keroupav: /* Oficiální mail */</p>
<hr />
<div>{{Servers}}<br />
<br />
=[http://it.fjfi.cvut.cz Oficiální dokumentace]=<br />
<br />
=Oficiální mail=<br />
*servery<br />
** MS Exchange Edge BRK1, BRK2 (příjem pošty, fronty, antivir, antispam) (frontside)<br />
**DAG "DAG-FJFI" na serverech MRK1, MRK2 MS Exchange Hub-Transport (backside)<br />
**databáze DB-TR (zaměstnanci Trojanova) na MRK2 replikována na MRK1<br />
**databáze DB-ST (studenti) na MRK2 replikována na MRK1<br />
**databáze DB-BR (zaměstnanci Břehová) na MRK1 replikována na MRK2<br />
*ověřování hlavním uživatelským jménem / heslem<br />
*výběr pošty<br />
**[https://webmail.fjfi.cvut.cz webmail] https://webmail.fjfi.cvut.cz<br />
**IMAP, POP3 - imap.fjfi.cvut.cz<br />
**X.400 - protokol MS Outlooku<br />
*odesílání pošty - SMTP AUTH - smtp.fjfi.cvut.cz<br />
*limity emailových služeb<br />
**příjem zprávy max.40MB, odchozí zpráva max.40MB<br />
**velikost poštovní přihrádky: zaměstnanec 2 GB, student 300 MB (na žádost lze zvětšit)<br />
<br />
=Domovské a web adresáře=<br />
*servery<br />
**doménový namespace FRK, replikované adresáře na ARK1 a ARK2<br />
**adresáře Home, WWW, Share, Profile<br />
*MS sdílení (samba) - přístup pouze ze školních IP nebo po připojení přes [[VPN]]<br />
**domovské adresáře na \\fjfi.cvut.cz\frk\home\username<br />
**web adresáře na \\fjfi.cvut.cz\frk\www\username<br />
**profile adresáře na \\fjfi.cvut.cz\frk\profile\username (pouze pro studenty nabo na vyžádání zaměstnance)<br />
*vzdálený přístup<br />
**webdav (přistup odkudkoliv - zabezpečení přes SSL)<br />
***domovské adresáře na https://people.fjfi.cvut.cz/home/username<br />
***web adresáře na https://people.fjfi.cvut.cz/web/username<br />
**SSH<br />
***připojení prostřednictvím scp.fjfi.cvut.cz (např. WinSCP)<br />
<br />
=Vzdálený přístup=<br />
*testovací Windows Terminal Server na [[ts.fjfi.cvut.cz]] (klient "Remote Desktop Connection", [http://www.rdesktop.org/ rdesktop])<br />
*testovací [[VPN]] server<br />
*shell na [[kmlinux.fjfi.cvut.cz]] (klient [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html putty], ssh)<br />
*... (viz. info o [[Servers|serverech]])</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=3164Doména FJFI2014-09-23T16:02:15Z<p>Keroupav: /* životní cyklus uživatelského účtu */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ARK1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ARK2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| SRK || Trojanova || terminal server Windows<br />
|-<br />
| VRK2 || Trojanova || virtualizační server<br />
|-<br />
| Troja1 || Trója || DC, fileserver<br />
|-<br />
| DRK || Děčín || DC, LDAP<br />
|-<br />
| ARK3 || Děčín || Fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| KMK || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| Print2 || VRK2 || printserver Trojanova<br />
|-<br />
| IT || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| SCP || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** účet typu stu<br />
*** uživatel obdrží info o chystaném zablokování jeho účtu emailem<br />
*** po 30 dnech je odebrán z organizačních jednotek a skupin<br />
*** přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
*** po dalších 90 dnech je odstraněn včetně dat<br />
** účet typu emp<br />
*** uživatel obdrží emailem info o zachování účtu včetně emailu, pokud to výslovně nežádá opak<br />
*** po 30 dnech je odebrán z organizačních jednotek a skupin<br />
*** přesunut do ou=katedra\emerit, status nastaven na "emerit" a poznamená se timestamp<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<strike><br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
</strike><br />
<br />
===FnspeCmdService===<br />
<strike><br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
</strike><br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<strike><br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
</strike><br />
<br />
===ADScripts - synchronizace 2014===<br />
<br />
Přepis FnspeLibrary přímo do powershellu z důvodu malé flexibility v úpravě a kompilaci C# DLL knihovny. Rozhraní pro přístup k uživatelským datům zůstalo stejné jako v případě FnspeLibrary, rozdíl je pouze v několika řádcích inicializace a ta je demonstrována v <tt>example-usermap.ps1</tt>. Nové powershell rozhraní navíc přistupuje přímo k datům v usermap LDAPu a databázi Oracle obsahující číselníky (telefony, adresy, funkce ...).<br />
<br />
# zdrojové soubory powershell skriptů<br />
svn co https://comp.fjfi.cvut.cz/repos/adscripts adscripts<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
Pokud je/byl uživatel někdy členem skupiny administratorů, potom si tuto informaci AD poznamená do atributu <tt>adminCount</tt>, který podle dokumentace znamená: "Indicates that a given object has had its ACLs changed to a more secure value by the system because it was a member of one of the administrative groups (directly or transitively)". Účty, které mají nastaven "adminCount" příznak může modifikovat jen administrátor (vlastnost AD) - speciální uživatel používaný přes rozhraní na NMS není admin a proto např. nastavováni hesel pro wireless sítě nebude z rozhraní na NMS fungovat. Toto je další důvod proč by běžné uživatelské účty neměli být v admin skupinách.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-S''' || vyhrazeno pro potřeby fakulty (globálních a lokálních správců - využití nutno uvést do této tabulky!)<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''T-Z''' || vyhrazeno pro potřeby lokálního uživatele<br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), ARK3 (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště (DFS)<br />
**servery AR1, ARK2<br />
**Replicated folders: <br />
***Home (osobní síťové adresáře)<br />
***Profile (roaming profiles pro účely učeben)<br />
***Share (obsahuje sdílené složky organizačních jednotek a jiné)<br />
***WWW (webhosting zaměstnanců)<br />
***WW2 (webhosting pro studenty)<br />
**Published to Namespace: FRK (Servers ARK1, ARK2)<br />
* Lokální datové úložiště Děčín (SMB 2.1)<br />
*server ARK3<br />
**Shared folders: Home, Profile, WWW, WWW2, Share<br />
**data jsou zde umístěna na základě pracovního/studijního zařazení<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Jednoduchý test přístupu k datům v AD se simple autentizací<br />
# klasické SSL spojení<br />
ldapsearch -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
<br />
Jednoduchý test přístupu k datům v AD s kerberos autentizací<br />
# získání kerberos ticketu pro autentizaci LDAP spojení<br />
kinit username@FJFI.CVUT.CZ <br />
# klasické SSL spojení<br />
ldapsearch -O minssf=0,maxssf=0 -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -O minssf=0,maxssf=0 -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
<br />
Příklad simple autentizace v pythonu:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu) v pythonu:<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
#conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
#conn.start_tls_s()<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Při použití SASL (GSSAPI) autentizace a zabezpečeného přenostu dat přes STARTTLS (port 389) nebo SSL (port 636) je navíc potřeba OpenLDAP knihovně vysvětlit, aby nepoužívala "SASL privacy layers", které LDAP rozhraní AD nepodporuje (z hlediska zabezpečení je to pořád OK). V takovém případě je potřeba přidat do <tt>/etc/openldap/ldap.conf</tt> řádek s <tt>sasl_secprops minssf=0,maxssf=0</tt> nebo přímo v kódu nastavit tyto parametry např. pomoci<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
===SSSD===<br />
<br />
Je řešení RedHatu pro autentizace (pam) a zpřístupnění informací o uživatelských učtech (nss). Má hromadu konfiguračních možností a obecně vypadá jako robustnějši řešení než např. samotný pam_ldap+nss_ldap (např. umožňuje cachování informací a "offline režim"). V principu lze použít dvě různé konfigurace pro lokální prostředí s AD. První řešení je na míru šité pro AD a vyžaduje, aby daný počítač byl joinutý do domény, druhé řešení používa klasickým způsobem LDAP a Kerberos rozhraní AD a nevyžaduje joinutí do domény.<br />
<br />
Aby systém vůbec začal využívat služby SSSD daemona, můsí se požadavky na autentizaci přesměrovat na <tt>pam_sss</tt> modul a uživatelské učty musí využívat <tt>nss_sss</tt>. Je potřeba upravit (zkontrolovat) následující konfigurační soubory:<br />
<br />
# /etc/nsswitch.conf<br />
...<br />
passwd: files '''sss'''<br />
shadow: files '''sss'''<br />
group: files '''sss'''<br />
...<br />
<br />
# /etc/pam.d/password-auth resp. /etc/pam.d/system-auth<br />
<br />
#%PAM-1.0<br />
# This file is auto-generated.<br />
# User changes will be destroyed the next time authconfig is run.<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 500 quiet<br />
'''auth sufficient pam_sss.so use_first_pass'''<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 500 quiet<br />
'''account [default=bad success=ok user_unknown=ignore] pam_sss.so'''<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3 type=<br />
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok<br />
'''password sufficient pam_sss.so use_authtok'''<br />
password required pam_deny.so<br />
<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
'''session optional pam_sss.so'''<br />
<br />
Na RedHat 6.x jsou tyto soubory automaticky správně modifikovány po instalaci SSSD. Tu lze provést následujícím příkazem:<br />
<br />
# důležité je nainstalovat i 32bit verzi jinak nebudou běhat<br />
# žádné aplikace zkompilované 32bit<br />
yum install sssd sssd-tools sssd-client sssd-client.i686<br />
<br />
====SSSD AD====<br />
<br />
Relativně minimální konfigurace SSSD proti FJFI AD může vypadat následujícím způsobem. Aby níže uvedená konfigurace fungovala, musí být splněny následující požadavky<br />
<br />
* počítač musí být zařazen v AD doméně (viz. [[Doména FJFI#Host/Service Kerberos Key]])<br />
** musí existovat <tt>/etc/krb5.keytab</tt><br />
** musí fungovat ověření pomocí keytabu <tt>kinit -k -t /etc/krb5.keytab host/name.fjfi.cvut.cz@FJFI.CVUT.CZ</tt><br />
* uživatelské účty musí mit posixAccount atributy (viz. [[Doména FJFI#Konfigurace účtu v AD]])<br />
* <tt>pam_sssd</tt> v konfiguraci <tt>/etc/pam.d/system-auth</tt> a <tt>/etc/pam.d/password-auth</tt> (viz. [[Doména FJFI#SSSD]])<br />
* <tt>sssd</tt> pro příslušné položky (<tt>passwd</tt>, <tt>shadow</tt>, <tt>group</tt>) v <tt>/etc/nsswitch.conf</tt> (viz. [[Doména FJFI#SSSD]])<br />
<br />
[sssd]<br />
domains = LOCAL,AD<br />
services = nss, pam<br />
config_file_version = 2<br />
<br />
[nss]<br />
filter_groups = root<br />
filter_users = root<br />
reconnection_retries = 3<br />
entry_cache_timeout = 300<br />
entry_cache_nowait_percentage = 75<br />
<br />
[pam]<br />
reconnection_retries = 3<br />
offline_credentials_expiration = 3<br />
offline_failed_login_attempts = 3<br />
offline_failed_login_delay = 5<br />
pam_pwd_expiration_warning = 3<br />
<br />
[domain/LOCAL]<br />
id_provider = local<br />
auth_provider = local<br />
access_provider = permit<br />
<br />
[domain/AD]<br />
id_provider = ad<br />
auth_provider = ad<br />
chpass_provider = ad<br />
access_provider = ad<br />
ad_domain = fjfi.cvut.cz<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# folloving name is necessary only if local hostname doesn't correspond entries in keytab file<br />
#ad_hostname = host.fjfi.cvut.cz<br />
ldap_schema = ad<br />
ldap_id_mapping = false<br />
ldap_disable_referrals = true<br />
# global<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
<br />
Pokud chceme omezit skupinu lidí, kteří budou mít přístup k linuxovému stroji se zkonfigurovaným SSSD AD, potom musíme zvolit <tt>access_provider = ldap</tt>, jelikož výše uvedený <tt>ad</tt> provider nemá (v aktuální verzi na RHEL6.5) žádné další možnosti konfigurace. Konfigurace vlastního service by pak mohla vypadat např. následovně:<br />
<br />
[domain/AD]<br />
id_provider = ad<br />
auth_provider = ad<br />
chpass_provider = ad<br />
'''access_provider = ldap'''<br />
ad_domain = fjfi.cvut.cz<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# folloving name is necessary only if local hostname doesn't correspond entries in keytab file<br />
#ad_hostname = host.fjfi.cvut.cz<br />
# defines user/group schema type<br />
ldap_schema = ad<br />
# using explicit POSIX attributes in the Windows entries (default is false)<br />
ldap_id_mapping = false<br />
# ldap access controls - requires access_provider set to ldap<br />
'''ldap_sasl_mech = GSSAPI'''<br />
'''ldap_access_filter = memberOf=cn=skupina,ou=Groups,dc=fjfi,dc=cvut,dc=cz'''<br />
'''ldap_access_order = filter,expire'''<br />
'''ldap_account_expire_policy = ad'''<br />
'''ldap_force_upper_case_realm = true'''<br />
# performance<br />
ldap_disable_referrals = true<br />
# global<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
enumerate = true<br />
<br />
V budoucnu bude možné využít ad_access_filter, který je ale až v novější verzi SSSD 1.11<br />
<br />
====SSSD LDAP+Kerberos====<br />
<br />
[sssd]<br />
domains = LOCAL,LDAP<br />
services = nss, pam<br />
config_file_version = 2<br />
<br />
[nss]<br />
filter_groups = root<br />
filter_users = root<br />
reconnection_retries = 3<br />
entry_cache_timeout = 300<br />
entry_cache_nowait_percentage = 75<br />
<br />
[pam]<br />
reconnection_retries = 3<br />
offline_credentials_expiration = 3<br />
offline_failed_login_attempts = 3<br />
offline_failed_login_delay = 5<br />
pam_pwd_expiration_warning = 3<br />
<br />
[domain/LOCAL]<br />
id_provider = local<br />
auth_provider = local<br />
access_provider = permit<br />
<br />
[domain/LDAP]<br />
id_provider = ldap<br />
auth_provider = krb5<br />
chpass_provider = krb5<br />
access_provider = ldap<br />
min_id = 1000<br />
max_id = 30000<br />
ldap_uri = ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz,ldap://ldap3.fjfi.cvut.cz<br />
ldap_search_base = dc=fjfi,dc=cvut,dc=cz<br />
ldap_id_use_start_tls = true<br />
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt<br />
# simple autentizace uživatele pro přístup k LDAP informacím<br />
#ldap_default_bind_dn = CN=proxy_posix,OU=Specials,DC=fjfi,DC=cvut,DC=cz<br />
#ldap_default_authtok_type = password<br />
#ldap_default_authtok = secret<br />
# kerberos autentizace uživatele pro přístup k LDAP informacím<br />
ldap_sasl_mech = GSSAPI<br />
ldap_sasl_authid = host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ<br />
ldap_referrals = false<br />
ldap_schema = rfc2307bis<br />
ldap_user_search_base = ou=People,dc=fjfi,dc=cvut,dc=cz<br />
ldap_user_object_class = user<br />
ldap_user_home_directory = unixHomeDirectory<br />
ldap_user_principal = userPrincipalName<br />
ldap_user_name = sAMAccountName<br />
ldap_group_search_base = ou=groups,dc=fjfi,dc=cvut,dc=cz<br />
ldap_group_object_class = group<br />
#ldap_search_timeout = ??? # switch to offline mode after this timeout<br />
#ldap_network_timeout = 6<br />
#ldap_opt_timeout = 5<br />
#ldap_access_filter = memberOf=cn=emp,ou=Groups,dc=fjfi,dc=cvut,dc=cz<br />
#ldap_access_order = filter,expire<br />
ldap_access_order = expire<br />
ldap_account_expire_policy = ad<br />
ldap_force_upper_case_realm = true<br />
ldap_disable_referrals = true<br />
# kerberos configuration<br />
krb5_server = krb1.fjfi.cvut.cz,krb2.fjfi.cvut.cz,krb3.fjfi.cvut.cz<br />
krb5_realm = FJFI.CVUT.CZ<br />
krb5_canonicalize = false<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
account_cache_expiration = 7<br />
entry_cache_timeout = 14400<br />
enumerate = true<br />
<br />
Při použití výše uvedené konfigurace proti AD (tj. kerberos autentizace + TLS zabezpečený přenos dat) je potřeba do <tt>/etc/openldap/ldap.conf</tt> přídat řádek<br />
<br />
# Active Directory not supporting nested security or privacy layers<br />
sasl_secprops minssf=0,maxssf=0<br />
<br />
===Kerberos===<br />
<br />
Toto je starší způsob z doby, kdy ještě neexistovala možnost použít sssd. Navíc lze tento starší návod aplikovat na platformách, které nepodporují sssd.<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu 5.x (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt>, na RedHatu 6.x (RHEL6) je to samé potřeba provést ještě v <tt>/etc/pam.d/password-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu HOSTNAME$ v AD<br />
# (lze také naklikat v admin mmc User and Computer consoli)<br />
dsrm -noprompt "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu (na w2k8 by měl být ktpass.exe součástí default instalace)<br />
C:> ktpass /princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ /mapuser FJFI\hostname /pass +rndPass /out c:\hostname.keytab /crypto all /ptype KRB5_NT_PRINCIPAL /mapop set [-kvno 1]<br />
# vytvoření služby ftp pro hosta hostname.fjfi.cvut.cz (pouze pokud na "hostname" provozujeme službu FTP)<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -SetUpn -out hostname.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5 (asi historicke a zbytečné)<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=3019Doména FJFI2014-05-15T15:45:32Z<p>Keroupav: /* Vytvoření keytabu ve windows */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ARK1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ARK2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| SRK || Trojanova || terminal server Windows<br />
|-<br />
| VRK2 || Trojanova || virtualizační server<br />
|-<br />
| Troja1 || Trója || DC, fileserver<br />
|-<br />
| DRK || Děčín || DC, LDAP<br />
|-<br />
| ARK3 || Děčín || Fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| KMK || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| Print2 || VRK2 || printserver Trojanova<br />
|-<br />
| IT || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| SCP || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<strike><br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
</strike><br />
<br />
===FnspeCmdService===<br />
<strike><br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
</strike><br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<strike><br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
</strike><br />
<br />
===ADScripts - synchronizace 2014===<br />
<br />
Přepis FnspeLibrary přímo do powershellu z důvodu malé flexibility v úpravě a kompilaci C# DLL knihovny. Rozhraní pro přístup k uživatelským datům zůstalo stejné jako v případě FnspeLibrary, rozdíl je pouze v několika řádcích inicializace a ta je demonstrována v <tt>example-usermap.ps1</tt>. Nové powershell rozhraní navíc přistupuje přímo k datům v usermap LDAPu a databázi Oracle obsahující číselníky (telefony, adresy, funkce ...).<br />
<br />
# zdrojové soubory powershell skriptů<br />
svn co https://comp.fjfi.cvut.cz/repos/adscripts adscripts<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
Pokud je/byl uživatel někdy členem skupiny administratorů, potom si tuto informaci AD poznamená do atributu <tt>adminCount</tt>, který podle dokumentace znamená: "Indicates that a given object has had its ACLs changed to a more secure value by the system because it was a member of one of the administrative groups (directly or transitively)". Účty, které mají nastaven "adminCount" příznak může modifikovat jen administrátor (vlastnost AD) - speciální uživatel používaný přes rozhraní na NMS není admin a proto např. nastavováni hesel pro wireless sítě nebude z rozhraní na NMS fungovat. Toto je další důvod proč by běžné uživatelské účty neměli být v admin skupinách.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-S''' || vyhrazeno pro potřeby fakulty (globálních a lokálních správců - využití nutno uvést do této tabulky!)<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''T-Z''' || vyhrazeno pro potřeby lokálního uživatele<br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), ARK3 (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště (DFS)<br />
**servery AR1, ARK2<br />
**Replicated folders: <br />
***Home (osobní síťové adresáře)<br />
***Profile (roaming profiles pro účely učeben)<br />
***Share (obsahuje sdílené složky organizačních jednotek a jiné)<br />
***WWW (webhosting zaměstnanců)<br />
***WW2 (webhosting pro studenty)<br />
**Published to Namespace: FRK (Servers ARK1, ARK2)<br />
* Lokální datové úložiště Děčín (SMB 2.1)<br />
*server ARK3<br />
**Shared folders: Home, Profile, WWW, WWW2, Share<br />
**data jsou zde umístěna na základě pracovního/studijního zařazení<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Jednoduchý test přístupu k datům v AD se simple autentizací<br />
# klasické SSL spojení<br />
ldapsearch -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' -D 'FJFI\username' -W cn=username<br />
<br />
Jednoduchý test přístupu k datům v AD s kerberos autentizací<br />
# získání kerberos ticketu pro autentizaci LDAP spojení<br />
kinit username@FJFI.CVUT.CZ <br />
# klasické SSL spojení<br />
ldapsearch -O minssf=0,maxssf=0 -H ldaps://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
# STARTTLS negotiation po navázání spojení<br />
ldapsearch -O minssf=0,maxssf=0 -ZZ -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' cn=username<br />
<br />
Příklad simple autentizace v pythonu:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu) v pythonu:<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
#conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
#conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
#conn.start_tls_s()<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Při použití SASL (GSSAPI) autentizace a zabezpečeného přenostu dat přes STARTTLS (port 389) nebo SSL (port 636) je navíc potřeba OpenLDAP knihovně vysvětlit, aby nepoužívala "SASL privacy layers", které LDAP rozhraní AD nepodporuje (z hlediska zabezpečení je to pořád OK). V takovém případě je potřeba přidat do <tt>/etc/openldap/ldap.conf</tt> řádek s <tt>sasl_secprops minssf=0,maxssf=0</tt> nebo přímo v kódu nastavit tyto parametry např. pomoci<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MIN, 0)<br />
conn.set_option(ldap.OPT_X_SASL_SSF_MAX, 0)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
===SSSD===<br />
<br />
Je řešení RedHatu pro autentizace (pam) a zpřístupnění informací o uživatelských učtech (nss). Má hromadu konfiguračních možností a obecně vypadá jako robustnějši řešení než např. samotný pam_ldap+nss_ldap (např. umožňuje cachování informací a "offline režim"). V principu lze použít dvě různé konfigurace pro lokální prostředí s AD. První řešení je na míru šité pro AD a vyžaduje, aby daný počítač byl joinutý do domény, druhé řešení používa klasickým způsobem LDAP a Kerberos rozhraní AD a nevyžaduje joinutí do domény.<br />
<br />
Aby systém vůbec začal využívat služby SSSD daemona, můsí se požadavky na autentizaci přesměrovat na <tt>pam_sss</tt> modul a uživatelské učty musí využívat <tt>nss_sss</tt>. Je potřeba upravit (zkontrolovat) následující konfigurační soubory:<br />
<br />
# /etc/nsswitch.conf<br />
...<br />
passwd: files '''sss'''<br />
shadow: files '''sss'''<br />
group: files '''sss'''<br />
...<br />
<br />
# /etc/pam.d/password-auth resp. /etc/pam.d/system-auth<br />
<br />
#%PAM-1.0<br />
# This file is auto-generated.<br />
# User changes will be destroyed the next time authconfig is run.<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 500 quiet<br />
'''auth sufficient pam_sss.so use_first_pass'''<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 500 quiet<br />
'''account [default=bad success=ok user_unknown=ignore] pam_sss.so'''<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3 type=<br />
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok<br />
'''password sufficient pam_sss.so use_authtok'''<br />
password required pam_deny.so<br />
<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
'''session optional pam_sss.so'''<br />
<br />
Na RedHat 6.x jsou tyto soubory automaticky správně modifikovány po instalaci SSSD. Tu lze provést následujícím příkazem:<br />
<br />
# důležité je nainstalovat i 32bit verzi jinak nebudou běhat<br />
# žádné aplikace zkompilované 32bit<br />
yum install sssd sssd-tools sssd-client sssd-client.i686<br />
<br />
====SSSD AD====<br />
<br />
Relativně minimální konfigurace SSSD proti FJFI AD může vypadat následujícím způsobem. Aby níže uvedená konfigurace fungovala, musí být splněny následující požadavky<br />
<br />
* počítač musí být zařazen v AD doméně (viz. [[Doména FJFI#Host/Service Kerberos Key]])<br />
** musí existovat <tt>/etc/krb5.keytab</tt><br />
** musí fungovat ověření pomocí keytabu <tt>kinit -k -t /etc/krb5.keytab host/name.fjfi.cvut.cz@FJFI.CVUT.CZ</tt><br />
* uživatelské účty musí mit posixAccount atributy (viz. [[Doména FJFI#Konfigurace účtu v AD]])<br />
* <tt>pam_sssd</tt> v konfiguraci <tt>/etc/pam.d/system-auth</tt> a <tt>/etc/pam.d/password-auth</tt> (viz. [[Doména FJFI#SSSD]])<br />
* <tt>sssd</tt> pro příslušné položky (<tt>passwd</tt>, <tt>shadow</tt>, <tt>group</tt>) v <tt>/etc/nsswitch.conf</tt> (viz. [[Doména FJFI#SSSD]])<br />
<br />
[sssd]<br />
domains = LOCAL,AD<br />
services = nss, pam<br />
config_file_version = 2<br />
<br />
[nss]<br />
filter_groups = root<br />
filter_users = root<br />
reconnection_retries = 3<br />
entry_cache_timeout = 300<br />
entry_cache_nowait_percentage = 75<br />
<br />
[pam]<br />
reconnection_retries = 3<br />
offline_credentials_expiration = 3<br />
offline_failed_login_attempts = 3<br />
offline_failed_login_delay = 5<br />
pam_pwd_expiration_warning = 3<br />
<br />
[domain/LOCAL]<br />
id_provider = local<br />
auth_provider = local<br />
access_provider = permit<br />
<br />
[domain/AD]<br />
id_provider = ad<br />
auth_provider = ad<br />
chpass_provider = ad<br />
access_provider = ad<br />
ad_domain = fjfi.cvut.cz<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# folloving name is necessary only if local hostname doesn't correspond entries in keytab file<br />
#ad_hostname = host.fjfi.cvut.cz<br />
ldap_schema = ad<br />
ldap_id_mapping = false<br />
ldap_disable_referrals = true<br />
# global<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
<br />
Pokud chceme omezit skupinu lidí, kteří budou mít přístup k linuxovému stroji se zkonfigurovaným SSSD AD, potom musíme zvolit <tt>access_provider = ldap</tt>, jelikož výše uvedený <tt>ad</tt> provider nemá (v aktuální verzi na RHEL6.5) žádné další možnosti konfigurace. Konfigurace vlastního service by pak mohla vypadat např. následovně:<br />
<br />
[domain/AD]<br />
id_provider = ad<br />
auth_provider = ad<br />
chpass_provider = ad<br />
'''access_provider = ldap'''<br />
ad_domain = fjfi.cvut.cz<br />
ad_server = ldap1.fjfi.cvut.cz,ldap2.fjfi.cvut.cz,ldap3.fjfi.cvut.cz<br />
# folloving name is necessary only if local hostname doesn't correspond entries in keytab file<br />
#ad_hostname = host.fjfi.cvut.cz<br />
# defines user/group schema type<br />
ldap_schema = ad<br />
# using explicit POSIX attributes in the Windows entries (default is false)<br />
ldap_id_mapping = false<br />
# ldap access controls - requires access_provider set to ldap<br />
'''ldap_sasl_mech = GSSAPI'''<br />
'''ldap_access_filter = memberOf=cn=skupina,ou=Groups,dc=fjfi,dc=cvut,dc=cz'''<br />
'''ldap_access_order = filter,expire'''<br />
'''ldap_account_expire_policy = ad'''<br />
'''ldap_force_upper_case_realm = true'''<br />
# performance<br />
ldap_disable_referrals = true<br />
# global<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
enumerate = true<br />
<br />
V budoucnu bude možné využít ad_access_filter, který je ale až v novější verzi SSSD 1.11<br />
<br />
====SSSD LDAP+Kerberos====<br />
<br />
[sssd]<br />
domains = LOCAL,LDAP<br />
services = nss, pam<br />
config_file_version = 2<br />
<br />
[nss]<br />
filter_groups = root<br />
filter_users = root<br />
reconnection_retries = 3<br />
entry_cache_timeout = 300<br />
entry_cache_nowait_percentage = 75<br />
<br />
[pam]<br />
reconnection_retries = 3<br />
offline_credentials_expiration = 3<br />
offline_failed_login_attempts = 3<br />
offline_failed_login_delay = 5<br />
pam_pwd_expiration_warning = 3<br />
<br />
[domain/LOCAL]<br />
id_provider = local<br />
auth_provider = local<br />
access_provider = permit<br />
<br />
[domain/LDAP]<br />
id_provider = ldap<br />
auth_provider = krb5<br />
chpass_provider = krb5<br />
access_provider = ldap<br />
min_id = 1000<br />
max_id = 30000<br />
ldap_uri = ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz,ldap://ldap3.fjfi.cvut.cz<br />
ldap_search_base = dc=fjfi,dc=cvut,dc=cz<br />
ldap_id_use_start_tls = true<br />
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt<br />
# simple autentizace uživatele pro přístup k LDAP informacím<br />
#ldap_default_bind_dn = CN=proxy_posix,OU=Specials,DC=fjfi,DC=cvut,DC=cz<br />
#ldap_default_authtok_type = password<br />
#ldap_default_authtok = secret<br />
# kerberos autentizace uživatele pro přístup k LDAP informacím<br />
ldap_sasl_mech = GSSAPI<br />
ldap_sasl_authid = host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ<br />
ldap_referrals = false<br />
ldap_schema = rfc2307bis<br />
ldap_user_search_base = ou=People,dc=fjfi,dc=cvut,dc=cz<br />
ldap_user_object_class = user<br />
ldap_user_home_directory = unixHomeDirectory<br />
ldap_user_principal = userPrincipalName<br />
ldap_user_name = sAMAccountName<br />
ldap_group_search_base = ou=groups,dc=fjfi,dc=cvut,dc=cz<br />
ldap_group_object_class = group<br />
#ldap_search_timeout = ??? # switch to offline mode after this timeout<br />
#ldap_network_timeout = 6<br />
#ldap_opt_timeout = 5<br />
#ldap_access_filter = memberOf=cn=emp,ou=Groups,dc=fjfi,dc=cvut,dc=cz<br />
#ldap_access_order = filter,expire<br />
ldap_access_order = expire<br />
ldap_account_expire_policy = ad<br />
ldap_force_upper_case_realm = true<br />
ldap_disable_referrals = true<br />
# kerberos configuration<br />
krb5_server = krb1.fjfi.cvut.cz,krb2.fjfi.cvut.cz,krb3.fjfi.cvut.cz<br />
krb5_realm = FJFI.CVUT.CZ<br />
krb5_canonicalize = false<br />
min_id = 1000<br />
max_id = 30000<br />
cache_credentials = true<br />
account_cache_expiration = 7<br />
entry_cache_timeout = 14400<br />
enumerate = true<br />
<br />
Při použití výše uvedené konfigurace proti AD (tj. kerberos autentizace + TLS zabezpečený přenos dat) je potřeba do <tt>/etc/openldap/ldap.conf</tt> přídat řádek<br />
<br />
# Active Directory not supporting nested security or privacy layers<br />
sasl_secprops minssf=0,maxssf=0<br />
<br />
===Kerberos===<br />
<br />
Toto je starší způsob z doby, kdy ještě neexistovala možnost použít sssd. Navíc lze tento starší návod aplikovat na platformách, které nepodporují sssd.<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu 5.x (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt>, na RedHatu 6.x (RHEL6) je to samé potřeba provést ještě v <tt>/etc/pam.d/password-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=HOSTNAME,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass /princ host/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ /mapuser FJFI\hostname /pass +rndPass /out c:\hostname.keytab /crypto all /ptype KRB5_NT_PRINCIPAL /mapop set [-kvno 1]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/hostname.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\HOSTNAME$ -pass +rndPass +Answer -SetUpn -out hostname.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
#samba 3.3: use kerberos keytab = True<br />
#samba 3.5: kerberos method = system keytab|dedicated keytab|secrets and keytab<br />
kerberos method = secrets and keytab<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Kmlinux&diff=2996Kmlinux2014-02-13T18:04:47Z<p>Keroupav: /* Data na Windows */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Základní informace=<br />
<br />
;Správce : [http://nms.fjfi.cvut.cz/user/who.php?uid=vokacpet Petr Vokáč]<br />
;HW :<br />
;:*Motherbord - [http://www.supermicro.com/Aplus/motherboard/Opteron8000/MCP55/H8QM3-2.cfm H8QM3-2], 2*PCI Express 16, 1*PCI Express 8, 1*PCI Express 4, 1*PCI-X, 2*1Gb LAN, 8*2Gb DDR2<br />
;:*CPU 4*Quard-Core AMD Opteron(tm) Processor 8354 (B3)<br />
;:*16GB RAM<br />
;:*5*1TB HDD, řadič ARECA 1220 PCI Express - RAID6 (3TB)<br />
;:*2*1Gb LAN<br />
;:*management AOC-SIM1U (KVM přes oddělenou LAN)<br />
;OS : [http://www.centos.org CentOS6]<br />
;:aplikace<br />
;:*aplikace z [http://www.civ.cvut.cz/info/info.php?id=37 ČVUT multilicencí] (Matlab, Maple, Mahtematica, ...)<br />
;:*volně dostupné (Eclipse, Netbeans, Java, root, ...)<br />
;:*nainstalováno více verzí, pro i386 a x86_64 architektury<br />
;:*po dohodě je možné nainstalovat libovolnou další aplikaci (jejíž licence to umožňuje)<br />
;:*adresář s aplikacemi /fjfi/apps je exportován přes NFSv2, NFSv3, NFSv4 a je možné si ho připojit kdekoliv na ČVUT<br />
;Využití : pro výuku, výběr pošty, www stránky, ...<br />
;Konto : vytvářené (a rušené) automaticky jako [http://it.fjfi.cvut.cz/ hlavní FJFI konto]<br />
<br />
=Přístup=<br />
<br />
Pro přístup ke kmlinuxu použijte svoje hlavní [http://nms.fjfi.cvut.cz/user/who.php uživatelské jméno] a heslo na FJFI. Pro první [https://nms.fjfi.cvut.cz/user/konto.php aktivaci hlavního FJFI konta] je potřeba znát jméno/heslo do Usermapu/KOSu (to lze využít i pro [https://nms.fjfi.cvut.cz/user/passwd.php změnu hesla], pokud jste ho zapomněli).<br />
<br />
==Terminálový==<br />
<br />
Na server je možné přihlášení pomocí [http://www.openssh.com/manual.html ssh]. Pro Windows existuje například ssh klient [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html putty] (v konfiguraci je vhodné zapnout kódování UTF-8, jinak se speciální znaky nebudou zobrazovat korektně). V případě, že máte pouze webovský browser s podporou Java appletů, mužete využít [http://kmlinux.fjfi.cvut.cz/ssh/ následující aplikaci].<br />
<br />
Fingerprinty pro SSH na kmlinuxu (jsou uvedeny také jako [http://www.ietf.org/rfc/rfc4255.txt SSHFP] záznamy v DNS):<br />
<br />
1024 2f:1c:94:d0:84:25:b3:03:a9:53:a8:e8:f8:6d:fe:10 ssh_host_rsa_key.pub<br />
1024 4d:ad:e4:bd:c1:fc:ff:59:1b:50:e4:09:7d:9b:b9:72 ssh_host_dsa_key.pub<br />
<br />
===SSH klíče===<br />
<br />
Tento způsob přihlašování přináší jak lepší zabezpečení hesla (závislé jen na důvěryhodnosti stroje z nějž se přihlašujete) tak i větší pohodlí (možnost logovat se "bez hesla"). Na stroji z nějž se chcete přihlašovat si musíte vygenerovat SSH klíče:<br />
<br />
# vygenerování SSH klíčů (je možné zadat i prázdné heslo, ale to zavisí na tom<br />
# jak moc jste paranoidní a jak moc důvěřujete stroji na němž klíče generujete,<br />
# pro přihlašování "bez hesla" je asi lepší použít ssh-agent)<br />
ssh-keygen -t dsa -b 2048 # u starších verzí SSH bude možná potřeba kratší klíč, např. 1024<br />
<br />
Vygenerované klíče se uloží do <tt>~/.ssh/id_dsa.pub</tt> (veřejný klíč) resp. <tt>~/.ssh/id_dsa</tt> (privátní klíč). Veřejný klíč nakopírujte/přidejte do <tt>~/.ssh/authorized_keys</tt> na stroji, kam se chcete přihlašovat pomocí právě vygenerovaného klíče.<br />
<br />
cat ~/.ssh/id_dsa.pub | ssh username@kmlinux.fjfi.cvut.cz ">> ~/.ssh/authorized_keys"<br />
# u novějších verzí SSH stačí zadat: ssh-copy-id username@kmlinux.fjfi.cvut.cz<br />
<br />
Podobným způsobem lze zkonfigurovat <tt>putty</tt>, ale k tomu navíc potřebujete samostatnou aplikaci na generování klíčů <tt>puttygen</tt> (lze ji stáhnout ze [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|stejné stránky jako putty]). Poté, co si vygenerujete privátní a veřejný klič (ten připojte do <tt>~/.ssh/authorize_keys</tt> na cílovém SSH serveru), musíte v konfiguraci <tt>putty</tt> připojení vybrat autentizaci pomocí vygenerovaného privátního klíče: Connection -> SSH -> Auth -> Private key file for Authentication.<br />
<br />
===Kerberos===<br />
<br />
Stejně jako u SSH klíčů i tento způsob přihlašování zabrání odchycení hesla (samozřejme s vyjímkou stroje, kde to heslo zadáváte) a zjednoduší vícenásobné přihlašování, protože Kerberos ticket má platnost několik hodin. Bohužel konfigurace Kerberos klienta je o trochu složitější a je dobré mít na stanici root práva. Nejprve je nutné upravit soubor <tt>/etc/krb5.conf</tt>, který by měl obsahovat následující údaje:<br />
<br />
[logging]<br />
default = FILE:/var/log/krb5libs.log<br />
kdc = FILE:/var/log/krb5kdc.log<br />
admin_server = FILE:/var/log/kadmind.log<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 26h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
kdc = krb4.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
Poté by mělo být možné získat Kerberos ticket, který slouží pro autentizaci ke "kerberizovaným službám" (jako jen např. SSH):<br />
<br />
# pokud máte lokální jméno stejné a výše uvedenou konfiguraci v /etc/krb5.conf<br />
# nemusíte příkazu kinit předavat žádné parametry<br />
kinit [username@FJFI.CVUT.CZ] [-r 7d] [-l 7d]<br />
# výpis Kerberos ticketů<br />
klist<br />
# zneplatnění kerberos ticketu<br />
kdestroy<br />
<br />
S platným kerberos ticketem nebude SSH server vyžadovat žádné další přihlašovací heslo. V případě, že se dotáže na heslo, tak buď nemáte platný Kerberos ticket k účtu k němuž se snažíte přihlásit nebo ssh klient, který používáte nepodporuje Kerberos (zkontrolujte také jestli je povoleno "GSSAPIAuthentication yes" v konfiguraci ssh klienta např. <tt>/etc/ssh/ssh_config</tt> reps. <tt>~/.ssh/config</tt>).<br />
<br />
===screen===<br />
<br />
Pokud chcete stejný terminál použivat pokaždě, když se znovu přihlásíte, můžete využít vlastností aplikace [http://www.gnu.org/software/screen/ screen]. Tuto aplikaci je také výhodné použít v případě, že spouštíte nějaký dlouho trvající proces, kde si nejste jisti, že se mezitím z nějakého důvodu nerozpadne spojení se serverem. Seznam nejdůležitejších příkazů:<br />
<br />
# vytvoření nové session<br />
screen -U -S jméno<br />
# vylistování existujících session<br />
screen -list<br />
# připojení k existující session<br />
screen -U -A -d -r jméno<br />
# následují zkratkové klávesy pro ovládání běžícího screenu<br />
ctrl+a d # přerušení práce ve screenu<br />
ctrl+a c # vytvoření nového virtuálního terminálu<br />
ctrl+a a # pošle do terminálu ctrl+a<br />
ctrl+a k # zrušení aktuálního virtuálního terminálu<br />
ctrl+a 0-9 # přechod mezi nultým až devátým virtuálním terminálem<br />
ctrl+a p # předchozí virtuální terminál<br />
ctrl+a n # následující virtuální terminál<br />
ctrl+a " # seznam virtuálních terminálů<br />
ctrl+a x # zamčení screenu<br />
ctrl+a esc # kopírovací / skrolovací mód<br />
<br />
==Grafický==<br />
<br />
===X11===<br />
V linuxu existuje několik způsobů pro vzdálené spouštění grafických aplikací. Jeden ze způsobů je podporován přímo X serverem a ssh klientem (není-li v globální konfiguraci povoleno přesměrování X11 spojení, je potřeba spustit ssh klienta s parametrem -X resp. -Y). Bohužel tento způsob není vždy úplně optimální a to jak z hlediska rychlosti, tak i z hlediska pohodlí (např. ve windows je potřeba nejprve spustit X server, např. [http://sourceforge.net/projects/xming/ xming] nebo lze použít i X server z cygwinu). Navíc tímto způsobem není možné uchovat běžící grafickou aplikaci po odhlášení od serveru.<br />
<br />
===VNC===<br />
<br />
* Na kmlinuxu je potřeba spustit vncserver s např. rozlišením 1024x768, poprvé budete dotázáni na heslo, lze zadat cokoliv (zabezpečení je realizováno pomocí SSH), ale heslo si zapamatujte, protože je vyžadováno klientem. Po startu vncserveru se na konzoli vypíše číslo displaye, na němž byl byl spuštěn.<br />
<br />
vncserver -depth 24 -geometry 1024x768 -localhost<br />
<br />
* Na straně klienta je potřeba vytvořit zabezpečený komunikační kanál s kmlinuxem (běžný vnc protokol totiž není šifrovaný a bylo by možné ho odposlouchávat). K tomu lze využít vlastnosti SSH, které umožňuje vytvářet zabezpečené tunely.<br />
# vytvoření SSH tunelu (x je číslo display, na nemž běží spuštený vncserver)<br />
ssh -f -C -N -L 5901:127.0.0.1:590x username@kmlinux.fjfi.cvut.cz<br />
# nebo pod windows lze použít plink (případně konfiguraci SSH tunelů z putty)<br />
plink.exe -L 5901:127.0.0.1:590x username@kmlinux.fjfi.cvut.cz<br />
<br />
* Po vytvoření tunelu už stačí spustit vnc klienta (např. [http://tigervnc.org TigerVNC]), kde jako adresu uvedete <tt>localhost</tt> a číslo displaye 1.<br />
<br />
# spuštění VNC klienta<br />
vncviewer localhost:1<br />
<br />
Pokud chcete použít nějaký jiný "hezčí" windows manager, změnte obsah <tt>~/.vnc/xstartup</tt> např. na<br />
<br />
#!/bin/sh<br />
<br />
# Red Hat Linux VNC session startup script<br />
exec /etc/X11/xinit/xinitrc<br />
exec /usr/bin/gnome-session<br />
<br />
Ukončení běžícího vnc serveru lze na kmlinuxu provést příkazem<br />
<br />
vncserver -kill x # kde x je číslo display, kde se spustil vncserver<br />
<br />
Pokud bude dostatek paměti, může běžet Váš vncserver nepřetržite, nesmí však zbytečně vytěžovat CPU (např. nějakým screensaverem).<br />
<br />
===NX===<br />
<br />
NX server přestal koncem 2013 fungovat a není v plánu ho opět zprovoznit vzhledem k tomu, že v x2go existuje srovnatelná alternativa.<br />
<br />
<strike><br />
Jedná se o optimalizovaný / komprimovaný X protokol, který má výrazně nižší nároky na přenosovou rychlost. Navíc klient/server podporuje některá další rozšíření klasického X serveru, takže je například možné měnit velikost desktopu běžící session (na druhou stranu to má zas svá omezení, kdy není možné připojit se k běžící session, pokud se změnila bitová hloubka rozlišení na klientské stanici).<br />
</strike><br />
<br />
[[Image:nx.png|thumb|Konfigurace NX klienta|400px|right|Konfigurace NX klienta]]<br />
<br />
====Konfigurace====<br />
<br />
<strike><br />
*[http://www.nomachine.com/download.php stáhněte a nainstalujte klienta] pro požadovanou platformu (Windows, Linux, Mac OSX, Solaris)<br />
*spusťte klienta, do konfigurace vyplňte požadované údaje (jméno serveru, username, ...)<br />
*na <tt>kmlinux.fjfi.cvut.cz</tt> si otevřete soubor <tt>/etc/nxserver/client.id_dsa.key</tt> a uložte ho do formuláře, který se zobrazí po kliknutí na tlačítko "Configure..." -> "Key..."<br />
</strike><br />
<br />
===x2go===<br />
<br />
Slouží jako náhrada za NX server, který od verze 4 není volně dostupný. Klient/server x2go je postavený na NX protokolu verze 3, ale není s ním kopatibilní. Proto pro grafický přístup ke kmlinuxu pomocí x2go budete potrebovat nainstalovat [http://wiki.x2go.org/doku.php/doc:installation:x2goclient x2go klienta]. Vlastní konfigurace připojení je jednodušší než konfigurace původního NXka - stačí vyplnit položku <em>Host</em> (<tt>kmlinux.fjfi.cvut.cz</tt>), <em>Login</em> (FJFI uživatelské jméno) a přípatne <em>Session type</em> (zvolit typ windows manageru, např. KDE, GNOME, LXDE nebo XFCE).<br />
<br />
==Tunely==<br />
<br />
Některé služby nejsou přístupné z jiných strojů případně mimo IP rozsah adres FJFI (např. MySQL, PostgreSQL, ...). Pokud k nim chcete přesto přistupovat i z jiných IP adres, máte možnost tunelovat je přes SSH (ve většině případů lze také využít přístup přes [[VPN|FJFI VPN]]). K vytvoření tunelu použijte buď běžné ssh nebo pod windows mužete použít [http://www.chiark.greenend.org.uk/~sgtatham/putty/ putty] resp. [http://www.chiark.greenend.org.uk/~sgtatham/putty/ plink].<br />
<br />
# příklad použití ssh pro zpřístupnění MySQL<br />
ssh -f -C -N -L 3306:kmlinux.fjfi.cvut.cz:3306 username@kmlinux.fjfi.cvut.cz<br />
# příklad použití plink pro zpřístupnění MySQL<br />
plink -N -L 3306:kmlinux.fjfi.cvut.cz:3306 username@kmlinux.fjfi.cvut.cz<br />
<br />
Uvedené příklady zajistí, ze příslušný port z kmlinuxu bude "namapovaný" na adresu localhostu (127.0.0.1) na počítači, kde jste tento příkaz spustili.<br />
<br />
===Transparetní tunel===<br />
<br />
Po vytvoření SSH tunelu se v aplikaci využívající tunelované spojení musí nakonfigurovat přístup přes localhost (127.0.0.1) a vybrané číslo portu. To v něterých případech nemusí být jednoduché a pohodlné. Pokud systém na němž pracujete podporuje přesměrování síťového provozu, potom můžete zajistit zcela transparentní tunelování bez nutnosti měnit jméno cílového stroje a číslo portu při navazování spojení. Např. v linuxu můžete to lze zařídit následujícím způsobem:<br />
<br />
# transparetní přítup přes tunel k MySQL<br />
ssh -f -C -N -L 3306:kmlinux.fjfi.cvut.cz:3306 username@kmlinux.fjfi.cvut.cz<br />
sudo iptables -t nat -A OUTPUT -d kmlinux.fjfi.cvut.cz -p tcp --dport 3306 -j DNAT --to-destination 127.0.0.1:3306<br />
<br />
Nyní je možné přistupovat "přímo" k MySQL databázi na kmlinuxu (tj. např. <tt>mysql -h kmlinux.fjfi.cvut.cz -u username -p</tt>) z Vašeho počítače a spojení bude automaticky tunelováno přes SSH.<br />
<br />
===Přístup za NAT===<br />
<br />
Pokud provozujete nějakou službu (např. remote desktop) na svém počítači, který je připojen do internetu přes NAT, tunelování může zpřístupnit danou službu pro libovolný počítač. Stačí když lokální port na němž služba poslouchá přesměrujete a necháte ji poslouchat na nějakém portu počítače s veřejnou IP adresou. Je potřeba si ale uvědomit, že tunelováním obcházíte nastavení lokálního firewallu a všech firewallů na cestě, tj. služba bude standardně dostupná uplně bez omezení. Následující příklad zpřístupní rdesktop z lokálního stroje, který pak bude dostupný na kmlinux.fjfi.cvut.cz:12345 (na jeden port můžete namapovat maximální jeden tunel, tj. 12345 změnte pro každý nový tunel)<br />
<br />
# příklad použití ssh pro zpřístupnění rdesktop stroje za NATem<br />
ssh -f -C -N -R :12345:127.0.0.1:3389 username@kmlinux.fjfi.cvut.cz<br />
# příklad použití plink pro zpřístupnění rdesktop stroje za NATem<br />
plink -N -R :12345:127.0.0.1:3389 username@kmlinux.fjfi.cvut.cz<br />
<br />
# můžete také vytvořit tunel na další stroje v lokální síti za NATem<br />
# pokud chcete např. přistupovat na stroj s privátní IP 192.168.1.123<br />
# použijte příkaz<br />
ssh -f -C -N -R :12345:192.168.1.123:3389 username@kmlinux.fjfi.cvut.cz<br />
# resp.<br />
plink -N -R :12345:192.168.1.123:3389 username@kmlinux.fjfi.cvut.cz<br />
<br />
Pro přihlášení lze potom použít příkaz<br />
<br />
# v linuxu<br />
rdesktop kmlinux.fjfi.cvut.cz:12345<br />
# ve windows<br />
mstsc /v:kmlinux.fjfi.cvut.cz:12345<br />
<br />
Ve standardní konfiguraci ssh serveru jsou zakázány "<tt>GatewayPorts</tt>", takže není možné přímo zpřístupnit službu do světa a musí se to obejít dalším tunelem podobným jako v ukázce tunelování MySQL. Na kmlinux.fjfi.cvut.cz je uvedená volba povolena a výše uvedené příklady fungují přesně tak jak jsou uvedeny bez nutnosti vytvářet další pomocný tunel.<br />
<br />
=Data=<br />
<br />
==Quota==<br />
<br />
Velikost domovského adresáře je v současné době omezena quotou pro studenty na 400MB (resp. 500MB dočasně), pro zaměstnance a doktorandy na KM/KF je quota nastavena na 40GB (resp. 50GB dočasně), pro ostatní přibližně kolem 10GB (resp. 15GB dočasně). Větší prostor lze dohodnout individuálně v případě, že se jedná o nějaký projekt alespoň malinko související s naší fakultou.<br />
<br />
==Backup==<br />
V současné době je prováděno pravidelné zálohování adresářů /home (krom dočasných adresářů/souborů jako jsou např. cache web browseru, adresář tmp, ... a některých rozsáhlých nedůležitých adresářů s fotkami), /var/spool (příchozí maily, ...) a databází (MySQL, PostgreSQL). Zálohování je prováděno pomocí programu [http://www.bacula.org bacula] každý den v noci podle následujícího schématu:<br />
<br />
* Kompletní backup (každou neděli ráno)<br />
* Inkrementální (pondělí-středa ráno)<br />
* Diferenciální (čtvrtek ráno)<br />
* Inkrementální (pátek-sobota ráno)<br />
<br />
Data jsou uchovávána přibližně dva týdny než je místo které zabírají recyklováno pro potřeby nových záloh. Pokud budete potřebovat obnovit data ze zálohy, můžete k tomu využít [https://nms.fjfi.cvut.cz/user/?p=backup formuláře na stránkách uživatelských konfigurací].<br />
<br />
==Přístup==<br />
Pro přítup k datům můžete použít několik různých protokolů SFTP, SCP, FTP přes SSL, NFS, Sambu.<br />
<br />
===SCP===<br />
<br />
SCP resp. SFTP využívá pro SSH pro zabezpečenou komunikaci a tak pro autentizaci fungují všechny výše popsané postupy. Ve Windows je použitelným klientem [http://winscp.net winscp], [http://www.ghisler.com/plugins.htm SFTP plugin do Total Commanderu] nebo [http://www.eldos.com/sftp-net-drive/download-release.php SFTP Net Drive] pro namapovaní dat jako další síťovou jednotku. V linuxu je možné využít standardního příkazu <tt>scp</tt> nebo i vlastností některých aplikací (např. v <tt>mc</tt>, kde stačí napsat <tt>cd /#sh:username@stroj.domena.cz</tt>).<br />
<br />
===Fuse===<br />
<br />
Pomocí fuse resp. sshfs můžete v linuxu připojit disk z libovolného stroje, kde běží SSH daemon a máte tam uživatelský účet. Ke konfiguraci fuse potřebujete root práva na stroji, kam chcete data ze serveru připojit.<br />
<br />
# instalace podpory fuse pro Fedoru (použite package manager své distribuce)<br />
yum install fuse-sshfs<br />
# přidání lokálního uživatele do skupiny, která může používat fuse<br />
perl -p -i -e "s/^(fuse:.*)/\1,<em><b>your_local_username</b></em>/" /etc/group<br />
perl -p -i -e "s/^(fuse:.*)/\1,<em><b>your_local_username</b></em>/" /etc/gshadow<br />
# úprava globální konfigurace fuse<br />
echo "user_allow_other" >> /etc/fuse.conf<br />
# konfigurace pro příkaz mount<br />
echo "sshfs#<em><b>your_kmlinux_username</b></em>@kmlinux.fjfi.cvut.cz:/ /mnt/kmlinux fuse defaults,noauto,user,allow_other,uid="`id -u <em><b>your_local_username</b></em>`",compression=yes,transform_symlinks 0 0" >> /etc/fstab<br />
# adresář pro připojení dat<br />
mkdir -p /mnt/kmlinux<br />
chown <em><b>your_local_username</b></em>:user /mnt/kmlinux<br />
<br />
Připojení dat je s uvedenou konfigurací možné provést kdykoliv pod běžným uživatelským učtem:<br />
<br />
mount /mnt/kmlinux<br />
<br />
===NFS===<br />
<br />
Některá data jsou přístupná i přes tento protokol, ale opět je přístup omezen na ČVUT resp. FJFI IP adresy. Nejzajímavějším adresářem přístupným přes NFS (v2, v3, v4) je <tt>kmlinux.fjfi.cvut.cz:/exports/apps</tt>, kde jsou nainstalovány aplikace (Matlab, Maple, Mathematica, Java, Eclipse, Netbeans, Root, ...).<br />
<br />
===Samba (MS sdílení)===<br />
<br />
Domovské adresáře uživatelů jsou přístupné i přes protokol Samba, takže je možné namapovat si vlastní adresář přímo do Windows. Přístup je však omezen na IP rozsah ČVUT (stejně jsou v současné době blokovány příslušné komunikační porty na hraničních routerech ČVUT). Cesta k domovskému adresáři má tvar <tt>\\kmlinux.fjfi.cvut.cz\username</tt> uživatelské jmeno musí být (zatím) zadáno ve tvaru FJFI\username (někdy dokonce FJFI.CVUT.CZ\username) a standardní heslo.<br />
<br />
Pokud chcete obejít omezení přístupu z ČVUT, můžete se připojit pomocí [[VPN]] a tím získáte přístup ke všem službám, jako když svůj počítač fyzicky připojíte přímo do sítě na ČVUT. Také je možné (ale vcelku komplikované) protunelovat pomocí SSH port 139 a Váš lokální stroj a localhost. Pokud máte lokálně spuštěnou sambu/ms sdílení, je potřeba vytvořit další loopback síťové zařízení, nadefinovat mu nějakou IP z nevyužívaného privátního rozsahu a konec SSH tunelu navázat až na toto zařízení.<br />
<br />
===FTP===<br />
<br />
Dalším způsobem pro přístup k datům v domovském adresáři je FTP zabezpečené pomocí SSL. Pro anonymní přístup není vyžadaváno SSL zabezpečení a je směrováno do adresáře <tt>zatím nikam</tt>. Jako klientskou aplikaci můžete použít například lftp (linux) nebo [http://www.ghisler.com/ Total Commander] (windows).<br />
<br />
===WebDav===<br />
<br />
TODO<br />
<br />
===Data na Novellu===<br />
Pomocí programu <tt>ncpmount</tt> si můžete přimountovat data, která máte na novel discích. Celý příkaz vypadá následovně: <tt>ncpmount -A tjn.fjfi.cvut.cz -S tjn -U username.vcetne.kontextu mount_point</tt>, kde tjn je příslušný novel server, uživatelské jméno musí být zadáno celé včetně kontextu (většinou username.studenti.fjfi) a mount_point je adresář, do kterého se novel disky připojí. Po skončení práce by bylo ještě slušné disky odpojit příkazem <tt>ncpumount mount_point</tt>.<br />
<br />
===Data na Windows===<br />
Pro připojení domovských adresářů z windows bohužel nelze použít automount (v dokumentaci je sice popsána možnost autentizac mount.cifs přes Kerbera, ale ve zdrojácích je zatím "not implemented"... Prozatím je možné používat zbastlenou binárku, která se používá následujícím způsobem:<br />
<br />
mount.fjfi # vypíše help k použití<br />
mount.fjfi /jmeno/adresare # připojení domovského adresáře<br />
mount.fjfi -w /jmeno/adresare # připojení web adresáře<br />
mount.fjfi -p /jmeno/adresare # připojení profile adresáře<br />
mount.fjfi -d km /jmeno/adresare # připojení public složky "katedry"<br />
mount.fjfi -u /jmeno/adresare # odpojení windows složky<br />
<br />
# sdílené složky:<br />
# CRRC, DEKANAT, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE,<br />
# OverAll, SW,<br />
<br />
=Mail=<br />
<br />
==Čtení==<br />
<br />
Můžete číst buď přímo na serveru (pine, mutt, ...), stahovat pomocí IMAPs resp. POP3s nebo přes [https://bimbo.fjfi.cvut.cz/horde webové rozhraní]. Při konfiguraci IMAPsu nebo POP3s v mailovém klientu zadejte jako server kmlinux.fjfi.cvut.cz, svoje uživatelské jméno a hlavně nezapomeňte nastavit zabezpečení komunikace pomocí SSL (port 993 resp. 995), protože nezabezpečená forma není podporována.<br />
<br />
===pine/alpine===<br />
<br />
Pokud chcete mít odchozí adresu ve tvaru username@kmlinux.fjfi.cvut.cz přidejte do <tt>~/.pinerc</tt> řádek<br />
user-domain=kmlinux.fjfi.cvut.cz<br />
V případě, že chcete v odchozích mailech zcela jinou adresu, přidejte do <tt>~/.pinerc</tt> řádek<br />
customized-hdrs=From: Full Name <givenname.surename@fjfi.cvut.cz><br />
<br />
===mutt===<br />
<br />
Pokud chcete mít odchozí adresu ve tvaru username@kmlinux.fjfi.cvut.cz přidejte do <tt>~/.muttrc</tt> řádek<br />
set hostname=kmlinux.fjfi.cvut.cz<br />
V případě, že chcete v odchozích mailech zcela jinou adresu, přidejte do <tt>~/.muttrc</tt> řádek<br />
set realname="Full Name"<br />
set from="givenname.surename@fjfi.cvut.cz"<br />
<br />
==Přeposílání, filtrování==<br />
<br />
Pokud si chcete nechat přeposílat poštu jinam, můžete k tomu využít klasického forwardingu zapsáním cílových emailových adres do souboru <tt>.forward</tt> v domovském adresáři. Každou adresu je nutné napsat na zvláštní řádek a chcete-li nechat také kopii na tomto serveru uveďte na jeden z řádků svoje username. Pokročilejší nastavení lze provádět pomocí konfigurací programu <tt>procmail</tt>. Zde si však musíte dávat velký pozor, abyste nezpůsobili zacyklení (například není dobré nechat si přeposílat chybové hlášky). Základní kostra konfiguračního souboru <tt>.procmailrc</tt> může vypadat následujícím způsobem:<br />
<br />
# move mail with more than 8 points into junk folder<br />
:0<br />
* X-CTU-FNSPE-Spam-Level: \*\*\*\*\*\*\*\*<br />
$MAILDIR/mail/spam<br />
<br />
# move mail from mailing list to separate folder<br />
:0<br />
* ^TO.*postfix-users@(postfix.org|cloud9.net|cloud9.com)<br />
* ^Sender.*owner-postfix-users@postfix.org<br />
$MAILDIR/mail/postfix<br />
<br />
# forward mail with subject "FORWARD" to username@different.domain.cz<br />
# and leave copy here in INBOX folder (don't forward error<br />
# messages, because it can lead to mail loop)<br />
:0 c<br />
* !^FROM_DAEMON<br />
* ^Subject:.*FORWARD<br />
! username@different.domain.cz<br />
<br />
V současné době jsou všechny maily globálně značkovány pomocí [http://spamassassin.org/ spamassassin]u resp. [http://www.ijs.si/software/amavisd/ amavisu], který se snaží na základě různých pravidel určit, zda jde o spam. Do mailu, který považuje za spam, přidá mimo jiné hlavičku <tt>X-CTU-FNSPE-Spam-Flag: YES</tt> a do subjectu slovo <tt>***SPAM***(x.yz)</tt> (kde x.yz je počet spamových bodů, které mail získal). Každý uživatel má možnost [https://nms.fjfi.cvut.cz/user/?p=mail&sp=filter nastavit vlastní hranici], při které je mail označen za spam. Spamassassin se automaticky učí podle zpracovaných mailů, ale můžete mu pomoci přeposláním neoznačeného spamu na <tt>spam@mailgw.fjfi.cvut.cz</tt> a označeného nespamu na <tt>nospam@fjfi.cvut.cz</tt>. Pro jemnější filtrování je do mailů přidána hlavička <tt>X-CTU-FNSPE-Spam-Level</tt>, která dle počtu hvězdiček určuje míru spamovosti daného emailu. Takto označené maily lze jednoduše filtrovat pomocí procmailu (viz. manové stránky <tt>[http://man.root.cz/5/procmailex procmailex]</tt>, <tt>[http://man.root.cz/5/procmailrc procmailrc]</tt>, <tt>[http://man.root.cz/5/procmail procmail]</tt>).<br />
<br />
Na mailgw navíc běží [http://www.kaspersky.com/ Kaspersky Anti-Virus], který kontroluje všechny příchozí a odchozí maily na přítomnost virů. Mail v němž je nalezen vir není doručen a odesilatel ani příjemce o tom nejsou informováni (většina virů dává do hlaviček falešné informace). Pokud mail obsahuje zapakovaný archiv, který je opatřen heslem a nemůže ho tím padem zkontrolovat, přidá na začátek mailu varování o neúspěšné kontrole a možném viru v zaheslované příloze.<br />
<br />
==Odesílání mailů==<br />
<br />
Kmlinux slouží pouze k odesílání lokálních mailů. Jinak musíte využít služeb serveru <tt>smtp.fjfi.cvut.cz</tt>, který umožňuje odesílání pošty komukoliv z domény fjfi.cvut.cz bez autentizace. V ostatních případech si musíte nastavit autentizované spojení se SMTP serverem a maily pak můžete odesílat bez dalších omezení (samozřejmě pokud není na cestě firewall omezující komunikaci přes port 25 resp. 465 resp. 587). Autentizace probíhá stejně jako u dalších služeb [http://nms.fjfi.cvut.cz/user/who.php hlavním uživatelským jménem] a heslem.<br />
<br />
==Stahování pošty programem fetchmail==<br />
<br />
Následující platí pro Debian Woody s OpenSSL a fetchmail-ssl, ale na kterémkoliv Linuxu by to mělo být velmi podobné.<br />
<br />
* Stáhneme certifikát [http://secure.globalsign.net/cacert/educational.crt ze stránek GlobalSign]. Pro fetchmail budeme potřebovat ten v textové podobě.<br />
* Ověříme, jestli hash souhlasí s tím uvedeným na stránce: <br />
$ openssl x509 -inform DER -fingerprint -noout -in educational.crt<br />
SHA1 Fingerprint=60:98:36:54:D7:EC:61:1D:76:C2:CD:55:57:CA:47:AD:39:30:C9:CA<br />
* Aby to OpenSSL našlo, musí mít soubor zvláštní jméno. Rovnou vytvoříme nový soubor se správným jménem: <br />
openssl x509 -inform DER -in educational.crt -outform PEM \<br />
-out "$(openssl x509 -noout -hash -inform DER -in educational.crt).0"<br />
* Ten potřebujeme dát někam, aby ho fetchmail (či pro který program to děláme) našel. Řekněme do <tt>~/.certs</tt>. Do <tt>~/.fetchmailrc</tt> přidáme řádek (račte nahradit <tt>/home/username</tt> jménem svého ctěného domovského adresáře): <br />
sslcertpath "/home/username/.certs"<br />
<br />
Celý konfigurační soubor pro fetchmail pak může vypadat třeba takhle:<br />
<br />
poll kmlinux.fjfi.cvut.cz<br />
user "vase_username_na_kmlinuxu" is "vase_mistni_username" here<br />
pass "vase_ctene_heslo_na_kmlinuxu"<br />
ssl<br />
sslcertck<br />
sslcertpath "/home/username/.certs"<br />
<br />
=WWW=<br />
<br />
Svoje www stránky můžete umístit do adresáře /home/username/public_html, přístupné budou na adrese http://kmlinux.fjfi.cvut.cz/~username. V současné době by měly kromě html stránek fungovat i [http://kmlinux.fjfi.cvut.cz/~vokac/test.php php], cgi (přípony [http://kmlinux.fjfi.cvut.cz/~vokac/test.cgi .cgi], <strike>[http://kmlinux.fjfi.cvut.cz/~vokac/test.pl .pl], [http://kmlinux.fjfi.cvut.cz/~vokac/test.py .py]</strike>), ssi, [http://kmlinux.fjfi.cvut.cz/~vokac/test.jsp jsp].<br />
<br />
Webový server apache je také nastaven tak, že máte možnost jeho chování ovlivnit pomocí direktiv v souboru .htaccess. Můžete si tak jednoduše přesměrovat chybové stránky na vaše vlastní, omezit přístup do určitých adresářů pomocí http autentizace nebo na základě IP adresy přistupujícího klienta a nastavit celou řadu dalších parametrů. Bližší informace naleznete v [http://httpd.apache.org/docs/2.2 dokumentaci k apache] (hlavně v podkapitole [http://httpd.apache.org/docs/2.2/howto/htaccess.html .htaccess files]).<br />
<br />
Obsah stránek může být prakticky libovolný za předpokladu, že nebude odporovat pravidlům [http://www.cvut.cz/cz/infosys/rulesnet.html 1], [http://www.ten.cz/doc/podminky.html 2] využívání školních serverů. V současné době mají své stránky na kmlinuxu [http://kmlinux.fjfi.cvut.cz/homepages.php tito uživatelé].<br />
<br />
=DB=<br />
<br />
Pokud potřebujete pracovat s databází vyplňte formulář na stánkách [https://nms.fjfi.cvut.cz/user/?p=db uživatelských konfigurací].<br />
<br />
Ke správě svých databází můžete využívat www rozhraní:<br />
<br />
* [https://kmlinux.fjfi.cvut.cz/admin/phpMyAdmin phpMyAdmin]<br />
* [https://kmlinux.fjfi.cvut.cz/admin/phpPgAdmin phpPgAdmin]<br />
<br />
=Tisk=<br />
<br />
Podpora tisku na KM tiskárnu v místnosti 108, fronty:<br />
*km (default queue, barevný tisk na A4)<br />
*km-bw-a4 (černobílý tisk na A4)<br />
*km-bw-a3 (černobílý tisk na A3)<br />
*km-color-a4 (barevný tisk na A4)<br />
*km-color-a3 (barevný tisk na A3)<br />
<br />
Obsluha:<br />
# tisk postscript dokumentu<br />
lpr -P km-bw-a4 soubor.ps<br />
# vypsání obsahu tiskové fronty<br />
lpq -P km-bw-a4<br />
# vymazání dokumentu z fronty<br />
lprm -P km-bw-a4 job_id<br />
<br />
=CVS+SVN+Trac+...=<br />
<br />
V případě zájmu kontaktujte správce (v současné době jsou tyto služby provozovány na [[bimbo.fjfi.cvut.cz|jiném serveru]]).<br />
<br />
=Výpočty=<br />
<br />
Na tomto stroji můžete také provozovat výpočty, které (pokud možno) nějak souvisí se studiem resp. výzkumnými projekty. Nespouštějte více procesů než kolik má tento stroj procesorů (viz. `cat /proc/cpuinfo`) a pro úlohy trvající déle jak několik minut snižte prioritu procesu. Toho lze dosáhnout při spouštění aplikace pomocí programu nice<br />
<br />
nice -10 vypocet.exe<br />
<br />
nebo můžete změnit prioritu již běžícího procesu příkazem<br />
<br />
ps -fu $USER # vylistovani procesů aktuálního uživatele, druhý sloupec obsahuje PID procesu<br />
renice 10 PID # kde PID je číslo procesu, kterému snižujete prioritu<br />
<br />
Pokud potřebujete s aplikací běžící se sníženou prioritou opět (interaktivne) pracovat můžete vrátit její prioritu zpět pomocí příkazu<br />
<br />
rerenice PID<br />
<br />
U některých procesů (např. MATLAB, Mathematice) je priorita automaticky snížena přiřazení procesu do <tt>cgroups</tt> vyhazené pro výpočty (detaily viz. <tt>/etc/cgrules.conf</tt>).</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2995Doména FJFI2014-02-05T10:37:35Z<p>Keroupav: /* Servery */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ARK1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ARK2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| SRK || Trojanova || terminal server Windows<br />
|-<br />
| VRK2 || Trojanova || virtualizační server<br />
|-<br />
| Troja1 || Trója || DC, fileserver<br />
|-<br />
| DRK || Děčín || DC, LDAP<br />
|-<br />
| ARK3 || Děčín || Fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| KMK || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| Print2 || VRK2 || printserver Trojanova<br />
|-<br />
| IT || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| SCP || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-S''' || vyhrazeno pro potřeby fakulty (globálních a lokálních správců - využití nutno uvést do této tabulky!)<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''T-Z''' || vyhrazeno pro potřeby lokálního uživatele<br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), ARK3 (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště (DFS)<br />
**servery AR1, ARK2<br />
**Replicated folders: <br />
***Home (osobní síťové adresáře)<br />
***Profile (roaming profiles pro účely učeben)<br />
***Share (obsahuje sdílené složky organizačních jednotek a jiné)<br />
***WWW (webhosting zaměstnanců)<br />
***WW2 (webhosting pro studenty)<br />
**Published to Namespace: FRK (Servers ARK1, ARK2)<br />
* Lokální datové úložiště Děčín (SMB 2.1)<br />
*server ARK3<br />
**Shared folders: Home, Profile, WWW, WWW2, Share<br />
**data jsou zde umístěna na základě pracovního/studijního zařazení<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2994Doména FJFI2014-02-05T10:35:20Z<p>Keroupav: /* Diskové služby */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ARK1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ARK2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| SRK || Trojanova || terminal server Windows<br />
|-<br />
| VRK2 || Trojanova || virtualizační server<br />
|-<br />
| Troja1 || Trója || DC, fileserver<br />
|-<br />
| DRK || Děčín || DC, LDAP<br />
|-<br />
| ARK3 || Děčín || Fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| kmk || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| print2 || VRK2 || printserver Trojanova<br />
|-<br />
| it || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| scp || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-S''' || vyhrazeno pro potřeby fakulty (globálních a lokálních správců - využití nutno uvést do této tabulky!)<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''T-Z''' || vyhrazeno pro potřeby lokálního uživatele<br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), ARK3 (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště (DFS)<br />
**servery AR1, ARK2<br />
**Replicated folders: <br />
***Home (osobní síťové adresáře)<br />
***Profile (roaming profiles pro účely učeben)<br />
***Share (obsahuje sdílené složky organizačních jednotek a jiné)<br />
***WWW (webhosting zaměstnanců)<br />
***WW2 (webhosting pro studenty)<br />
**Published to Namespace: FRK (Servers ARK1, ARK2)<br />
* Lokální datové úložiště Děčín (SMB 2.1)<br />
*server ARK3<br />
**Shared folders: Home, Profile, WWW, WWW2, Share<br />
**data jsou zde umístěna na základě pracovního/studijního zařazení<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2993Doména FJFI2014-02-05T10:32:23Z<p>Keroupav: /* Diskové služby */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ARK1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ARK2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| SRK || Trojanova || terminal server Windows<br />
|-<br />
| VRK2 || Trojanova || virtualizační server<br />
|-<br />
| Troja1 || Trója || DC, fileserver<br />
|-<br />
| DRK || Děčín || DC, LDAP<br />
|-<br />
| ARK3 || Děčín || Fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| kmk || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| print2 || VRK2 || printserver Trojanova<br />
|-<br />
| it || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| scp || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| A-L || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| M-S || vyhrazeno pro potřeby fakulty<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''Q-Z''' || vyhrazeno pro potřeby administrátorů (globální, v rámci kateder, ...) - informace o využití těchto písmen je nutné uvést do této tabulky!<br />
|-<br />
| ?-? || <strike>vyhrazeno pro potřeby lokálního uživatele</strike><br />
|-<br />
| ?: || <strike>síťový adresář se sdílenými složkami (globalní, katedry, skupiny, ...)</strike><br />
|-<br />
| ?: || <strike>síťový adresář s aplikacemi, dokumentacemi, ...</strike><br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), ARK3 (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště (DFS)<br />
**servery AR1, ARK2<br />
**Replicated folders: <br />
***Home (osobní síťové adresáře)<br />
***Profile (roaming profiles pro účely učeben)<br />
***Share (obsahuje sdílené složky organizačních jednotek a jiné)<br />
***WWW (webhosting zaměstnanců)<br />
***WW2 (webhosting pro studenty)<br />
**Published to Namespace: FRK (Servers ARK1, ARK2)<br />
* Lokální datové úložiště Děčín (SMB 2.1)<br />
*server ARK3<br />
**Shared folders: Home, Profile, WWW, WWW2, Share<br />
**data jsou zde umístěna na základě pracovního/studijního zařazení<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2992Doména FJFI2014-02-05T10:30:34Z<p>Keroupav: /* Servery */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ARK1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ARK2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| MRK2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| BRK2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| SRK || Trojanova || terminal server Windows<br />
|-<br />
| VRK2 || Trojanova || virtualizační server<br />
|-<br />
| Troja1 || Trója || DC, fileserver<br />
|-<br />
| DRK || Děčín || DC, LDAP<br />
|-<br />
| ARK3 || Děčín || Fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| kmk || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| print2 || VRK2 || printserver Trojanova<br />
|-<br />
| it || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| scp || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-P''' || vyhrazeno pro potřeby fakulty<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''Q-Z''' || vyhrazeno pro potřeby administrátorů (globální, v rámci kateder, ...) - informace o využití těchto písmen je nutné uvést do této tabulky!<br />
|-<br />
| ?-? || <strike>vyhrazeno pro potřeby lokálního uživatele</strike><br />
|-<br />
| ?: || <strike>síťový adresář se sdílenými složkami (globalní, katedry, skupiny, ...)</strike><br />
|-<br />
| ?: || <strike>síťový adresář s aplikacemi, dokumentacemi, ...</strike><br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), ARK3 (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště (DFS)<br />
**servery AR1, ARK2<br />
**Replicated folders: <br />
***Home (osobní síťové adresáře)<br />
***Profile (roaming profiles pro účely učeben)<br />
***Share (obsahuje sdílené složky organizačních jednotek a jiné)<br />
***WWW (webhosting zaměstnanců)<br />
***WW2 (webhosting pro studenty)<br />
**Published to Namespace: FRK (Servers ARK1, ARK2)<br />
* Lokální datové úložiště Děčín (SMB 2.1)<br />
*server ARK3<br />
**Shared folders: Home, Profile, WWW, WWW2, Share<br />
**data jsou zde umístěna na základě pracovního/studijního zařazení<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2991Doména FJFI2014-02-05T10:28:48Z<p>Keroupav: /* Diskové služby */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ark1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ark2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| srk || Trojanova || terminal server Windows<br />
|-<br />
| vrk2 || Trojanova || virtualizační server<br />
|-<br />
| troja1 || Trója || DC, fileserver<br />
|-<br />
| drk || Děčín || DC, fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| kmk || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| print2 || VRK2 || printserver Trojanova<br />
|-<br />
| it || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| scp || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-P''' || vyhrazeno pro potřeby fakulty<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''Q-Z''' || vyhrazeno pro potřeby administrátorů (globální, v rámci kateder, ...) - informace o využití těchto písmen je nutné uvést do této tabulky!<br />
|-<br />
| ?-? || <strike>vyhrazeno pro potřeby lokálního uživatele</strike><br />
|-<br />
| ?: || <strike>síťový adresář se sdílenými složkami (globalní, katedry, skupiny, ...)</strike><br />
|-<br />
| ?: || <strike>síťový adresář s aplikacemi, dokumentacemi, ...</strike><br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), ARK3 (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště (DFS)<br />
**servery AR1, ARK2<br />
**Replicated folders: <br />
***Home (osobní síťové adresáře)<br />
***Profile (roaming profiles pro účely učeben)<br />
***Share (obsahuje sdílené složky organizačních jednotek a jiné)<br />
***WWW (webhosting zaměstnanců)<br />
***WW2 (webhosting pro studenty)<br />
**Published to Namespace: FRK (Servers ARK1, ARK2)<br />
* Lokální datové úložiště Děčín (SMB 2.1)<br />
*server ARK3<br />
**Shared folders: Home, Profile, WWW, WWW2, Share<br />
**data jsou zde umístěna na základě pracovního/studijního zařazení<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2990Doména FJFI2014-02-05T10:01:00Z<p>Keroupav: /* Diskové služby */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ark1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ark2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| srk || Trojanova || terminal server Windows<br />
|-<br />
| vrk2 || Trojanova || virtualizační server<br />
|-<br />
| troja1 || Trója || DC, fileserver<br />
|-<br />
| drk || Děčín || DC, fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| kmk || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| print2 || VRK2 || printserver Trojanova<br />
|-<br />
| it || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| scp || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-P''' || vyhrazeno pro potřeby fakulty<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''Q-Z''' || vyhrazeno pro potřeby administrátorů (globální, v rámci kateder, ...) - informace o využití těchto písmen je nutné uvést do této tabulky!<br />
|-<br />
| ?-? || <strike>vyhrazeno pro potřeby lokálního uživatele</strike><br />
|-<br />
| ?: || <strike>síťový adresář se sdílenými složkami (globalní, katedry, skupiny, ...)</strike><br />
|-<br />
| ?: || <strike>síťový adresář s aplikacemi, dokumentacemi, ...</strike><br />
|}<br />
<br />
Rozložení a organizace dat:<br />
*Fileservery ARK1 (Břehová), ARK2 (Trojanova), DRK (Děčín), Troja1 (Troja)<br />
*Centrální datové úložiště na DFS<br />
**Namespace FRK (Servers ARK1, ARK2)<br />
FIXME: využití DFS? využití replikace?<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2989Doména FJFI2014-02-05T09:56:27Z<p>Keroupav: /* Diskové služby */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ark1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ark2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| srk || Trojanova || terminal server Windows<br />
|-<br />
| vrk2 || Trojanova || virtualizační server<br />
|-<br />
| troja1 || Trója || DC, fileserver<br />
|-<br />
| drk || Děčín || DC, fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| kmk || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| print2 || VRK2 || printserver Trojanova<br />
|-<br />
| it || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| scp || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=Diskové služby=<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-P''' || vyhrazeno pro potřeby fakulty<br />
|-<br />
| M: || síťový domovský adresář<br />
|-<br />
| N: || sdílená složka v rámci katedry (organizační jednotky)<br />
|-<br />
| O: || veřejně přístupná složka napříč všemi částmi fakulty<br />
|-<br />
| P: || osobní webová prezentace (Public HTML)<br />
|-<br />
| S: || síťový adresář s instalačními zdroji (admins/rw, users/ro)<br />
|-<br />
| '''Q-Z''' || vyhrazeno pro potřeby administrátorů (globální, v rámci kateder, ...) - informace o využití těchto písmen je nutné uvést do této tabulky!<br />
|-<br />
| ?-? || <strike>vyhrazeno pro potřeby lokálního uživatele</strike><br />
|-<br />
| ?: || <strike>síťový adresář se sdílenými složkami (globalní, katedry, skupiny, ...)</strike><br />
|-<br />
| ?: || <strike>síťový adresář s aplikacemi, dokumentacemi, ...</strike><br />
|}<br />
<br />
FIXME: odkud budou exportovány sdílené disky (Břehovka x Trojanka x Trója)<br />
<br />
FIXME: využití DFS? využití replikace?<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2988Doména FJFI2014-02-05T09:51:26Z<p>Keroupav: /* Skupiny */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ark1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ark2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| srk || Trojanova || terminal server Windows<br />
|-<br />
| vrk2 || Trojanova || virtualizační server<br />
|-<br />
| troja1 || Trója || DC, fileserver<br />
|-<br />
| drk || Děčín || DC, fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| kmk || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| print2 || VRK2 || printserver Trojanova<br />
|-<br />
| it || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| scp || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| external || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=<strike>Diskové služby</strike>=<br />
<br />
tohle nikdo neaktualizoval...<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-P''' || vyhrazeno pro potřeby fakulty<br />
|-<br />
| M: || sdílená složka v rámci katedry<br />
|-<br />
| N: || síťový domovský adresář<br />
|-<br />
| O: || síťový adresář s aplikacemi (replikovaný mezi všemi fileservery?)<br />
|-<br />
| P: || veřejně přístupná složka (FIXME: práva rozdělená na adresáře po katedrách?)<br />
|-<br />
| '''Q-Z''' || vyhrazeno pro potřeby administrátorů (globální, v rámci kateder, ...) - informace o využití těchto písmen je nutné uvést do této tabulky!<br />
|-<br />
| ?-? || <strike>vyhrazeno pro potřeby lokálního uživatele</strike><br />
|-<br />
| ?: || <strike>síťový adresář se sdílenými složkami (globalní, katedry, skupiny, ...)</strike><br />
|-<br />
| ?: || <strike>síťový adresář s aplikacemi, dokumentacemi, ...</strike><br />
|}<br />
<br />
FIXME: odkud budou exportovány sdílené disky (Břehovka x Trojanka x Trója)<br />
<br />
FIXME: využití DFS? využití replikace?<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2987Doména FJFI2014-02-05T09:45:10Z<p>Keroupav: /* Servery */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ark1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ark2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| srk || Trojanova || terminal server Windows<br />
|-<br />
| vrk2 || Trojanova || virtualizační server<br />
|-<br />
| troja1 || Trója || DC, fileserver<br />
|-<br />
| drk || Děčín || DC, fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| kmk || VRK2 || antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| print2 || VRK2 || printserver Trojanova<br />
|-<br />
| it || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| scp || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1005 || skupina pro všechny učitele<br />
|-<br />
| troja || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| ext || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=<strike>Diskové služby</strike>=<br />
<br />
tohle nikdo neaktualizoval...<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-P''' || vyhrazeno pro potřeby fakulty<br />
|-<br />
| M: || sdílená složka v rámci katedry<br />
|-<br />
| N: || síťový domovský adresář<br />
|-<br />
| O: || síťový adresář s aplikacemi (replikovaný mezi všemi fileservery?)<br />
|-<br />
| P: || veřejně přístupná složka (FIXME: práva rozdělená na adresáře po katedrách?)<br />
|-<br />
| '''Q-Z''' || vyhrazeno pro potřeby administrátorů (globální, v rámci kateder, ...) - informace o využití těchto písmen je nutné uvést do této tabulky!<br />
|-<br />
| ?-? || <strike>vyhrazeno pro potřeby lokálního uživatele</strike><br />
|-<br />
| ?: || <strike>síťový adresář se sdílenými složkami (globalní, katedry, skupiny, ...)</strike><br />
|-<br />
| ?: || <strike>síťový adresář s aplikacemi, dokumentacemi, ...</strike><br />
|}<br />
<br />
FIXME: odkud budou exportovány sdílené disky (Břehovka x Trojanka x Trója)<br />
<br />
FIXME: využití DFS? využití replikace?<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2986Doména FJFI2014-02-05T09:44:34Z<p>Keroupav: /* Servery */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ark1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ark2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| srk || Trojanova || terminal server Windows<br />
|-<br />
| vrk2 || Trojanova || virtualizační server<br />
|-<br />
| troja1 || Trója || DC, fileserver<br />
|-<br />
| drk || Děčín || DC, fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| kmk || VRK2 || Antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| print2 || VRK2 || Printserver Trojanova<br />
|-<br />
| it || VRK2 || IIS pro účely infrastruktury<br />
|-<br />
| scp || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1005 || skupina pro všechny učitele<br />
|-<br />
| troja || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| ext || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=<strike>Diskové služby</strike>=<br />
<br />
tohle nikdo neaktualizoval...<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-P''' || vyhrazeno pro potřeby fakulty<br />
|-<br />
| M: || sdílená složka v rámci katedry<br />
|-<br />
| N: || síťový domovský adresář<br />
|-<br />
| O: || síťový adresář s aplikacemi (replikovaný mezi všemi fileservery?)<br />
|-<br />
| P: || veřejně přístupná složka (FIXME: práva rozdělená na adresáře po katedrách?)<br />
|-<br />
| '''Q-Z''' || vyhrazeno pro potřeby administrátorů (globální, v rámci kateder, ...) - informace o využití těchto písmen je nutné uvést do této tabulky!<br />
|-<br />
| ?-? || <strike>vyhrazeno pro potřeby lokálního uživatele</strike><br />
|-<br />
| ?: || <strike>síťový adresář se sdílenými složkami (globalní, katedry, skupiny, ...)</strike><br />
|-<br />
| ?: || <strike>síťový adresář s aplikacemi, dokumentacemi, ...</strike><br />
|}<br />
<br />
FIXME: odkud budou exportovány sdílené disky (Břehovka x Trojanka x Trója)<br />
<br />
FIXME: využití DFS? využití replikace?<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2985Doména FJFI2014-02-05T09:43:50Z<p>Keroupav: /* Servery */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ark1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ark2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| srk || Trojanova || terminal server Windows<br />
|-<br />
| vrk2 || Trojanova || virtualizační server<br />
|-<br />
| troja1 || Trója || DC, fileserver<br />
|-<br />
| drk || Děčín || DC, fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| kmk || VRK2 || Antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| print2 || VRK2 || Printserver Trojanova<br />
|-<br />
| it || VRK2 || IIS pro interní účely<br />
|-<br />
| scp || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || VRK2 || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1005 || skupina pro všechny učitele<br />
|-<br />
| troja || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| ext || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=<strike>Diskové služby</strike>=<br />
<br />
tohle nikdo neaktualizoval...<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-P''' || vyhrazeno pro potřeby fakulty<br />
|-<br />
| M: || sdílená složka v rámci katedry<br />
|-<br />
| N: || síťový domovský adresář<br />
|-<br />
| O: || síťový adresář s aplikacemi (replikovaný mezi všemi fileservery?)<br />
|-<br />
| P: || veřejně přístupná složka (FIXME: práva rozdělená na adresáře po katedrách?)<br />
|-<br />
| '''Q-Z''' || vyhrazeno pro potřeby administrátorů (globální, v rámci kateder, ...) - informace o využití těchto písmen je nutné uvést do této tabulky!<br />
|-<br />
| ?-? || <strike>vyhrazeno pro potřeby lokálního uživatele</strike><br />
|-<br />
| ?: || <strike>síťový adresář se sdílenými složkami (globalní, katedry, skupiny, ...)</strike><br />
|-<br />
| ?: || <strike>síťový adresář s aplikacemi, dokumentacemi, ...</strike><br />
|}<br />
<br />
FIXME: odkud budou exportovány sdílené disky (Břehovka x Trojanka x Trója)<br />
<br />
FIXME: využití DFS? využití replikace?<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2984Doména FJFI2014-02-05T09:43:12Z<p>Keroupav: /* Servery */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ark1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ark2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| srk || Trojanova || terminal server Windows<br />
|-<br />
| vrk2 || Trojanova || virtualizační server<br />
|-<br />
| troja1 || Trója || DC, fileserver<br />
|-<br />
| drk || Děčín || DC, fileserver<br />
|}<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Virtuální servery<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| kmk || VRK2 || Antivir (NOD32) aktualizační server, remote management<br />
|-<br />
| print2 || VRK2 || Printserver Trojanova<br />
|-<br />
| it || VRK2 || IIS pro interní účely<br />
|-<br />
| scp || VRK2 || SSH remote access pro namespace FRK<br />
|-<br />
| Witness || Exchange cluster witness<br />
|}<br />
<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1005 || skupina pro všechny učitele<br />
|-<br />
| troja || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| ext || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=<strike>Diskové služby</strike>=<br />
<br />
tohle nikdo neaktualizoval...<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-P''' || vyhrazeno pro potřeby fakulty<br />
|-<br />
| M: || sdílená složka v rámci katedry<br />
|-<br />
| N: || síťový domovský adresář<br />
|-<br />
| O: || síťový adresář s aplikacemi (replikovaný mezi všemi fileservery?)<br />
|-<br />
| P: || veřejně přístupná složka (FIXME: práva rozdělená na adresáře po katedrách?)<br />
|-<br />
| '''Q-Z''' || vyhrazeno pro potřeby administrátorů (globální, v rámci kateder, ...) - informace o využití těchto písmen je nutné uvést do této tabulky!<br />
|-<br />
| ?-? || <strike>vyhrazeno pro potřeby lokálního uživatele</strike><br />
|-<br />
| ?: || <strike>síťový adresář se sdílenými složkami (globalní, katedry, skupiny, ...)</strike><br />
|-<br />
| ?: || <strike>síťový adresář s aplikacemi, dokumentacemi, ...</strike><br />
|}<br />
<br />
FIXME: odkud budou exportovány sdílené disky (Břehovka x Trojanka x Trója)<br />
<br />
FIXME: využití DFS? využití replikace?<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2983Doména FJFI2014-02-05T09:33:56Z<p>Keroupav: /* Sites */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ark1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ark2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| srk || Trojanova || terminal server Windows<br />
|-<br />
| vrk2 || Trojanova || virtualizační server<br />
|-<br />
| troja1 || Trója || DC, fileserver<br />
|-<br />
| drk || Děčín || DC, fileserver<br />
|}<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC ARK1, ARK2)<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1005 || skupina pro všechny učitele<br />
|-<br />
| troja || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| ext || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=<strike>Diskové služby</strike>=<br />
<br />
tohle nikdo neaktualizoval...<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-P''' || vyhrazeno pro potřeby fakulty<br />
|-<br />
| M: || sdílená složka v rámci katedry<br />
|-<br />
| N: || síťový domovský adresář<br />
|-<br />
| O: || síťový adresář s aplikacemi (replikovaný mezi všemi fileservery?)<br />
|-<br />
| P: || veřejně přístupná složka (FIXME: práva rozdělená na adresáře po katedrách?)<br />
|-<br />
| '''Q-Z''' || vyhrazeno pro potřeby administrátorů (globální, v rámci kateder, ...) - informace o využití těchto písmen je nutné uvést do této tabulky!<br />
|-<br />
| ?-? || <strike>vyhrazeno pro potřeby lokálního uživatele</strike><br />
|-<br />
| ?: || <strike>síťový adresář se sdílenými složkami (globalní, katedry, skupiny, ...)</strike><br />
|-<br />
| ?: || <strike>síťový adresář s aplikacemi, dokumentacemi, ...</strike><br />
|}<br />
<br />
FIXME: odkud budou exportovány sdílené disky (Břehovka x Trojanka x Trója)<br />
<br />
FIXME: využití DFS? využití replikace?<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Dom%C3%A9na_FJFI&diff=2982Doména FJFI2014-02-05T09:32:39Z<p>Keroupav: /* Servery */</p>
<hr />
<div>{{Servers}}<br />
<br />
=Servery=<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Doménové servery'''<br />
|- style="background: LightGrey;"<br />
! jméno (aliasy) !! umístění !! funkce / poznámka<br />
|-<br />
| ark1 || Břehová || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk1 || Břehová || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk1 || Břehová || Exchange Edge, ForeFront<br />
|-<br />
| ark2 || Trojanova || DC, LDAP, fileserver (Home, Shareds), uživatelský IIS<br />
|-<br />
| mrk2 || Trojanova || Exchange, Hub-Transport, Client-Access, Mailbox<br />
|-<br />
| brk2 || Trojanova || Exchange Edge, ForeFront<br />
|-<br />
| srk || Trojanova || terminal server Windows<br />
|-<br />
| vrk2 || Trojanova || virtualizační server<br />
|-<br />
| troja1 || Trója || DC, fileserver<br />
|-<br />
| drk || Děčín || DC, fileserver<br />
|}<br />
<br />
Kromě těchto doménových jmen bude na každý server směřovat několik aliasů pro zjednodušení a zobecnění konfigurace dalších služeb (Kerberos, LDAP, ...). Konfigurace ostatních strojů tak bude nezávislá na konkrétním jméně DC a v případě vypadku/zrušení některého DC se pouze alias nasměruje na některý funkční DC.<br />
<br />
* Servery - aliasy pro doménové kontrolery (hlavní wc), wc1, wc2, ...<br />
* Kerberos - aliasy krb (musí na něm běžet krb-admin), krb1, krb2, krb3, ...<br />
* LDAP - aliasy ldap (alias na vždy dostupný LDAP server), ldap1, ldap2, ldap3, ...<br />
* NTP - alias ntp (nutné zajistit, aby zde vždy běžel synchronizovaný NTP server)<br />
* Webmail - alias webmail, mail<br />
<br />
=Sites=<br />
V doméně jsou definovany nasledující sites:<br />
<br />
FJFI-Centrum (obsahuje DC MRK1, MRK2, FRK1, TRK, KMK.<br />
<br />
FJFI-Troja (nalezi do ni DC Troja1)<br />
<br />
FJFI-Decin (nalezi do ni DC DRK)<br />
<br />
<br />
Replikace probihaji v hvezdicove topologii.<br />
<br />
1. Inter-site-transport: type=IP, cn=Centrum-to-Troja, repllinterval=15 (min.), siteList= Centrum, Troja)<br />
<br />
2. Inter-site-transport: type=IP, cn=Centrum-to-Decin, repllinterval=15 (min.), siteList= Centrum, Decin)<br />
<br />
<br />
Server DRK (Decin) je pripojen pomoci VPN (IPvSec-RRAS) prostrednictvím serveru MRK2<br />
<br />
Parametry pripojeni:<br />
<br />
- IPv4 RAS<br />
<br />
- Windows Authentication<br />
<br />
- WAN Miniport FJFI-Trojanka (PPTP)<br />
<br />
=Firewall=<br />
<br />
Obecné nastavení firewallu lze nalézt v dokumentu [http://social.technet.microsoft.com/wiki/contents/articles/active-directory-replication-over-firewalls.aspx Active Directory Replication Over Firewalls]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Firewall'''<br />
|- style="background: LightGrey;"<br />
! protokol !! port !! rozsah<br />
|-<br />
| echo || ICMP || 147.32.0.0/16 (resp. rozsah FJFI), pro servery s veřejnými službami by bylo vhodné 0.0.0.0/0<br />
|-<br />
| SMTP || 25 TCP || 147.32.5.45, 147.32.9.3 (mailgw) - pouze pro exchange servery<br />
|-<br />
| DNS || 53 TCP+UDP || 147.32.0.0/16, 2001:718:2::/48 (tam kde je potřeba z důvodu provozu rekurzivního DNS)<br />
|-<br />
| LDAP || 389 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| LDAPs || 636 TCP || 0.0.0.0/0 (stačí na strojích s důvěryhodnými certifikáty)<br />
|-<br />
| LDAP GC || 3268 TCP || ?.?.?.? (global catalog), minimálně pro FJFI (ČVUT)<br />
|-<br />
| Kerberos || 88 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| Kerberos kpasswd || 464 TCP+UDP || 0.0.0.0/0<br />
|-<br />
| <strike>Kerberos Admin</strike> || <strike>749 TCP</strike> || <strike>0.0.0.0/0</strike><br />
|-<br />
| NTP Time Service || 123 TCP+UDP || 0.0.0.0/0? minimálně pro FJFI (ČVUT)<br />
|-<br />
| SNMP || 161 TCP+UDP || pro management stroje (nms.fjfi.cvut.cz)<br />
|-<br />
| Samba || 137,138,139,445 TCP+UDP || minimálně rozsah FJFI (ČVUT?)<br />
|-<br />
| RPC || 135 TCP || rozsah FJFI(?) (ČVUT?) - nutné pro připojení počítače do domény<br />
|-<br />
| RPC(?) || 2235 TCP || mezi doménovými kontrolery(?) - nutné WMI(?)<br />
|}<br />
<br />
Další informace lze nalézt v KB [http://support.microsoft.com/kb/555381 555381], [http://support.microsoft.com/kb/179442 179442], [http://support.microsoft.com/kb/832017 832017]<br />
<br />
Aktuální konfiguraci firewallu si lze zjistit následujícími příkazy:<br />
<br />
# z registrů<br />
reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /s<br />
# nebo přes netsh (bohužel nefunguje dumpnutí konfigurace...)<br />
netsh firewall show config verbose = ENABLE<br />
<br />
=Konfigurace DNS=<br />
<br />
Primární DNS server pro doménu FJFI běží stále na ISC Bind. Je to jak z bezpečnostních důvodů (oddělení služeb/uživatelů Windows Serverů od správy DNS) tak i s ohledem na jednodušší rozšiřitelnost (v roce 2008 bude pravděpodobně zprovozněn DNSSEC). Pro potřeby doménových kontrolerů je potřeba zavést některé specielní záznamy. Detaily lze nalézt v dokumentu [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_ubub.mspx?mfr=true Configuring Non-Windows 2000 DNS Servers to Support Active Directory] nebo také v [http://www.oreilly.com/catalog/dnsbindckbk/ DNS & Bind Cookbook].<br />
<br />
Microsoft si bohužel pro DDNS update vytvořil vlastní zabezpečený protokol GSS-TSIG, který je podporován až v ISC BIND 9.5 (jejich DNS server totiž původně vychází z ISC BIND 4, ale neimplementovaly RFC standardy pro zabězpečení). Aby fungovala Kerberizovaná komunikace s Windows Servery, je navíc potřeba mít v ISC BINDu zakompilovanou podporu "spnego" (upozornění: RedHat nyní standardně kompiluje binárky BINDu 9.6 s volbou <tt>--disable-isc-spnego</tt> takže bez rekompilace nelze použít standardní rpm balíčky). V konfiguraci <tt>named.conf</tt> je potřeba přidat:<br />
<br />
options {<br />
...<br />
tkey-gssapi-credential "DNS/ns.fjfi.cvut.cz";<br />
# tkey-domain "FJFI.CVUT.CZ";<br />
...<br />
}<br />
<br />
...<br />
zone "fjfi.cvut.cz" {<br />
type master;<br />
file "data/fjfi.cvut.cz.zone";<br />
check-names ignore;<br />
...<br />
update-policy {<br />
// grant FJFI.CVUT.CZ ms-self fjfi.cvut.cz. ANY<br />
// grant FJFI.CVUT.CZ ms-subdomain fjfi.cvut.cz. ANY<br />
// grant DCX$@FJFI.CVUT.CZ self fjfi.cvut.cz. ANY<br />
grant DCX$@FJFI.CVUT.CZ name dcX.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _tcp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _udp.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _msdcs.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain _sites.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain DomainDnsZones.fjfi.cvut.cz. ANY;<br />
grant DCX$@FJFI.CVUT.CZ subdomain ForestDnsZones.fjfi.cvut.cz. ANY;<br />
};<br />
};<br />
...<br />
<br />
Dále je potřeba vygenerovat pro DNS server příslušný keytab, ktery bude sloužit k zabězpečení DDNS mezi ISC BIND a Windows DNS klientem právě pomocí GSS-TSIG. Pokud se bind spouští v chrootu, musí být správný <tt>krb5.conf</tt> a <tt>named.keytab</tt> v konfiguračním adresáři <tt>/var/named/chroot/etc</tt>. K vygenerování keytabu na windows lze použít příkaz (nezapomenout, že uvedené doménové jméno musí být na linuxovém stroji uvedeno v <tt>/etc/hosts</tt>, jinak nefunguje kerberos autentizace)<br />
<br />
# smazání/vytvoření computer accountu NS-SVC-DNS$ v AD<br />
dsrm -noprompt "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=NS-SVC-DNS,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření keytabu (nutné použít novější verzi ktpass.exe, která se pro w2k3 dost špatně hledá)<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser FJFI\NS-SVC-DNS$ -pass +rndPass +Answer -out named.keytab<br />
<br />
Kerberos na unix systémech je case-sensitive pro "uživatelský" (service) principal, tj. je '''nutné''' použít přesný tvar, který byl zadán při generování principalu DNS/ns.fjfi.cvut.cz@FJFI.CVUT.CZ. Odpovídající text musí být vyplněn i v <tt>named.conf</tt> ve položkách <tt>tkey-gssapi-credential</tt> a <tt>tkey-domain</tt>. Pokud nejsou tyto hodnoty správně vyplněny, pak daemon buď vůbec nenastartuje (s nepříliš srozumitelnou chybovou hláškou) a nebo není schopen ověřit kerberizované spojení.<br />
<br />
Windows DNS klient je standardně nakonfigurován tak, že se nejprve pokouší o DDNS update bez zabezpečení a teprve v případě chyby zkusí GSS-TSIG zabezpečení. Toto chování se dá upravit [http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/cnet/cncf_imp_eqjg.mspx nastavením registrů].<br />
<br />
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v UpdateSecurityLevel /t REG_DWORD /d 0x100 /f<br />
<br />
Na Windows 2008 R2 je navíc potřeba aplikovat následující [http://support.microsoft.com/kb/977158 hotfix], protože jinak registrace záznamů pomocí DDNS do ISC Bind skončí chybou ([http://social.technet.microsoft.com/Forums/en/winserverNIS/thread/019c614c-be00-4624-ac86-ccbe8da906fb detaily]).<br />
<br />
<strike><br />
Pro naše potřeby bylo nejvhodnější přídat doménovým kontrolerům práva na správu specielních záznamů, ale nepovolit jim změny přímo v doméně fjfi.cvut.cz. Uvedené nastavení je dostatečné pro bezproblémový provoz Windows Domény bez nutnosti manuálnich zásahů do DNS v případě rekonfigurace domény (např. přidání/odebrání/přejmenování domain kontroleru). Všechny(?) doménové kontrolery mohou provádět změny v následujících zónách:<br />
<br />
_tcp.fjfi.cvut.cz<br />
_udp.fjfi.cvut.cz<br />
_msdcs.fjfi.cvut.cz<br />
_sites.fjfi.cvut.cz<br />
DomainDnsZones.fjfi.cvut.cz<br />
ForestDnsZones.fjfi.cvut.cz<br />
<br />
</strike><br />
<br />
Mám takový ''pocit'', že standardně se tímto způsobem neupdatují záznamy pro různé AD site. Ty jsou vytvořeny/updatovány jen v okamžiku jejich konfigurace. Pokud se tedy informace o AD site nevytvoří musí se daná AD site zrušit a vytvořit znova (což není moc přijatelné řešení) nebo použít skript <tt>DnsAD.py</tt>, který vytvoří/smaže všechny potřebné záznamy podle aktuálního stavu v AD.<br />
<br />
Pokud je potřeba znovu provést DDNS update těchto specielních záznamů na primárním DNS serveru, je potřeba provést následující příkazy:<br />
<br />
net stop netlogon<br />
#ipconfig /flushdns<br />
#[restart DNS server]<br />
net start netlogon<br />
#ipconfig /registerdns<br />
#dcdiag/netdig # to check the server.<br />
<br />
# pro test DDNS by mělo stačit zadat<br />
dcdiag /test:RegisterInDNS /DnsDomain:dc.fjfi.cvut.cz<br />
<br />
# pro testy a opravu by mohl posloužit příkaz<br />
# NOTE: tento příkaz není podporován na nových w2k8<br />
netdiag /test:dns /fix<br />
<br />
=NTP - synchronizace času=<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem. Z tohoto důvodu je nutné zajistit, aby se Windows Servery synchronizovali proti nějakému spolehlivému zdroji času a navíc poskytovali NTP službu pro klienty. Aktuální NTP server musí být dostupný na adrese ntp.fjfi.cvut.cz. Ve standardní konfiguraci w2k3 serveru je tolerance v nastavení času mezi serverem a klientem 5 minut. Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale i ověřování služeb. Přesný čas na serverech (i klientech) je tedy kritický a je tedy nutné zajistit jeho monitorování (TODO).<br />
<br />
=Rozšíření schemat Active Directory=<br />
<br />
Aby mohli být v Active Directory uloženy všechny informace pro každého uživatele je potřeba rozšířit schémata o potřebné třídy a atributy. Většinu operací se schématy není možné vrátit zpět a proto je potřeba se nad tím pořadně zamyslet. Jedinnou možností je v podstatě přeinstalovaní celé domény (možná by to mohlo jit z ntbackupu???).<br />
<br />
Active Directory umožňuje přidavat vlastní atributy, ale není možné je v budoucnu odstranit ani není možné měnit některé jejich parametry (např. datový typ). Také lze přidávat vlastní třídy všech typů, ale opět se jich už nikdy nezbavíme. Je také možné přidávat atributy do již existujících tříd, opět neexistuje možnost jejich odstranění.<br />
<br />
Nejrozumnější způsob jak přidat vlastní atributy k existujícím objektům je vytvoření vlastní auxiliary class s požadovanými položkami. Pokud je totiž doména i forest nastaven v nativním windows 2003 módu, potom lze používat "dynamic linked auxiliary classes". To znamené, ze k libovolnému objektu lze tuto třídu přidat, ale lze ji také v budoucnu odebrat, pokud by nastaly nějaké problémy s kompatibilitou.<br />
<br />
Všechny názvy přidaných atributů a tříd musí mít takový nazev, aby nebyl v konfliktu s existujícími (a to i v budoucnu). Z toho důvodu budou mít jedinečný přefix (ctu resp. fnspe resp. amavis). Kazdý objekt navíc můsí mit jedinečný identifikátor [[OID]] z rozsahu přileného VIC ČVUT.<br />
<br />
V současnosti je pořeba do Active Directory potřeba přidat následující schemata:<br />
*[[schema fnspeAccount|fnspeAccount]] - uživatelské informace (osobní číslo, Eduroam účet, zpracování mailů, ...) - FIXME: toto není finální verze!, ale pro '''testování''' synchronizací je plně dostačující<br />
*[[schema amavisAccount|amavisAccount]] - nastavení filtrování spamů/virů/... na mailgw<br />
<br />
==Property Sets GUIDs==<br />
<br />
Slouží k definování standardních přístupových práv na skupiny atributů. Ve schématu tomu odpovídá atribut <tt>attributeSecurityGUID</tt>.<br />
Více infromací [http://www.identitychaos.com/2006/10/miis-solutions-designing-effective.html zde], [http://www.lacoude.com/docs/public/Attributes.aspx zde], [http://msdn2.microsoft.com/en-us/library/ms683990.aspx zde] a [http://technet2.microsoft.com/windowsserver/en/library/2f55608e-7b29-4e42-9a32-410e1b0e40251033.mspx zde]<br />
<br />
General-Information: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf<br />
Public-Information: e48d0154-bcf8-11d1-8702-00c04fb96050<br />
Private-Information: 91e647de-d96f-4b70-9557-d63ff4f3ccd8<br />
Personal-Information: 77b5b886-944a-11d1-aebd-0000f80367c1<br />
Email-Information: e45795b2-9455-11d1-aebd-0000f80367c1<br />
Web-Information: e45795b3-9455-11d1-aebd-0000f80367c1<br />
Membership: bc0ac240-79a9-11d0-9020-00c04fc2d4cf<br />
User-Logon: 5f202010-79a5-11d0-9020-00c04fc2d4cf<br />
User-Account-Restrictions: 4c164200-20c0-11d0-a768-00aa006e0529<br />
Exchange-Information: ???<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Standardní práva pro [http://msdn2.microsoft.com/en-us/library/ms683990.aspx Property Set]'''<br />
|- style="background: LightGrey;"<br />
! Prop.Set !! SELF !! AUTH<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684366.aspx General] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684396.aspx Public] || || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684395.aspx Private] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684394.aspx Personal] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684362.aspx Email] || rw ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684418.aspx Web] || rw || r<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684372.aspx Membership] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684415.aspx User-Logon] || ||<br />
|-<br />
| [http://msdn2.microsoft.com/en-us/library/ms684412.aspx User-Account] || ||<br />
|-<br />
| [http://technet.microsoft.com/en-us/library/bb310768%28EXCHG.80%29.aspx Exchange] || ||<br />
|}<br />
<br />
Bohužel všechny objekty dědí navíc read práva na všechny atributy od kořene domény přes uživatele Everyone - opravdu netuším, co tímhle nastavením v Microsoftu sledují...<br />
<br />
Exchange-Information property set je přidán po instalaci Exchange 2007 resp. Exchange 2010. Malinko nepříjemné je to, že do tohoto property setu jsou přesunuty některé atributy, které dříve byly v Public resp. Personal property setu a tím pádem "veřejně" přístupné pro čtení. Aplikace které atributy přesunuté do Exchange-Information property setu používají k nim tedy mohou ztratit přístup a je potřeba příslušným způsobem upravit přístupová práva.<br />
<br />
Pro naše učely bude nejvhodnějsí přidat všechny atributy ze třídy amavisAccount do Public-Information property setu (logicky by asi patřili spíš mezi Email-Information, ale proxyAddresses a targetAddress jsou také součástí toho Public setu). Atributy z třídy fnspeAccount vesměs do Public-Information property setu, protože ho uživatel nemá právo přímo modifikovat (možná by bylo vhodnější pro některé atributy použít property set Private-Information, ale ten je až standardní součástí Windows 2008 serveru - backport tohoto property setu bych raději neriskoval s ohledem na nejasný upgrade domény). Je také dobré mít na paměti, že některé aplikace mohou (při instalaci) přesunout atributy do jeného přoperty setu, na který nebudou nastavany správně "naše" přístupová práva (např. Exchange 2007 přesouvá svoje atřibuty z Public-Information do Exchange-Information property setu)<br />
<br />
Některé atributy fnspeAccount nejen, že nesmí být možné měnit, ale ani je číst. Týká se to hlavně hesel (fnspeEduroamPassword, fnspeWifiPassword). Pro ty je asi nejvhodnější použít vlastnosti LDAP schematu "Confidentiality Bit" (více [http://support.microsoft.com/kb/922836 zde], [http://blogs.dirteam.com/blogs/tomek/archive/2005/11/21/confidential-bit.aspx zde]. Takto označený atribut nemají právo číst žádní uživatelé s vyjímkou administrátorů.<br />
<br />
=Uživatelské účty=<br />
<br />
*veškeré organizační jednotky s běžnými uživatelskými účty budou pod ou=People,dc=fjfi,dc=cvut,dc=cz - '''nesmí''' zde být vytvářeni uživatelé s nějakou formou admin práv (kvůli zabezpečení)<br />
*ou=Auto - automaticky synchronizované učty proti stavu v Usermapu (vytváření i rušení)<br />
*ou=Trash - automaticky rušené účty - sem budou přesunuty účty z ou=Auto a budou zde čekat na potvrzení zrušení (tyto účty budou zablokované)<br />
*ou="Department"? - manuálně spravované učty (převážně zaměstnanci)<br />
**stačila by jedna organizační jednotka pro zaměstnance, ale z důvodu přehlednosti je lepší mít zvlášť "každou" katedru<br />
**příslušnost ke katedře je relace 1:N a bude dána zařazením uživatele do odpovídajících skupin (zařazení do nějaké OU "domovské" katedry je nepovinné/nezávislé)<br />
**jména budou obsahovat zkratky kateder (Dekanat, KDAIZ, KF, KFE, KIPL, KJ, KJCH, KJR, KM, KMAT, KSE, Tereza)<br />
*ou=Guest - povinná doba expirace<br />
*zvláštní postavení bude mít skupina ou=Specials pro učty se specálními přístupovými právy - ta musí být přímo pod dc=fjfi,dc=cvut,dc=cz (z hlediska bezpečnosti)<br />
<br />
==Práva v Active Directory==<br />
<br />
U uživatelů (ou=People,dc=fjfi,dc=cvut,dc=cz) zachovat standardní nastavení s následujícími vyjímkami:<br />
<br />
*nesmí mít přístup k atributům ve třídě fnspeAccount, amavisAccount u ostatních uživatelů<br />
*nesmí mít právo read/search ani vlastní atribut fnspeEduroamPassword, fnspeWifiPassword<br />
*vlastník má právo nastavovat fnspeEduroamPassword, fnspeWifiPassword (tohle není nezbytně nutné)<br />
*vlastník si může libovolně měnit atributy amavisAccount (tohle není nezbytně nutné)<br />
*ani vlastník nemá právo nastavovat žádné další ctu*, fnspe* atributy<br />
*shrnuto - jestli je to jednodušší pro realizaci, tak bych (zatím) první bod rozšířil i na samotného vlastníka<br />
<br />
Nastavit práva specielním účtům podle níže uvedené tabulky. Uvedeno je jen kam a na co má mít daný účet přístup - to znamená, že k ostatním položkám '''nesmí''' mít přístup.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Speciální účty - ou=Specials,dc=fjfi,dc=cvut,dc=cz'''<br />
|- style="background: LightGrey;"<br />
! jméno !! využití a práva<br />
|-<br />
| proxy_posix || pro ou=People - read/search pro posixAccount atributy; omezení na IP rozsah FJFI (ČVUT?)<br />
|-<br />
| proxy_wifi || pro ou=People - read/search pro sAMAccountName, fnspeEduroam*, fnspeWifi*; omezení na IP Radius serverů a NMS<br />
|-<br />
| proxy_mailgw || pro ou=People - read/search pro proxyAddresses, targetAddress, amavis*; omezení na IP mailgw serverů a NMS<br />
|-<br />
| proxy_nms || pro ou=People - read/search/write konfigurace účtu fnspe*, amavis*, targetAddress, read/search proxyAddress, write(reset) unicodePwd; omezení na IP NMS <hr/> write práva na "Reset Password" pro objekty User, inetOrgPerson; write práva na atribut pwdLastSet pro objekty User, inetOrgPerson (atribut je součástí property setu User-Account-Restrictions); write práva na Public-Information property set pro objekty User, inetOrgPerson;<br />
|-<br />
| proxy_usermap || pro ou=People - read/search mail, read/search ctuPersonaId; omezení na IP ČVUT(?)<br />
|-<br />
| proxy_host<br/>proxy_service || účet pro Kerberos host/service ticket host/hostname@FJFI.CVUT.CZ resp. service/hostname@FJFI.CVUT.CZ, více informací na [[#Host/Service Kerberos Key]] a v [http://support.microsoft.com/kb/324144 KB 324144]<br />
|-<br />
| proxy_bind || testovací uživatelský účet monitoring LDAP, nulová práva krom autentizovaného LDAP bind <strike>použít jako Eduroam testovací účet? (nebo raději proxy_wifi?) - nesmysl, na to potřebuji uživatele z ou=People</strike><br />
|-<br />
| <strike>test003</strike> || <strike>testovací uživatelský účet pro Eduroam pro CESNETí monitoring, nulová práva, nutné vyplnit Eduroam heslo (promyslet - založit tento účet jen na RADIUS serveru?)</strike><br />
|}<br />
<br />
==Typy účtů==<br />
<br />
*konto (objectClass=user)<br />
*kontakt (objectClass=contact)<br />
*unix (objectClass=posixAccount)<br />
*<strike>eduroam (objectClass=fnspeEduroamAccount)</strike><br />
*<strike>fnspeAccount (objectClass=fnspeAccount)</strike><br />
*fjfi konto (objectClass=[[schema fnspeAccount|fnspeAccount]])<br />
*amavis (objectClass=[[schema amavisAccount|amavisAccount]])<br />
<br />
Mohou existovat následující kombinace (v závorce volitelné položky)<br />
<br />
*konto+unix+fnspeAccount[+amavisAccount]] - klasické uživatelské konto<br />
*<strike>kontakt+[fnspeAccount+amavisAccount] - mail kontakt nebo samotné eduroam konto</strike><br />
<br />
<strike>FIXME: promyslet využití jedné nebo více tříd pro informace v AD (fnspeAccount x fnspeAccount+fnspeEduroamAccount+...) - zatím použít jednu třídu fnspeAccount pro vše + amavisAccount</strike><br />
<br />
<strike>FIXME: funkce pro konverzi konto<->kontakt? funkce pro přidání/odebrání učtu např. eduroam ke kontaktu, fnspeAccount ke kontu, ... - tohle zatim neřešit</strike><br />
<br />
==Synchronizace s Userermapem==<br />
<br />
Usermap slouží jako primární zdroj pro automatické zakládání a rušení účtů. Každému studentovi/zaměstnanci/spolupracovníkovi FJFI se automaticky vytvoří účet v ou=People se standardními přístupovými právy. Další umístění závisí na personálním zařazení konkrétní osoby. Náleží k určité organizační jednotce (katedra, děkanát...), je zaměstnanec a nepatří k žádné organizační jednotce (Auto_emp) nebo je student a nepatří k žádné organizační jednotce (Auto). Umístění je průběžně editováno v souladu s údaji v Usermapu. Pokud bude uživatel potřebovat nějaké individuální nastavení účtu v AD, může být přesunut do příslušné organizační jednotky (podsložka "Manual", která nepodléhá automatické správě). Účty zrušené v Usermapu budou s odstupem 30 dnů přesunuty do ou=Trash a zablokovány. Pokud se změní stav v Usermapu na "zombie" (oUser.status - viz. dále) nebo učet z Usermapu úplně zmizí, potom se lokální stav nastaví na "kill" a uživatel je o chystaném zrušení jeho účtu informován emailem. V tomto stavu účet setrvá konfigurovatelnou dobu 30 dnů, kdy si uživatel bude moci stáhnout svá data nebo si zařídit přesunutí do organizační jednotky ou=Outliving nebo jiné, kde nebude jeho účet automaticky rušen. Za normálních okolností přejde účet i na FJFI do stavu "zombie". Takový účet bude zablokován a přesunut do ou=Trash. Po 14 měsících od přesunu do ou=Trash budou účty automaticky odstraněny včetně uživatelských dat (domovské adresáře, maily, databáze, ...) Stav je uchováván v atributech fnspeStatus, fnspeStatusTimestamp.<br />
<br />
===životní cyklus uživatelského účtu===<br />
<br />
* vzniká na základě synchronizace učtů s Usermapem nebo ručně,<br />
** staus je nastaven na hodnotu "init"<br />
** aktivací účtu uživatelem s ověřením proti účtu v Usermapu se status mění na "active"<br />
*** všechny důležité informace obdrží uživatel v emailové zprávě po aktivaci<br />
** je automaticky synchronizován dle informaci v Usermapu (spojeno přes uživatelské osobní číslo)<br />
* je automaticky zrušen, pokud zmizí z Usermapu nebo oUser.status bude "zombie"<br />
** lokální status je nastaven na "kill" a poznamená se timestamp<br />
** uživatel obdrží info chystaném zablokování jeho účtu emailem<br />
** po 30 dnech je účet přesunut do ou=Trash a zablokován, status nastaven na "zombie" a poznamená se timestamp<br />
* účty v ou=Trash jsou automaticky označeny na zrušení po uplynutí 14 měsíců<br />
** účet bude po uplynutí 14 měsíční lhůty zapsán do souboru accounts_to_remove.xml<br />
** výmaz účtů bude proveden ručně pro účty, zapsané v souboru accounts_to_remove.xml<br />
<br />
===Atributy===<br />
<br />
* z důvodů lepší kompatibility a podpory FJFI specifických atributů je potřeba do objectClass přidat následující auxiliary classes: inetOrgPerson, posixAccount, fnspeAccount, amavisAccount - poslední dvě (tři) jen pokud jsou aktuálně potřeba (amavisAccount bude potřeba až když uživatel provede vlastní konfiguraci spamového filtru)<br />
* vytvořit speciální účet v AD s minimálními právy a možnosti nastavovat atributy z fnspeAccount a amavisAccount<br />
* uživatel nesmí mít právo měnit (některé) svoje atributy (např. ctuPersonalId, fnspeEduroamDisabled, ...)<br />
* objekt oUser se odkazuje na objekt ze skriptu pro import dat z Usermapu viz. [https://nms.fjfi.cvut.cz/repos/umapsync/trunk/]<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Atributy v AD'''<br />
|- style="background: LightGrey;"<br />
! atribut !! typ !! popis<br />
|-<br />
| '''Uživatelské jméno''' || ||<br />
|-<br />
| sAMAccountName || C || uživatelské jméno - pro studenty Usermap username, pro zaměstnance příjmení(?); pro případ konfliktu mít algoritmus pro automatické řešení - musí brát v úvahu již existující jména, mailové adresy (musí existovat možnost vytvořit adresu "sAMAccountName"@fjfi.cvut.cz), <strike>jména v Usermapu?,</strike> jména za seznamu rezervovaných jmen (z externího souboru); uživatelská jména bez návaznosti na Usermap musí být kratší než 8 znaků nebo musí mít nějaký prefix (poslední bod se týká pouze naší vnitřní politiky a ne kontrol potřebných provádět během synchronizace), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| cn || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| uid || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| msSFU30Name || C || nastavit na stejnou hodnotu jako sAMAccountName<br />
|-<br />
| '''posixAccount''' || ||<br />
|-<br />
| uidNumber || C || vyplnit jen při vytváření účtu, jedinečné číslo v intervalu <1000,30000), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů<br />
|-<br />
| gidNumber || C || vyplnit jen při vytváření účtu číslem 1000<br />
|-<br />
| homeDirectory || C || vyplnit jen při vytváření účtu stringem /home/"sAMAccountName"<br />
|-<br />
| loginShell || C || vyplnit jen při vytváření účtu stringem /bin/bash<br />
|-<br />
| gecos || A || synchronizovat vždy stringem vytvořeným z "givenName sn", bez diakritiky<br />
|-<br />
| '''mail''' || || <strike>FIXME: atributy vyplnit až při první změně hesla (do té doby mail nefunkční)? - zatím vytvořit schránku hned při zakládání uživatele</strike><br />
|-<br />
| mail || A || pro zaměstnance Jméno.Příjmení@fjfi.cvut.cz pro studenty "sAMAccountName"@fjfi.cvut.cz (pozor na jména/příjmení, které se skládají z více části oddělených mezerami), pro první import použít informace z dokumentu o [[Doména FJFI migrace|migraci]] uživatelských účtů; v případě konfliktu zaměstnanecké adresy Jméno.Příjmení@fjfi.cvut.cz tuto adresu nevytvářet, ale poslat mail správci<br />
|-<br />
| proxyAddresses || AA || pro všechny "sAMAccountName"@fjfi.cvut.cz, zaměstnanci navíc Jméno.Příjmení@fjfi.cvut.cz (v případě konfliktu informovat správce mailem nebo lépe rozmyslet algoritmus pro automatické řešení těchto případů), nastavit defaultni adresu na tu "nejhezčí" (pokud existuje např. Jméno.Přijmení@fjfi.cvut.cz) - prefix SMTP:, ostatní mají prefix smtp:<br />
|-<br />
| <strike>fnspeMailAddresses</strike> || <strike>AA</strike> || <strike>budou sem přidávány všechny automaticky vytvářené adresy</strike><br />
|-<br />
| '''uživatelské informace''' || <br />
|-<br />
| displayName || A || kvůli hledání synchronizovat plně jméno (včetně titulů) s diakritikou a bez diakritiky (do atributů displayName, displayName;lang-cs, displayName;lang-en), displayName vyplnit prozatím bez diakritiky, <strike>FIXME: (ne)uvádět tituly?</strike><br />
|-<br />
| name || A || to samé co do displayName (?) - nyní jen jméno bez diakritiky a bez titulů<br />
|-<br />
| wWWHomePage || A || synchronizovat oUser.privateWeb<br />
|-<br />
| facsimileTelephoneNumber || A || synchronizovat oUser.fax<br />
|-<br />
| telephoneNumber || A || synchronizovat oUser.phone<br />
|-<br />
| mobile || A || synchronizvat oUser.mobilePhone<br />
|-<br />
| otherPhone || A || synchronizovat oUser.privatePhone<br />
|-<br />
| ??? || A || synchronizovat oUser.privateMail (existuje nějaký vhodný standardní atribut? pokud ano, tak ho použít.<br />
|-<br />
| department || A || synchronizovat vše z oUser.departmentName<br />
|-<br />
| departmentNumber || A || synchronizovat vše z oUser.departmentNumber<br />
|-<br />
| fnspeStatus || A || synchronizovat oUser.status ("new", "active", "kill", "zombie", "dead", "unknown")<br />
|-<br />
| fnspeStatusTimestamp || ? || časová značka změny fnspeStatus, měnit pouze v případě, že se mění také fnspeStatus<br />
|-<br />
| c || C || nastavit při vytváření na "CZ"<br />
|-<br />
| co || C || nastavit při vytváření na "Czech Republic"<br />
|-<br />
| l || A || synchronizovat oUser.address(0).city<br />
|-<br />
| street || A || synchronizovat oUser.address(0).street<br />
|-<br />
| postalCode || A || synchronizovat oUser.address(0).zip<br />
|-<br />
| title || C || nastavit na "CTU FNSPE"<br />
|-<br />
| '''další zajímavé atributy''' || ||<br />
|-<br />
| memberOf || AP || podle skupin existujících v AD a v oUser.groups, podrobné vysvětlení dále u popisu skupin<br />
|-<br />
| profilePath || C || vybrat server podle místa katedry phd studenta či zaměstnance<br />
|-<br />
| scriptPath || ? || <br />
|-<br />
| userAccountControl || ? || pro blokování účtu(?)<br />
|}<br />
<br />
Legenda:<br />
*C - vyplnit při vytváření nového účtu<br />
*A - synchronizovat vždy podle aktuálních údajů (z Usermapu)<br />
*AA - pouze přidávat aktuální údaje (zachovat všechny stávající hodnoty atributu)<br />
*AP - zachovat "neznámé" hodnoty a synchronizovat ostatní dle definovaného seznamu<br />
<br />
===Konfigurace synchronizace===<br />
<br />
Synchronizační skript si bude načítat externí soubor s konfiguracemi. Zde budou uloženy informace potřebné pro přístup k informačním systémům (jména/hesla) a také seznam cvutPersonalId, které se nemájí importovat z Usermapu. Také zde bude seznam uživatelských jmen, které nelze použít pro hodnotu atributu sAMAccountName (např. root, abuse, mail, ...)<br />
<br />
===API synchronizačního skriptu===<br />
<br />
<strike>FIXME: tohle není finální verze, je potřeba detailně promyslet - no snad už to je trošku kompletní</strike><br />
<br />
Synchronizační skript by měl poskytnout přehledné API k následujícím operacím:<br />
;fnspeSync():synchronizuj s Usermapem - smaž/přesuň/updatuj/vytvoř účty (vrátí mailem informace o konfliktech, nekonzistencích, ...)<br />
;fnspeSync(cvutPersonalId): synchronizuj jednoho konkrétního uživatele<br />
;fnspeCreateUser(type, cvutPersonalId, username, ou, dictionary):vytvoř uživatele - obecná funkce (nebude volána přímo, ale přes specializovanější fce), parametry nemusí mít nastavenou hodnotu, je-li nastaveno<br />
*type - typ účtu ("user", "mail") - asi udělat jako bitovou mapu<br />
**user - standardní účet<br />
**mail - vytvořit také mailstore<br />
*cvutPersonalId, dotáhne informace z Usermapu<br />
*username - je preferováno před tím případně dotaženým z Usermapu<br />
*ou - vytvoří uživatele v příslušné ou (jinak standardně v ou=Auto)<br />
*dictionary - vše se zkopíruje do hodnot atributů vytvářeného uživatele<br />
<br />
;fnspeCreateUsermapUser(...):stejné parametry jako předchozí fce mimo typu, který bude nastaven na "user"+"mail", cvutPersonalId je povinný<br />
;fnspeCreateFnspeUser(...):stejné parametry jako předchozí fce mimo typu a cvutPersonalId (nastaveno automaticky na "user"+"mail" resp. prázdná hodnota), username je povinný<br />
;fnspeCreateGuestUser(...):stejné jako createFnspeUser, ale typ jen "user" (tj. vytvořit bez mailstore), před username přidá prefix "guest_", založí v ou=Guest<br />
;fnspeTrashUser(dn):přesune uživatele s DN do ou=Trash a disabluje přístup<br />
;fnspeRemoveUser(dn):úplně odstraní uživatele s DN včetně mailstore a dat(?)<br />
*<strike>změň charakter účtu - povinné parametry: operace (add|remove), charakter (user|contact|mail|eduroam|fnspe|...)</strike><br />
*<strike>samostatná konfigurace způsobu synchronizace pro všechny atributy (full|add|add+remove_list|one_time|...) - FIXME: promyslet</strike><br />
;fnspeCreateOfficialAddresses(dn):pokud je vyplněn atribut targetAddress nebo homeMDB (prostě má nastaven forward nebo existuje účet na Exchange) tak přidá do atributů proxyAddresses adresu username@fjfi.cvut.cz a pro zaměstnance navíc jméno.příjmení@fjfi.cvut.cz (zas v případě konfliktu s existující adresou ji nepřidá a pošle mail správci), nastaví atribut mail na jméno.příjmení@fjfi.cvut.cz - pro ty, co tuto adresu mají - pro ostatní na username@fjfi.cvut.cz<br />
;fnspeCreateMailstore(dn):vytvoří mail účet na Exchange<br />
;fnspeRemoveMailstore(dn):zruší účet na Exchange<br />
<br />
Motivace je pro poslední tři funkce je taková, že se při synchronizaci _nebude_ automaticky vytvářet účet na Exchange (kvůli externím spolupracovníkům, kteří by ji stejně nepoužívali - pár se mi jich totiž teď ozvalo) a vytvoří se až v okamžiku, kdy si uživatel bude "aktivovat účet" (bude si nastavovat heslo) - v tom okamžiku budeme potřebovat funkci, která pro daného uživatele založí mail účet na správném Exchange serverů a pak přidá správné mailove adresy (formulář pro "aktivaci účtu" si tu vytvoříme sami).<br />
<br />
<br />
* bylo by dobré, aby existoval nějaký "verbose" mód, který by na stdout nebo stderr vypisoval hlášky o průběhu synchronizace<br />
* bylo by dobré mít nějaké jednoduché commandline rozhraní k uvedeným funkcím<br />
<br />
===Synchronizační skripty===<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/umapsync umapsync<br />
<br />
===FnspeCmdService===<br />
<br />
Toto je služba, která poslouchá na definovaném portu a umožňuje spustit lokání skript s parametry, které přijdou ze sítě. V tuto chvíli slouží k vytváření uživatelských mailboxů při [https://nms.fjfi.cvut.cz/user/konto.php aktivaci konta] a nastavení přesměrování FJFI www stránek. Aktuální verzi je možné stáhnout na:<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/cmd_service cmd_service<br />
<br />
Instaluje/registruje se příkazem (z .NET frameworku, měl by být někde v c:\windows\Microsoft.NET\Framework):<br />
<br />
installutil.exe "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
# pro odinstalaci lze použít příkaz:<br />
# installutil.exe /u "c:\cesta\k\binarce\FnspeCmdWindowsService.exe"<br />
<br />
Poté je možné tuto službu spouštět/zastavovat standardním souborem přes mmc (je potřeba nastavit, aby se spouštěla automaticky při startu systému). Na firewallu je nutné povolit přístup na port, na kterém bude služba poslouchat. Z hlediska bezpečnosti je vhodné povolit přístup pouze z IP adres, které tuto službu nezbytně potřebují.<br />
<br />
Po prvním spuštění vytvoří v registrech klíč s konfigurací, kterou je pak možné upravit:<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
port - číslo portu, kde služba poslouchá (3210)<br />
script - skript, který má spustít (cmd.vbs)<br />
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
# mapování předaných dat na parametry příkazové rádky<br />
# key ..... příkaz cmd_service<br />
# value ... parametry výše uvedeného skriptu<br />
<br />
# výpis aktuální konfigurace<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService<br />
reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config<br />
<br />
Příklad záznamů v registrech:<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService]<br />
"port"=dword:00000c8a<br />
"script"="c:\\scripts\\umapsync\\umapsync.vbs"<br />
"timeout"=dword:00007530<br />
<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\FnspeCmdService\config]<br />
"mail"="mailbox create"<br />
"web"="web redirect"<br />
"test"="/quiet test log"<br />
<br />
Otestovat se dá nejlépe nějakým rozumným telnet klientem (ten ve woknech nepatří mezi ty rozumné)<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
mail username<br />
OK/FAIL<br />
<br />
telnet jmeno.stroje.s.bezici.sluzbou port<br />
web username http://nejaka.domena.cz/adresa<br />
OK/FAIL<br />
<br />
Návratová hodnota OK/FAIL je nastavena podle toho, jestli byl skript uspěšně vykonán a skončil s exit kódem 0. Je-li navrácena chybová hodnota FAIL, bude v application event logu poznamenáno, kde nastala chyba. Pokud došlo k chybě při vykonávání skriptu, budou podrobnosti v log souborech vykonávaného skriptu.<br />
<br />
===FnspeLibrary - synchronizace 2010===<br />
<br />
Vzhledem k horší resp. žádné podpoře vbscriptu (resp. lepší podpoře powershell) v novějších verzích w2k8 serverů a Exchange2010 budou synchronizační skripty přepsány do C# a powershellu. Původní idee zmíněné výše zůstávají nadále platné, pouze se mění prostředky resp. konkrétní jazyk implementace (navíc dojde pouze k pročištění rozhraní objektů potřebných pro správu uživatelských účtů).<br />
<br />
Aby vše fungovalo, je potřeba provést následující instalace / konfigurace:<br />
<br />
* instalace kořenové CA, která podepsala LDAP rozhraní Usermapu (aktuálně [http://pki.cesnet.cz/cs/ch-crt-crl.html CESNET CA])<br />
* ODBC driver pro MySQL<br />
** starší verzi [http://dev.mysql.com/downloads/connector/odbc/3.51.html 3.51] (5.1 není aktuálně podporovaná DB na Usermapu)<br />
** pro skripty je potřeba nainstalovat 32bit verzi i na 64bit systému<br />
** pro C# je (asi) potřeba 32bit i 64bit verze (instalováno/registrováno ručně z admin shellu pomocí "install.bat 0")<br />
* korektní konfigurace v <tt>FnspeLibrary.config</tt><br />
* WMI přístup k ostatním serverům (fileserver, IIS, ...) - firewall na TCP port 135, 2235<br />
* // copy xcacls.exe in the SCRIPT_PATH (no longer required, using default icacls.exe)<br />
* naimportovaná AD schemata (amavisAccount, fnspeAccount)<br />
* minimálně w2k3 nativní mód domény i forestu (support for auxial classes)<br />
<br />
==Uživatelská jména==<br />
<strike><br />
Pro studenty standardně ve formatů KOS/Usermap jména. Toto jméno je rezervováno po celou dobu působení na ČVUT + 1 rok a pak může být recyklováno (narozdíl od osobního čísla, které by mělo být jedno pro danou osobu navěky). VIC také umožňuje změny uživatelských jmen, což ale na FJFI nebude podporováno viz. dále.<br />
<br />
V případě, že uživatel nebude mít jméno z KOS/Usermapu, nesmí toto jméno být v konfliktu s některým již existujícím účtem. Z toho důvodu je žádoucí vytvářet "lokální" jména jiným způsobem než to dělají na VICu (5 písmen ze jména, 3 z příjmení které v případě konfliktu nahrazují čísly) - nejvhodnější jsou pravděpodobně jména kratší než 8 znaků nebo zavedení určitého prefixu (např. guest_username). Doporuční osmi maximální délky osm znaků má dva důvody, historické (některé systémy nemusí podporovat dlouhá uživatelská jména) a praktické (např. formátování výstupů v unixových systémech).<br />
</strike><br />
<br />
Všechna uživatelská jména musí být přebírána z ČVUTího IdM (aktuálně se přebírají stále z Usermapu), kde by měli být zavedeni všichni uživatelé a to buď jako klasičtí studenti/zaměstnanci nebo hosté ČVUT (do budoucna bude existovat aplikace na zakládání ČVUTích host účtů).<br />
<br />
ČVUT uživatelská jména jsou maximálně 8 znaků dlouhá a standardně se vytváří z pěti písmen příjmení a třech písmen z křestního jména. Pokud by nastal konflikt s existujícím jménem, je konec jména změněn na číslo, které se inkrementuje (např. novakj35). Uživatelská jména jsou neměnná (ani v případě, že se někdo vdá, rozvede, ...) a nebudou nikdy recyklována.<br />
<br />
===Speciální účty===<br />
<br />
Pokud je potřeba založit nějaký speciální účet, který nemá odpovídající záznam v ČVUT IdM, musí být použité jméno zavedeno na blacklist, aby takový účet nemohl v IdM v budoucnu nikdy vzniknout. Takové uživatelské jméno by nemělo obsahovat mezery a mělo by se skládat z malých písmen, číslic, pomlčky a podtržítka ([a-z0-9_-]). Využití podtržítka je navíc limitováno na předem definované speciální prefixy (např. guest_, ???). Jedná se např. o standardní Windows/Linuxové účty (admin, root, http, guest, ...). Navíc speciální účty ve Windows AD by měli být v samostatném kontejneru <tt>ou=Special,dc=fjfi,dc=cvut,dc=cz</tt>.<br />
<br />
<br />
===Jména se speciálními právy===<br />
<br />
Normální uživatel by neměl mít žádná administrátorská práva. Pokud je potřebuje, měl by k tomu sloužit jiný účet, který bude mít tvar username-admin. Takový účet ale '''nesmí''' být založen v ou=People,dc=fjfi,dc=cvut,dc=cz, protože by zde mohla vzniknout možnost privilege escalation některého ze speciálních účtů.<br />
<br />
==Eduroam jméno==<br />
<br />
Jméno pro Eduroam se musí skládat z uživatelského jména a realm, který slouží jako identifikátor domovské instituce. Vlasní autentizace uživatele tak může být delegována na domácí RADIUS servery. Uživatelské jméno na FJFI bude mít tvar "sAMAccountName"@fjfi.cvut.cz. Bylo by dobré, aby toto jméno bylo zároveň platnou mailovou adresou uživatele. Pomocí eduroam atributů v AD bude možné zablokovat samostatně přístup k Eduroam účtu bez blokace vlastního AD účtu.<br />
<br />
<strike>FIXME: zajištění přístupu hostů k WiFi bude tedy na správcích Windows</strike><br />
<br />
==Mailové adresy==<br />
<br />
Všichni uživatelé budou mít adresu ve tvaru "sAMAccountName"@fjfi.cvut.cz (tedy stejnou jako "Eduroam jméno"), zaměstnancům bude navíc automaticky generována adresa ve tvaru Jméno.Příjmení@fjfi.cvut.cz. V případě konfliktu nebude adresa automaticky vytvořena, ale o vzniklé situaci bude ihned informován správce mailem. Uživatelům Terezy může být ručně přidána ještě adresa ve tvaru Jméno.Příjmení@tereza.fjfi.cvut.cz.<br />
<br />
Historické oficiální adresy user@km1.fjfi.cvut.cz a user@troja.fjfi.cvut.cz budou zachovány jen na požádání (stejně jako tomu bylo/je pro user@br.fjfi.cvut.cz). Příjem bude zajištěn přímo na Exchange, nebude docházet k žádnému přepisování příchozích ani odchozích neoficiálních adres. Adresy user@kmk.km.fjfi.cvut.cz budou zrušeny, jelikož existovali jen z důvodu interního směrování mailů.<br />
<br />
U nově automaticky vytvářených adres je potřeba zkontrolovat, jestli obsahují jen povolené znaky [a-zA-Z0-9_.-] (hlavně při generování adres Jméno.Příjmení@fjfi.cvut.cz, protože to občas obsahuje speciální jinde neošetřené znaky). Pokud nová adresa nesplňuje tyto požadavky, bude o tom správce informován mailem.<br />
<br />
==Heslo==<br />
<br />
Uživatelská hesla musí mít definovanou minimální složitost, aby se zabránilo slovníkovým útokům. Heslo musí být minimálně 8 znaků dlouhé a musí obsahovat alespoň dvě skupiny znaků (písmena malá/velká, číslice, speciální znaky). FIXME: Je potřeba každé heslo zkontrolovat proti slovníku. Pro host/service kerberos účty mohou být hesla úplně neznámé náhodně generované znaky. Je potřebné/vhodné mít různé reálné účty pro různé hosty?<br />
<br />
Platnost hesla není omezena, ale pokud to bude situace v budoucnu vyžadovat, může být zavedena povinnost pravidelné změny hesla.<br />
<br />
Pro přihlašování je nutné vždy používat zabezpečené spojení (TLS/SSL nebo nějaký ekvivalent). Služby u nichž nelze zajistit vyzrazení hesla po nezabezpečeném kanále nesmí být vůbec provozovány (např. IMAP, HTTP, ...). U ostatních musí dojít k odmítnutí spojení před vlastním přenosem hesla.<br />
<br />
==Skupiny==<br />
<br />
Skupiny by měli obsahovat stejně jako uživatelská jména znaky [a-z0-9_-] (malá písmena, číslice, podtržítko a pomlčka). Dále je vhodné, aby délka názvu skupiny nepřevyšovala 8 znaků. Důvodem je maximální možná kompatibilita s Unix systémy. Kvůli unixovým resp. POSIX compatible systémům musí každá skupina obsahovat posixGroup třídu. Skupinové ID třídy musí být jedinečné >= 1000.<br />
<br />
Každý uživatel bude dle informací v Usermapu automaticky zařazen do skupin zaměstnanec/doktorand na příslušné katedře (existence všech skupin není povinná, neexistence těchto skupin nebude brána jako chyba při synchronizaci účtů). Navíc bude možné ručně přidat každého uživatele do skupiny vyhrazené každé katedře. Poslední možností je přidaní nazvu skupiny do atributu fnspeForceGroup a to při synchronizaci způsobí, že uživatel bude přidán jako memberOf odpovídající skupiny. Mohou existovat následující standardní skupiny:<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Skupiny'''<br />
|- style="background: LightGrey;"<br />
! název !! GID !! využití<br />
|-<br />
| || 1000-1099 || vyhrazeno pro potřeby fakulty (1000-1010 vyhrazeno pro automaticky spravované skupiny, 1011-1049 rezervováno pro budoucí využití)<br />
|-<br />
| users || 1000 || standardní skupina pro všechny uživatelské účty<br />
|-<br />
| || 1001 || unassigned<br />
|-<br />
| emp || 1002 || skupina pro všechny zaměstnance<br />
|-<br />
| phd || 1003 || skupina pro všechny phd studenty<br />
|-<br />
| stu || 1004 || skupina pro všechny studenty (mimo PhD)<br />
|-<br />
| decin || 1005 || skupina pro všechny učitele<br />
|-<br />
| troja || 1006 || skupina pro uživatele v Děčíně<br />
|-<br />
| troja || 1007 || skupina pro uživatele v Troji<br />
|-<br />
| ext || 1010 || skupina pro externisty<br />
|-<br />
| || 1X00-1X99 || vyhrazeno pro potřeby katedry (1X00-1X10 vyhrazeno pro standardní automaticky spravované skupiny, 1X11-1X49 rezervováno pro budoucí využití)<br />
|-<br />
| "depName" || 1X00 || ručně spravovaný seznam lidí na dané katedře<br />
|-<br />
| "depName"_all || 1X01 || "depName"+"depName"_emp+"depName"_phd<br />
|-<br />
| "depName"_emp || 1X02 || zaměstnanec katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_phd || 1X03 || phd student katedry (automaticky synchronizováno dle Usermapu)<br />
|-<br />
| "depName"_stu || 1X04 || student katedry, mimo PhD (zatím používá KMAT, ruční zadávání)<br />
|-<br />
| "depName"_staff || 1X05 || učitel na katedře (automaticky synchronizováno dle Usermapu)<br />
|}<br />
<br />
Pokud bude nějaká katedra (organizační jednotka) potřebovat další skupiny pro svoji vlastní potřebu, potom by měli mít jako prefix název katedry, aby se jména skupin nemohli v budoucnu dostat do konfliktu mezi různými katedrami. Skupinové GID si katedra bude volit z přiděleného rozsahu.<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozsahy GID pro katedry'''<br />
|- style="background: LightGrey;"<br />
! skupina !! rozsahy GID<br />
|-<br />
| users || 1000<br />
|-<br />
| km || 1100-1199<br />
|-<br />
| kf || 1200-1299<br />
|-<br />
| kj || 1300-1399<br />
|-<br />
| kipl || 1400-1499<br />
|-<br />
| kfe || 1500-1599<br />
|-<br />
| kmat || 1600-1699<br />
|-<br />
| kjch || 1700-1799<br />
|-<br />
| kdaiz || 1800-1899<br />
|-<br />
| kjr || 1900-1999<br />
|-<br />
| kse || 2000-2099<br />
|-<br />
| dekanat || 2100-2199<br />
|-<br />
| tereza || 2200-2299<br />
|-<br />
| crrc || 2300-2399<br />
|}<br />
<br />
==Export==<br />
<br />
ldifde.exe -d OU=People,DC=fjfi,DC=cvut,DC=cz -f people.ldif<br />
ldifde.exe -d OU=Groups,DC=fjfi,DC=cvut,DC=cz -f groups.ldif<br />
<br />
=<strike>Diskové služby</strike>=<br />
<br />
tohle nikdo neaktualizoval...<br />
<br />
{| border="1" cellpadding="5" cellspacing="0" align="center"<br />
|+ '''Rozdělení písmen pro disky'''<br />
|- style="background: LightGrey;"<br />
! písmeno !! funkce / poznámka<br />
|-<br />
| '''A-L''' || vyhrazeno pro lokální zařízení (disky, cdrom, uživatelské síťové disky, ...)<br />
|-<br />
| '''M-P''' || vyhrazeno pro potřeby fakulty<br />
|-<br />
| M: || sdílená složka v rámci katedry<br />
|-<br />
| N: || síťový domovský adresář<br />
|-<br />
| O: || síťový adresář s aplikacemi (replikovaný mezi všemi fileservery?)<br />
|-<br />
| P: || veřejně přístupná složka (FIXME: práva rozdělená na adresáře po katedrách?)<br />
|-<br />
| '''Q-Z''' || vyhrazeno pro potřeby administrátorů (globální, v rámci kateder, ...) - informace o využití těchto písmen je nutné uvést do této tabulky!<br />
|-<br />
| ?-? || <strike>vyhrazeno pro potřeby lokálního uživatele</strike><br />
|-<br />
| ?: || <strike>síťový adresář se sdílenými složkami (globalní, katedry, skupiny, ...)</strike><br />
|-<br />
| ?: || <strike>síťový adresář s aplikacemi, dokumentacemi, ...</strike><br />
|}<br />
<br />
FIXME: odkud budou exportovány sdílené disky (Břehovka x Trojanka x Trója)<br />
<br />
FIXME: využití DFS? využití replikace?<br />
<br />
=Kerberos=<br />
<br />
Nastavit následující konfigurace:<br />
<br />
Maximum lifetime for user ticket: 26 hours<br />
<br />
=LDAP=<br />
<br />
Je potřeba upravit limity pro přístup k datům v Active Directory přes standardní LDAP rozhraní. Vcelku zajímavé informace jsou v [http://support.microsoft.com/default.aspx?scid=kb;en-us;315071 KB 315071]<br />
<br />
*<tt>MaxPageSize</tt> "musí" být nastaveno minimálně na počet uživatelů+skupin - tedy 5000(?)<br />
<br />
Pro korektní fungování SASL autentizace pomocí GSSAPI je navíc potřeba, aby LDAP servery měli korektní záznamy v DNS a to včetně odpovídajících jednoznačných reverzních záznamů (simple autentizace funguje i když nejsou DNS záznamy v pořádku, ale na druhou stranu vyžaduje přihlášení přes SSL zabezpečené platnými certifikáty).<br />
<br />
Příklad simple autentizace:<br />
import ldap<br />
# Set LDAP options, e.g.:<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, '/etc/pki/tls/certs')<br />
# ldap.set_option(ldap.OPT_X_TLS_CACERTFILE,, '/etc/pki/tls/certs/ca-bundle.crt')<br />
# ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)<br />
conn = ldap.initialize("ldaps://ldap1.fjfi.cvut.cz,ldaps://ldap2.fjfi.cvut.cz")<br />
# Now try StartTLS extended operation<br />
# conn.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)<br />
# conn.start_tls_s()<br />
conn.simple_bind_s('FJFI\username', 'secret')<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
Příklad SASL GSSAPI autentizace (s využítím keytabu):<br />
import ldap, ldap.sasl, krbV<br />
# use SASL GSS authentication using Kerberos keytab<br />
conn = ldap.initialize("ldap://ldap1.fjfi.cvut.cz,ldap://ldap2.fjfi.cvut.cz")<br />
context = krbV.default_context()<br />
principal = krbV.Principal(name='host/name.fjfi.cvut.cz@FJFI.CVUT.CZ', context=context)<br />
keytab = krbV.Keytab(name='/etc/krb5.keytab', context=context)<br />
ccache = context.default_ccache(primary_principal=principal)<br />
#ccache.init(principal)<br />
ccache.init_creds_keytab(keytab=keytab, principal=principal)<br />
sasl_auth = ldap.sasl.sasl({},'GSSAPI')<br />
conn.sasl_interactive_bind_s("", sasl_auth)<br />
# print user data from AD<br />
for dn, attrs in conn.search_s('OU=People,DC=fjfi,DC=cvut,DC=cz', \<br />
ldap.SCOPE_SUBTREE, '(cn=username)'):<br />
print "%s: %s" % (dn, attrs)<br />
<br />
=Certifikáty=<br />
<br />
Naimportovat do domény kořenový certifikát a CRL [http://www.cesnet.cz/pki/en/ch-CRT-CRL.html CESNET CA], naimportovat intermediate CA a CRL pro aktuální serverové certifikáty.<br />
<br />
Pro LDAP rozhraní AD je potřeba restart serveru po instalaci certifikátu do ??? certificate store (možná stačí restart příslušné služby - netestováno). Pro ostatní služby (např. IIS) je potřeba v příslušných konfiguračních nástrojích vybrat, který certifikát se má používat.<br />
<br />
=Exchange=<br />
<br />
<strike>Je nutné zrušit automatické generovaní emailových adres pomocí RUS (Recipient Update Service). Zkonfigurovat to lze přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. U všeho je potřeba nastavit update interval na "Never run".</strike><br />
<br />
Je nutné zkonfigurovat generovaní emailových adres pomocí RUS (Recipient Update Service) přes ''Exchange System Manager'' -> ''Recipients'' -> ''Recipient Update Service''. Pro správné fungovaní všech požadovaných mailových adres nezavisle na vytvoření / zrušení mailstore na Exchange je potřeba zrušit přidávání a odstraňování "internetových" mailových adres (ty co jsou v atributu proxyAddresses s prefixem "smtp:" resp. "SMTP:".<br />
<br />
Také je potřeba nastavit (při změnách je občas nutné restartovat příslušnou službu):<br />
* zabránit příjmu mailů z jiných adres než je mailgw (nebo IP rozsah FJFI / ČVUT?) - nastavit přímo na firewallu<br />
* limity na velikost přijímaných / odesílaných mailů kompatibilní s mailgw ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Recipient Filtering''<br />
* odmítání pošty pro neexistující uživatele ''Exchange System Manager'' -> ''Global Settings'' -> ''Message Delivery'' -> ''Properties'' -> ''Defaults'' a dále je potřeba nastavit ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''General'' -> ''Advanced'' -> ''Filter Enabled''<br />
* nastavit odesílání pošty přes mailgw ''Exchange System Manager'' -> ''Servers'' -> ''jméno serveru'' -> ''Protocols'' -> ''SMTP'' -> ''Default'' -> ''Properties'' -> ''Delivery'' -> ''Advanced Delivery'' -> ''Smart host''<br />
<br />
Pro zjednodušení konfigurace Outlooku je možné navíc přiat do [http://support.microsoft.com/?kbid=940881 DNS záznamy pro autodiscovery Exchange > 2007 serveru].<br />
<br />
=Konfigurace Linuxu/Unixu=<br />
<br />
Pro jednoduchost není dobré vytvářet více domén. Uživatelé by pak museli používat jméno včetně jména domény, což by bylo dost nepohodlné a některé aplikace by asi špatně rozdýchávali uživatelská jména ve tvaru DOMAIN\username.<br />
<br />
Různé možnosti integrace Windows s Unixy jsou docela podrobně popsány v dokumentu [http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D Windows Security and Directory Services for UNIX v1.0]. Dále bude popsán jen jeden ze způsobu, který je vhodné použít u nás.<br />
<br />
<br />
==Konfigurace účtu v AD==<br />
<br />
Pro rozumnou funkci AD pro unixová prostředí je potřeba mit doménu a forest nastaven na nativní windows 2003 mód, protože jinak AD nemá podporu po "dynamic linked auxiliary classes". Vzhledem ke kopatibilitě je vhodné k uživatelskému účtu v AD přidat následující auxiliary classes: inetOrgPerson, posixAccount. Dále je potřeba udržovat některé atributy synchronizované, protože různé aplikace mohou využívat buď jeden nebo druhý: uid = msSFU30Name = sAMAccountName<br />
<br />
Uživatel musí mít vyplněny následující atributy posixAccountu:<br />
*uid = msSFU30Name = sAMAccountName<br />
*uidNumber - jedinečné číslo z intervalu [1000-30000)<br />
*gidNumber - zatím jedna skupina "users" s gidNumber = 1000<br />
*loginShell - /bin/bash<br />
*unixHomeDirectory - /home/"sAMAccountName"<br />
*gecos - ASCII "givenName sn"<br />
<br />
==Synchronizace času==<br />
<br />
Pro správnou funkci Kerbera je nutná synchronizace času mezi autentizovaným systémem a KDC serverem (tolerance 5 minut). Je potřeba, aby se klienti synchronizovali proti nějakému přesnému časovému zdroji. Pro tyto účely zde běží NTP server na adrese ntp.fjfi.cvut.cz (spuštěno hlavně pro účely monitoringu správného času na serverech, uživatelé by měli používat nějaké spolehlivé NTP servery, viz. dále). Pokud nebude čas správně synchronizován, pak přestane fungovat nejen přímá autentizace uživatelů, ale také další služby jako např. adresáře sdílené přes sambu.<br />
<br />
Pro synchronizaci času lze využít oficiální servery CESNETu:<br />
<br />
tik.cesnet.cz<br />
tak.cesnet.cz<br />
<br />
==Uživatelské informace==<br />
<br />
Získávají se pomocí NSS a v případě Windows AD domény k nim lze přistupovat několika různými způsoby (export do "passwd", LDAP, winbind). Kvůli zachování stejných UID na všech stanicích nelze (jednoduše) použít winbind. LDAP přístup je asi "nejčistší" řešení, ale bude se muset vyzkoušet jestli je výkonostně přijatelný (jinak lze provádět exporty z LDAP do standardních souborů jako tomu je/bylo u Novell NDS). V případě problémů s výkonem LDAPu by stálo za zvážení použít nscd daemona pro cachování získaných informací (potřeba otestovat, protože před pár lety docela zlobil při použití proti Novell LDAP).<br />
<br />
Pro přístup přes LDAP rozhraní k Windows AD je potřeba na firewallu povolit porty 389 TCP, 389 UDP, 636 TCP (z celého internetu). Pro zabezpečený přístup přes LDAP se používají x509 certifikáty. Klient '''musí''' důvěřovat certifikační autoritě, která podepsala certifikáty používané pro zabezpečenou LDAP komunikaci. Z tohoto důvodu je nutné, aby všechny Windows AD stroje měli '''platné certifikáty''' vydané [http://www.cesnet.cz/pki/en/st-server-cca.html Cesnet CA] nebo [http://www.cesnet.cz/pki/en/st-guide-gs.html SureServer EDU].<br />
<br />
===LDAP===<br />
<br />
Pro zpřístupnění informací přes LDAP je potřeba nainstalovat "nss_ldap" a upravit konfigurace <tt>/etc/nsswitch.conf</tt> a <tt>/etc/ldap.conf</tt> (pro práci s LDAP nástroji je ještě vhodné upravit <tt>/etc/openldap/ldap.conf</tt>).<br />
<br />
*<tt>/etc/nsswitch.conf</tt><br />
...<br />
passwd: files ldap<br />
shadow: files ldap<br />
group: files ldap<br />
<br />
hosts: files dns wins<br />
...<br />
<br />
*<tt>/etc/ldap.conf</tt><br />
host ldap1.fjfi.cvut.cz ldap2.fjfi.cvut.cz ldap3.fjfi.cvut.cz<br />
base dc=fjfi,dc=cvut,dc=cz<br />
ldap_version 3<br />
# In case AD doesn't allow anonymous binds<br />
# binddn cn=proxy nss,ou=special,dc=fjfi,dc=cvut,dc=cz<br />
# bindpw secret<br />
pam_min_uid 1000<br />
# RFC 2307 (AD) mappings<br />
nss_map_objectclass posixAccount user<br />
nss_map_objectclass shadowAccount user<br />
nss_map_attribute uid sAMAccountName<br />
nss_map_attribute homeDirectory unixHomeDirectory<br />
nss_map_attribute shadowLastChange pwdLastSet<br />
nss_map_objectclass posixGroup group<br />
nss_map_attribute uniqueMember member<br />
pam_login_attribute sAMAccountName<br />
pam_filter objectclass=User<br />
pam_password ad<br />
# Disable SASL security layers. This is needed for AD.<br />
sasl_secprops maxssf=0<br />
<br />
*<tt>/etc/openldap/ldap.conf</tt><br />
BASE dc=fjfi,dc=cvut,dc=cz<br />
URI ldaps://ldap1.fjfi.cvut.cz ldaps://ldap2.fjfi.cvut.cz ldaps://ldap3.fjfi.cvut.cz<br />
TLS_CACERTDIR /etc/openldap/cacerts<br />
<br />
===Soubory===<br />
<br />
Aby fungovaní unixu/linuxu nebylo v neustále závislé na korektní funkci LDAP serveru, je možná vhodnější exportovat (v pravidelných intervalech) aktuální informace do standardních souborů. K tomu slouží následující skript napsaný v pythonu (nutné doplnit správné heslo pro proxy_posix účet případně upravit některé cesty dle lokálních potřeb):<br />
<br />
svn co https://comp.fjfi.cvut.cz/repos/scripts/LdapAccount.py<br />
<br />
==Autentizace==<br />
<br />
Existuje více způsobů jak autentizovat uživatele z Windows AD (Kerberos, LDAP, winbind, RADIUS, ...). Nejrozumnější vlastnosti má Kerberos, který je přímo navržen pro bezpečnou autentizaci uživatelů. Navíc uživatel získá Kerberos ticket, který může dále používat pro autentizaci k dalším službám (SSO).<br />
<br />
Na linuxu je potřeba naintalovat balík "krb5-workstation" a "pam_krb5", je potřeba mít povolen přístup na KDC (Key Distribution Center) na portech 88 TCP, 88 UDP, 749 TCP (z celého internetu). Konfigurační soubor <tt>/etc/krb5.conf</tt> by mít např. následující obsah<br />
<br />
...<br />
<br />
[libdefaults]<br />
default_realm = FJFI.CVUT.CZ<br />
dns_lookup_realm = false<br />
dns_lookup_kdc = false<br />
ticket_lifetime = 24h<br />
renew_lifetime = 14d<br />
forwardable = yes<br />
<br />
[realms]<br />
FJFI.CVUT.CZ = {<br />
kdc = krb1.fjfi.cvut.cz:88<br />
kdc = krb2.fjfi.cvut.cz:88<br />
kdc = krb3.fjfi.cvut.cz:88<br />
admin_server = krb.fjfi.cvut.cz:749<br />
default_domain = fjfi.cvut.cz<br />
}<br />
<br />
[domain_realm]<br />
.fjfi.cvut.cz = FJFI.CVUT.CZ<br />
fjfi.cvut.cz = FJFI.CVUT.CZ<br />
<br />
...<br />
<br />
Pro otestování kerberos autentizace, vypsání a zrušení získaného ticketu lze použít následující příkazy:<br />
<br />
kinit username<br />
klist<br />
kdestroy<br />
<br />
Pro autentizaci na stanici je potřeba ještě zkonfigurovat PAM moduly. Na RedHatu (RHEL5) stačí upravit soubor <tt>/etc/pam.d/system-auth</tt><br />
<br />
#%PAM-1.0<br />
auth required pam_env.so<br />
auth sufficient pam_unix.so nullok try_first_pass<br />
auth requisite pam_succeed_if.so uid >= 1000 quiet<br />
auth [authinfo_unavail=ignore success=1 default=2] pam_krb5.so minimum_uid=1000 use_first_pass<br />
auth [default=done] pam_ccreds.so action=validate use_first_pass<br />
auth [default=done] pam_ccreds.so action=store<br />
auth [default=bad] pam_ccreds.so action=update<br />
auth required pam_deny.so<br />
<br />
account required pam_unix.so broken_shadow<br />
#account sufficient pam_localuser.so<br />
account sufficient pam_succeed_if.so uid < 1000 quiet<br />
account [authinfo_unavail=ignore default=done] pam_krb5.so minimum_uid=1000<br />
account required pam_permit.so<br />
<br />
password requisite pam_cracklib.so try_first_pass retry=3<br />
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok<br />
password sufficient pam_krb5.so minimum_uid=1000 use_authtok<br />
password required pam_deny.so<br />
<br />
#session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022<br />
session optional pam_keyinit.so revoke<br />
session required pam_limits.so<br />
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid<br />
session required pam_unix.so<br />
session optional pam_krb5.so minimum_uid=1000<br />
<br />
Tato konfigurace PAMu je napsána s ohledem na to, že uživatelé budou v /etc/passwd. Při použití přímého přístupu k informacím v LDAP přes nss_ldap by bylo vhodné tam udělat ještě pár drobných ůprav s ohledem na možnou (ne)dostupnost LDAP (v podstatě jde o přidání user_unknown=ignore k řádkům, kde je authinfo_unavail=ignore) - [http://wiki.mandriva.com/en/Docs/SysAdmin/Server/Disconnected_Auth více informcí].<br />
<br />
Také je na zvážení (z hlediska bezpečnosti/dostupnosti), jestli použvat pam_ccred. To se uvidí časem a bude to záviset na(ne)fungovaní nových windows serverů.<br />
<br />
==Host/Service Kerberos Key==<br />
<br />
Pokud bude mít systém/služba vlastní Kerberos klíč, potom je možné s platným uživatelským Kerberos ticketem přistupovat na tyto systémy/služby bez dalšího zadávání hesla. Základní informace lze nalézt v [http://support.microsoft.com/kb/324144 KB 324144]. Mapování služby na uživatelský učet je N:1. Nejvhodnější bude přidávat tyto účty k "objektu počítače", které vznikají přídáním stroje do AD a mají tvar jméno$ (tyto účty by měli být automaticky na globalním ČVUT IdM blacklistu). Preferovaný způsob přidání stroje do AD z linuxu je pomocí samby a jejího příkazu <tt>net ads [join|leave|keytab add]</tt>.<br />
<br />
===Vytvoření keytabu ve windows===<br />
<br />
K vytvoření kerberos keytabu je nejprve potřeba vytvořit computer account v AD. Následující příkaz pak vytvoří keytab a asociuje příslušné autentizační údaje s účtem v AD.<br />
<br />
# smazání/vytvoření computer accountu TEST$ v AD<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
# vytvoření/asociace host kerberos principálu<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ host/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -out test.keytab [ -mapOp set -kvno 1 ]<br />
# vytvoření služby ftp pro hosta test.fjfi.cvut.cz<br />
C:> ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn -out test.keytab [ -mapOp set -kvno 1 ]<br />
# pro lepší kompatibilitu s MIT kerberem se prý hodí parametr -crypto DES-CBC-MD5<br />
<br />
Z neznámého důvodu mě na linuxu nefungovalo získávání ticketu pres ''kinit -k -t file.keytab'', když jsem v ktpass použil ''-crypto DES-CBC-MD5''. Nejsem si také jist jaký je rozdíl ve vygenerovaném souboru při použití různých ptype (KRB5_NT_PRINCIPAL, KRB5_NT_SRV_HST, KRB5_NT_SRV_INST).<br />
<br />
===Vytvoření keytabu v linuxu pomocí msktutil===<br />
<br />
Na linuxu je potreba nainstalovat [http://download.systemimager.org/~finley/msktutil/ msktutil], který umožňuje přidání computer account do Active Direcotry, manipulaci s hesly a získání keytabu pro daného hosta resp. službu. Je potřeba mít korektně vytvořený konfigurační soubor Kerbera <tt>/etc/krb5.conf</tt> a platný ticket administrátora AD. Dále je potřeba mít na paměti, že <tt>msktutil</tt> pracuje pouze s globální "default_realm" z konfiguračního souboru a v některých případech záleží na pořadí v němž jsou uvedeny parametry na příkazovém řadku. Pokud dojde k nějakým problémům, potom je vhodné použít parametr <tt>--verbose</tt>. Příkaz se používá následujícím způsobem:<br />
<br />
# vytvoř computer account v AD pro aktuálního hosta a přidej do /etc/krb5.keytab<br />
msktutil -c<br />
# to samé, ale výsledek uloží do souboru test.keytab<br />
msktutil -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test (automaticky přidá doménu ke jménu záznamu v AD, např. test-fjfi-cvut-cz$)<br />
msktutil -h test -c -k test.keytab<br />
# to samé, ale pro stoj se jménem test a jméno v AD bude TEST$<br />
msktutil --computer-name TEST -h test -c -k test.keytab<br />
# přidej službu ldap k computer accountu TEST$ a exportuj do test.keytab<br />
msktutil --computer-name TEST -h test -s ldap -k test.keytab<br />
# update kerberos credentials ... msDS-KeyVersionNumber<br />
# (pravděpodobně nutné po ručním zásahu do atributu servicePrincipalName)<br />
msktutil --computer-name TEST -h test -u -k test.keytab<br />
<br />
Je také potřeba si uvědomit, že kerberos ticket je platný jen pro správné (doménové) jméno. Pokud chceme, aby bez problémů fungoval přístup jak k <tt>test.fjfi.cvut.cz</tt> tak i <tt>test</tt>, potom bude nutné vytvořit pro každou variantu jeden záznam. Jako dobrý příklad mohou sloužit záznamy u doménového kontroleru, které lze zjistit např. LDAP dotazem:<br />
<br />
# získání kerberos ticketu, který umožní autentizovaný dotaz do LDAPu Active Directory<br />
kinit<br />
# dotaz na computer account TEST<br />
ldapsearch -H ldap://ldap.fjfi.cvut.cz -b 'dc=fjfi,dc=cvut,dc=cz' 'sAMAccountName=TEST$' userPrincipalName servicePrincipalName msDS-KeyVersionNumber<br />
<br />
===Vytvoření keytabu v linuxu pomocí samby===<br />
<br />
V novějších verzích samby lze vcelku konfortně vytvářet účty počítačů (zařazovat počítače do domény) a spravovat keytab soubory. Pro korektní chování je potřeba správná konfigurace v <tt>smb.conf</tt> a default realm v <tt>krb5.conf</tt> nastavená na doménu DC. Dále je potřeba provádět (většinu) příkazů pod účtem roota, protože k některým souborům nemá běžný uživatel přístup a nelze měnit jejich umístění v konfiguračním souboru.<br />
<br />
[global]<br />
workgroup = FJFI<br />
security = ads<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = True<br />
#private dir = .<br />
<br />
Také je potřeba na firewallu doménového kontroleru povolit přístup k LDAPu (TCP i UDP) na portu 389 a "samba" porty (445, 139 a možná ještě další z rozsahu 136-139).<br />
<br />
# získání kerberos ticketu (abychom pro některé z následujících příkazu nemuseli zadávat heslo)<br />
kinit admin<br />
<br />
# odstranění záznamu o počítači TEST1234 z AD<br />
net -U admin -n TEST1234 ads leave<br />
# přidání záznamu o počítači TEST1234 do AD <br />
net -U admin -n TEST1234 ads join createupn=host/test1234.fjfi.cvut.cz@FJFI.CVUT.CZ [ osName=Linux osVer=5 ]<br />
# vypsání informací o počítači TEST1234 z AD<br />
net -n TEST1234 ads status<br />
<br />
# _kompletní_ vyčístění keytabu<br />
net -n TEST1234 ads keytab flush<br />
# vytvoření keytabu<br />
net -n TEST1234 ads keytab create<br />
# vypsání informací z keytabu<br />
net -n TEST1234 ads keytab list<br />
# přidání služby do keytabu<br />
net -n TEST1234 ads keytab add ldap<br />
net -n TEST1234 ads keytab add DNS<br />
...<br />
<br />
===Kombinace windows + linux===<br />
<br />
Vzhledem k chování programů ktpass.exe (pro w2k3 je součástí "[http://go.microsoft.com/fwlink/?LinkId=100114 Support Tools]") a msktutil je "nejlepší" pro složitější služby použít oba...<br />
<br />
# ve windows spustit<br />
dsrm -noprompt "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
dsadd computer "CN=TEST,CN=Computers,DC=fjfi,DC=cvut,DC=cz"<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ HOST/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ ftp/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
ktpass -ptype KRB5_NT_PRINCIPAL -princ http/test.fjfi.cvut.cz@FJFI.CVUT.CZ -mapuser TEST$ -pass +rndPass +Answer -SetUpn<br />
# v linuxu pak vygenerovat jeden keytab<br />
msktutil --computer-name TEST -h TEST -u --upn 'host/test.fjfi.cvut.cz@FJFI.CVUT.CZ' -k test.keytab<br />
<br />
===Import dat z keytabu===<br />
<br />
# Vytvořený keytab se importuje např.<br />
ktutil<br />
ktutil: rkt krb-hostname-host.keytab<br />
ktutil: rkt krb-hostname-ftp.keytab<br />
ktutil: l<br />
ktutil: wkt /etc/krb5.keytab<br />
ktutil: q<br />
<br />
# Ověření funkčnosti lze povést příkazem kinit<br />
kinit -k [ -t /etc/krb5.keytab ]<br />
<br />
# zjištění informací z keytabu<br />
klist -e -k [ -t /etc/krb5.keytab ]<br />
<br />
Je také možné vytvářet tyto klíče přímo na unix systémech, jak je popsáno na [http://msdn2.microsoft.com/en-us/library/ms808911.aspx Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services].<br />
<br />
==Samba==<br />
<br />
Samba 3.x umožňuje uživatelům Windows používat vysdílené disky včetně všech přístupových práv. Aby to fungovalo, je potřeba zkonfigurovat <tt>/etc/samba/smb.conf</tt> a zaregistrovat daný systém v AD. Podrobnější dokumentace je v oficiálním [http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection HOWTO]<br />
<br />
workgroup = FJFI # nebo název katedry<br />
server string = %h<br />
security = ADS<br />
realm = FJFI.CVUT.CZ<br />
use kerberos keytab = Yes<br />
preferred master = no<br />
<br />
# konfigurace winbind (bez běžícího winbindd používá samba "starší"<br />
# autentizační mechachanizmus ntdomain z "auth methods")<br />
;winbind separator = \\<br />
idmap backend = tdb<br />
idmap uid = 1000000-1999999<br />
idmap gid = 1000000-1999999<br />
idmap config FJFI : backend = ad<br />
idmap config FJFI : range = 1000-29999<br />
winbind nss info = rfc2307<br />
# allow enumeration of winbind users and groups<br />
# (this should be probably set to "no" for huge domains)<br />
winbind enum users = yes<br />
winbind enum groups = yes<br />
# give winbind users a real shell (only needed if they have telnet access)<br />
;template homedir = /home/%D/%U<br />
;template shell = /bin/bash<br />
# Winbind usernames without DOMAIN prefix<br />
winbind use default domain = yes<br />
<br />
# úplné disablovaní exportu tiskových služeb přes sambu<br />
load printers = no<br />
printing = bsd<br />
printcap name = /dev/null<br />
disable spoolss = yes<br />
<br />
Registrace se provádí příkazem (musí fungovat překlad přidělené hostname <-> IP, jinak nebylo možné úspěsně donkončit registraci):<br />
<br />
# připojení stroje test.fjfi.cvut.cz do FJFI domény<br />
net -UAdministrator%password ads join createupn=host/test.fjfi.cvut.cz@FJFI.CVUT.CZ createcomputer=Computers/Servers/Unix<br />
# přidání dalších kerberizovaných služeb na stanici<br />
net -UAdministrator%password ads keytab add HTTP<br />
<br />
Opět je nutné povolit na firewallu Windows Serveru porty 137 TCP/UDP, 138 TCP/UDP, 139 TCP/UDP, 445 TCP/UDP, 389 TCP/UDP, 636 TCP. Vzhledem k použítí Kerbera pro autentizaci je nutné mít synchronizovaný čas.<br />
<br />
Pro správné fungování autentizace musejí být doménový uživatelé uvedeni v <tt>/etc/passwd</tt> resp. musí být dostupní přes <tt>getent passwd</tt>. Toho lze dosáhnout i tak, že do <tt>/etc/nsswitch.conf</tt> přidáte resolvování passwd resp. group přes winbind.<br />
<br />
passwd: files winbind<br />
group: files winbind</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Slu%C5%BEby_a_servery&diff=2973Služby a servery2014-01-06T10:22:57Z<p>Keroupav: /* Oficiální mail */</p>
<hr />
<div>{{Servers}}<br />
<br />
=[http://it.fjfi.cvut.cz Oficiální dokumentace]=<br />
<br />
=Oficiální mail=<br />
*servery<br />
** MS Exchange Edge BRK1, BRK2 (příjem pošty, fronty, antivir, antispam) (frontside)<br />
**DAG "DAG-FJFI" na serverech MRK1, MRK2 MS Exchange Hub-Transport (backside)<br />
**databáze DB-TR (zaměstnanci Trojanova) na MRK2 replikována na MRK1<br />
**databáze DB-ST (studenti) na MRK2 replikována na MRK1<br />
**databáze DB-BR (zaměstnanci Břehová) na MRK1 replikována na MRK2<br />
*ověřování hlavním uživatelským jménem / heslem<br />
*výběr pošty<br />
**[https://webmail.fjfi.cvut.cz webmail] https://webmail.fjfi.cvut.cz<br />
**IMAP, POP3 - imap.fjfi.cvut.cz<br />
**X.400 - protokol MS Outlooku<br />
*odesílání pošty - SMTP AUTH - smtp.fjfi.cvut.cz<br />
*limity emailových služeb<br />
**příjem zprávy max. 20MB, odchozí zpráva max. 20MB<br />
**velikost poštovní přihrádky: zaměstnanec 2 GB, student 300 MB (na žádost lze zvětšit)<br />
<br />
=Domovské a web adresáře=<br />
*servery<br />
**doménový namespace FRK, replikované adresáře na ARK1 a ARK2<br />
**adresáře Home, WWW, Share, Profile<br />
*MS sdílení (samba) - přístup pouze ze školních IP nebo po připojení přes [[VPN]]<br />
**domovské adresáře na \\fjfi.cvut.cz\frk\home\username<br />
**web adresáře na \\fjfi.cvut.cz\frk\www\username<br />
**profile adresáře na \\fjfi.cvut.cz\frk\profile\username (pouze pro studenty nabo na vyžádání zaměstnance)<br />
*vzdálený přístup<br />
**webdav (přistup odkudkoliv - zabezpečení přes SSL)<br />
***domovské adresáře na https://people.fjfi.cvut.cz/home/username<br />
***web adresáře na https://people.fjfi.cvut.cz/web/username<br />
**SSH<br />
***připojení prostřednictvím scp.fjfi.cvut.cz (např. WinSCP)<br />
<br />
=Vzdálený přístup=<br />
*testovací Windows Terminal Server na [[ts.fjfi.cvut.cz]] (klient "Remote Desktop Connection", [http://www.rdesktop.org/ rdesktop])<br />
*testovací [[VPN]] server<br />
*shell na [[kmlinux.fjfi.cvut.cz]] (klient [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html putty], ssh)<br />
*... (viz. info o [[Servers|serverech]])</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=IP_rozsahy&diff=2970IP rozsahy2013-10-23T14:21:51Z<p>Keroupav: /* 147.32.8.2-79- KM zaměstnanci */</p>
<hr />
<div>=Břehovka=<br />
* správce Petr Schlösinger<br />
<br />
==147.32.4.0/24==<br />
* gateway 147.32.4.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
==147.32.5.0/24==<br />
* gateway 147.32.5.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===147.32.5.0/26 - servery===<br />
* chtělo by to vlastní VLAN nebo samostatné routování<br />
<br />
==147.32.9.64/26 - servery==<br />
* správce Petr Vokáč, Petr Schlösinger<br />
* gateway 147.32.9.65<br />
* netmask 255.255.255.192<br />
* VLAN 9 (měla by existovat pouze uvnitř serverovny)<br />
* rozdělení adres<br />
** 147.32.9.66-78 - linux servery<br />
** 147.32.9.82-94 - windows servery<br />
** 147.32.9.96-127 - rezervováno (pro budoucí použití)<br />
<br />
==Privátní rozsahy==<br />
<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.3.0/24 - management<br />
* 172.16.13.0/24 - registrace<br />
* <strike>172.16.23.0/24 (VLAN 15) - wififjfi</strike><br />
* <strike>172.16.33.0/24 (VLAN 13) - eduroam - blokovaná zařízení</strike><br />
* <strike>172.16.43.0/24 (VLAN 15) - wififjfi - blokovaná zařízení</strike><br />
* VLAN 13, VLAN 15, VLAN 16 protaženy mezi Břehovkou a Trojankou => stejný subnet<br />
<br />
=Trojanka=<br />
==147.32.6.0/24 - KFE==<br />
* gateway 147.32.6.1<br />
* netmask 255.255.254.0 (zatím společně se 147.32.7.0)<br />
* default VLAN 1<br />
===147.32.6.0-147.32.6.99===<br />
* vyhrazeno unixářům (Richard Liska, Milan Šiňor)<br />
===147.32.6.100-147.32.6.199===<br />
* pclab, kanceláře, ... (Petr Matlas)<br />
===147.32.6.200-147.32.6.254===<br />
* InfoLab, kanceláře (Josef Blažej)<br />
===147.32.6.255===<br />
* rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
<br />
==147.32.7.0/24 - DHCP==<br />
* "veřejný" DHCP segment<br />
* gateway 147.32.6.1<br />
* netmask 255.255.254.0 (zatím společně se 147.32.6.0)<br />
* default VLAN 1<br />
<br />
===147.32.7.0/27 - AP Eduroam===<br />
* tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
<br />
==147.32.8.0/24 - KM, Tereza, ostatní==<br />
* správce Pavel Kerouš<br />
* gateway 147.32.8.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===147.32.8.2-79 - KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.80-96 - studovna 214===<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
<br />
===147.32.8.97-109 - KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.110-149 - KM učebny===<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
<br />
===147.32.8.150-223 - KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.224-230 - KJ zaměstnanci===<br />
* desktopy<br />
===147.32.8.224/27 - Tereza===<br />
* 147.32.8.241 - 147.32.8.250 desktopy<br />
* 147.32.8.253 - Printer 4x4 Pro<br />
<br />
==147.32.9.0/26 - servery==<br />
* správce Petr Vokáč, Míra Minárik, Pavel Kerouš<br />
* gateway 147.32.9.1<br />
* netmask 255.255.255.192<br />
* VLAN 9 (měla by existovat pouze uvnitř serverovny)<br />
* rozdělení adres<br />
** 147.32.9.2-14 - linux servery<br />
** 147.32.9.18-29 - windows servery<br />
** 147.32.9.30-49 - virtuální stroje (vrk.fjfi.cvut.cz)<br />
** 147.32.9.50-63 - rezervace (pro budoucí účely)<br />
<br />
==147.32.9.64/26 - servery==<br />
* správce Petr Vokáč<br />
* v květnu 2009 přesunuto pro vytvoření server segmentu v Břehovce<br />
<br />
==147.32.9.128/25 - KSE, KJ==<br />
* gateway 147.32.9.129<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
===147.32.9.128/27 - KSE===<br />
* správce Miroslav Virius(?)<br />
===147.32.9.160/27 - Tiskárny===<br />
* 147.32.9.190 rezervace<br />
* 147.32.9.191 rezervace<br />
* správce Míra Minárik, Pavel Kerouš<br />
===147.32.9.192/27 - Tiskárny===<br />
* správce Míra Minárik, Pavel Kerouš<br />
* 147.32.9.192 rezervace<br />
* 147.32.9.212 rezervace<br />
* 147.32.9.213 rezervace<br />
===147.32.9.192/26 - různé===<br />
* správce Petr Vokáč<br />
* zatím pro "speciální" zařízení (kartové systémy, ...)<br />
* není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
<br />
==147.32.10.0/25 - KMAT==<br />
* správce Petr Kopříva<br />
* gateway 147.32.10.1<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
* připojení přes firewall zrušeno v květnu 2009, původní požadavky:<br />
** odchozí provoz bez omezení (tj. zachovat současný stav)<br />
** povolit všechen příchozí provoz z 147.32.9.0/25 do 147.32.10.0/25<br />
** povolit příchozí provoz odkudkoliv na port 21, 80, 443 na 147.32.10.3<br />
** zakázat ostatní příchozí provoz do 147.32.10.0/25<br />
===147.32.10.85 - 147.32.10.90 - KMAT DHCP===<br />
* stroje bez fixní adresy patřící KMAT dostanou přednostně tyto adresy<br />
* není žádoucí v tomto rozsahu dělat fixní rezervace<br />
<br />
==147.32.10.128/25 - KIPL==<br />
* správce Martin Dráb<br />
* gateway 147.32.10.129<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
<br />
==147.32.11.0/24 - Eduroam==<br />
* správce Petr Vokáč<br />
* gateway 147.32.11.1<br />
* netmask 255.255.255.0<br />
* default VLAN 13<br />
<br />
==Privátní rozsahy==<br />
* správce Petr Vokáč<br />
===172.16.0.0/24 - spojovačky===<br />
<br />
===172.16.1.0/24 - management===<br />
* gateway 172.16.1.1 (routovat přes VPN a 172.16.0.0/24 do Břehovky a Tróji)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
====172.16.1.0/27 - Počítače správy sítě (zatím nerealizováno)====<br />
* správce Petr Vokáč<br />
====172.16.1.32/27 - IPMI/KVM management====<br />
* správce Petr Vokáč<br />
====172.16.1.64/26 - switch management (zatím nerealizováno)====<br />
* správce Petr Vokáč<br />
====172.16.1.160/27 - Tiskárny====<br />
* správce Míra Minárik, Pavel Kerouš<br />
* tiskárnám nutno přiřazovat ručně<br />
* Maska: 255.255.255.0<br />
* Gateway: 172.16.1.151<br />
====172.16.1.192/27 - Tiskárny====<br />
* správce Míra Minárik, Pavel Kerouš<br />
* tiskárnám nutno přiřazovat ručně<br />
* Maska: 255.255.255.0<br />
* Gateway: 172.16.1.151<br />
<br />
===172.16.11.0/24 - unregistered===<br />
* gateway 172.16.11.1 (NAT + Firewall na zaregistrované klienty přes web formulář)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===172.16.21.0/24 - WiFi FJFI===<br />
* gateway 172.16.21.1 (NAT + Firewall na autentizované klienty přes web formulář)<br />
* netmask 255.255.255.0<br />
* default VLAN 15<br />
<br />
===172.16.31.0/24 - eduroam - blokovaná zařízení===<br />
* gateway 172.16.31.1 (přístup pouze na web NMS, info o blokaci, žádný NAT)<br />
* netmask 255.255.255.0<br />
* default VLAN 13<br />
<br />
===172.16.41.0/24 - wififjfi - blokovaná zařízení===<br />
* gateway 172.16.41.1 (přístup pouze na web NMS, info o blokaci, žádný NAT)<br />
* netmask 255.255.255.0<br />
* default VLAN 15<br />
<br />
===172.16.51.0/24 - OpenVPN public UDP===<br />
* gateway 172.16.51.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.52.0/24 - OpenVPN public TCP===<br />
* gateway 172.16.52.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.61.0/24 - OpenVPN admin UDP===<br />
* gateway 172.16.61.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.62.0/24 - OpenVPN admin TCP===<br />
* gateway 172.16.62.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.81.0/24 - private server (Břehová-Trojanova)===<br />
* gateway 172.16.81.1<br />
* netmask 255.255.255.0<br />
* VLAN 16<br />
* L2 segment mezi Břehovkou a Trojankou (pro Windows Cluster)<br />
<br />
===172.16.91.0/24 - private server===<br />
* gateway 172.16.91.1<br />
* netmask 255.255.255.0<br />
* VLAN 9<br />
* IP rozsah na server segmentu pro management karty<br />
<br />
=Trója=<br />
* správce [http://nms.fjfi.cvut.cz/user/who.php?q=nyvltmar Martin Nývlt], [http://nms.fjfi.cvut.cz/user/who.php?q=fialaja2 Jan Fiala]<br />
==147.32.25.0/24==<br />
* gateway 147.32.25.1<br />
* netmask 255.255.255.0<br />
* rozdělení<br />
** 147.32.25.2-31 - servery<br />
** 147.32.25.32-127 - staticky rezervované IP<br />
** 147.32.25.128/25 - dynamicky přidělované IP<br />
<br />
==Privátní rozsahy==<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.5.0/24 - management<br />
* 172.16.15.0/24 - registrace<br />
* 172.16.25.0/24 - wififjfi<br />
* 172.16.35.0/24 - eduroam - blokovaná zařízení<br />
* 172.16.45.0/24 - wififjfi - blokovaná zařízení<br />
<br />
=Děčín=<br />
* správce [http://nms.fjfi.cvut.cz/user/who.php?q=sumpepre Přemysl Šumpela]<br />
<br />
==147.32.22.0/24==<br />
* gateway 147.32.22.1<br />
* netmask 255.255.255.0<br />
<br />
==Privátní rozsahy==<br />
<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.7.0/24 - management<br />
* 172.16.17.0/24 - registrace<br />
* 172.16.27.0/24 (VLAN 15) - wififjfi<br />
* <strike>172.16.37.0/24 (VLAN 13) - eduroam - blokovaná zařízení</strike><br />
* 172.16.47.0/24 (VLAN 15) - wififjfi - blokovaná zařízení<br />
<br />
=Privátní rozsahy (nový plán)=<br />
* správce Petr Vokáč<br />
<br />
Tento plán také není úplně perfektní (např. zatím nepočítá s OpenVPN segmenty, "zbytečně" plýtvá IP rozsahy, ...), takže nebude realizován dokud nebude přehodnocen a doplněn.<br />
<br />
<strike><br />
==172.16.0.0/19 - správa privátních rozsahů==<br />
===172.16.0.0/20 - loopback IP===<br />
* dummy interface s IP ve tvaru 172.16.x.y pro subnet 172.16+x.y.0/24<br />
* propagovat přes OSPF, proroutovat přes VPN<br />
===172.16.16.0/20 - interface IP===<br />
* FIXME: rozmyslet<br />
<br />
==172.16.32.0/19 - management==<br />
===172.16.32.0/20 - unsecure===<br />
* gateway 172.16.32+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
* proroutovat přes VPN<br />
===172.16.48.0/20 - secure (plán pro oddělenou management VLAN)===<br />
* gateway 172.16.48+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN ???<br />
* proroutovat přes VPN<br />
<br />
==172.16.64.0/19 - servers==<br />
* gateway 172.16.32+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN 9<br />
* proroutovat přes VPN<br />
<br />
==172.16.96.0/19 - "inteligent" devices==<br />
* gateway 172.16.96+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN 1<br />
* proroutovat přes VPN<br />
* FJFI privátní síť pro "inteligentní" síťová zařízení, která nelze zabezpečit a mohou tak představovat bezpečnostní hrozbu pro lokální síť (např. síťové tiskárny, ...)<br />
<br />
==172.16.128.0/20 - default==<br />
* gateway 172.16.128.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* default VLAN 1<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.128.0/27 - rezervováno<br />
** 172.16.128.32/27 - neregistrované (zobrazí se registrační formulář, po registraci se povolí NAT)<br />
** 172.16.128.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.128.96/27 - rezervováno<br />
** zbytek - NAT - automaticky povolený<br />
<br />
==172.16.144.0/20 - Eduroam==<br />
* gateway 172.16.144.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* VLAN 13<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.144.0/27 - rezervováno<br />
** 172.16.144.32/27 - rezervováno<br />
** 172.16.144.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.144.96/27 - rezervováno<br />
** zbytek - NAT - automaticky povolený<br />
<br />
==172.16.160.0/20 - WiFiFJFI==<br />
* gateway 172.16.160.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* VLAN 15<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.160.0/27 - rezervováno<br />
** 172.16.160.32/27 - rezervováno<br />
** 172.16.160.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.160.96/27 - rezervováno<br />
** zbytek - NAT - zobrazí se web formulář a po autentizaci s wififjfi jménem/heslem se na firewallu povolí NAT<br />
</strike></div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=IP_rozsahy&diff=2969IP rozsahy2013-10-23T14:21:31Z<p>Keroupav: /* 147.32.8.97-109- KM zaměstnanci */</p>
<hr />
<div>=Břehovka=<br />
* správce Petr Schlösinger<br />
<br />
==147.32.4.0/24==<br />
* gateway 147.32.4.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
==147.32.5.0/24==<br />
* gateway 147.32.5.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===147.32.5.0/26 - servery===<br />
* chtělo by to vlastní VLAN nebo samostatné routování<br />
<br />
==147.32.9.64/26 - servery==<br />
* správce Petr Vokáč, Petr Schlösinger<br />
* gateway 147.32.9.65<br />
* netmask 255.255.255.192<br />
* VLAN 9 (měla by existovat pouze uvnitř serverovny)<br />
* rozdělení adres<br />
** 147.32.9.66-78 - linux servery<br />
** 147.32.9.82-94 - windows servery<br />
** 147.32.9.96-127 - rezervováno (pro budoucí použití)<br />
<br />
==Privátní rozsahy==<br />
<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.3.0/24 - management<br />
* 172.16.13.0/24 - registrace<br />
* <strike>172.16.23.0/24 (VLAN 15) - wififjfi</strike><br />
* <strike>172.16.33.0/24 (VLAN 13) - eduroam - blokovaná zařízení</strike><br />
* <strike>172.16.43.0/24 (VLAN 15) - wififjfi - blokovaná zařízení</strike><br />
* VLAN 13, VLAN 15, VLAN 16 protaženy mezi Břehovkou a Trojankou => stejný subnet<br />
<br />
=Trojanka=<br />
==147.32.6.0/24 - KFE==<br />
* gateway 147.32.6.1<br />
* netmask 255.255.254.0 (zatím společně se 147.32.7.0)<br />
* default VLAN 1<br />
===147.32.6.0-147.32.6.99===<br />
* vyhrazeno unixářům (Richard Liska, Milan Šiňor)<br />
===147.32.6.100-147.32.6.199===<br />
* pclab, kanceláře, ... (Petr Matlas)<br />
===147.32.6.200-147.32.6.254===<br />
* InfoLab, kanceláře (Josef Blažej)<br />
===147.32.6.255===<br />
* rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
<br />
==147.32.7.0/24 - DHCP==<br />
* "veřejný" DHCP segment<br />
* gateway 147.32.6.1<br />
* netmask 255.255.254.0 (zatím společně se 147.32.6.0)<br />
* default VLAN 1<br />
<br />
===147.32.7.0/27 - AP Eduroam===<br />
* tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
<br />
==147.32.8.0/24 - KM, Tereza, ostatní==<br />
* správce Pavel Kerouš<br />
* gateway 147.32.8.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===147.32.8.2-79- KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.80-96 - studovna 214===<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
<br />
===147.32.8.97-109 - KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.110-149 - KM učebny===<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
<br />
===147.32.8.150-223 - KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.224-230 - KJ zaměstnanci===<br />
* desktopy<br />
===147.32.8.224/27 - Tereza===<br />
* 147.32.8.241 - 147.32.8.250 desktopy<br />
* 147.32.8.253 - Printer 4x4 Pro<br />
<br />
==147.32.9.0/26 - servery==<br />
* správce Petr Vokáč, Míra Minárik, Pavel Kerouš<br />
* gateway 147.32.9.1<br />
* netmask 255.255.255.192<br />
* VLAN 9 (měla by existovat pouze uvnitř serverovny)<br />
* rozdělení adres<br />
** 147.32.9.2-14 - linux servery<br />
** 147.32.9.18-29 - windows servery<br />
** 147.32.9.30-49 - virtuální stroje (vrk.fjfi.cvut.cz)<br />
** 147.32.9.50-63 - rezervace (pro budoucí účely)<br />
<br />
==147.32.9.64/26 - servery==<br />
* správce Petr Vokáč<br />
* v květnu 2009 přesunuto pro vytvoření server segmentu v Břehovce<br />
<br />
==147.32.9.128/25 - KSE, KJ==<br />
* gateway 147.32.9.129<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
===147.32.9.128/27 - KSE===<br />
* správce Miroslav Virius(?)<br />
===147.32.9.160/27 - Tiskárny===<br />
* 147.32.9.190 rezervace<br />
* 147.32.9.191 rezervace<br />
* správce Míra Minárik, Pavel Kerouš<br />
===147.32.9.192/27 - Tiskárny===<br />
* správce Míra Minárik, Pavel Kerouš<br />
* 147.32.9.192 rezervace<br />
* 147.32.9.212 rezervace<br />
* 147.32.9.213 rezervace<br />
===147.32.9.192/26 - různé===<br />
* správce Petr Vokáč<br />
* zatím pro "speciální" zařízení (kartové systémy, ...)<br />
* není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
<br />
==147.32.10.0/25 - KMAT==<br />
* správce Petr Kopříva<br />
* gateway 147.32.10.1<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
* připojení přes firewall zrušeno v květnu 2009, původní požadavky:<br />
** odchozí provoz bez omezení (tj. zachovat současný stav)<br />
** povolit všechen příchozí provoz z 147.32.9.0/25 do 147.32.10.0/25<br />
** povolit příchozí provoz odkudkoliv na port 21, 80, 443 na 147.32.10.3<br />
** zakázat ostatní příchozí provoz do 147.32.10.0/25<br />
===147.32.10.85 - 147.32.10.90 - KMAT DHCP===<br />
* stroje bez fixní adresy patřící KMAT dostanou přednostně tyto adresy<br />
* není žádoucí v tomto rozsahu dělat fixní rezervace<br />
<br />
==147.32.10.128/25 - KIPL==<br />
* správce Martin Dráb<br />
* gateway 147.32.10.129<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
<br />
==147.32.11.0/24 - Eduroam==<br />
* správce Petr Vokáč<br />
* gateway 147.32.11.1<br />
* netmask 255.255.255.0<br />
* default VLAN 13<br />
<br />
==Privátní rozsahy==<br />
* správce Petr Vokáč<br />
===172.16.0.0/24 - spojovačky===<br />
<br />
===172.16.1.0/24 - management===<br />
* gateway 172.16.1.1 (routovat přes VPN a 172.16.0.0/24 do Břehovky a Tróji)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
====172.16.1.0/27 - Počítače správy sítě (zatím nerealizováno)====<br />
* správce Petr Vokáč<br />
====172.16.1.32/27 - IPMI/KVM management====<br />
* správce Petr Vokáč<br />
====172.16.1.64/26 - switch management (zatím nerealizováno)====<br />
* správce Petr Vokáč<br />
====172.16.1.160/27 - Tiskárny====<br />
* správce Míra Minárik, Pavel Kerouš<br />
* tiskárnám nutno přiřazovat ručně<br />
* Maska: 255.255.255.0<br />
* Gateway: 172.16.1.151<br />
====172.16.1.192/27 - Tiskárny====<br />
* správce Míra Minárik, Pavel Kerouš<br />
* tiskárnám nutno přiřazovat ručně<br />
* Maska: 255.255.255.0<br />
* Gateway: 172.16.1.151<br />
<br />
===172.16.11.0/24 - unregistered===<br />
* gateway 172.16.11.1 (NAT + Firewall na zaregistrované klienty přes web formulář)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===172.16.21.0/24 - WiFi FJFI===<br />
* gateway 172.16.21.1 (NAT + Firewall na autentizované klienty přes web formulář)<br />
* netmask 255.255.255.0<br />
* default VLAN 15<br />
<br />
===172.16.31.0/24 - eduroam - blokovaná zařízení===<br />
* gateway 172.16.31.1 (přístup pouze na web NMS, info o blokaci, žádný NAT)<br />
* netmask 255.255.255.0<br />
* default VLAN 13<br />
<br />
===172.16.41.0/24 - wififjfi - blokovaná zařízení===<br />
* gateway 172.16.41.1 (přístup pouze na web NMS, info o blokaci, žádný NAT)<br />
* netmask 255.255.255.0<br />
* default VLAN 15<br />
<br />
===172.16.51.0/24 - OpenVPN public UDP===<br />
* gateway 172.16.51.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.52.0/24 - OpenVPN public TCP===<br />
* gateway 172.16.52.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.61.0/24 - OpenVPN admin UDP===<br />
* gateway 172.16.61.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.62.0/24 - OpenVPN admin TCP===<br />
* gateway 172.16.62.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.81.0/24 - private server (Břehová-Trojanova)===<br />
* gateway 172.16.81.1<br />
* netmask 255.255.255.0<br />
* VLAN 16<br />
* L2 segment mezi Břehovkou a Trojankou (pro Windows Cluster)<br />
<br />
===172.16.91.0/24 - private server===<br />
* gateway 172.16.91.1<br />
* netmask 255.255.255.0<br />
* VLAN 9<br />
* IP rozsah na server segmentu pro management karty<br />
<br />
=Trója=<br />
* správce [http://nms.fjfi.cvut.cz/user/who.php?q=nyvltmar Martin Nývlt], [http://nms.fjfi.cvut.cz/user/who.php?q=fialaja2 Jan Fiala]<br />
==147.32.25.0/24==<br />
* gateway 147.32.25.1<br />
* netmask 255.255.255.0<br />
* rozdělení<br />
** 147.32.25.2-31 - servery<br />
** 147.32.25.32-127 - staticky rezervované IP<br />
** 147.32.25.128/25 - dynamicky přidělované IP<br />
<br />
==Privátní rozsahy==<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.5.0/24 - management<br />
* 172.16.15.0/24 - registrace<br />
* 172.16.25.0/24 - wififjfi<br />
* 172.16.35.0/24 - eduroam - blokovaná zařízení<br />
* 172.16.45.0/24 - wififjfi - blokovaná zařízení<br />
<br />
=Děčín=<br />
* správce [http://nms.fjfi.cvut.cz/user/who.php?q=sumpepre Přemysl Šumpela]<br />
<br />
==147.32.22.0/24==<br />
* gateway 147.32.22.1<br />
* netmask 255.255.255.0<br />
<br />
==Privátní rozsahy==<br />
<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.7.0/24 - management<br />
* 172.16.17.0/24 - registrace<br />
* 172.16.27.0/24 (VLAN 15) - wififjfi<br />
* <strike>172.16.37.0/24 (VLAN 13) - eduroam - blokovaná zařízení</strike><br />
* 172.16.47.0/24 (VLAN 15) - wififjfi - blokovaná zařízení<br />
<br />
=Privátní rozsahy (nový plán)=<br />
* správce Petr Vokáč<br />
<br />
Tento plán také není úplně perfektní (např. zatím nepočítá s OpenVPN segmenty, "zbytečně" plýtvá IP rozsahy, ...), takže nebude realizován dokud nebude přehodnocen a doplněn.<br />
<br />
<strike><br />
==172.16.0.0/19 - správa privátních rozsahů==<br />
===172.16.0.0/20 - loopback IP===<br />
* dummy interface s IP ve tvaru 172.16.x.y pro subnet 172.16+x.y.0/24<br />
* propagovat přes OSPF, proroutovat přes VPN<br />
===172.16.16.0/20 - interface IP===<br />
* FIXME: rozmyslet<br />
<br />
==172.16.32.0/19 - management==<br />
===172.16.32.0/20 - unsecure===<br />
* gateway 172.16.32+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
* proroutovat přes VPN<br />
===172.16.48.0/20 - secure (plán pro oddělenou management VLAN)===<br />
* gateway 172.16.48+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN ???<br />
* proroutovat přes VPN<br />
<br />
==172.16.64.0/19 - servers==<br />
* gateway 172.16.32+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN 9<br />
* proroutovat přes VPN<br />
<br />
==172.16.96.0/19 - "inteligent" devices==<br />
* gateway 172.16.96+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN 1<br />
* proroutovat přes VPN<br />
* FJFI privátní síť pro "inteligentní" síťová zařízení, která nelze zabezpečit a mohou tak představovat bezpečnostní hrozbu pro lokální síť (např. síťové tiskárny, ...)<br />
<br />
==172.16.128.0/20 - default==<br />
* gateway 172.16.128.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* default VLAN 1<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.128.0/27 - rezervováno<br />
** 172.16.128.32/27 - neregistrované (zobrazí se registrační formulář, po registraci se povolí NAT)<br />
** 172.16.128.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.128.96/27 - rezervováno<br />
** zbytek - NAT - automaticky povolený<br />
<br />
==172.16.144.0/20 - Eduroam==<br />
* gateway 172.16.144.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* VLAN 13<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.144.0/27 - rezervováno<br />
** 172.16.144.32/27 - rezervováno<br />
** 172.16.144.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.144.96/27 - rezervováno<br />
** zbytek - NAT - automaticky povolený<br />
<br />
==172.16.160.0/20 - WiFiFJFI==<br />
* gateway 172.16.160.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* VLAN 15<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.160.0/27 - rezervováno<br />
** 172.16.160.32/27 - rezervováno<br />
** 172.16.160.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.160.96/27 - rezervováno<br />
** zbytek - NAT - zobrazí se web formulář a po autentizaci s wififjfi jménem/heslem se na firewallu povolí NAT<br />
</strike></div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=IP_rozsahy&diff=2968IP rozsahy2013-10-23T14:21:13Z<p>Keroupav: /* 147.32.8.80-96- studovna 214 */</p>
<hr />
<div>=Břehovka=<br />
* správce Petr Schlösinger<br />
<br />
==147.32.4.0/24==<br />
* gateway 147.32.4.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
==147.32.5.0/24==<br />
* gateway 147.32.5.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===147.32.5.0/26 - servery===<br />
* chtělo by to vlastní VLAN nebo samostatné routování<br />
<br />
==147.32.9.64/26 - servery==<br />
* správce Petr Vokáč, Petr Schlösinger<br />
* gateway 147.32.9.65<br />
* netmask 255.255.255.192<br />
* VLAN 9 (měla by existovat pouze uvnitř serverovny)<br />
* rozdělení adres<br />
** 147.32.9.66-78 - linux servery<br />
** 147.32.9.82-94 - windows servery<br />
** 147.32.9.96-127 - rezervováno (pro budoucí použití)<br />
<br />
==Privátní rozsahy==<br />
<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.3.0/24 - management<br />
* 172.16.13.0/24 - registrace<br />
* <strike>172.16.23.0/24 (VLAN 15) - wififjfi</strike><br />
* <strike>172.16.33.0/24 (VLAN 13) - eduroam - blokovaná zařízení</strike><br />
* <strike>172.16.43.0/24 (VLAN 15) - wififjfi - blokovaná zařízení</strike><br />
* VLAN 13, VLAN 15, VLAN 16 protaženy mezi Břehovkou a Trojankou => stejný subnet<br />
<br />
=Trojanka=<br />
==147.32.6.0/24 - KFE==<br />
* gateway 147.32.6.1<br />
* netmask 255.255.254.0 (zatím společně se 147.32.7.0)<br />
* default VLAN 1<br />
===147.32.6.0-147.32.6.99===<br />
* vyhrazeno unixářům (Richard Liska, Milan Šiňor)<br />
===147.32.6.100-147.32.6.199===<br />
* pclab, kanceláře, ... (Petr Matlas)<br />
===147.32.6.200-147.32.6.254===<br />
* InfoLab, kanceláře (Josef Blažej)<br />
===147.32.6.255===<br />
* rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
<br />
==147.32.7.0/24 - DHCP==<br />
* "veřejný" DHCP segment<br />
* gateway 147.32.6.1<br />
* netmask 255.255.254.0 (zatím společně se 147.32.6.0)<br />
* default VLAN 1<br />
<br />
===147.32.7.0/27 - AP Eduroam===<br />
* tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
<br />
==147.32.8.0/24 - KM, Tereza, ostatní==<br />
* správce Pavel Kerouš<br />
* gateway 147.32.8.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===147.32.8.2-79- KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.80-96 - studovna 214===<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé)<br />
<br />
===147.32.8.97-109- KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.110-149 - KM učebny===<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
<br />
===147.32.8.150-223 - KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.224-230 - KJ zaměstnanci===<br />
* desktopy<br />
===147.32.8.224/27 - Tereza===<br />
* 147.32.8.241 - 147.32.8.250 desktopy<br />
* 147.32.8.253 - Printer 4x4 Pro<br />
<br />
==147.32.9.0/26 - servery==<br />
* správce Petr Vokáč, Míra Minárik, Pavel Kerouš<br />
* gateway 147.32.9.1<br />
* netmask 255.255.255.192<br />
* VLAN 9 (měla by existovat pouze uvnitř serverovny)<br />
* rozdělení adres<br />
** 147.32.9.2-14 - linux servery<br />
** 147.32.9.18-29 - windows servery<br />
** 147.32.9.30-49 - virtuální stroje (vrk.fjfi.cvut.cz)<br />
** 147.32.9.50-63 - rezervace (pro budoucí účely)<br />
<br />
==147.32.9.64/26 - servery==<br />
* správce Petr Vokáč<br />
* v květnu 2009 přesunuto pro vytvoření server segmentu v Břehovce<br />
<br />
==147.32.9.128/25 - KSE, KJ==<br />
* gateway 147.32.9.129<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
===147.32.9.128/27 - KSE===<br />
* správce Miroslav Virius(?)<br />
===147.32.9.160/27 - Tiskárny===<br />
* 147.32.9.190 rezervace<br />
* 147.32.9.191 rezervace<br />
* správce Míra Minárik, Pavel Kerouš<br />
===147.32.9.192/27 - Tiskárny===<br />
* správce Míra Minárik, Pavel Kerouš<br />
* 147.32.9.192 rezervace<br />
* 147.32.9.212 rezervace<br />
* 147.32.9.213 rezervace<br />
===147.32.9.192/26 - různé===<br />
* správce Petr Vokáč<br />
* zatím pro "speciální" zařízení (kartové systémy, ...)<br />
* není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
<br />
==147.32.10.0/25 - KMAT==<br />
* správce Petr Kopříva<br />
* gateway 147.32.10.1<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
* připojení přes firewall zrušeno v květnu 2009, původní požadavky:<br />
** odchozí provoz bez omezení (tj. zachovat současný stav)<br />
** povolit všechen příchozí provoz z 147.32.9.0/25 do 147.32.10.0/25<br />
** povolit příchozí provoz odkudkoliv na port 21, 80, 443 na 147.32.10.3<br />
** zakázat ostatní příchozí provoz do 147.32.10.0/25<br />
===147.32.10.85 - 147.32.10.90 - KMAT DHCP===<br />
* stroje bez fixní adresy patřící KMAT dostanou přednostně tyto adresy<br />
* není žádoucí v tomto rozsahu dělat fixní rezervace<br />
<br />
==147.32.10.128/25 - KIPL==<br />
* správce Martin Dráb<br />
* gateway 147.32.10.129<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
<br />
==147.32.11.0/24 - Eduroam==<br />
* správce Petr Vokáč<br />
* gateway 147.32.11.1<br />
* netmask 255.255.255.0<br />
* default VLAN 13<br />
<br />
==Privátní rozsahy==<br />
* správce Petr Vokáč<br />
===172.16.0.0/24 - spojovačky===<br />
<br />
===172.16.1.0/24 - management===<br />
* gateway 172.16.1.1 (routovat přes VPN a 172.16.0.0/24 do Břehovky a Tróji)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
====172.16.1.0/27 - Počítače správy sítě (zatím nerealizováno)====<br />
* správce Petr Vokáč<br />
====172.16.1.32/27 - IPMI/KVM management====<br />
* správce Petr Vokáč<br />
====172.16.1.64/26 - switch management (zatím nerealizováno)====<br />
* správce Petr Vokáč<br />
====172.16.1.160/27 - Tiskárny====<br />
* správce Míra Minárik, Pavel Kerouš<br />
* tiskárnám nutno přiřazovat ručně<br />
* Maska: 255.255.255.0<br />
* Gateway: 172.16.1.151<br />
====172.16.1.192/27 - Tiskárny====<br />
* správce Míra Minárik, Pavel Kerouš<br />
* tiskárnám nutno přiřazovat ručně<br />
* Maska: 255.255.255.0<br />
* Gateway: 172.16.1.151<br />
<br />
===172.16.11.0/24 - unregistered===<br />
* gateway 172.16.11.1 (NAT + Firewall na zaregistrované klienty přes web formulář)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===172.16.21.0/24 - WiFi FJFI===<br />
* gateway 172.16.21.1 (NAT + Firewall na autentizované klienty přes web formulář)<br />
* netmask 255.255.255.0<br />
* default VLAN 15<br />
<br />
===172.16.31.0/24 - eduroam - blokovaná zařízení===<br />
* gateway 172.16.31.1 (přístup pouze na web NMS, info o blokaci, žádný NAT)<br />
* netmask 255.255.255.0<br />
* default VLAN 13<br />
<br />
===172.16.41.0/24 - wififjfi - blokovaná zařízení===<br />
* gateway 172.16.41.1 (přístup pouze na web NMS, info o blokaci, žádný NAT)<br />
* netmask 255.255.255.0<br />
* default VLAN 15<br />
<br />
===172.16.51.0/24 - OpenVPN public UDP===<br />
* gateway 172.16.51.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.52.0/24 - OpenVPN public TCP===<br />
* gateway 172.16.52.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.61.0/24 - OpenVPN admin UDP===<br />
* gateway 172.16.61.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.62.0/24 - OpenVPN admin TCP===<br />
* gateway 172.16.62.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.81.0/24 - private server (Břehová-Trojanova)===<br />
* gateway 172.16.81.1<br />
* netmask 255.255.255.0<br />
* VLAN 16<br />
* L2 segment mezi Břehovkou a Trojankou (pro Windows Cluster)<br />
<br />
===172.16.91.0/24 - private server===<br />
* gateway 172.16.91.1<br />
* netmask 255.255.255.0<br />
* VLAN 9<br />
* IP rozsah na server segmentu pro management karty<br />
<br />
=Trója=<br />
* správce [http://nms.fjfi.cvut.cz/user/who.php?q=nyvltmar Martin Nývlt], [http://nms.fjfi.cvut.cz/user/who.php?q=fialaja2 Jan Fiala]<br />
==147.32.25.0/24==<br />
* gateway 147.32.25.1<br />
* netmask 255.255.255.0<br />
* rozdělení<br />
** 147.32.25.2-31 - servery<br />
** 147.32.25.32-127 - staticky rezervované IP<br />
** 147.32.25.128/25 - dynamicky přidělované IP<br />
<br />
==Privátní rozsahy==<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.5.0/24 - management<br />
* 172.16.15.0/24 - registrace<br />
* 172.16.25.0/24 - wififjfi<br />
* 172.16.35.0/24 - eduroam - blokovaná zařízení<br />
* 172.16.45.0/24 - wififjfi - blokovaná zařízení<br />
<br />
=Děčín=<br />
* správce [http://nms.fjfi.cvut.cz/user/who.php?q=sumpepre Přemysl Šumpela]<br />
<br />
==147.32.22.0/24==<br />
* gateway 147.32.22.1<br />
* netmask 255.255.255.0<br />
<br />
==Privátní rozsahy==<br />
<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.7.0/24 - management<br />
* 172.16.17.0/24 - registrace<br />
* 172.16.27.0/24 (VLAN 15) - wififjfi<br />
* <strike>172.16.37.0/24 (VLAN 13) - eduroam - blokovaná zařízení</strike><br />
* 172.16.47.0/24 (VLAN 15) - wififjfi - blokovaná zařízení<br />
<br />
=Privátní rozsahy (nový plán)=<br />
* správce Petr Vokáč<br />
<br />
Tento plán také není úplně perfektní (např. zatím nepočítá s OpenVPN segmenty, "zbytečně" plýtvá IP rozsahy, ...), takže nebude realizován dokud nebude přehodnocen a doplněn.<br />
<br />
<strike><br />
==172.16.0.0/19 - správa privátních rozsahů==<br />
===172.16.0.0/20 - loopback IP===<br />
* dummy interface s IP ve tvaru 172.16.x.y pro subnet 172.16+x.y.0/24<br />
* propagovat přes OSPF, proroutovat přes VPN<br />
===172.16.16.0/20 - interface IP===<br />
* FIXME: rozmyslet<br />
<br />
==172.16.32.0/19 - management==<br />
===172.16.32.0/20 - unsecure===<br />
* gateway 172.16.32+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
* proroutovat přes VPN<br />
===172.16.48.0/20 - secure (plán pro oddělenou management VLAN)===<br />
* gateway 172.16.48+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN ???<br />
* proroutovat přes VPN<br />
<br />
==172.16.64.0/19 - servers==<br />
* gateway 172.16.32+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN 9<br />
* proroutovat přes VPN<br />
<br />
==172.16.96.0/19 - "inteligent" devices==<br />
* gateway 172.16.96+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN 1<br />
* proroutovat přes VPN<br />
* FJFI privátní síť pro "inteligentní" síťová zařízení, která nelze zabezpečit a mohou tak představovat bezpečnostní hrozbu pro lokální síť (např. síťové tiskárny, ...)<br />
<br />
==172.16.128.0/20 - default==<br />
* gateway 172.16.128.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* default VLAN 1<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.128.0/27 - rezervováno<br />
** 172.16.128.32/27 - neregistrované (zobrazí se registrační formulář, po registraci se povolí NAT)<br />
** 172.16.128.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.128.96/27 - rezervováno<br />
** zbytek - NAT - automaticky povolený<br />
<br />
==172.16.144.0/20 - Eduroam==<br />
* gateway 172.16.144.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* VLAN 13<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.144.0/27 - rezervováno<br />
** 172.16.144.32/27 - rezervováno<br />
** 172.16.144.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.144.96/27 - rezervováno<br />
** zbytek - NAT - automaticky povolený<br />
<br />
==172.16.160.0/20 - WiFiFJFI==<br />
* gateway 172.16.160.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* VLAN 15<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.160.0/27 - rezervováno<br />
** 172.16.160.32/27 - rezervováno<br />
** 172.16.160.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.160.96/27 - rezervováno<br />
** zbytek - NAT - zobrazí se web formulář a po autentizaci s wififjfi jménem/heslem se na firewallu povolí NAT<br />
</strike></div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=IP_rozsahy&diff=2967IP rozsahy2013-10-23T14:20:41Z<p>Keroupav: /* Trojanka */</p>
<hr />
<div>=Břehovka=<br />
* správce Petr Schlösinger<br />
<br />
==147.32.4.0/24==<br />
* gateway 147.32.4.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
==147.32.5.0/24==<br />
* gateway 147.32.5.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===147.32.5.0/26 - servery===<br />
* chtělo by to vlastní VLAN nebo samostatné routování<br />
<br />
==147.32.9.64/26 - servery==<br />
* správce Petr Vokáč, Petr Schlösinger<br />
* gateway 147.32.9.65<br />
* netmask 255.255.255.192<br />
* VLAN 9 (měla by existovat pouze uvnitř serverovny)<br />
* rozdělení adres<br />
** 147.32.9.66-78 - linux servery<br />
** 147.32.9.82-94 - windows servery<br />
** 147.32.9.96-127 - rezervováno (pro budoucí použití)<br />
<br />
==Privátní rozsahy==<br />
<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.3.0/24 - management<br />
* 172.16.13.0/24 - registrace<br />
* <strike>172.16.23.0/24 (VLAN 15) - wififjfi</strike><br />
* <strike>172.16.33.0/24 (VLAN 13) - eduroam - blokovaná zařízení</strike><br />
* <strike>172.16.43.0/24 (VLAN 15) - wififjfi - blokovaná zařízení</strike><br />
* VLAN 13, VLAN 15, VLAN 16 protaženy mezi Břehovkou a Trojankou => stejný subnet<br />
<br />
=Trojanka=<br />
==147.32.6.0/24 - KFE==<br />
* gateway 147.32.6.1<br />
* netmask 255.255.254.0 (zatím společně se 147.32.7.0)<br />
* default VLAN 1<br />
===147.32.6.0-147.32.6.99===<br />
* vyhrazeno unixářům (Richard Liska, Milan Šiňor)<br />
===147.32.6.100-147.32.6.199===<br />
* pclab, kanceláře, ... (Petr Matlas)<br />
===147.32.6.200-147.32.6.254===<br />
* InfoLab, kanceláře (Josef Blažej)<br />
===147.32.6.255===<br />
* rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
<br />
==147.32.7.0/24 - DHCP==<br />
* "veřejný" DHCP segment<br />
* gateway 147.32.6.1<br />
* netmask 255.255.254.0 (zatím společně se 147.32.6.0)<br />
* default VLAN 1<br />
<br />
===147.32.7.0/27 - AP Eduroam===<br />
* tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
<br />
==147.32.8.0/24 - KM, Tereza, ostatní==<br />
* správce Pavel Kerouš<br />
* gateway 147.32.8.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===147.32.8.2-79- KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.80-96- studovna 214===<br />
* desktopy, frekventované notebooky<br />
* 80 je počítač u tabule<br />
* 81 - 96 jsou počítače od tabule ke vchodu vždy vlevo (liché) - vpravo (sudé) <br />
<br />
===147.32.8.97-109- KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.110-149 - KM učebny===<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
<br />
===147.32.8.150-223 - KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.224-230 - KJ zaměstnanci===<br />
* desktopy<br />
===147.32.8.224/27 - Tereza===<br />
* 147.32.8.241 - 147.32.8.250 desktopy<br />
* 147.32.8.253 - Printer 4x4 Pro<br />
<br />
==147.32.9.0/26 - servery==<br />
* správce Petr Vokáč, Míra Minárik, Pavel Kerouš<br />
* gateway 147.32.9.1<br />
* netmask 255.255.255.192<br />
* VLAN 9 (měla by existovat pouze uvnitř serverovny)<br />
* rozdělení adres<br />
** 147.32.9.2-14 - linux servery<br />
** 147.32.9.18-29 - windows servery<br />
** 147.32.9.30-49 - virtuální stroje (vrk.fjfi.cvut.cz)<br />
** 147.32.9.50-63 - rezervace (pro budoucí účely)<br />
<br />
==147.32.9.64/26 - servery==<br />
* správce Petr Vokáč<br />
* v květnu 2009 přesunuto pro vytvoření server segmentu v Břehovce<br />
<br />
==147.32.9.128/25 - KSE, KJ==<br />
* gateway 147.32.9.129<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
===147.32.9.128/27 - KSE===<br />
* správce Miroslav Virius(?)<br />
===147.32.9.160/27 - Tiskárny===<br />
* 147.32.9.190 rezervace<br />
* 147.32.9.191 rezervace<br />
* správce Míra Minárik, Pavel Kerouš<br />
===147.32.9.192/27 - Tiskárny===<br />
* správce Míra Minárik, Pavel Kerouš<br />
* 147.32.9.192 rezervace<br />
* 147.32.9.212 rezervace<br />
* 147.32.9.213 rezervace<br />
===147.32.9.192/26 - různé===<br />
* správce Petr Vokáč<br />
* zatím pro "speciální" zařízení (kartové systémy, ...)<br />
* není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
<br />
==147.32.10.0/25 - KMAT==<br />
* správce Petr Kopříva<br />
* gateway 147.32.10.1<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
* připojení přes firewall zrušeno v květnu 2009, původní požadavky:<br />
** odchozí provoz bez omezení (tj. zachovat současný stav)<br />
** povolit všechen příchozí provoz z 147.32.9.0/25 do 147.32.10.0/25<br />
** povolit příchozí provoz odkudkoliv na port 21, 80, 443 na 147.32.10.3<br />
** zakázat ostatní příchozí provoz do 147.32.10.0/25<br />
===147.32.10.85 - 147.32.10.90 - KMAT DHCP===<br />
* stroje bez fixní adresy patřící KMAT dostanou přednostně tyto adresy<br />
* není žádoucí v tomto rozsahu dělat fixní rezervace<br />
<br />
==147.32.10.128/25 - KIPL==<br />
* správce Martin Dráb<br />
* gateway 147.32.10.129<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
<br />
==147.32.11.0/24 - Eduroam==<br />
* správce Petr Vokáč<br />
* gateway 147.32.11.1<br />
* netmask 255.255.255.0<br />
* default VLAN 13<br />
<br />
==Privátní rozsahy==<br />
* správce Petr Vokáč<br />
===172.16.0.0/24 - spojovačky===<br />
<br />
===172.16.1.0/24 - management===<br />
* gateway 172.16.1.1 (routovat přes VPN a 172.16.0.0/24 do Břehovky a Tróji)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
====172.16.1.0/27 - Počítače správy sítě (zatím nerealizováno)====<br />
* správce Petr Vokáč<br />
====172.16.1.32/27 - IPMI/KVM management====<br />
* správce Petr Vokáč<br />
====172.16.1.64/26 - switch management (zatím nerealizováno)====<br />
* správce Petr Vokáč<br />
====172.16.1.160/27 - Tiskárny====<br />
* správce Míra Minárik, Pavel Kerouš<br />
* tiskárnám nutno přiřazovat ručně<br />
* Maska: 255.255.255.0<br />
* Gateway: 172.16.1.151<br />
====172.16.1.192/27 - Tiskárny====<br />
* správce Míra Minárik, Pavel Kerouš<br />
* tiskárnám nutno přiřazovat ručně<br />
* Maska: 255.255.255.0<br />
* Gateway: 172.16.1.151<br />
<br />
===172.16.11.0/24 - unregistered===<br />
* gateway 172.16.11.1 (NAT + Firewall na zaregistrované klienty přes web formulář)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===172.16.21.0/24 - WiFi FJFI===<br />
* gateway 172.16.21.1 (NAT + Firewall na autentizované klienty přes web formulář)<br />
* netmask 255.255.255.0<br />
* default VLAN 15<br />
<br />
===172.16.31.0/24 - eduroam - blokovaná zařízení===<br />
* gateway 172.16.31.1 (přístup pouze na web NMS, info o blokaci, žádný NAT)<br />
* netmask 255.255.255.0<br />
* default VLAN 13<br />
<br />
===172.16.41.0/24 - wififjfi - blokovaná zařízení===<br />
* gateway 172.16.41.1 (přístup pouze na web NMS, info o blokaci, žádný NAT)<br />
* netmask 255.255.255.0<br />
* default VLAN 15<br />
<br />
===172.16.51.0/24 - OpenVPN public UDP===<br />
* gateway 172.16.51.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.52.0/24 - OpenVPN public TCP===<br />
* gateway 172.16.52.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.61.0/24 - OpenVPN admin UDP===<br />
* gateway 172.16.61.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.62.0/24 - OpenVPN admin TCP===<br />
* gateway 172.16.62.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.81.0/24 - private server (Břehová-Trojanova)===<br />
* gateway 172.16.81.1<br />
* netmask 255.255.255.0<br />
* VLAN 16<br />
* L2 segment mezi Břehovkou a Trojankou (pro Windows Cluster)<br />
<br />
===172.16.91.0/24 - private server===<br />
* gateway 172.16.91.1<br />
* netmask 255.255.255.0<br />
* VLAN 9<br />
* IP rozsah na server segmentu pro management karty<br />
<br />
=Trója=<br />
* správce [http://nms.fjfi.cvut.cz/user/who.php?q=nyvltmar Martin Nývlt], [http://nms.fjfi.cvut.cz/user/who.php?q=fialaja2 Jan Fiala]<br />
==147.32.25.0/24==<br />
* gateway 147.32.25.1<br />
* netmask 255.255.255.0<br />
* rozdělení<br />
** 147.32.25.2-31 - servery<br />
** 147.32.25.32-127 - staticky rezervované IP<br />
** 147.32.25.128/25 - dynamicky přidělované IP<br />
<br />
==Privátní rozsahy==<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.5.0/24 - management<br />
* 172.16.15.0/24 - registrace<br />
* 172.16.25.0/24 - wififjfi<br />
* 172.16.35.0/24 - eduroam - blokovaná zařízení<br />
* 172.16.45.0/24 - wififjfi - blokovaná zařízení<br />
<br />
=Děčín=<br />
* správce [http://nms.fjfi.cvut.cz/user/who.php?q=sumpepre Přemysl Šumpela]<br />
<br />
==147.32.22.0/24==<br />
* gateway 147.32.22.1<br />
* netmask 255.255.255.0<br />
<br />
==Privátní rozsahy==<br />
<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.7.0/24 - management<br />
* 172.16.17.0/24 - registrace<br />
* 172.16.27.0/24 (VLAN 15) - wififjfi<br />
* <strike>172.16.37.0/24 (VLAN 13) - eduroam - blokovaná zařízení</strike><br />
* 172.16.47.0/24 (VLAN 15) - wififjfi - blokovaná zařízení<br />
<br />
=Privátní rozsahy (nový plán)=<br />
* správce Petr Vokáč<br />
<br />
Tento plán také není úplně perfektní (např. zatím nepočítá s OpenVPN segmenty, "zbytečně" plýtvá IP rozsahy, ...), takže nebude realizován dokud nebude přehodnocen a doplněn.<br />
<br />
<strike><br />
==172.16.0.0/19 - správa privátních rozsahů==<br />
===172.16.0.0/20 - loopback IP===<br />
* dummy interface s IP ve tvaru 172.16.x.y pro subnet 172.16+x.y.0/24<br />
* propagovat přes OSPF, proroutovat přes VPN<br />
===172.16.16.0/20 - interface IP===<br />
* FIXME: rozmyslet<br />
<br />
==172.16.32.0/19 - management==<br />
===172.16.32.0/20 - unsecure===<br />
* gateway 172.16.32+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
* proroutovat přes VPN<br />
===172.16.48.0/20 - secure (plán pro oddělenou management VLAN)===<br />
* gateway 172.16.48+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN ???<br />
* proroutovat přes VPN<br />
<br />
==172.16.64.0/19 - servers==<br />
* gateway 172.16.32+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN 9<br />
* proroutovat přes VPN<br />
<br />
==172.16.96.0/19 - "inteligent" devices==<br />
* gateway 172.16.96+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN 1<br />
* proroutovat přes VPN<br />
* FJFI privátní síť pro "inteligentní" síťová zařízení, která nelze zabezpečit a mohou tak představovat bezpečnostní hrozbu pro lokální síť (např. síťové tiskárny, ...)<br />
<br />
==172.16.128.0/20 - default==<br />
* gateway 172.16.128.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* default VLAN 1<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.128.0/27 - rezervováno<br />
** 172.16.128.32/27 - neregistrované (zobrazí se registrační formulář, po registraci se povolí NAT)<br />
** 172.16.128.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.128.96/27 - rezervováno<br />
** zbytek - NAT - automaticky povolený<br />
<br />
==172.16.144.0/20 - Eduroam==<br />
* gateway 172.16.144.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* VLAN 13<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.144.0/27 - rezervováno<br />
** 172.16.144.32/27 - rezervováno<br />
** 172.16.144.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.144.96/27 - rezervováno<br />
** zbytek - NAT - automaticky povolený<br />
<br />
==172.16.160.0/20 - WiFiFJFI==<br />
* gateway 172.16.160.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* VLAN 15<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.160.0/27 - rezervováno<br />
** 172.16.160.32/27 - rezervováno<br />
** 172.16.160.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.160.96/27 - rezervováno<br />
** zbytek - NAT - zobrazí se web formulář a po autentizaci s wififjfi jménem/heslem se na firewallu povolí NAT<br />
</strike></div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=IP_rozsahy&diff=2966IP rozsahy2013-10-23T14:07:50Z<p>Keroupav: /* 147.32.8.2-109 - KM zaměstnanci */</p>
<hr />
<div>=Břehovka=<br />
* správce Petr Schlösinger<br />
<br />
==147.32.4.0/24==<br />
* gateway 147.32.4.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
==147.32.5.0/24==<br />
* gateway 147.32.5.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===147.32.5.0/26 - servery===<br />
* chtělo by to vlastní VLAN nebo samostatné routování<br />
<br />
==147.32.9.64/26 - servery==<br />
* správce Petr Vokáč, Petr Schlösinger<br />
* gateway 147.32.9.65<br />
* netmask 255.255.255.192<br />
* VLAN 9 (měla by existovat pouze uvnitř serverovny)<br />
* rozdělení adres<br />
** 147.32.9.66-78 - linux servery<br />
** 147.32.9.82-94 - windows servery<br />
** 147.32.9.96-127 - rezervováno (pro budoucí použití)<br />
<br />
==Privátní rozsahy==<br />
<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.3.0/24 - management<br />
* 172.16.13.0/24 - registrace<br />
* <strike>172.16.23.0/24 (VLAN 15) - wififjfi</strike><br />
* <strike>172.16.33.0/24 (VLAN 13) - eduroam - blokovaná zařízení</strike><br />
* <strike>172.16.43.0/24 (VLAN 15) - wififjfi - blokovaná zařízení</strike><br />
* VLAN 13, VLAN 15, VLAN 16 protaženy mezi Břehovkou a Trojankou => stejný subnet<br />
<br />
=Trojanka=<br />
==147.32.6.0/24 - KFE==<br />
* gateway 147.32.6.1<br />
* netmask 255.255.254.0 (zatím společně se 147.32.7.0)<br />
* default VLAN 1<br />
===147.32.6.0-147.32.6.99===<br />
* vyhrazeno unixářům (Richard Liska, Milan Šiňor)<br />
===147.32.6.100-147.32.6.199===<br />
* pclab, kanceláře, ... (Petr Matlas)<br />
===147.32.6.200-147.32.6.254===<br />
* InfoLab, kanceláře (Josef Blažej)<br />
===147.32.6.255===<br />
* rezervováno pro budoucí segment broadcast po rozdělení segmentu na segmenty 147.32.6.0/24 a 147.32.7.0/24<br />
<br />
==147.32.7.0/24 - DHCP==<br />
* "veřejný" DHCP segment<br />
* gateway 147.32.6.1<br />
* netmask 255.255.254.0 (zatím společně se 147.32.6.0)<br />
* default VLAN 1<br />
<br />
===147.32.7.0/27 - AP Eduroam===<br />
* tento rozsah zatím využit pro IP adresy AP, které potřebují komunikovat s RADIUS servery a nelze je tak jednoduše umístit na privátní segment. Do budoucna by to chtělo lépe rozmyslet a přesunout je jinam (možná 147.32.11.0/27 nebo přeci jen nějaký privatní privatní segment - rozmyslet pro/proti)<br />
<br />
==147.32.8.0/24 - KM, Tereza, ostatní==<br />
* správce Pavel Kerouš<br />
* gateway 147.32.8.1<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
===147.32.8.2-79- KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.110-149 - KM učebny===<br />
* 1xy - umístění počítačů dle poslení trojice čísel v IP adrese<br />
** x je číslo řady<br />
** y je číslo počítače od okna (pro učebnu 115 je to y+5)<br />
* 110 - počítač vepředu v učebně 105<br />
* 115 - počítač vepředu v učebně 115<br />
* 135 - printserver v učebně 105<br />
* 140 - printserver v učebně 115<br />
* 120 - běžící image linuxového klieta v učebně<br />
* 125 - běžící image windows klieta v učebně<br />
<br />
===147.32.8.150-223 - KM zaměstnanci===<br />
* desktopy, frekventované notebooky<br />
<br />
===147.32.8.224-230 - KJ zaměstnanci===<br />
* desktopy<br />
===147.32.8.224/27 - Tereza===<br />
* 147.32.8.241 - 147.32.8.250 desktopy<br />
* 147.32.8.253 - Printer 4x4 Pro<br />
<br />
==147.32.9.0/26 - servery==<br />
* správce Petr Vokáč, Míra Minárik, Pavel Kerouš<br />
* gateway 147.32.9.1<br />
* netmask 255.255.255.192<br />
* VLAN 9 (měla by existovat pouze uvnitř serverovny)<br />
* rozdělení adres<br />
** 147.32.9.2-14 - linux servery<br />
** 147.32.9.18-29 - windows servery<br />
** 147.32.9.30-49 - virtuální stroje (vrk.fjfi.cvut.cz)<br />
** 147.32.9.50-63 - rezervace (pro budoucí účely)<br />
<br />
==147.32.9.64/26 - servery==<br />
* správce Petr Vokáč<br />
* v květnu 2009 přesunuto pro vytvoření server segmentu v Břehovce<br />
<br />
==147.32.9.128/25 - KSE, KJ==<br />
* gateway 147.32.9.129<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
===147.32.9.128/27 - KSE===<br />
* správce Miroslav Virius(?)<br />
===147.32.9.160/27 - Tiskárny===<br />
* 147.32.9.190 rezervace<br />
* 147.32.9.191 rezervace<br />
* správce Míra Minárik, Pavel Kerouš<br />
===147.32.9.192/27 - Tiskárny===<br />
* správce Míra Minárik, Pavel Kerouš<br />
* 147.32.9.192 rezervace<br />
* 147.32.9.212 rezervace<br />
* 147.32.9.213 rezervace<br />
===147.32.9.192/26 - různé===<br />
* správce Petr Vokáč<br />
* zatím pro "speciální" zařízení (kartové systémy, ...)<br />
* není zaručeno, že se s timhle segmentem nebude hýbat (prostě jen zatím nemám po ruce rozumnější rozsah a nevím kam některá zařízení naskládat)<br />
<br />
==147.32.10.0/25 - KMAT==<br />
* správce Petr Kopříva<br />
* gateway 147.32.10.1<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
* připojení přes firewall zrušeno v květnu 2009, původní požadavky:<br />
** odchozí provoz bez omezení (tj. zachovat současný stav)<br />
** povolit všechen příchozí provoz z 147.32.9.0/25 do 147.32.10.0/25<br />
** povolit příchozí provoz odkudkoliv na port 21, 80, 443 na 147.32.10.3<br />
** zakázat ostatní příchozí provoz do 147.32.10.0/25<br />
===147.32.10.85 - 147.32.10.90 - KMAT DHCP===<br />
* stroje bez fixní adresy patřící KMAT dostanou přednostně tyto adresy<br />
* není žádoucí v tomto rozsahu dělat fixní rezervace<br />
<br />
==147.32.10.128/25 - KIPL==<br />
* správce Martin Dráb<br />
* gateway 147.32.10.129<br />
* netmask 255.255.255.128<br />
* default VLAN 1<br />
<br />
==147.32.11.0/24 - Eduroam==<br />
* správce Petr Vokáč<br />
* gateway 147.32.11.1<br />
* netmask 255.255.255.0<br />
* default VLAN 13<br />
<br />
==Privátní rozsahy==<br />
* správce Petr Vokáč<br />
===172.16.0.0/24 - spojovačky===<br />
<br />
===172.16.1.0/24 - management===<br />
* gateway 172.16.1.1 (routovat přes VPN a 172.16.0.0/24 do Břehovky a Tróji)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
====172.16.1.0/27 - Počítače správy sítě (zatím nerealizováno)====<br />
* správce Petr Vokáč<br />
====172.16.1.32/27 - IPMI/KVM management====<br />
* správce Petr Vokáč<br />
====172.16.1.64/26 - switch management (zatím nerealizováno)====<br />
* správce Petr Vokáč<br />
====172.16.1.160/27 - Tiskárny====<br />
* správce Míra Minárik, Pavel Kerouš<br />
* tiskárnám nutno přiřazovat ručně<br />
* Maska: 255.255.255.0<br />
* Gateway: 172.16.1.151<br />
====172.16.1.192/27 - Tiskárny====<br />
* správce Míra Minárik, Pavel Kerouš<br />
* tiskárnám nutno přiřazovat ručně<br />
* Maska: 255.255.255.0<br />
* Gateway: 172.16.1.151<br />
<br />
===172.16.11.0/24 - unregistered===<br />
* gateway 172.16.11.1 (NAT + Firewall na zaregistrované klienty přes web formulář)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
<br />
===172.16.21.0/24 - WiFi FJFI===<br />
* gateway 172.16.21.1 (NAT + Firewall na autentizované klienty přes web formulář)<br />
* netmask 255.255.255.0<br />
* default VLAN 15<br />
<br />
===172.16.31.0/24 - eduroam - blokovaná zařízení===<br />
* gateway 172.16.31.1 (přístup pouze na web NMS, info o blokaci, žádný NAT)<br />
* netmask 255.255.255.0<br />
* default VLAN 13<br />
<br />
===172.16.41.0/24 - wififjfi - blokovaná zařízení===<br />
* gateway 172.16.41.1 (přístup pouze na web NMS, info o blokaci, žádný NAT)<br />
* netmask 255.255.255.0<br />
* default VLAN 15<br />
<br />
===172.16.51.0/24 - OpenVPN public UDP===<br />
* gateway 172.16.51.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.52.0/24 - OpenVPN public TCP===<br />
* gateway 172.16.52.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.61.0/24 - OpenVPN admin UDP===<br />
* gateway 172.16.61.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.62.0/24 - OpenVPN admin TCP===<br />
* gateway 172.16.62.1<br />
* netmask 255.255.255.0<br />
<br />
===172.16.81.0/24 - private server (Břehová-Trojanova)===<br />
* gateway 172.16.81.1<br />
* netmask 255.255.255.0<br />
* VLAN 16<br />
* L2 segment mezi Břehovkou a Trojankou (pro Windows Cluster)<br />
<br />
===172.16.91.0/24 - private server===<br />
* gateway 172.16.91.1<br />
* netmask 255.255.255.0<br />
* VLAN 9<br />
* IP rozsah na server segmentu pro management karty<br />
<br />
=Trója=<br />
* správce [http://nms.fjfi.cvut.cz/user/who.php?q=nyvltmar Martin Nývlt], [http://nms.fjfi.cvut.cz/user/who.php?q=fialaja2 Jan Fiala]<br />
==147.32.25.0/24==<br />
* gateway 147.32.25.1<br />
* netmask 255.255.255.0<br />
* rozdělení<br />
** 147.32.25.2-31 - servery<br />
** 147.32.25.32-127 - staticky rezervované IP<br />
** 147.32.25.128/25 - dynamicky přidělované IP<br />
<br />
==Privátní rozsahy==<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.5.0/24 - management<br />
* 172.16.15.0/24 - registrace<br />
* 172.16.25.0/24 - wififjfi<br />
* 172.16.35.0/24 - eduroam - blokovaná zařízení<br />
* 172.16.45.0/24 - wififjfi - blokovaná zařízení<br />
<br />
=Děčín=<br />
* správce [http://nms.fjfi.cvut.cz/user/who.php?q=sumpepre Přemysl Šumpela]<br />
<br />
==147.32.22.0/24==<br />
* gateway 147.32.22.1<br />
* netmask 255.255.255.0<br />
<br />
==Privátní rozsahy==<br />
<br />
* viz. privátní rozsahy Trojanky<br />
* 172.16.7.0/24 - management<br />
* 172.16.17.0/24 - registrace<br />
* 172.16.27.0/24 (VLAN 15) - wififjfi<br />
* <strike>172.16.37.0/24 (VLAN 13) - eduroam - blokovaná zařízení</strike><br />
* 172.16.47.0/24 (VLAN 15) - wififjfi - blokovaná zařízení<br />
<br />
=Privátní rozsahy (nový plán)=<br />
* správce Petr Vokáč<br />
<br />
Tento plán také není úplně perfektní (např. zatím nepočítá s OpenVPN segmenty, "zbytečně" plýtvá IP rozsahy, ...), takže nebude realizován dokud nebude přehodnocen a doplněn.<br />
<br />
<strike><br />
==172.16.0.0/19 - správa privátních rozsahů==<br />
===172.16.0.0/20 - loopback IP===<br />
* dummy interface s IP ve tvaru 172.16.x.y pro subnet 172.16+x.y.0/24<br />
* propagovat přes OSPF, proroutovat přes VPN<br />
===172.16.16.0/20 - interface IP===<br />
* FIXME: rozmyslet<br />
<br />
==172.16.32.0/19 - management==<br />
===172.16.32.0/20 - unsecure===<br />
* gateway 172.16.32+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* default VLAN 1<br />
* proroutovat přes VPN<br />
===172.16.48.0/20 - secure (plán pro oddělenou management VLAN)===<br />
* gateway 172.16.48+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN ???<br />
* proroutovat přes VPN<br />
<br />
==172.16.64.0/19 - servers==<br />
* gateway 172.16.32+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN 9<br />
* proroutovat přes VPN<br />
<br />
==172.16.96.0/19 - "inteligent" devices==<br />
* gateway 172.16.96+x.1 (kde x == 0 - Trojanka, 1 - Břehovka, 2 - Trója, 3 - Děčín)<br />
* netmask 255.255.255.0<br />
* VLAN 1<br />
* proroutovat přes VPN<br />
* FJFI privátní síť pro "inteligentní" síťová zařízení, která nelze zabezpečit a mohou tak představovat bezpečnostní hrozbu pro lokální síť (např. síťové tiskárny, ...)<br />
<br />
==172.16.128.0/20 - default==<br />
* gateway 172.16.128.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* default VLAN 1<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.128.0/27 - rezervováno<br />
** 172.16.128.32/27 - neregistrované (zobrazí se registrační formulář, po registraci se povolí NAT)<br />
** 172.16.128.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.128.96/27 - rezervováno<br />
** zbytek - NAT - automaticky povolený<br />
<br />
==172.16.144.0/20 - Eduroam==<br />
* gateway 172.16.144.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* VLAN 13<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.144.0/27 - rezervováno<br />
** 172.16.144.32/27 - rezervováno<br />
** 172.16.144.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.144.96/27 - rezervováno<br />
** zbytek - NAT - automaticky povolený<br />
<br />
==172.16.160.0/20 - WiFiFJFI==<br />
* gateway 172.16.160.1<br />
* netmask 255.255.255.0 (případně větší podle potřeby)<br />
* VLAN 15<br />
* zatím pro všechny budovy používat stejný IP rozsah (není v plánu tyto rozsahy proroutovat)<br />
* rozdělení dle zařízení<br />
** 172.16.160.0/27 - rezervováno<br />
** 172.16.160.32/27 - rezervováno<br />
** 172.16.160.64/27 - blokované, smazané (zobrazí se stránka s informací o blokaci a odkazy na správce)<br />
** 172.16.160.96/27 - rezervováno<br />
** zbytek - NAT - zobrazí se web formulář a po autentizaci s wififjfi jménem/heslem se na firewallu povolí NAT<br />
</strike></div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Ucebny&diff=2956Ucebny2013-09-14T09:13:44Z<p>Keroupav: /* Katedra matematiky (105 a 115) */</p>
<hr />
<div>{{Servers}}<br />
<br />
=[http://it.fjfi.cvut.cz/archive.htm Oficiální dokumentace]=<br />
<br />
=Katedra matematiky (105 a 115)=<br />
*ověřování<br />
**uživatelským jménem / heslem<br />
**lokální účet "student"<br />
*HW konfigurace<br />
**Intel Core i5-3470S 2.9 GHz, 6 MB<br />
**MB GIGABYTE MB 1155 Z77 Z77-HD3<br />
**RAM 8 GB (2x4GB 1600MHz DDR3)<br />
**NVIDIA GeForce GT640 (901MHz), 2GB<br />
**HDD 1TB Seagate Constellation CS -7200rpm/SATAIII<br />
**DVD-RW<br />
*Operační systémy (Windows boot manager)<br />
**MS Windows 7 Enterprise Eng (instalovány jazykové verze CZE, FRA, GER, RUS, UKR)<br />
***Linux Centos 6 virtualizovaný<br />
**Linux Fedora Experiment<br />
*Rozdělení disku<br />
**SDA1 (Win7, NTFS, )<br />
**SDA2 (Win7, NTFS, )<br />
**SDA3 (Boot, EXT3, )<br />
**SDA4 EXT<br />
**SDA5 (Swap, ) <br />
**SDA6 (Fedora,EXT3, )<br />
**SDA7 (Fedora,EXT3, )<br />
*SW výbava na platformě Windows<br />
**Microsoft Office 2010 Professional CZ<br />
**Microsoft Visual Studio 2012 Ultimate SP3 EN<br />
**Corel WinZip 16 Pro EN<br />
**C.Ghisler Total Commander 8.1 EN,CZ<br />
**Adobe Reader XI 11.0.3 CZ<br />
**Microsoft SilverLight 5.1.20513.0 EN<br />
**Microsoft Internet Explorer 10 EN<br />
**Eclipse Standard 4.3 EN<br />
**Oracle JDK 7u25 with NetBeans 7.3.1 EN<br />
**Opera Software Opera 15 EN<br />
**Eclipse Contrib. Eclipse Kepler Standard 4.3 EN<br />
**Lazarus 1.0.1 [2.6.2] EN<br />
**MapleSoft Maple 17 EN<br />
**Wolfram Mathematica 9 EN<br />
**MathWorks Matlab R2013a EN<br />
**MikteX Basic 2.9 EN,CZ<br />
**Oracle JavaFX Scene Builder 1.0 EN <br />
**Microsoft SQL Server Enterprise 2012 EN<br />
**A. Simonic WinEdt 5.5 EN<br />
**J.Fiala PSPad 4.5.7 EN,CZ<br />
**A.Korotich PowerGui 3.2 EN<br />
**Microsoft Windows 7 SDK EN<br />
**Borland Delphi 5 EN<br />
**Borland C++Builder 4 EN<br />
**Python 3.3.2 EN<br />
**Vmware Inc. VMWare Player 5.02 EN<br />
**A. Burgmeier Gobby 0.4.94 EN<br />
**EasyPHP-12.1 with PHP-5.4.6 EN<br />
**TortoiseSVN 1.8.0 EN<br />
<br />
==Požadavky k nové instalaci==<br />
<br />
* virtualizace<br />
** místo na image virtuálních strojů (minimálně 100GB)<br />
** c:\???? (práva zápisu pouze pro admin)<br />
** kdokoliv z vyučujících může po domluvě umístit vlastni virtualní image pro výuku (aktuálně je podporován VMPlayer a VirtualBox)<br />
** VMPlayer<br />
*** konfigurace sítí (např. portforwarding pro NATované virtuální mašiny)<br />
*** rundll32.exe vmnetui.dll VMNetUI_ShowStandalone<br />
<br />
* SW<br />
** klienti pro GUI přístup ([http://www.nomachine.com/download.php NX], [http://sourceforge.net/projects/tigervnc/ VNC])<br />
** X server pro windows ([http://sourceforge.net/projects/xming/ Xming])<br />
<br />
* Firewall<br />
** povolit příchozí spojení na port 22 z libovolné IP (přístup na SSH server portforwardnutý do virtuální mašiny)<br />
** povolit příchozí spojení na port 3389 z libovolné(?) IP (přístup na windows remote desktop)<br />
** povolit komunikaci na port 5000-5010 ze strojů v učebně (nebo 147.32.8.0/24 + lokální privátní subnet)<br />
** povolit komunikaci na port 10000-11000 ze strojů v učebně (nebo 147.32.8.0/24 + lokální privátní subnet)<br />
** portforward z do virtuálních mašin(?), '''rozmyslet''' co by bylo vhodné a na jaká IP:port (součást konfiguračního souboru VirtualBox)<br />
<br />
=Terminálový server=<br />
*IP 147.32.8.109, srk.fjfi.cvut.cz<br />
*ověřování<br />
**uživatelským jménem / heslem<br />
** 80 licenci CAL per device<br />
*MS Terminal Server na platformě Windows 2003 Enterprise Server<br />
*HW konfigurace<br />
**4x QuadCore Intel Xeon X7330 (Tigerton 2,40GHz@1066FSB 6MB cache<br />
**Superserver 8025C-3R 2U 4xXeonMP@1066,2GLAN,SAS 6SCA,24FB-D,rPS<br />
**RAM 48GB 667MHz DDR2 ECC Fully Buff.,Dual Rank, x4 ,CL5<br />
**HDD 5x 146,8GB Cheetah 15K.5 ST3146855SS 15000RPM/3,5ms/SAS/16 Raid 6<br />
**DVD-ROM<br />
*Operační systém<br />
**MS Windows 2003 Enterprise Server</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Ucebny&diff=2954Ucebny2013-07-18T11:24:55Z<p>Keroupav: /* Katedra matematiky (105 a 115) */</p>
<hr />
<div>{{Servers}}<br />
<br />
=[http://it.fjfi.cvut.cz/archive.htm Oficiální dokumentace]=<br />
<br />
=Katedra matematiky (105 a 115)=<br />
*ověřování<br />
**uživatelským jménem / heslem<br />
**lokální účet "student"<br />
*HW konfigurace<br />
**Intel Core i5-3470S 2.9 GHz, 6 MB<br />
**MB GIGABYTE MB 1155 Z77 Z77-HD3<br />
**RAM 8 GB (2x4GB 1600MHz DDR3)<br />
**NVIDIA GeForce GT640 (901MHz), 2GB<br />
**HDD 1TB Seagate Constellation CS -7200rpm/SATAIII<br />
**DVD-RW<br />
*Operační systémy (Grub boot manager)<br />
**MS Windows 7 Enterprise Eng (instalovány jazykové verze CZE, FRA, GER, RUS, UKR)<br />
**Linux Fedora Core 8<br />
**Linux CentOS 5<br />
*Rozdělení disku<br />
**SDA1 (Win7, NTFS, )<br />
**SDA2 (Win7, NTFS, )<br />
**SDA3 (Boot, EXT3, )<br />
**SDA4 EXT<br />
**SDA5 (Swap, ) <br />
**SDA6 (Fedora,EXT3, )<br />
**SDA7 (Fedora,EXT3, )<br />
*SW výbava na platformě Windows<br />
**Microsoft Office 2010 Professional CZ<br />
**Microsoft Visual Studio 2012 Ultimate SP3 EN<br />
**Corel WinZip 16 Pro EN<br />
**C.Ghisler Total Commander 8.1 EN,CZ<br />
**Adobe Reader XI 11.0.3 CZ<br />
**Microsoft SilverLight 5.1.20513.0 EN<br />
**Microsoft Internet Explorer 10 EN<br />
**Eclipse Standard 4.3 EN<br />
**Oracle JDK 7u25 with NetBeans 7.3.1 EN<br />
**Opera Software Opera 15 EN<br />
**Eclipse Contrib. Eclipse Kepler Standard 4.3 EN<br />
**Lazarus 1.0.1 [2.6.2] EN<br />
**MapleSoft Maple 17 EN<br />
**Wolfram Mathematica 9 EN<br />
**MathWorks Matlab R2013a EN<br />
**MikteX Basic 2.9 EN,CZ<br />
**Oracle JavaFX Scene Builder 1.0 EN <br />
**Microsoft SQL Server Enterprise 2012 EN<br />
**A. Simonic WinEdt 5.5 EN<br />
**J.Fiala PSPad 4.5.7 EN,CZ<br />
**A.Korotich PowerGui 3.2 EN<br />
**Microsoft Windows 7 SDK EN<br />
**Borland Delphi 5 EN<br />
**Borland C++Builder 4 EN<br />
**Python 3.3.2 EN<br />
**Vmware Inc. VMWare Player 5.02 EN<br />
**A. Burgmeier Gobby 0.4.94 EN<br />
**EasyPHP-12.1 with PHP-5.4.6 EN<br />
**TortoiseSVN 1.8.0 EN<br />
<br />
==Požadavky k nové instalaci==<br />
<br />
* virtualizace<br />
** místo na image virtuálních strojů (minimálně 100GB)<br />
** c:\???? (práva zápisu pouze pro admin)<br />
** kdokoliv z vyučujících může po domluvě umístit vlastni virtualní image pro výuku (aktuálně je podporován VirtualBox)<br />
<br />
* SW<br />
** klienti pro GUI přístup ([http://www.nomachine.com/download.php NX], [http://sourceforge.net/projects/tigervnc/ VNC])<br />
** X server pro windows ([http://sourceforge.net/projects/xming/ Xming])<br />
<br />
* Firewall<br />
** povolit příchozí spojení na port 22 z libovolné IP (přístup na SSH server portforwardnutý do virtuální mašiny)<br />
** povolit příchozí spojení na port 3389 z libovolné(?) IP (přístup na windows remote desktop)<br />
** povolit komunikaci na port 5000-5010 ze strojů v učebně (nebo 147.32.8.0/24 + lokální privátní subnet)<br />
** povolit komunikaci na port 10000-11000 ze strojů v učebně (nebo 147.32.8.0/24 + lokální privátní subnet)<br />
** portforward z do virtuálních mašin(?), '''rozmyslet''' co by bylo vhodné a na jaká IP:port (součást konfiguračního souboru VirtualBox)<br />
<br />
=Terminálový server=<br />
*IP 147.32.8.109, srk.fjfi.cvut.cz<br />
*ověřování<br />
**uživatelským jménem / heslem<br />
** 80 licenci CAL per device<br />
*MS Terminal Server na platformě Windows 2003 Enterprise Server<br />
*HW konfigurace<br />
**4x QuadCore Intel Xeon X7330 (Tigerton 2,40GHz@1066FSB 6MB cache<br />
**Superserver 8025C-3R 2U 4xXeonMP@1066,2GLAN,SAS 6SCA,24FB-D,rPS<br />
**RAM 48GB 667MHz DDR2 ECC Fully Buff.,Dual Rank, x4 ,CL5<br />
**HDD 5x 146,8GB Cheetah 15K.5 ST3146855SS 15000RPM/3,5ms/SAS/16 Raid 6<br />
**DVD-ROM<br />
*Operační systém<br />
**MS Windows 2003 Enterprise Server</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Ucebny&diff=2953Ucebny2013-07-18T11:24:42Z<p>Keroupav: /* Katedra matematiky (105 a 115) */</p>
<hr />
<div>{{Servers}}<br />
<br />
=[http://it.fjfi.cvut.cz/archive.htm Oficiální dokumentace]=<br />
<br />
=Katedra matematiky (105 a 115)=<br />
*ověřování<br />
**uživatelským jménem / heslem<br />
**lokální účet "student"<br />
*HW konfigurace<br />
**Intel Core i5-3470S 2.9 GHz, 6 MB<br />
**MB GIGABYTE MB 1155 Z77 Z77-HD3<br />
**RAM 8 GB (2x4GB 1600MHz DDR3)<br />
**NVIDIA GeForce GT640 (901MHz), 2GB<br />
**HDD 1TB Seagate Constellation CS -7200rpm/SATAIII<br />
**DVD-RW<br />
*Operační systémy (Grub boot manager)<br />
**MS Windows 7 Enterprise Eng (instalovány jazykové verze CZE, GER, RUS, UKR)<br />
**Linux Fedora Core 8<br />
**Linux CentOS 5<br />
*Rozdělení disku<br />
**SDA1 (Win7, NTFS, )<br />
**SDA2 (Win7, NTFS, )<br />
**SDA3 (Boot, EXT3, )<br />
**SDA4 EXT<br />
**SDA5 (Swap, ) <br />
**SDA6 (Fedora,EXT3, )<br />
**SDA7 (Fedora,EXT3, )<br />
*SW výbava na platformě Windows<br />
**Microsoft Office 2010 Professional CZ<br />
**Microsoft Visual Studio 2012 Ultimate SP3 EN<br />
**Corel WinZip 16 Pro EN<br />
**C.Ghisler Total Commander 8.1 EN,CZ<br />
**Adobe Reader XI 11.0.3 CZ<br />
**Microsoft SilverLight 5.1.20513.0 EN<br />
**Microsoft Internet Explorer 10 EN<br />
**Eclipse Standard 4.3 EN<br />
**Oracle JDK 7u25 with NetBeans 7.3.1 EN<br />
**Opera Software Opera 15 EN<br />
**Eclipse Contrib. Eclipse Kepler Standard 4.3 EN<br />
**Lazarus 1.0.1 [2.6.2] EN<br />
**MapleSoft Maple 17 EN<br />
**Wolfram Mathematica 9 EN<br />
**MathWorks Matlab R2013a EN<br />
**MikteX Basic 2.9 EN,CZ<br />
**Oracle JavaFX Scene Builder 1.0 EN <br />
**Microsoft SQL Server Enterprise 2012 EN<br />
**A. Simonic WinEdt 5.5 EN<br />
**J.Fiala PSPad 4.5.7 EN,CZ<br />
**A.Korotich PowerGui 3.2 EN<br />
**Microsoft Windows 7 SDK EN<br />
**Borland Delphi 5 EN<br />
**Borland C++Builder 4 EN<br />
**Python 3.3.2 EN<br />
**Vmware Inc. VMWare Player 5.02 EN<br />
**A. Burgmeier Gobby 0.4.94 EN<br />
**EasyPHP-12.1 with PHP-5.4.6 EN<br />
**TortoiseSVN 1.8.0 EN<br />
<br />
==Požadavky k nové instalaci==<br />
<br />
* virtualizace<br />
** místo na image virtuálních strojů (minimálně 100GB)<br />
** c:\???? (práva zápisu pouze pro admin)<br />
** kdokoliv z vyučujících může po domluvě umístit vlastni virtualní image pro výuku (aktuálně je podporován VirtualBox)<br />
<br />
* SW<br />
** klienti pro GUI přístup ([http://www.nomachine.com/download.php NX], [http://sourceforge.net/projects/tigervnc/ VNC])<br />
** X server pro windows ([http://sourceforge.net/projects/xming/ Xming])<br />
<br />
* Firewall<br />
** povolit příchozí spojení na port 22 z libovolné IP (přístup na SSH server portforwardnutý do virtuální mašiny)<br />
** povolit příchozí spojení na port 3389 z libovolné(?) IP (přístup na windows remote desktop)<br />
** povolit komunikaci na port 5000-5010 ze strojů v učebně (nebo 147.32.8.0/24 + lokální privátní subnet)<br />
** povolit komunikaci na port 10000-11000 ze strojů v učebně (nebo 147.32.8.0/24 + lokální privátní subnet)<br />
** portforward z do virtuálních mašin(?), '''rozmyslet''' co by bylo vhodné a na jaká IP:port (součást konfiguračního souboru VirtualBox)<br />
<br />
=Terminálový server=<br />
*IP 147.32.8.109, srk.fjfi.cvut.cz<br />
*ověřování<br />
**uživatelským jménem / heslem<br />
** 80 licenci CAL per device<br />
*MS Terminal Server na platformě Windows 2003 Enterprise Server<br />
*HW konfigurace<br />
**4x QuadCore Intel Xeon X7330 (Tigerton 2,40GHz@1066FSB 6MB cache<br />
**Superserver 8025C-3R 2U 4xXeonMP@1066,2GLAN,SAS 6SCA,24FB-D,rPS<br />
**RAM 48GB 667MHz DDR2 ECC Fully Buff.,Dual Rank, x4 ,CL5<br />
**HDD 5x 146,8GB Cheetah 15K.5 ST3146855SS 15000RPM/3,5ms/SAS/16 Raid 6<br />
**DVD-ROM<br />
*Operační systém<br />
**MS Windows 2003 Enterprise Server</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Ucebny&diff=2952Ucebny2013-07-18T11:14:09Z<p>Keroupav: /* Katedra matematiky (105 a 115) */</p>
<hr />
<div>{{Servers}}<br />
<br />
=[http://it.fjfi.cvut.cz/archive.htm Oficiální dokumentace]=<br />
<br />
=Katedra matematiky (105 a 115)=<br />
*ověřování<br />
**uživatelským jménem / heslem<br />
**lokální účet "student"<br />
*HW konfigurace<br />
**Intel Core i5-3470S 2.9 GHz, 6 MB<br />
**MB GIGABYTE MB 1155 Z77 Z77-HD3<br />
**RAM 8 GB (2x4GB 1600MHz DDR3)<br />
**NVIDIA GeForce GT640 (901MHz), 2GB<br />
**HDD 1TB Seagate Constellation CS -7200rpm/SATAIII<br />
**DVD-RW<br />
*Operační systémy (Grub boot manager)<br />
**MS Windows 7 Enterprise Eng<br />
**Linux Fedora Core 8<br />
**Linux CentOS 5<br />
*Rozdělení disku<br />
**SDA1 (Win7, NTFS, )<br />
**SDA2 (Win7, NTFS, )<br />
**SDA3 (Boot, EXT3, )<br />
**SDA4 EXT<br />
**SDA5 (Swap, ) <br />
**SDA6 (Fedora,EXT3, )<br />
**SDA7 (Fedora,EXT3, )<br />
*SW výbava na platformě Windows<br />
**Microsoft Office 2010 Professional CZ<br />
**Microsoft Visual Studio 2012 Ultimate SP3 EN<br />
**Corel WinZip 16 Pro EN<br />
**C.Ghisler Total Commander 8.1 EN,CZ<br />
**Adobe Reader XI 11.0.3 CZ<br />
**Microsoft SilverLight 5.1.20513.0 EN<br />
**Microsoft Internet Explorer 10 EN<br />
**Eclipse Standard 4.3 EN<br />
**Oracle JDK 7u25 with NetBeans 7.3.1 EN<br />
**Opera Software Opera 15 EN<br />
**Eclipse Contrib. Eclipse Kepler Standard 4.3 EN<br />
**Lazarus 1.0.1 [2.6.2] EN<br />
**MapleSoft Maple 17 EN<br />
**Wolfram Mathematica 9 EN<br />
**MathWorks Matlab R2013a EN<br />
**MikteX Basic 2.9 EN,CZ<br />
**Oracle JavaFX Scene Builder 1.0 EN <br />
**Microsoft SQL Server Enterprise 2012 EN<br />
**A. Simonic WinEdt 5.5 EN<br />
**J.Fiala PSPad 4.5.7 EN,CZ<br />
**A.Korotich PowerGui 3.2 EN<br />
**Microsoft Windows 7 SDK EN<br />
**Borland Delphi 5 EN<br />
**Borland C++Builder 4 EN<br />
**Python 3.3.2 EN<br />
**Vmware Inc. VMWare Player 5.02 EN<br />
**A. Burgmeier Gobby 0.4.94 EN<br />
**EasyPHP-12.1 with PHP-5.4.6 EN<br />
**TortoiseSVN 1.8.0 EN<br />
<br />
==Požadavky k nové instalaci==<br />
<br />
* virtualizace<br />
** místo na image virtuálních strojů (minimálně 100GB)<br />
** c:\???? (práva zápisu pouze pro admin)<br />
** kdokoliv z vyučujících může po domluvě umístit vlastni virtualní image pro výuku (aktuálně je podporován VirtualBox)<br />
<br />
* SW<br />
** klienti pro GUI přístup ([http://www.nomachine.com/download.php NX], [http://sourceforge.net/projects/tigervnc/ VNC])<br />
** X server pro windows ([http://sourceforge.net/projects/xming/ Xming])<br />
<br />
* Firewall<br />
** povolit příchozí spojení na port 22 z libovolné IP (přístup na SSH server portforwardnutý do virtuální mašiny)<br />
** povolit příchozí spojení na port 3389 z libovolné(?) IP (přístup na windows remote desktop)<br />
** povolit komunikaci na port 5000-5010 ze strojů v učebně (nebo 147.32.8.0/24 + lokální privátní subnet)<br />
** povolit komunikaci na port 10000-11000 ze strojů v učebně (nebo 147.32.8.0/24 + lokální privátní subnet)<br />
** portforward z do virtuálních mašin(?), '''rozmyslet''' co by bylo vhodné a na jaká IP:port (součást konfiguračního souboru VirtualBox)<br />
<br />
=Terminálový server=<br />
*IP 147.32.8.109, srk.fjfi.cvut.cz<br />
*ověřování<br />
**uživatelským jménem / heslem<br />
** 80 licenci CAL per device<br />
*MS Terminal Server na platformě Windows 2003 Enterprise Server<br />
*HW konfigurace<br />
**4x QuadCore Intel Xeon X7330 (Tigerton 2,40GHz@1066FSB 6MB cache<br />
**Superserver 8025C-3R 2U 4xXeonMP@1066,2GLAN,SAS 6SCA,24FB-D,rPS<br />
**RAM 48GB 667MHz DDR2 ECC Fully Buff.,Dual Rank, x4 ,CL5<br />
**HDD 5x 146,8GB Cheetah 15K.5 ST3146855SS 15000RPM/3,5ms/SAS/16 Raid 6<br />
**DVD-ROM<br />
*Operační systém<br />
**MS Windows 2003 Enterprise Server</div>Keroupavhttps://nms.fjfi.cvut.cz/wiki/index.php?title=Konto&diff=2929Konto2012-09-19T09:56:28Z<p>Keroupav: /* UŽIVATELSKÉ ÚČTY: ČVUT */</p>
<hr />
<div>===UŽIVATELSKÉ ÚČTY: ČVUT===<br />
* Přístupový systém (ACS)<br />
** http://www.cvut.cz/informace-pro-studenty/is/acs<br />
** Práva nastavuje a problémy řeší:<br />
*** Obecně <br />
**** vydavatelství karet v Dejvicích<br />
*** V rámci fakulty <br />
**** správce budovy na pokyn odpovědné osoby (fakulta, katedra atd.)<br />
* Usermap (SSU)<br />
** https://usermap.cvut.cz<br />
** Správa účtu (změna hesla)<br />
** Vyhledávání osob v ČVUT<br />
** Vzniká a zaniká s oficiálním vztahem k ČVUT, spravuje VIC<br />
** Problémy s účtem (přihlášení) řeší primárně správce FJFI (viz. sekce KONTAKTY https://nms.fjfi.cvut.cz/wiki/Konto#KONTAKTY)<br />
* KOS<br />
** http://kos.cvut.cz<br />
** Studijní IS<br />
** Vzniká a zaniká s oficiálním vztahem k ČVUT, spravuje VIC<br />
* Další služby<br />
** http://download.cvut.cz<br />
** http://knihovna.cvut.cz<br />
<br />
===UŽIVATELSKÉ ÚČTY: FJFI===<br />
* Aktivace konta<br />
** http://nms.fjfi.cvut.cz<br />
** https://nms.fjfi.cvut.cz/user/konto.php<br />
** Nejprve aktivace – autentizace Usermap<br />
*** instrukce prostřednictvím emailu<br />
** Správa účtu<br />
* Přístup k fakultním prostředkům<br />
** Vlastní zařízení (Wi-Fi, ethernet, vzdálený přístup)<br />
** PC učebny Trojanova KM (Windows + Linux)<br />
* Pozn: ostatní prostředky (PC laboratoře) spravují lokální správci jednotlivých kateder<br />
===IT SLUŽBY FJFI===<br />
* Email<br />
** username@fjfi.cvut.cz<br />
** Přístup k emailu:<br />
*** http://webmail.fjfi.cvut.cz<br />
*** POP3, IMAP<br />
**** servery příchozí pošty: imap.fjfi.cvut.cz (SSL - port 993)<br />
**** Server odchozí pošty (z vnitřní sítě): smtp.fjfi.cvut.cz (SSL – port 465)<br />
** Přesměrování a další nastavení:<br />
*** http://webmail.fjfi.cvut.cz<br />
** Limit 300 MB (na žádost lze zvýšit)<br />
* Data a Web<br />
** Home Directory<br />
*** \\fjfi.cvut.cz\frk\home\username <br />
*** Při přihlášení z Windows do domény se mapuje automaticky jako M:<br />
*** Přístup mimo síť FJFI:<br />
**** Webdav: http://people.fjfi.cvut.cz/home/username<br />
**** SCP: scp.fjfi.cvut.cz<br />
** WebDirectory<br />
*** http://people.fjfi.cvut.cz/username<br />
*** Podpora PHP, ASP<br />
*** \\fjfi.cvut.cz\frk\www2\username<br />
*** Při přihlášení z Windows do domény se mapuje automaticky jako P:<br />
*** Přístup mimo síť FJFI:<br />
**** SCP: scp.fjfi.cvut.cz<br />
** Limit (na všechna data): 1 GB (na žádost lze zvýšit)<br />
* Terminálový server<br />
** Srk.fjfi.cvut.cz<br />
*** Windows 2003 64-bit<br />
*** Remote desktop (mstsc)<br />
===PŘIPOJENÍ K SÍTI===<br />
* Připojení vlastního zařízení:<br />
** povinná registrace zařízení pomocí účtu FJFI <br />
** ethernet<br />
*** Např. učebna T115, studovna T214, chodby …<br />
** Wi-Fi<br />
*** Eduroam<br />
**** aktivace na http://nms.fjfi.cvut.cz<br />
**** přihlášení pomocí fakultní emailové adresy username@fjfi.cvut.cz a hesla, nastaveného přes rozhraní NMS<br />
**** popis na http://eduroam.fjfi.cvut.cz<br />
*** WIFIFJFI<br />
**** sktivace na [http://nms.fjfi.cvut.cz]<br />
**** přihlášení pomocí fakultního username a hesla, nastaveného přes rozhraní NMS<br />
* Přihlášení k PC v počítačových učebnách<br />
** T105 a T115 <br />
** Windows 7 SP1, Windows XP, Linux<br />
*** Pro systémy Windows:<br />
**** síťové přihlášení: FJFI účet<br />
**** lokální přihlášení: vyuka/3+stupidTV<br />
*** Pro systémy Linux:<br />
**** síťové přihlášení: FJFI účet<br />
**** lokální přihlášení: sdělí vyučující<br />
<br />
===SW PROGRAMY===<br />
* Licence ČVUT<br />
** Matematické editory<br />
*** Matlab, Mathemetica, Maple<br />
*** http://download.cvut.cz<br />
** Licence MSDN AA (Katedra matematiky)<br />
*** Produkty MS<br />
*** Kontaktovat správce licencí (Pavel Kerouš, Zdeněk Čulík)<br />
*** Vydávány na oficiálně podanou žádost (email, osobně) v souladu s pravidly používání programu<br />
===KONTAKTY===<br />
* Email:<br />
** Požadavky odesílejte z oficiálního školního serveru (je kontrolována odchozí adresa i IP adresa stroje)<br />
* Osobně<br />
** budova Břehová<br />
*** Petr Schlosinger (petr.schlosinger@fjfi.cvut.cz)<br />
** budova Trojanova<br />
*** Pavel Kerouš (pavel.kerous@fjfi.cvut.cz)<br />
** budova Děčín<br />
*** Přemysl Šumpela (premysl.sumpela@fjfi.cvut.cz)<br />
* Webové zdroje:<br />
** http://it.fjfi.cvut.cz (stránky správy IT - v provozu od října)<br />
** http://www.fjfi.cvut.cz (oficiální stránky fakulty)<br />
** http://nms.fjfi.cvut.cz (správa účtu)<br />
** http://webmail.fjfi.cvut.cz (přístup k emailu)</div>Keroupav