Palestra que visa mostrar como é possível automatizar as configurações e boas práticas de segurança da informação utilizando o Ansible. Para isso serão apresentados na palestra os conceitos do Ansible e de Hardening identificando quais são os melhores meios para conseguirmos chegar até um Security as a Code que possa ser versionado e que tenha uma manutenção mais rápida. E por fim a apresentação de uma execução prática do Ansible em dois servidores garantido algumas configurações de segurança da informação.
Para a criação do laboratório é necessário ter pré instalado os seguintes softwares:
O Laboratório será criado utilizando o Vagrant. Ferramenta para criar e gerenciar ambientes virtualizados (baseado em Inúmeros providers) com foco em automação.
Para criar o laboratório é necessário fazer o git clone desse repositório e, dentro da pasta baixada realizar a execução do vagrant up, conforme abaixo:
A infraestrutura desse laboratório está versionada como código no arquivo Vagrantfile
git clone https://github.com/yesquines/ansible-hardening
cd ansible-hardening
vagrant upPara melhor utilização, abaixo há alguns comandos básicos do vagrant para gerencia das máquinas virtuais.
| Comandos | Descrição |
|---|---|
vagrant init |
Gera o VagrantFile |
vagrant box add <box> |
Baixar imagem do sistema |
vagrant box status |
Verificar o status dos boxes criados |
vagrant up |
Cria/Liga as VMs baseado no VagrantFile |
vagrant provision |
Provisiona mudanças logicas nas VMs |
vagrant status |
Verifica se VM estão ativas ou não. |
vagrant ssh <vm> |
Acessa a VM |
vagrant ssh <vm> -c <comando> |
Executa comando via ssh |
vagrant reload <vm> |
Reinicia a VM |
vagrant halt |
Desliga as VMs |
Para maiores informações acesse a Documentação do Vagrant
A role desse repositório foi criada com o intuito de apresentar um Hardening básico para ambientes Linux. Sua organização está dentro da pasta roles/ansible-hardening com a seguinte arquitetura:
└── ansible-hardening
├── defaults
│ └── main.yml
├── handlers
│ └── main.yml
├── README.md
├── tasks
│ ├── disable_unsed_fs_net.yml
│ ├── limits.yml
│ ├── login_defs.yml
│ ├── main.yml
│ ├── misc.yml
│ └── ssh_configuration.yml
├── templates
│ ├── login.defs.j2
│ ├── ssh_config.j2
│ └── sshd_config.j2
└── vars
└── main.ymlA role fará a configuração de boas práticas de segurança nos servidores provisionados pelo Vagrant, por isso sua execução pode ser realizada seguindo os comandos abaixo:
ansible-galaxy colletion install ansible.posix community.general
ansible-playbook hardening_role.yml