A cada dia novas técnicas de invasão são desenvolvidas e os especialistas na área de segurança de redes têm a incumbência de resolvê-los. Mas não só um especialista na área de segurança deve se preocupar, um usuário comum, como você, também.
Parto do suposto que você tem apenas uma placa de rede, que deve ser a eth0 ou uma conexão discada ou ADSL, que no caso será ppp0.
Independente disso, vou usar como exemplo uma placa de rede com o nome yyy0. Para funcionar em seu computador, apenas modifique yyy0 pela sua placa.
Precisamos entender que o bloqueio tem que ser feito do que vem de fora, para o nosso computador, então utilizaremos a chain INPUT (consultado para dados que chegam a máquina) e FORWARD (consultado para dados que são redirecionados para outra interface de rede ou outra máquina).
Vamos zerar as regras, apagando todas as existentes. Digite o seguinte em seu terminal GNU/Linux:
# iptables -F
Isso apagará todas as regras existentes na tabela FILTER.
Vamos definir uma política de segurança, onde o "perigo" existe nas portas de SSH, telnet e FTP. Vamos desconsiderar MSN, P2P e outras.
Portas: 22 (SSH), 23 (telnet), 21 (ftp)
Essas portas são as mais exploradas. Por padrão quase todas as portas que você utiliza são abertas, como nós zeramos as regras da tabela FILTER, vamos bloquear as que queremos, como por exemplo, a porta 22:
Bem, o que o comando a cima fez? Ele inseriu no topo das regras, com a opção -I, sabendo que o iptables trabalha de forma que ele executa as regras de cima para baixo.
Para ver quais regras existem e qual a sequência delas, executando a primeira, segunda, terceira e assim por diante, até que as regras acabem, digite:
# iptables -L --line-numbers
Voltando a explicação da regra, após inserir no topo com a opção -I, utilizei o chain INPUT, que diz que os dados vem de fora pra dentro, de fora para a nossa máquina. A opção -d quer dizer DESTINO, ou seja, junto com os parâmetros -p, --dport e -j DROP, estou dizendo que de fora para dentro, com destino a minha máquina no protocolo TCP/IP na porta 22 (porta do SSH) o alvo seja "DROPADO", não aceite os dados.
Vamos fazer o mesmo para a porta 21 (FTP) e 23 (telnet):
Bem, a segurança depende de você, então você vai definir o que bloquear. Se você acha que P2P é um problema, bloqueie, se você acha que outras portas estão dando "brecha" para que alguém consiga acesso a sua máquina, também bloqueie! Mas cuidado, não faça nada sem saber, pois depois você terá trabalho para descobrir o que fez e como resolver.
Bem, após definir todas as regras que você quer, revise-as usando:
# iptables -L --line-numbers
Conclusão
Com iptables e o GRUB protegido, seu computador agora está "um pouco" mais seguro. Uma outra forma de garantir segurança para o seu computador ou servidor é utilizar um sniffer, como o Snort, para "filtrar" e tomar uma ação (Snort + Guardian).
Por exemplo, se alguém dá um port scan para ver quais portas estão abertas no seu computador, o Snort já considera isso uma ameaça e junto com o software Guardian bloqueia o IP de quem fez esse port scan, não dando permissão alguma, assim ele não dará outro port scan, nem um ssh, nem nada do tipo, pois ele não terá nenhum acesso a sua máquina.
[1] Comentário enviado por y2h4ck em 16/10/2009 - 10:55h
Aproveitando seu gancho do artigo sobre usuários com problemas de segurança e tudo mais, quero deixar meu ponto de vista sobre uma pequena mudança de perfil que venho percebendo.
Tenho observado que muitos usuários migram para o linux porque alguém disse em determinado momento coisas do tipo:
- Linux é seguro, usa ele que nunca mais vc vai ter problema pra abrir e-mails, links, porque afinal nao "pega" virus,
Linux é MAIS seguro ? Sim sem duvida sua arquitetura proporcionou um improvement de segurança muito legal e obviamente um usuário que nao hospede um serviço de e-mail, dns, ftp, www no proprio host e deixe ele ligado 24/horas dia não terá muito a se preocupar.
Porém, olhem só a experiencia que eu fiz com um amigo meu. Ele é um linuxer adepto, daquele tipo que da raiva, "Linux é seguro, linux é foda, windows sucks, microsoft sucks". Todo mundo conhece um assim ... :D
Estava falando com ele pelo skype por esses dias e durante uma dessas "bla bla bla linux ownz uber l33t" dele eu falei:
_ Então se é assim ... abre esse link aqui Champz ...
Passei a ele um link com um Java Applet que ao ser executado gera um .sh no /tmp e se executa. Esse em especial baixou uma backdoor reverse connect que me deu um bash$ na maquina do bonitinho.
Nem preciso dizer que ele NÃO EXITOU NEM 1 SEGUNDO EM ABRIR O LINK! Porque? Voces ja sabem porque... talves maioria aqui fizesse a mesma coisa :) afinal linux nao tem virus, nao tem perigo abrir um link ... :D
Parabens pelo Artigo Leonardo, é bom os usuários começarem a acreditar que segurança != paranóia :)
[3] Comentário enviado por leodamasceno em 16/10/2009 - 14:05h
Realmente y2h4ck, esse seu comentário chega a ser engraçado.
O que muitas pessoas pensam, é que o Linux é seguro, e que nada pode atingi-lo.
Bem, o que eu costumo dizer é o seguinte: "Quem faz a segurança, é você".
Se você tem um Windows, onde todas as portas (Quase todas) estão fechadas, tem um anti-vírus, anti spyware e tudo mais, você pode estar mais protegido, do que um Linux com todas as portas abertas, e com um usuário que clica em tudo que vê.
Logicamente, o sistema operacional ajuda, mas um sistema operacional na mão de quem não sabe usar, pode não ser lá grande coisa.
Por isso, todos os usuários tem que entender, que não é só instalar e usar, se não quiser que seus dados sejam copiados, roubados ou deletados.
A segurança, faz parte do nosso dia a dia, tanto pra servidor quanto pra Desktop.
Obrigado pelo comentário, acho que ele deu um exemplo clássico da importância da segurança.
[5] Comentário enviado por rodrigo8819 em 16/10/2009 - 16:17h
basta colocar um noexec na tabela de partições para q não se execute nada no tmp, e pronto, você não executará no tmp nada e isso não vai interferir no funcionamento do sistema. Pronto, está corrigido o problema descrito pelo y2h4ck.
[7] Comentário enviado por removido em 16/10/2009 - 16:52h
A diferença entre o Windows e o Linux é que no Linux o usuário tem total controle sobre o sistema,exemplo:No Windows o usuário sabe apenas adicionar e excluir portas do Firewall,isso é tudo que se pode fazer no firewall do Windows,vejamos o Firewall do Linux que tem por sinal inúmeras opções e regras para escolher,se o usuário de Linux configurar o firewall estabelecendo as regras de Iptables para bloquear os ataques de negação de serviço e conexão reversa,ele estará mais seguro no Linux do que no Windows.
[8] Comentário enviado por xadouron em 16/10/2009 - 17:17h
Nossa. Precisou de um especialista em segurança interagir aqui no site para a galera ver que não existe um sistema 100% seguro. Claro o Linux é mais que o Windows, mas daí dizer que podemos clicar em qualquer link no Linux que não tem problema, que não tem como invadir, que não tem pishing, que não tem vírus. Furada.. Temos que ficar espertos utilizando qualquer Sistema Operacional, manter um bom firewall ativado e sempre instalarmos as ultimas atualizações do softwares que utilizamos e do SO.
[9] Comentário enviado por psychokill3r em 16/10/2009 - 18:58h
muito bom mesmo
ok mais seu eu tiver acesso físico na sua maquina o que vai me impedir de sacar meu pen drive com o super-grub disk instalado e com a linha de commando do grub digitar configfile (hd0,0)/boot/grub.menu.lst sera que a senha vai te proteger. ou somente usando tab posso chegar a essa linha magica que voce mencionou , ou melhor rodar o slitaz que esta instalado junto com meu SGD, e chrootar sua partição .
voce tem que proteger a bios também !! para que isso não ocorra; porem ja que estou na frente da maquina é so tirar o hd e plugar no meu case de hd portatil plugar no meu netbook chrootar e reinstalar seu novo linux sem root p vc.
nao tem jeito segurança fisica ainda tem que ser na bala.
quanto ao ubuntu vc pode instalar o ufw e ativar ele sem medo .
a politica é drop total vc so tem que abrir o que for nescessario , tem uns servicos e programas pre configurados tipo emule ftp ssh é só voce escolher o que quer usar e liberar de resto tah fechado
[11] Comentário enviado por andre.vmatos em 16/10/2009 - 21:38h
Hmmm. Interessante as dicas ai em cima. Quanto à segurança física, creio que uma das mais eficientes, e é a que eu uso aqui no meu Arch Linux, é a criptografia das partições, em especial a root. Uso Luks+dmcrypt com AES 512bits, que me garante uma relativamente boa velocidade, e quase invulnerabilidade às técnicas convencionais. Com isso, um invasor que tenha acesso físico ao meu notebook não vai conseguir passar do initrd, ou seja, sem montar root, e nem rodando com um pendrive, hd externo ou live cd, não conseguirá ao menos montar minhas partições (todas são criptografadas), o que o impede de mudar qualquer senha, ou qualquer tipo de dado, ou mesmo instalar qualquer backport ou coisa parecida. A única possibilidade, nesse caso, é a formatação completa do HD. Quanto à questão das portas, creio que o sistema que uso, e um dos mais eficientes, no meu ponto de vista, já que preciso manter o SSH ativo, é um esquema de port knocking. Esse sistema é extremamente interessante, onde todas as portas permanecem fechadas, mas escutando "tentativas" de conexão. Quando preciso acessar por SSH meu computador, "bato" numa sequência específica de portas (que são alteradas com frequência, com base em uma pequena equação matemática, de fácil memorização), e então, a porta do SSH é liberada apenas para aquele IP específico, que gerou os "toc-toc"s. Não preciso dizer que isso é só para liberação da porta. Após isso ainda tem todo o esquema de segurança do SSH. Quanto à questão do y2h4ck, realmente acho bastante interessante esse tipo de ataque, baseado em permissões garantidas por prepotência de usuários (como executar um java desconhecido). Para evitar acidentes, creio que extensões como o NoScript, companheiro indispensável de navegação, e bastante atenção, podem resolver.
[13] Comentário enviado por daniel.061 em 16/10/2009 - 23:48h
Obrigado ao autor pelo artigo, e aos outros pelas contribuicoes e "consultoria" de seguranca da informacao..
Tenho uma duvida sobre o IPTABLES..
Quando voce diz pra botar o IP nas linhas de comando, esse ip sempre muda no meu caso, e ai como eu faco???
Eu ja percebi que minha porta do SSH ja vem aberta por padrao (slackware) e ja vi no arquivo /var/log algumas tentativas com varios logins diferentes, provavelmente um programa que fez as tentativas... Se o IP que eu recebo é um IP de rede interna, como que o infeliz consegue "scaniar" meu IP ??
So novo no linux, espero ter sido claro na minha pergunta...
[15] Comentário enviado por removido em 17/10/2009 - 10:57h
y2h4ck
Hahahha muito boa a sua história cara, mas pesando bem é a pura verdade, muitos dizem que linux é seguro, não te vírus, falhas e etc.
Sim, até esse ponto eu concordo. Mas o que torna o sistema vulneravel como todos devem saber são os usuários, e seus desconhecimentos de falhas e vulnerabilidades.
Por isso podemos ver que mesmo que o sistema sendo muito mais seguro que o RUINDOWS, como você mesmo disse com um simples link você já pode ter uma back connect de uma maquina considerada muito segura, mas pelo desconhecimento de informacoes por falta do usuario pode ser alvo fácil.
[16] Comentário enviado por edgarlemke em 17/10/2009 - 14:22h
O Linux, e os Unix-like em geral sempre são mais seguros do que o Windows.
Mas leodamasceno, só alterar algumas linhas da configuração do GRUB ou então instalar e configurar o iptables não torna seu Linux à prova de falhas. Talvez essas modificações que você fez não ajudem em nada dependendo do cenário.
Quer dizer, configurar melhor o GRUB e configurar o iptables não impede que um invasor explore falhas de SQLi ou de PHPi - que apesar de praticamente extinta, às vezes se acha - num servidor e consiga acesso root.
Todos os sistemas têm falhas, seja nos programas, seja de arquitetura.
Como disse psychokill3r, qualquer chroot da vida vai fazer você virar root da máquina rapidinho.
E dependendo das versões dos processos e mesmo do kernel, é possível obter acesso root através de exploits.
"nao tem jeito segurança fisica ainda tem que ser na bala."
Concordo com isso... hehehe
Qualquer ser que tenha o mínimo de vontade de pesquisar no Google encontra meios de conseguir acesso root.
É como eu digo:
"No Windows, basta apagar um arquivo para o sistema não bootar mais. E no Linux também. Mas não é tão fácil apagar este arquivo."
Com certeza o Linux, os BSDs e o MacOS são mais seguros do que qualquer Windows.
Na prática, podemos clicar no que quisermos sim. É preciso ser muito burro para cair em algum truque massivo para Linux.
E depois, acho que ninguém vai se interessar em fazer códigos maliciosos, como o caso do y2h4ck, para Linux, já que em comparação com o Windows que queiramos ou não, ainda é o mais utilizado, não tem muitos usuários.
Às vezes penso se não é melhor que o Linux fique nas sombras.
[17] Comentário enviado por removido em 17/10/2009 - 14:45h
Concordo com você edgarlemke.
Toda segurança implementada no sistema depende do cenário.
Não adianta nada seu BIOS e seu GRUB ter pass se você não atualiza seus programas, se vários exploits deles já estão correndo no underground e são conhecidos por todos adeptos ao SO.
Tudo depende do cenário.
Agora por exemplo você tem dados na maquina altamente confidenciais, sendo que para isso você mantém seus softwares atualizados em dia, pass na BIOS , no GRUB, tem um forte firewall, usa IDS e etc e tal, mas quando menos se da conta, alguém ligado a sua empresa concorrente vem e rouba seu HD o.O .
Lembro me de um artigo que li uma vez que contava a história de um pessoa que queria roubar dados de uma empresa, mas como o esquema de segurança era muito forte, dificilmente teriam acesso a entrada e outros locais, o que eles fizeram?
Colocaram um pen-drive perto da empresa jogado ao chão, como se alguém tivesse perdido ele ali mesmo.
Portanto a empresa tinha vários esquemas de segurança na sua entrada, mas não tinha uma forte politica de segurança interna na qual dizia que seus funcionários eram impedidos de plugar pendrives de estranhos.
O que acontece? O funcionário ajuntou o pen-drive chegou na sua sala e "PLUG", pronto! O pendrive já estava correndo por autorun e alguns exe's já estavam rodando no background também.
[18] Comentário enviado por edgarlemke em 18/10/2009 - 14:29h
O psychokill3r falou justamente isso, que não tem como ter segurança física eficaz baseada em software.
Ótimo, você põe senha pelo BIOS. Qualquer um que levar seu computador consegue abrir e resetar na placa-mãe.
Essa do pen drive é um exemplo que eu amo citar! *.*
As políticas de segurança no Brasil são um lixo. Qualquer um entra em áreas restritas de prédios, às vezes, mesmo pela porta da frente...
[19] Comentário enviado por andre.vmatos em 18/10/2009 - 14:59h
Sim, sim, esses métodos são falhos. Mas, como eu disse, não inexiste método de segurança física eficaz de sistemas unix. Dou meu computador a qualquer um que, com acesso físico a ele, conseguir hackea-lo de qualquer forma. Estou seguro disso, criptografia de partições protege fisicamente seu computador tanto quanto o SSH protege conexões virtualmente. Existe, sim, forma de segurança física. Ainda concordo que à bala é mais eficaz, mas, de qualquer forma, ainda não há como invadir um computador desligado, com as partições criptografadas com luks e dm-crypt, ou mesmo outro sistema menos convencional de criptografia de partições, e creio que, tanto quanto AES é seguro ataques brute-force, um HD criptografado assim é seguro de qualquer tipo de investida de atacantes com acesso físico à máquina.
[20] Comentário enviado por leodamasceno em 18/10/2009 - 18:43h
Senhores, por favor, leiam com atenção o tutorial, principalmente a descrição dele.
FIz esse tutorial voltado para um uso caseiro, e não uso em empresa.
Já li, que vocês estão falando de resetar BIOS, e tudo mais, mas a intenção desse tutorial é esclarecer um pouco para os usuários leigos o que realmente é o Linux, e uma forma básica de se proteger de alguns problemas.
Obrigado pelos comentários, mas não acho que são apropriados, infelizmente esse tutorial foi feito em um nível básico.
[21] Comentário enviado por leodamasceno em 18/10/2009 - 18:54h
daniel.061, bem, respondendo a sua pergunta,
Acho que um Script resolveria o seu problema, já que seu IP modifica sempre, não é fixo.
um Script em Shell be simples:
#!/bin/bash
ip=
echo 'Qual o IP Deseja bloquear?'
read ip
iptables -I INPUT -d $ip -p tcp --dport 22 -j DROP
Acho que esse script serve para o seu caso.
Respondendo a sua outra pergunta...
Se você está em uma rede, por exemplo: 10.50.80.1
E o cara de fora, com ip 200.200.200.200 consegue passar, provavelmente é problema com a segurança de rede!
Seria legal instalar na rede o snort, para monitorar o que está passando, e também dar uma olhada nas regras do firewall.
[22] Comentário enviado por daniel.061 em 18/10/2009 - 20:35h
Obrigado por me responder, deixa ve se eu endenti:
O iptables trabalha executando as regras de cima pra baixo, mas, se por acaso ocorrer uma situacao em que no momento em que ele executa as regras, surgir uma regra que "contradiz" uma anterior previamente definida, ele executa ela por cima ou nao executa??
Com relacao ao script, apos eu fazer ele, como eu faco pra deixar ele automatico quando eu me conectar na internet???
Sobre o meu problema, aconteceu exatamente como voce disse, as tentativas de conexao por SSH veio de um IP assim: 200:200:200:200... Acontece que nao é exatamente uma rede, é aqui na minha casa, nao tem firewall nem nada, por isso eu vo instalar o iptables aqui no meu notebook pq pelo menos eu to garantido..
[24] Comentário enviado por leodamasceno em 18/10/2009 - 21:47h
Caro daniel.061,
você pode adicionar o script no diretório /etc/init.d/
e utilizar: update-rc.d Script.sh defaults
Assim, o script irá ser executado toda vez que o sistema inicializar.
Sobre as regras, se você coloca a primeira regra bloqueando pacote do IP X na porta 22
e depois, na segunda regra você libera pacotes na porta 22 vindo do ip X, o iptables vai bloquear o ip X,
pois ele executa a primeira regra, que é de bloqueio.
Entendeu?
[26] Comentário enviado por KimRiNe em 19/10/2009 - 20:11h
Minha rede é wireless essa dica do iptables funciona do mesmo jeito?
E meu endereço ip é dinamico como faço naquela linha "# iptables -I INPUT -d SEU-IP -p tcp --dport 22 -j DROP "?
[27] Comentário enviado por leodamasceno em 20/10/2009 - 08:30h
KimRiNe, sim, o iptables também funciona com wireless.
Já que seu IP é dinamico, seria legal criar um script, como no caso do daniel.061.
Basta olhar meu comentário a cima, e entender.
Lógico, que você pode adicionar mais funcionalidades ao SCRIPT, como por exemplo, ao final do dia, deletar as regras iptables com um "iptables -F".
Vai de acordo com a sua necessidade.
[28] Comentário enviado por psychokill3r em 27/10/2009 - 21:53h
Leodamasceno
quando você diz ""Segurança em seu LINUX", portanto, não abordei essa questão da BIOS. "
quer dizer que segurança no Linux não tem a ver com a bios ?
"Obrigado pelos comentários, mas não acho que são apropriados, infelizmente esse tutorial foi feito em um nível básico. "
é verdade é básico porem não foi o primeiro alias é um clone. http://www.vivaolinux.com.br/artigo/GRUB-e-a-senha-de-root-como-atacar-e-proteger-seu-sistema/ --->>>igual idêntico os mesmos comandos porem com fotos.
sobrando apenas a parte do iptables que particularmente nem li.
você deveria agradecer os comentários que foram feitos ,eles só enriqueceram seu post , se não gostou dos toques não os leia não siga e não faça como foi dito.
Acredito que todos vem ao vol tirar duvidas ou postar algo querem aprender mais e mais se não for seu caso desconsidere.
Para que quer aprender pode procurar sobre truecrypt , você não precisa criptografar o disco todo só seu arquivos confidenciais , e um arquivo com suas senhas como descrito neste artigo. http://www.vivaolinux.com.br/artigo/Ubuntu-pendrive-TrueCrypt/
e se estiver desconfiando de que algo esta errado use as dicas abaixo. http://www.vivaolinux.com.br/artigo/Seguranca-para-iniciantes/
mais o que eu mais gostei foi esse script magico do y2h4ck
veja ele através de um javascript gera um .sh no /tmp e se executa , contornando o umask do sistema. #chmod +x /tmp/y2h4ck.sh ???
depois ele baixa e instala um backdoor , abre portas no firewall e cria nat no modem do sujeito.
Bem interessante , posta ele ai para gente aprender como se faz magia negra.
[29] Comentário enviado por leodamasceno em 28/10/2009 - 08:31h
psychokill3r, com base em que, você vem me ofender, e dizer que fiz uma cópia!?
Você por acaso já procurou averiguar os fatos?
Eu tenho um blog, onde postei isso faz um bom tempo, apenas integrei com a parte de iptables, na qual também lancei outro tutorial.
Infelizmente, pessoas que vem postar artigos para contribuir com a comunidade do software livre, as vezes se deparam com pessoas que nem você, que levantam falsas acusações sem nenhum motivo, acusando uma idiotisse dessa.
Cara, com todo respeito, mas vai procurar o que fazer!
Quanto a isso: quando você diz ""Segurança em seu LINUX", portanto, não abordei essa questão da BIOS. "
quer dizer que segurança no Linux não tem a ver com a bios ?
Segurança em seu Linux, DESKTOP! A Bios existe para quem usa Windows? Sim, A BIOS existe para quem usa Linux? SIM!
Acho que agora ficou fácil entender, hein!?
Se a BIOS rodasse com o LINUX, ou no LINUX eu até poderia abordar algo, se não gostou do artigo, procure outro para ler, que ti agrade, mas não fale mal do que não sabe.
[30] Comentário enviado por removido em 26/03/2010 - 15:06h
Li recentemente na INFO que os usuários de software livre são justamente os que mais sofrem de fraudes e invasões em seus sistemas, justamente por pensarem que estão imunes à qualquer ameaça digital. Entretanto, não há sistema para imune a burrice humana : D
Artigo muito pertinente, principalmente para conscientizar o usuário de GNU/Linux de que há ameaças para seu sistema.