Escolar Documentos
Profissional Documentos
Cultura Documentos
PortSentry uma aplicao muito simples de ser utilizada, escrita para sistemas GNU/Linux com o objetivo de ajudar usurios a manter crackers longe de seu precioso sistema, barrando portscanners e outras tentativas de burlar sua segurana. PortSentry foi desenvolvido pelo pessoal da Psionic.com, que hoje faz parte da CISCO como vocs podem ver aqui: http://newsroom.cisco.com/dlls/corp_102202.html
Configurando
Essa a parte mais divertida porque garanto que cada um aps observar o arquivo de configurao do PS vai ver configuraes que lhe chamaro mais a ateno devido s suas opes totalmente inusitadas. Vou dar um exemplo de configurao de bloqueio para atacantes que tentam portscanning e um pequeno honey pot. Vamos dar uma olhada na pasta /usr/local/psionic/portsentry. Teremos alguns arquivos dentro dela, vamos utilizar o portsentry.conf. Vamos ver as primeiras configuraes interessantes que devemos fazer: # 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,,[..] # 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,2000,5742,[..]" UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700,37444,34555,[..]" # # Use these for just bare-bones # TCP_PORTS="1,11,15,110,111,143,540,635,1080,1524,2000,12345,[..]" # UDP_PORTS="1,7,9,69,161,162,513,640,700,32770,32771,32772,[..]" Aqui esto as portas TCP/UDP que o PortSentry vai "guardar". Analise as portas que tem em cada lista, as portas verdadeiras de seu sistema no devem constar nesta lista, OK? Caso contrrio, o PS vai bloquear as tentativas de conexo nelas. Como vocs viram, o segundo conjunto de portas est habilitado, vamos utilizar ele como teste, depois podemos refinar essas portas e tudo mais que vocs queiram. Vamos continuar nossa anlise no arquivo de conf: IGNORE_FILE="/usr/local/psionic/portsentry/portsentry.ignore" HISTORY_FILE="/usr/local/psionic/portsentry/portsentry.history" BLOCKED_FILE="/usr/local/psionic/portsentry/portsentry.blocked" Bom, o primeiro arquivo so os hosts que o PortSentry deve ignorar, ou seja, os hosts que estiverem nesta list no sero analisados por ele. O segundo o history, ou seja, tudo que o PS j fez, desde analisar conexes at bloquear, tudo estar listado neste arquivo. Equivale a um ~/.bash_history. O terceiro a lista negra do PortSentry, os atacantes bloqueados por ele e os hosts que ele considera como perigosos. Nessa lista voc deve ficar esperto porque s vezes algum pode cair a por engano de um falso positivo, ento fique sempre analisando esta lista para no ficar sem determinados servios de comunicao. Vamos ver agora uma opo muito maneira do Port Sentry que a KILL_ROUTE. Esta funo como j diz o nome, killa a rota do atacante, passando a ignorar todo e qualquer pacote e requisio feita por ele pelo tempo que voc determinar (logo mostraremos como). Como usamos Linux, a opo que vamos habilitar ser a: KILL_ROUTE="/usr/local/sbin/iptables -I INPUT -s $TARGET$ -j DROP" Como voc pode ver, uma regra simples, voc pode melhorar a regra do jeito que achar melhor e tudo mais, iptables meu amigo, tem 10001 possibilidades. OBS: $TARGET$ = ip do atacante que ele detectou. Alm de bloquear pelo iptables voc tambm pode utilizar TCP Wrappers para isso: KILL_HOSTS_DENY="ALL: $TARGET$ # PortSentry blocked" No recomendo a seo de Droping Route porque d mais trabalho de liberar IPs bloqueados. KILL_ROUTE j mais que suficiente.
External Command
Essa parte permite voc realizar um comando externo ao PortSentry para reagir ao ataque ou para escrever algum log especial. # KILL_RUN_CMD="/some/path/here/script $TARGET$ $PORT$" Como podem ver, a sintaxe padro como se fosse executar um "contra ataque", mas isso no muito interessante no mesmo? Creio que para ns seria mais interessante escrever um log com os IPs atacantes e tal. Bom, fica a seu critrio, onde $PORT$ a mesma porta onde voc foi atacado.