O pfSense possui uma interface de usuário completamente redesenhada com várias versões (consulte nosso guia de instalação). Todas as configurações podem ser facilmente encontradas e ajustadas com esta interface. O painel facilmente configurável também é uma coisa boa. No entanto, às vezes há o caso que você deseja configurar por meio de uma API ou linha de comando. O pfSense atualmente não possui uma API, estará disponível apenas nas próximas versões. Até ai, você pode usar o shell do desenvolvedor pfSense , também chamado PHP Shell .
Acessando o PHP Shell
A maneira mais rápida de acessar o shell do desenvolvedor é conectar-se ao firewall pfSense através do SSH ou se conectar diretamente ao firewall. Se o SSH ainda não estiver ativado, você poderá habilitar na interface web em Sistema → Avançado.
É melhor proibir o login com uma senha e permitir apenas o login com um certificado.
Se o acesso SSH estiver ativado, você poderá efetuar login com o usuário administrador (definir IP):
$ ssh admin@192.168.1.254
Na opção 12 você encontrará o shell do desenvolvedor, que é basicamente um shell do PHP.
Comandos de exemplo para shell php
Aqui estão alguns exemplos de comandos para ver como usar o shell. Cada entrada é um código PHP normal e deve ser preenchido 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;
Executar comandos no shell
Dentro do shell do PHP, você também pode executar comandos normais do shell, colocando um “!” Na sua frente:
pfSense shell: ! cat /etc/version pfSense shell: exec; 2.4.3-RELEASE
Comandos “Record” e “Play”
Com o php shell, você também pode “gravar” vários comandos e “reproduzi-los” posteriormente. Essas sessões são úteis para tarefas recorrentes. Exemplo:
pfSense shell: record echoTest Recording of echoTest started. pfSense shell: echo "This\n"; pfSense shell: echo "is\n"; pfSense shell: echo "a\n"; pfSense shell: ! echo "test\n" pfSense shell: exec; pfSense shell: stoprecording Recording stopped.
As entradas são salvas em /etc/phpshellsessions / e podem ser editadas, se necessário.
A “gravação” agora pode ser reproduzida da seguinte forma:
pfSense shell: playback echoTest
Playback of file echoTest started.
The
is
a
test
pfSense shell:
ou diretamente do shell raiz:
$ pfSsh.php playback echoTest
Conclusão
O pfSsh.php é uma ferramenta útil para automatizar o pfSense com scripts ou fazer personalizações. Especialmente se você gerenciar várias instâncias ou precisar de uma certa configuração repetidamente, o shell php é muito útil. Por exemplo, você pode juntar todas as configurações (ou seja, código PHP) em um arquivo, salvá-las em /etc/phpshellsessions / e executá-las ou encaminhar a saída diretamente para shell php:
$ ssh [email protected] '/usr/local/sbin/pfSsh.php' < configuracao.txt