Obecně je třeba povolit následující příchozí komunikaci:
Protokol/Místní port | Odkud | Popis | Kdy |
---|---|---|---|
ICMP | národní RADIUS, monitoring | ověření dostupnosti | Vždy |
UDP/500 | národní RADIUS | IPsec, IKE | Vždy |
ESP | národní RADIUS | IPsec, ESP | bez použití NAT-T |
UDP/4500 | národní RADIUS | IPsec, ESP zapouzdřené v UDP | při použití NAT-T |
UDP/1812 | národní RADIUS | příchozí Access-Request pakety | RADIUS má roli IdP nebo IdPSP |
UDP/1812 | monitoring, APčka | příchozí Access-Request pakety | RADIUS má roli SP nebo IdPSP |
UDP/1813 | APčka | příchozí Accounting-Request pakety | APčka posílají accounting |
Pokud filtrujete i odchozí komunikaci, tak je třeba povolit i tu:
Protokol/Vzdálený port | Kam | Popis | Kdy |
---|---|---|---|
ICMP | národní RADIUS, monitoring | ověření dostupnosti | Vždy |
UDP/500 | národní RADIUS | IPsec, IKE | Vždy |
ESP | národní RADIUS | IPsec, ESP | bez použití NAT-T |
UDP/4500 | národní RADIUS | IPsec, ESP zapouzdřené v UDP | při použití NAT-T |
UDP/1812 | národní RADIUS | odchozí Access-Request pakety | RADIUS má roli SP nebo IdPSP |
Dále je třeba nastavit, aby komunikace na národní RADIUS a z národního RADIUSU byla uznávána pouze v IPsec transportním módu.
Pro zjednodušení byla pravidla ve scriptu i návodu níže mírně zobecněna. Pokud přesně víte co děláte, můžete si Firewall nastavit přímo podle tabulek nahoře.
Nejjednodušší cesta, jak nastavit Firewall a IPsec pravidla, je stáhnout si náš PowerShell script, otevřít ho v PowerShell ISE a upravit proměnné mezi řádky BEGIN OF CONFIGURATION
a END OF CONFIGURATION
. Pak ho přímo v PowerShell ISE spustit. Script vytvoří pravidla pro Firewall, včetně těch IPsecových, s prefixem _eduroam
. Umí je po sobě i odstranit.
Vše provádíme v PowerShellu s administrátorskými právy. Nejprve si nadefinujeme základní proměnné.
Při použití IP protokolu verze 4 vypadají definice takto:
# tyto je třeba upravit: $local_fqdn = "radius.instituce.cz" $local_ip = "78.77.76.75" $ap_ips = "10.1.1.2", "10.1.1.3", "192.168.215.0/24" # tyto neupravujte: $monitoring_ips = "78.128.248.234" $flr_ips = "78.128.248.10", "78.128.248.11", "78.128.248.12" $icmp_version = "ICMPv4"
Při použití IP protokolu verze 6 vypadají definice takto:
# tyto je třeba upravit: $local_fqdn = "radius.instituce.cz" $local_ip = "2001:78:77:76::75" $ap_ips = "2001:78:77:76::1:2", "2001:78:77:76::1:3", "2001:78:77:76::2:0/112" # tyto neupravujte: $monitoring_ips = "2001:718:ff05:10b::234" $flr_ips = "2001:718:ff05:aca::1:10", "2001:718:ff05:aca::1:11", "2001:718:ff05:aca::1:12" $icmp_version = "ICMPv6"
V případě, že budete chtít použít NAT-T, musíte ho ve Firewallu povolit:
Set-NetFirewallSetting -AllowIPsecThroughNAT Both
Vytvoříme Firewall pravidlo pro příchozí ICMP pakety z národních RADIUSů a monitoringu:
New-NetFirewallRule ` -DisplayName "_eduroam ICMP (IN)" ` -Direction Inbound ` -Protocol $icmp_version ` -LocalAddress $local_ip ` -RemoteAddress $($flr_ips + $monitoring_ips) ` -Action Allow
Vytvoříme Firewall pravidlo pro příchozí RADIUS pakety z národních RADIUSů, monitoringu a APček (pokud APčka nechcete zde řešit, odeberte je z argumentu -RemoteAddress
):
New-NetFirewallRule ` -DisplayName "_eduroam RADIUS (IN)" ` -Direction Inbound ` -Protocol UDP ` -LocalPort 1812,1813 ` -LocalAddress $local_ip ` -RemoteAddress $($flr_ips + $monitoring_ips + $ap_ips) ` -Action Allow
Vytvoříme Firewall pravidlo pro příchozí IPsec UDP:
New-NetFirewallRule ` -DisplayName "_eduroam IPsec UDP (IN)" ` -Direction Inbound ` -Protocol UDP ` -LocalPort 500,4500 ` -LocalAddress $local_ip ` -RemoteAddress $flr_ips ` -Action Allow
Vytvoříme Firewall pravidlo pro příchozí IPsec ESP:
New-NetFirewallRule ` -DisplayName "_eduroam IPsec ESP (IN)" ` -Direction Inbound ` -Protocol 50 ` -LocalAddress $local_ip ` -RemoteAddress $flr_ips ` -Action Allow
Pokud filtrujete odchozí komunikaci, je třeba ještě přidat odchozí pravidla.
Vytvoříme Firewall pravidlo pro odchozí ICMP pakety na národní RADIUSy a monitoring:
New-NetFirewallRule ` -DisplayName "_eduroam ICMP (OUT)" ` -Direction Outbound ` -Protocol $icmp_version ` -LocalAddress $local_ip ` -RemoteAddress $($flr_ips + $monitoring_ips) ` -Action Allow
Vytvoříme Firewall pravidlo pro odchozí RADIUS pakety na národní RADIUSy:
New-NetFirewallRule ` -DisplayName "_eduroam RADIUS (OUT)" ` -Direction Outbound ` -Protocol UDP ` -LocalPort 1812 ` -LocalAddress $local_ip ` -RemoteAddress $flr_ips ` -Action Allow
Vytvoříme Firewall pravidlo pro odchozí IPsec UDP:
New-NetFirewallRule ` -DisplayName "_eduroam IPsec UDP (OUT)" ` -Direction Outbound ` -Protocol UDP ` -LocalPort 500,4500 ` -LocalAddress $local_ip ` -RemoteAddress $flr_ips ` -Action Allow
Vytvoříme Firewall pravidlo pro odchozí IPsec ESP:
New-NetFirewallRule ` -DisplayName "_eduroam IPsec ESP (OUT)" ` -Direction Outbound ` -Protocol 50 ` -LocalAddress $local_ip ` -RemoteAddress $flr_ips ` -Action Allow
Vytvoříme pravidlo pro výběr a ověření lokálního certifikátu:
$selection_proposal = New-NetIPsecAuthProposal ` -Machine ` -Cert ` -Authority "DC=cz, DC=cesnet-ca, O=CESNET CA, CN=eduroam CA 2" ` -AuthorityType Root ` -SubjectName $local_fqdn ` -SubjectNameType DomainName ` -SelectionCriteria
Vytvoříme pravidlo pro výběr a ověření vzdáleného certifikátu:
$validation_proposal = New-NetIPsecAuthProposal ` -Machine ` -Cert ` -Authority "DC=org, DC=edupki, CN=eduPKI CA G 01" ` -AuthorityType Root ` -SubjectName "flr.eduroam.cz" ` -SubjectNameType DomainName ` -ValidationCriteria
Z pravidel pro výběr a ověření certifikátů vytvoříme autentizační sadu:
$auth_set = New-NetIPsecPhase1AuthSet ` -DisplayName "_eduroam AS" ` -Proposal $selection_proposal, $validation_proposal
Nadefinujeme šifrovací parametry pro MainMode pravidlo:
$main_mode_proposal = New-NetIPsecMainModeCryptoProposal ` -Encryption AES256 ` -Hash SHA256 ` -KeyExchange DH20
Za použití šifrovacích parametrů nadefinujeme šifrovací sadu pro MainMode pravidlo:
$main_mode_crypto_set = New-NetIPsecMainModeCryptoSet ` -DisplayName "_eduroam MMCS" ` -MaxMinutes 1440 ` -Proposal $main_mode_proposal
Nadefinujeme šifrovací parametry pro QuickMode pravidlo:
$quick_mode_proposal = New-NetIPsecQuickModeCryptoProposal ` -Encapsulation ESP ` -Encryption AES256 ` -ESPHash SHA256 ` -MaxKiloBytes 102400 ` -MaxMinutes 240
Za použití šifrovacích parametrů nadefinujeme šifrovací sadu pro QuickMode pravidlo:
$quick_mode_crypto_set = New-NetIPsecQuickModeCryptoSet ` -DisplayName "_eduroam QMCS" ` -Proposal $quick_mode_proposal
Sestavíme MainMode pravidlo:
New-NetIPsecMainModeRule ` -DisplayName "_eduroam MainMode" ` -LocalAddress $local_ip ` -RemoteAddress $flr_ips ` -Phase1AuthSet $auth_set.Name ` -MainModeCryptoSet $main_mode_crypto_set.Name
Sestavíme ConSec pravidlo:
New-NetIPSecRule ` -DisplayName "_eduroam ConSec" ` -Mode Transport ` -KeyModule IKEv1 ` -InboundSecurity Require ` -OutboundSecurity Require ` -Protocol Any ` -LocalAddress $local_ip ` -LocalPort Any ` -RemoteAddress $flr_ips ` -RemotePort Any ` -Phase1AuthSet $auth_set.Name ` -QuickModeCryptoSet $quick_mode_crypto_set.Name
Vypsání Firewall pravidel - MainMode:
Netsh AdvFirewall MainMode Show Rule All
Vypsání Firewall pravidel - ConSec:
Netsh AdvFirewall ConSec Show Rule All
Smazání Firewall pravidel:
Remove-NetFirewallRule -DisplayName "_eduroam*"
Smazání IPsec pravidel a sad:
Remove-NetIPsecMainModeRule -DisplayName "_eduroam*" Remove-NetIPSecRule -DisplayName "_eduroam*" Remove-NetIPsecMainModeCryptoSet -DisplayName "_eduroam*" Remove-NetIPsecPhase1AuthSet -DisplayName "_eduroam*"
Nejprve je třeba zapnout auditování sestavování IPSec spojení, to se dělá pomocí Local Group Policy Editor
v Local Computer Policy
→ Computer Configuration
→ Windows Settings
→ Security Settings
→ Advanced Audit Policy
→ System Audit Policies
→ System
→ Logon/Logoff
a tam je potřeba zapnout logování:
Audit IPSec Extended Mode
Audit IPSec Main Mode
Audit IPSec Quick Mode
viz screenshot.
Případně je také možné zapnout auditování IPsec driveru, opět pomocí Local Group Policy Editor
v Local Computer Policy
→ Computer Configuration
→ Windows Settings
→ Security Settings
→ Advanced Audit Policy
→ System Audit Policies
→ System
→ Audit IPsec Driver
. Viz screenshot.
Logy samotné jsou pak k dispozici v Event Viewer
v Windows Logs
→Security
, viz screenshot.
CESNET, z. s. p. o.
Generála Píky 26
160 00 Praha 6
info@cesnet.cz
Tel: +420 234 680 222
GSM: +420 602 252 531
support@cesnet.cz