Instalando o Epel
A primeira coisa a ser feita é instalaar o epel
sudo yum install epel-release
Agora vamos fazer o update dos pacotes do SO
sudo yum update
Configurando o Firewall
Um mudança consideravel agora no Centos7 é a remoção do iptables e a adição do FirewallD, como essa maquina vai estar exposta diretamente para a internet nos precisamos de um firewall para bloquear alguns acessos em serviços que deverão estar expostos só em loopback.
Estou usando uma VM na DigitalOcean e por padrão a imagem de Centos7 deles vem com o firewallD desativado, para ativar digite o comando:
sudo systemctl start firewalld
Para habilitar ele no boot digite:
sudo systemctl enable firewalld
Um problema do antigo iptables era que para tornar uma regra permante você tinha que salvar usando iptables-save e fazer o iptables ler o arquivo no boot do SO, agora para adiconar uma regra persistente só é preciso colocar um –permanent como argumento da regra, a primeira regra do firewall vai ser para abri a porta do ssh:
sudo firewall-cmd --permanent --add-service=ssh
Como o ssh esta com login somente por chave não vejo motivo para alterarmos a porta default, mas nos iremos proteger o ssh usando o fail2ban que tem como objetivo impedir um bruteforce na porta 22. Enquanto isso vamos retomar a configuração do firewall, como esse servidor vai ser utilizado como servidor web nos temos que abrir a porta 80:
sudo firewall-cmd --permanent --add-service=http
Para ver todos os serviços que podemos abrir as portas pela lista default basta digitar:
sudo firewall-cmd --get-services
Para abrir uma porta que não esta listada nos serviços podemos usar o seguinte comando:
sudo firewall-cmd --permanent --add-port=22/tcp
Podemos listar as portas abertas de forma permanente com o seguinte comando:
sudo firewall-cmd --permanent --list-all
Para colocar as novas regras em funcionamento nos precisamos dar um reload no firewalld, para isso digite:
sudo firewall-cmd --reload
Agora que o FirewallD esta configurados vamos instalar e configurar o Fail2Ban
Fail2Ban
Nos iremos configurar o Fail2ban de maneira que após 4 login com falha o ip que esta tentado logar na maquina irá ficar banido por 1 semana, é muito importante que você esteja autenticando na maquina via chaveou que não erre o login caso contrario seu IP será banido por uma semana =D.
Vamos instalar o pacote:
sudo yum install fail2ban fail2ban-firewalld fail2ban-systemd
Vamos criar o arquivo de configuração sshd.conf no diretorio conf.d do fail2ban:
sudo vi /etc/fail2ban/jail.d/sshd.conf
No arquivo colocamos
[DEFAULT]
bantime = 345600
banaction = firewallcmd-ipset
backend = systemd
action = %(action_mwl)s
maxretry = 4
[sshd]
enabled = true
Agora iremos inicar o fail2ban
sudo systemctl start fail2ban
Habilitamos o fail2ban para iniciar com o SO
sudo systemctl enable fail2ban
Para ver os ips banidos pelo fail2ban use o seguinte comando:
fail2ban-client status sshd
NTP
As vezes o relogio dos servidore ficam meio loucos, para resolver esse problema iremos instalar o ntpclient no servidor.
sudo yum install ntp
Depois disso iremos iniciar o daemon e configurar para iniciar junto com o SO:
sudo systemctl start ntpd
sudo systemctl enable ntpd