Você pode esquecer os scans no seu computador Linux rapidamente com este pequeno pacote de software
O PortSentry é uma aplicação fácil de instalar que é feita para ajudar um usuário em suas tentativas de parar os crackers de coração frio que tentam invadir a poderosa fortaleza que é sua máquina Linux.
Por Joshua Drake
(LinuxWorld) -- Minha última coluna SysAdmin foi uma modesta tentativa de trazer alguma capacidade básica de firewall ao Linux 2.4. Esta semana iremos continuar no caminho focado em segurança, dando uma batelada de conhecimentos para os não-iniciados. O tópico: PortSentry da Psionic Software.
O PortSentry é uma aplicação fácil de instalar que foi feita para auxiliar um usuário Linux em suas tentativas de parar os crackers de coração frio que tentam invadir a poderosa fortaleza que é sua máquina Linux. Especificamente, o PortSentry é executado como um daemon no host protegido. Quando está rodando, ele fica atento às portas TCP/IP que você especificar. Se ele detectar um port scan, ele irá bloquear o IP que está fazendo o scan para que não se conecte à sua máquina.
Você deve logar como root somente
quando absolutamente necessário. Se você puder usar o comando
su
com a flag -c
para obter o mesmo
resultado, faça-o. Se você não tem certeza da sintaxe do
comando su
, veja a página man do mesmo.
O PortSentry se mostrou tão efetivo no que faz, que é incluído em muitas das mais novas distribuições Linux. Entre estas estão o Turbo Linux, o Red Hat, e o Debian. Você pode fazer download do PortSentry gratuitamente de muitos lugares. Como iremos instalar o PortSentry do zero, iremos fazer o download do código fonte da Psionic Software. Não iremos executar nenhuma análise exaustiva do PortSentry. se você está interessado em mais informações e informação mais detalhada que a fornecida por este artigo, sugiro uma visita no Web site da Psionic Software.
Após você ter feito o download dos 45 kbytes do pacote, você vai
querer descompactar o mesmo em um local apropriado em sua máquina.
Como é usual, assume-se que você entende o básico do Linux e seus
comandos associados como o tar
.
Quando você descompactar o código fonte, entre no diretório do
mesmo e execute make linux
. Sim, é assim simples! O
PortSentry deve compilar sem erros em qualquer plataforma Linux
moderna. Sim, o Red Hat 6.2 é moderno (apesar de eu ter minhas
suspeitas sobre o 7.1). Após o PortSentry ter sido compilado, utilize
o comando abaixo para instalar a aplicação em sua estrutura de
diretório(/usr/local/psionic): su -c "make
install"
. Você precisará da senha do root para executar
este comando.
Agora que temos o PortSentry instalado, iremos verificar a
configuração básica. O arquivo de configuração para o PortSentry é
chamado de portsentry.conf, e é localizado em
/usr/local/psionic/portsentry/. Você terá que usar o su
-c
ou ser root para editar o arquivo
portsentry.conf.
O arquivo de configuração do PortSentry é grande, mas não é complicado. A primeira seção do arquivo que discutiremos se parece com o seguinte:
# Un-comment these if you are really anal:
#TCP_PORTS="1,7,9,11,15,70,79,80,109,110,111,119,138,139,143,512,513,[...]"
#UDP_PORTS="1,7,9,66,67,68,69,111,137,138,161,162,474,513,517,518,[...]"
#
# Use these if you just want to be aware:
TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,[...]"
UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700,37444,[...]"
#
# Use these for just bare-bones
#TCP_PORTS="1,11,15,110,111,143,540,635,1080,1524,2000,[...]"
#UDP_PORTS="1,7,9,69,161,162,513,640,700,32770,32771,[...]"
Da mesma forma que scripts shell, e algumas linguagens de programação, você comenta o arquivo de configuração usando o símbolo #. Se você executar o PortSentry como ele está, ele irá monitorar as portas identificadas pelo comentário "Use these if you just want to be aware". Esta é a configuração que a maioria dos usuários irá provavelmente usar. O primeiro conjunto é extremamente restritivo, e o terceiro é um pouco embaçado de um ponto de vista de segurança.
Se você escolher as configurações padrão de portas, eu sugiro que
remova a porta 143
da lista. A porta 143
é
utilizada pelo IMAP.
A próxima parte do arquivo de configuração que iremos explorar é parecida com isto:
######################
# Configuration Files#
######################
#
# Hosts to ignore
IGNORE_FILE="/usr/local/psionic/portsentry/portsentry.ignore"
# Hosts that have been denied (running history)
HISTORY_FILE="/usr/local/psionic/portsentry/portsentry.history"
# Hosts that have been denied this session only (temporary until next restart)
BLOCKED_FILE="/usr/local/psionic/portsentry/portsentry.blocked"
Esta parte do arquivo é usada para especificar onde você quer que os arquivos de configuração fiquem. Se você estiver utilizando a configuração padrão, os arquivos de configuração irão ficar na árvore de diretórios em /usr/local/psionic. Entretanto, você pode querer mover os mesmos para outro local. O uso de /etc/portsentry é muito popular em várias distribuições Linux.
Conforme seguimos em nossa viagem sem paradas para a euforia da detecção de port scanning, devemos determinar o que o nosso host protegido deve fazer se detectar um scan. Isto é feito na seção Dropping Routes, que se parece com isto:
# ipfwadm support for Linux
#KILL_ROUTE="/sbin/ipfwadm -I -i deny -S $TARGET$ -o"
#
# ipfwadm support for Linux (no logging of denied packets)
#KILL_ROUTE="/sbin/ipfwadm -I -i deny -S $TARGET$"
#
# ipchain support for Linux
#KILL_ROUTE="/sbin/ipchains -I input -s $TARGET$ -j DENY -l"
#
# ipchain support for Linux (no logging of denied packets)
#KILL_ROUTE="/sbin/ipchains -I input -s $TARGET$ -j DENY"
#
# iptables support for Linux
#KILL_ROUTE="/usr/local/bin/iptables -I INPUT -s $TARGET$ -j DROP"
#
Se você estiver usando uma versão do Linux que ainda use o comando
ipfwadm
, você está precisando fazer uma atualização. Se
você estiver utilizando um kernel 2.2 no seu Linux. escolha o
seguinte:
# ipchain support for Linux
#KILL_ROUTE="/sbin/ipchains -I input -s $TARGET$ -j DENY -l"
Finalmente, se você estiver usando um kernel 2.4 no seu Linux escolha a seguinte:
# iptables support for Linux
#KILL_ROUTE="/usr/local/bin/iptables -I INPUT -s $TARGET$ -j
DROP"
Lembre que você deve "descomentar" (retirar o #) a linha para que a
mesma fique ativa. Certifique-se de somente descomentar o comando
KILL_ROUTE
, e não o comentário que o precede.
O comando KILL_ROUTE
é, (IMHO) a parte mais poderosa
do PortSentry. A forma que o KILL_ROUTE
funciona é assim:
se o PortSentry detecta um scan, o comando KILL_ROUTE
é
executado. Através da configuração padrão do PortSentry, isto
significa que todos os pacotes TCP/IP futuros do host que está fazendo
o scan serão descartados, ou negados. Em outras palavras, tudo que seu
hacker potencial ouve no outro lado da linha é "desculpe, todos os
circuitos estão ocupados! Tente fazer a chamada mais tarde." Para
sorte do host progegido, não fará diferença se o agressor tentar
novamente mais tarde. Os circuitos sempre estarão ocupados para
ele.
A última coisa a falar sobre é como executar o PortSentry. O
PortSentry deve ser parte da inicialização normal do sistema, e a
forma mais fácil de fazer o PortSentry iniciar automaticamente é
colocar o mesmo no arquivo rc.local. Se você estiver rodando
uma nova versão do Red Hat ou Mandrake, pode haver um script
service
que você pode utilizar. Se você estiver usando o
rc.local para iniciar o PortSentry, você pode acrescentar as
seguintes linhas ao mesmo:
echo "Starting PortSentry"
/usr/local/psionic/portsentry/portsentry -atcp
/usr/local/psionic/portsentry/portsentry -audp
echo "Done"
Existem outras opções disponíveis para o PortSentry, mas elas estão fora do escopo deste artigo. Por sorte, a maior parte das opções padrão do arquivo de configuração do PortSentry são suficientes para uma máquina Linux. Entretanto, eu sugiro que você estude a documentação inclusa. A documentação é razoavelmente abrangente, e pode dar algumas dicas sobre o que NÃO fazer.
Joshua Drake é co-fundador da Command Prompt, Inc., uma empresa de desenvolvimento PostgreSQL e Linux. Ele é o autor atual do Linux Networking HOWTO, Linux PP HOWTO, e o Linux Consultants HOWTO. Seu projeto que mais consome seu tempo neste momento é um novo livro para a O'Reilly, Practical PostgreSQL.
Histórias Relacionadas
Sites Relacionados
Copyright © 2001 IDG.net
* Você encontra uma tradução deste artigo em Firewall iptables em 10 minutos
** Você encontra uma tradução deste artigo em Como saber se seu Linux foi invadido