PSSonicWall: Consultas a SonicWall desde PowerShell
Una de las tecnologías con las que acostumbro a trabajar en mi día a día son firewalls SonicWall. Hace un tiempo busqué en la PowerShell Gallery algún módulo para trabajar nativamente con SonicWall desde PowerShell y mi sorpresa fue que no encontré ninguno.
En las últimas semanas he estado trabajando en un módulo con el que realizar consultas a firewalls SonicWall desde PowerShell y hoy os traigo la primera versión de PSSonicWall.
Acerca de PSSonicWall
PSSonicWall es un módulo hecho 100% con PowerShell del que podéis encontrar el código fuente en su repositorio de GitHub. Se sirve de la SonicOS API, la REST API del sistema operativo de SonicWall introducida en la versión 6.5.1.
Con PSSonicWall podremos, en su primera versión, realizar consultas a cualquier firewall SonicWall desde PowerShell gracias a que todos los appliances utilizan el mismo sistema operativo. Podremos sacar la configuración de las interfaces, las zonas, objetos y muchas cosas más.
Cómo habilitar la SonicOS API
Por defecto en todos los firewalls SonicWall la SonicOS API viene desactivada, por lo que antes de nada deberemos habilitarla:
- Nos logeamos a nuestro firewall con una cuenta de administrador.
- Entramos en la pestaña Manage.
- Appliance > Base Settings.
- Buscamos la sección SonicOS API.
- Marcamos:
- Enable SonicOS API.
- Enable RFC-2617 HTTP Basic Access authentication.
Si no disponemos de estas opciones lo más probable es que nuestro firewall tenga una versión inferior a 6.5.1, por lo que si queremos utilizar PSSonicWall antes deberemos actualizarlo.
Instalando PSSonicWall
PSSonicWall es el primer módulo que subo a la PowerShell Gallery (más acerca de esto en futuros post), lo que hace que instalarlo en cualquier sistema sea de lo más sencillo:
|
|
Una vez acabado el proceso ya tendremos todo lo necesario para interactuar con nuestro appliance SonicWall desde PowerShell. Como siempre podemos consultar todas las funciones disponibles con Get-Command:
Conectar y desconectar a SonicWall desde PowerShell
El primer paso para interactuar con SonicWall desde PowerShell es autenticarse contra el firewall en cuestión. Para ello nos valdremos de Connect-SWAppliance, al que podremos pasarle un objeto PSCredential o, de no hacerlo, nos solicitará unas credenciales.
|
|
Una vez finalice la ejecución ya podremos empezar a interactuar con nuestro appliance.
Es recomendable que cuando acabemos de ejecutar los comandos pertinentes sobre nuestro SonicWall desconectemos la sesión. Para ello simplemente debemos ejecutar Disconnect-SWAppliance:
|
|
Ejecutando comandos sobre SonicWall desde PowerShell
En esta primera versión de PSSonicWall, como habréis podido comprobar en la captura superior, únicamente se incluyen funciones con el verbo Get, por lo que por el momento únicamente podremos listar información. En futuras releases se irán incorporando nuevas funciones con las que podremos automatizar la creación de NATs y ACLs de SonicWall desde PowerShell.
Las funciones actualmente disponibles son las siguientes:
- Get-SWAccessRule: Lista las Access Rules.
- Get-SWAddressGroup: Lista los Address Groups.
- Get-SWAddressObject: Lista los Address Objects.
- Get-SWDns: Lista los DNS.
- Get-SWInterface: Lista las Interfaces.
- Get-SWNatPolicy: Lista los NAT.
- Get-SWRoutePolicy: Lista las reglas de Routing.
- Get-SWSchedule: Lista las programaciones.
- Get-SWServiceGroup: Lista los service Group.
- Get-SWZone: Lista las Zonas.
Si, por ejemplo, quisieramos listar un objeto llamado ‘Sobrebits test’ podríamos hacerlo de la siguiente manera:
Hay que tener en cuenta que todo lo que devuelven estas funciones son objetos, por lo que nos podremos valer de cmdlets típicos de manipulación de objetos para hacer lo que queramos con el resultado:
|
|
Obteniendo ayuda en PSSonicWall
Como en todo módulo que se precie, todas las funciones incluidas en PSSonicWall traen su propia ayuda. Podemos utilizar Get-Help para consultar la funcionalidad detallada de cada una de las funciones así como ejemplos de uso:
De momento esto es todo lo que os quería contar sobre PSSonicWall, en futuras entradas veremos casos de uso más concretos del módulo e iré informando sobre nuevas funciones añadidas. ¡Nos vemos en próximas entradas!