v1.7 Segurança Básica de Servidores GNU/Linux

, em Segurança
v1.7 - Segurança Básica de Servidores GNU/Linux

Com quantas mancadas se perde um servidor?

Neste episódio a galera do Hack 'n' Cast conta com a presença ilustre do ouvinte Fabio Beneditto e da figurinha carimbada Everton Melo para falar de um tema pouco comentado: Os vacilos que damos ao colocar um servidor GNU/Linux na internet. Mas calma, não será um episódio sobre historinhas de como demos mancadas, mas sim uma aula de o que não fazer e as boas práticas para se ter um servidor GNU/Linux mínimamente seguro nessa nossa internet sem porteira.

Para não perder nenhum episódio siga-nos nas redes sociais (Twitter e Facebook) ou inscreva-se (Feed, Podflix, iTunes e Pocket Casts). Você quer colaborar com o Hack 'n' Cast? Sugira um tema, nos ajude a produzir uma pauta ou participe conosco! Basta entrar em contato por E-mail, Facebook ou Twitter. E agora temos a nossa lista de discussão no Google Groups!

Senhas

Usar senhas fortes:

$ openssl rand 32 -base64
sktC7CUIlhDQ13RX4W6GPRa9waxSM6mnBUXtUCNq7ak=

Forçar troca de senhas:

# -m Max days; -m min days; -W warning
$ chage -M 60 -m 7 -W 7 username

SSH - Secure Shell

Criar um usuário;

$ useradd username
$ passwd username

Instalar e configurar o sudo (Super User Do);

$ yum install sudo
$ aptitude install sudo
$ usermod -aG sudo username

Desabilitar login com usuário root;

$ vim /etc/ssh/sshd_config
"PermitRootLogin no"

Criar e distribuir chaves SSH para usuários;

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
$ ssh-copy-id username@servername

Desabilitar logon com senha;

$ vim /etc/ssh/sshd_config
"PasswordAuthentication no"
"PubkeyAuthentication yes"

Mudar porta do servidor SSH

$ vim /etc/ssh/sshd_config
"Port 666"

Forçar o uso do Protocolo 2

$ vim /etc/ssh/sshd_config
"Protocol 2"

Restringir usuário permitidos:

$ vim /etc/ssh/sshd_config
"AllowUsers gooduser1 gooduser2"
"DenyUsers baduser1 baduser2"

Iptables

Saídas somente de conexões já estabelecidas

$ iptables -A INPUT -i eth0 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT

Pacotes inválidos

$ iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

Novos pacotes que não sejam SYN

$ iptables -A INPUT -p tcp ! --syn -m conntrack --ctstate NEW -j DROP

Bloqueia pacotes com flags TCP inválidas

$ iptables -A INPUT -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
$ iptables -A INPUT -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
$ iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$ iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$ iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
$ iptables -A INPUT -p tcp --tcp-flags FIN,ACK FIN -j DROP
$ iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
$ iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
$ iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
$ iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
$ iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
$ iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP
$ iptables -A INPUT -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP
$ iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

Bloqueia redes privadas (spoofing)

$ iptables -A INPUT -s 224.0.0.0/3 -j DROP
$ iptables -A INPUT -s 169.254.0.0/16 -j DROP
$ iptables -A INPUT -s 172.16.0.0/12 -j DROP
$ iptables -A INPUT -s 192.0.2.0/24 -j DROP
$ iptables -A INPUT -s 192.168.0.0/16 -j DROP
$ iptables -A INPUT -s 10.0.0.0/8 -j DROP
$ iptables -A INPUT -s 0.0.0.0/8 -j DROP
$ iptables -A INPUT -s 240.0.0.0/5 -j DROP
$ iptables -A INPUT -s 127.0.0.0/8 ! -i lo -j DROP

Bloqueia ping

$ iptables -A INPUT -p icmp -j DROP

Limita novas conexões da mesma origem a 20/minuto

$ iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 60/s --limit-burst 20 -j ACCEPT
$ iptables -A INPUT -p tcp -m conntrack --ctstate NEW -j DROP

Músicas do Episódio

  • East of Tunesia - Kevin MacLeod (Creative Commons Attribution);

  • Orange - Topher Mohr and Alex Elena (Royalty Free);

  • Black Box - Silent Partner (Royalty Free);

  • TRG Banks, Album 'Instrumental' (Royalty Free):
    • David Hemmings;
    • Cigar;
    • Keith in 1987;
    • Horse Ride 2;
    • Packed Lunch;
  • Monplaisir, album 'Free To Use' (Royalty Free):
    • Free To Use 2;
    • Free To Use 3;
    • Free To Use 5;
    • Free To Use 6;
  • Monplaisir, album 'Fifty Seconds of Rain' (Royalty Free):
    • This is Not a Rock Song;
    • Narcissus smells like headache;
  • TRG Banks, Album 'This Train Doesn't Stop at Rugby' (Royalty Free):
    • This Train Doesn't Stop at Rugby
    • Goodbye Earth
    • Above the Earth
    • First Stop
    • Through the Gravitational Field

Edição por Daniel Capua.


Comments

comments powered by Disqus