|
A primeira coisa a ser feita após instalar um sistema operacional é aplicar patches de segurança.
Eles podem ser encontrados no ftp do slackware, no diretório /patches.
Vale lembrar alguns conceitos básicos: deixe a conta root apenas para administração do sistema, verifique os logs (veja seu syslog.conf), leia os scripts dos daemons (os serviços), pois no Slackware eles são documentados, e cadastre-se na lista slackware-security, para estar informado de novos patches.
Fechando as portas:
- Primeiro, comente os serviços que não forem usados nos scripts do /etc (inetd.conf, rc.inet2 e rc.M).
- Adicione em /usr/X11/bin/startx o parametro: serverargs="-nolisten tcp", se não quiser ter escutando a porta 6000. Se usar XDM, adicione-o no arquivo Xservers.
- E o mais importante: adicione uma firewall (ver Compilando o Kernel... para mais detalhes)
Adicionando firewall:
A partir do kernel 2.4, iptables é o programa para isto.
Seu uso pode parecer complicado, mas não é. Basicamente:
- # iptables -L : lista as chains (INPUT, OUTPUT, DROP) e suas políticas (ACCEPT, DROP...), no caso de filtragem de pacotes (table filter - default).
- # iptables -P : define política
- # iptables -X : deleta chains vazias
- # iptables -F : deleta tudo
Por exemplo, para bloquear 'pings':
iptables -A INPUT -p icmp -j DROPi
(-A: append, -p: protocolo, -j: o que fazer)
Isto é, adicione à chain INPUT (pacotes de entrada) a regra de que os pacotes ICMP devem ser descartados (DROP).
Para bloquear pedidos de conexão (flag SYN), menos na porta 80:
iptables -A INPUT -i eth0 -p tcp --syn --destination-port ! 80 -j DROP
Neste caso está especificada a interface (portanto a regra não vale para a eth1, eth2...) e o ! representa qualquer porta de destino (-dport) diferente de 80. Uma regra bem genérica restringindo o acesso a ftp:
iptables -A INPUT -p tcp --dport ftp -j DROP
Mais informações: man iptables =)
Segue exemplo de um script eficiente, para usuários de linha discada (Linux 2.4 Packet Filtering HOWTO):
# firewall.sh
#
# por Rusty Russel
# http://www.greatcircle.com/pkt_filtering
## Cria chain que bloqueia novas conexões, exceto as iniciadas internamente.
iptables -N block
iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -A block -j DROP
## Pule para esta chain, nas chains INPUT e FORWARD.
iptables -A INPUT -j block
iptables -A FORWARD -j block
Outro exemplo, meu script para conexão dedicada (1 PC), comentado.
No Slackware, os scripts são chamados pelo rc.inet2.
Outros scripts conhecidos de iptables você encontra em freshmeat.net, especialmente monmotha e gshield.
E por último...
Para verificar o status das portas:
netstat -na (ou mais especificamente netstat -tupln (algo como tcp, udp, pid, listening em formato numeric)
nmap seu_ip (usando nmap com parâmetros default)
lsof -i (tcp:porta)
Recomendo a visita a sites como Sygate Scan, GRC Scan para portscan e Security Focus, Linux Security Brasil entre outros para mais informações.
|