Nastaveni firewallu pres powershell

smoofy

  • *****
  • 1 056
    • Zobrazit profil
    • E-mail
Nastaveni firewallu pres powershell
« kdy: 11. 06. 2013, 15:36:50 »
Ahoj,

snad s tim bude mit nekdo zkusenost a pomuze mi v teto zalezitosti.
Hledam zpusob, jak pomoci powershellu nastavit windowsacky firewall obdobne jako na unix-like systemech skriptem, tj. vse zakazat a postupne dodavat jen pravidla pro spojeni ktera potrebuju. GUI je pro mne nepouzitelne, nakolik to ranec trva a pri vetsim mnozstvi stroju je to mrhani neskutecnym mnozstvim casu a navic bych timto zpusobem mohl resit defaultni instalaci a nastaveni serveru skriptem.
V tuto chvili zkoumam pouziti Get-NetFirewallRule, New-NetFirewallRule etc. nicmene nemam to jeste zazite a pomoc z venci od nekoho, kdo s tim ma zkusenost by byla velice napomocna.


Re:Nastaveni firewallu pres powershell
« Odpověď #1 kdy: 11. 06. 2013, 16:18:14 »
Asi to moc nepomůže, ale zkus mrknout tady: http://technet.microsoft.com/en-us/library/jj554908%28v=wps.620%29.aspx
Dole sou examply, takže snad aspoň trochu.

Taky mě napadá, proč chceš vytvářet firewall/router z Windows OS? Pokud požaduješ nějaká pravidla uvnitř sítě (napadá mě jen oddělení provozu), nebylo by jednodušší řešit to vlanami, jinak bych radši použil nějaký Unix-like systém (jen blbá připomínka, jaké další role ten Windows má, pokud je to například DC, Federační server nebo CA, tak si koledujš o malér, protože vystavit takovýhle server ven není vhodné řešení).

Re:Nastaveni firewallu pres powershell
« Odpověď #2 kdy: 11. 06. 2013, 16:35:14 »
Kdysi jsem pomocí jistých Powershellovských příkazů upravoval chybná pravidla, která si nastavoval ovladač tiskárny, od té doby už to chování ovšem opravili a můj skript jsem si nádherně přeformátoval spolu s diskem (OT :) ). Tehdy jsem to snad ještě dělal s využitím WMI, a to bylo paradoxně možná i trochu jednodušší než tyto příkazy. Ovšem to jen proto, že jsem je tehdy neznal.

Velmi jednoduše:
  • Na všechny změny potřebuješ práva admina. Na prohlížení obvykle stačí uživatelská práva, nicméně některá pravidla se také nedají kompletně prohlížet jako běžný user, takže doporučuju admina.
  • S pomocí New-NetFirewallRule přidáváš nová pravidla; všechny potřebné parametry se zadávají nejlépe jako parametry tohoto příkazu. Příklad jednoduchého pravidla:
Kód: [Vybrat]
New-NetFirewallRule -DisplayName “block ie” -RemoteAddress "192.168.1.1-192.168.1.10" -LocalAddress "192.168.1.101"Více ti řekne MSDN popř. tutoriály na internetu.[/li]
[li]Get-NetFirewallRule vypíše všechna definovaná pravidla, ovšem bez informací o blokovaných/povolených adresách, portech, síťových rozhraních apod. To jsou samostatné filtry, jejichž informace získáš s použitím vhodných příkazů.[/li]
[li]Využiješ kombinace Get-NetFirewallRule, Get-NetFirewallPortFilter, Get-NetFirewallInterfaceFilter apod. (úplný seznam získáš pomocí [/li][/list]
Kód: [Vybrat]
Get-Command -Noun "*firewall*" a vhodným použitím rour (znak |) nakombinuješ tak, abys získal potřebné informace.

Příklad: chci najít pravidlo s portem TCP 3389. Načtu si nejdřív ze seznamu portů správné porty a pak podle nich vyfiltruji pravidla.
Kód: [Vybrat]
PS> $port = Get-NetFirewallPortFilter -Protocol TCP | Where {$_.LocalPort -eq 3389}
PS> $port | Get-NetFirewallRule

DisplayName : Vzdálená plocha – uživatelský režim (TCP-In)
    Dá se to různě kombinovat, takže třeba pokud pomocí Get-NetFirewallRule načteš nějaké pravidlo a chceš získat jeho nastavené porty, bude příkaz vypadat nějak takto:
    Get-NetFirewallRule -DisplayName "Worms*" | Get-NetFirewallPortFilter
    [/li]
  • Jednotlivé vlastnosti je možné měnit velmi podobně - příkazy Set-NetFirewall*. Tyto příkazy akceptují v rourách pouze filtry/pravidla svého druhu, popř. pomocí parametru -DisplayName, -DisplayGroup můžeš vyfiltrovat konkrétní filtry/pravidla. Průser nastane, když nespecifikuješ žádná filtrovací kritéria, jelikož se pak příkaz aplikuje na vše, u čeho to jde. Zkrátka trochu jako linuxový rm -rf :)

Vše je samozřejmě napsané v manuálech, tutoriálech (ty doporučuji), ale tohle je pár základních věcí, které lze použít.

smoofy

  • *****
  • 1 056
    • Zobrazit profil
    • E-mail
Re:Nastaveni firewallu pres powershell
« Odpověď #3 kdy: 11. 06. 2013, 16:52:59 »
to Withy14:
Jedna se v drtive vetsine o webove servery ktere nekteri zakaznici, i z mne neznamych duvodu, pozaduji na windows. Ty servery jsou samozrejme pristupne z Internetu a vzhledem k rozdilnemu rozlozeni po servrovnach pripadne virtualizaci je reseni s externim firewallem dost neohrabane.
Neni to tedy o tom, vytvaret route/firewall z Windows, ale zabezpecit zakladni ochranu systemu jako takoveho a to obousmerne. Casto se totiz stava, ze jsou weby napadeny a pouzivany k DoS utokum.

Vseobecne je situace takova, ze nekteri zakaznici pozaduji windows a maji na to plne pravo a ja nevidim duvod, proc bych jim v tom nemel vyhovet a nebavi mne to nejak zaplatovat ale delat to poradne, nebo alespon co nejlepe umim. Nejsem ortodoxni linuxak a nevidim nic spatneho na rozsireni znalosti systemu i treba do vod MS kdyz se navic ukazuje, jake jsou firmy za to ochotny platit penize.

to Paulos:
diky za namet, urcite si to projdu :)