Secure Monit 5.6 httpd no Ubuntu Trusty

2

Estou tentando instalar com segurança o monit no Ubuntu 14.04 Trusty. A versão empacotada padrão é 5.6. Pelo que eu posso ver, monit é basicamente inutilizável sem o serviço httpd habilitado (ou seja, você não pode iniciar, reiniciar ou parar de monitorar um serviço). Está certo?

Supondo que seja, gostaria de ativar o httpd, mas estou encontrando dificuldades para configurar a autenticação. A configuração que desejo é permitir que o root inicie / pare os serviços. Como posso conseguir isso?

Eu consegui os 5.6 documentos do arquivo. org e começou com a seguinte configuração:

set httpd port 2812
  use address localhost
  allow localhost

Isso parece funcionar bem, e acho que isso permite que qualquer usuário se conecte. Agora eu quero bloquear isso e deixar o root administrar os serviços. Como posso conseguir isso?

Eu tentei a sintaxe allow @group com o grupo root (do qual o usuário root é membro):

set httpd port 2812
  use address localhost
  allow localhost
  allow @root

e reiniciado.

Quando eu faço monit status , vejo monit: cannot read status from the monit daemon

Quando faço monit -v status , vejo isto:

monit: Debug: Adding host allow 'localhost'
monit: Debug: Skipping redundant host 'localhost'
monit: Debug: Skipping redundant host 'localhost'
monit: Adding PAM group 'root'.

<Long list of all runtime constants and service list omitted>

O que estou perdendo aqui? Existe alguma autenticação adicional de pam que preciso fazer ou algo assim?

    
por robd 02.04.2015 / 18:56

1 resposta

2

A interface httpd deve estar ativada para que a linha de comando monit funcione. Os estados da documentação :

If the Monit command line interface is being used, at least one cleartext password is necessary (see bellow), otherwise the Monit command line interface will not be able to connect to the Monit web interface.

(Ênfase minha. Meu hiperlink acima aponta para o documento para 5.6 mas também é válido para o 5.4 e para a versão mais recente no momento em que escrevo esta resposta.)

Os dois únicos meios que eu conheço de controlar o Monit são conectando-se com um navegador à interface httpd ou usando o comando monit . Então, de fato, se a interface do httpd não estiver ligada, então o Monit irá monitorar o sistema, mas você não poderá emitir comandos para ele.

A maneira como fiz isso no meu sistema é:

set httpd port 2812 and
   use address localhost
   allow localhost        
   allow admin:foo

( Por favor use uma senha real, não foo . )

Isso restringe o acesso à interface httpd apenas para usuários que se conectam de localhost e que se identificam como usuário admin com a senha foo quando o servidor httpd solicita autenticação.

Note que, em teoria, qualquer pessoa em localhost que conhece o usuário e a senha pode se conectar. No entanto, uma instalação apropriada do Monit em todo o sistema terá o arquivo monitrc definido como permissões 0700 e pertencerá a root . Quando o Monit é instalado corretamente e quando a senha não é compartilhada, somente root pode acessar a interface httpd.

Nota: se você quiser ser capaz de gerenciar remotamente, por favor, não simplesmente estenda o esquema acima para permitir conexões de outros hosts: o nome de usuário e senha serão escritos em texto puro.

    
por 28.04.2015 / 19:00