O pfSense teve a interface completamente redesenhada nas últimas versões. Todas as configurações podem ser facilmente acessadas e ajustadas com essa interface. No entanto, às vezes, você gostaria de fazer configurações por meio de uma API ou através do terminal. No momento, o pfSense não possui uma API, que estará disponível somente em uma das próximas versões. Até lá, você pode usar o shell do desenvolvedor pfSense, também chamado de pfSsh.php.
Acessando pfSsh.php
A maneira mais rápida de acessar o shell do desenvolvedor é conectar-se ao pfSense via SSH ou conectar diretamente ao firewall. Se o SSH ainda não estiver ativado, você pode fazer isso na interface da web em Sistema → Avançado.
É melhor proibir o login com uma senha e permitir somente o login com um certificado.
Se o acesso SSH estiver ativado, você pode fazer login com o usuário admin (ajustar IP):
$ ssh admin@192.168.1.254
Na opção 12, você encontrará o shell do desenvolvedor, que é basicamente um shell PHP.
Exemplo de comandos para pfSsh.php
Aqui estão alguns exemplos de comandos para mostrar como usar o shell. Cada entrada é um código PHP normal e deve ser completada com exec;
.
Mostrar configurações de DHCP
pfSense shell: print_r($config["dhcpd"]); pfSense shell: exec; Array ( [lan] => Array ( [range] => Array ( [from] => 10.0.1.7 [to] => 10.0.255.245 ) ) )
Definir domínio
pfSense shell: $config['system']['domain'] = 'mydomain.com'; pfSense shell: write_config(); pfSense shell: exec;
Execute comandos regulares do shell
Dentro do shell do PHP você também pode executar comandos normais do shell colocando um “!” Na frente dele:
pfSense shell: ! cat /etc/version pfSense shell: exec; 2.4.3-RELEASE
Comandos “Gravar” e “Reprodução”
Com pfSsh.php você também pode “gravar” vários comandos e “reproduzi-los” mais tarde. Isso é útil para tarefas recorrentes. Um exemplo:
pfSense shell: record echoTest Recording of echoTest started. pfSense shell: echo "Isso\n"; pfSense shell: echo "eh\n"; pfSense shell: echo "um\n"; pfSense shell: ! echo "teste\n" pfSense shell: exec; pfSense shell: stoprecording Recording stopped.
As entradas são salvas em / etc / phpshellsessions / e podem ser editadas lá, se necessário.
A “gravação” agora pode ser reproduzida da seguinte maneira:
pfSense shell: playback echoTest Playback of file echoTest started. Isso eh um teste pfSense shell:
ou diretamente da raíz do shell:
$ pfSsh.php playback echoTest
Conclusão
O pfSsh.php é uma ferramenta útil para automatizar o pfSense com scripts ou personalizações. Especialmente se você gerencia várias instâncias ou precisa de uma certa configuração repetidas vezes, pfSsh.php é uma grande ajuda. Por exemplo, você pode empacotar todas as configurações (isto é, código PHP) em um arquivo, salvá-las em /etc/phpshellsessions/ e executá-las ou encaminhar a saída diretamente para pfSsh.php:
$ ssh admin@192.168.1.254 '/usr/local/sbin/pfSsh.php' < MyConfig.txt