terça-feira, 19 de junho de 2012

Iptables

Iptables How to Básico

Iptables são uma firewall, instalado de base no Ubuntu Server. Numa instalação regular, as iptables estão instaladas, mas permitem todo o tráfego (assim a firewall esta inactiva)



Comandos Básicos

Escrevendo
# sudo iptables -L
Lista as tuas regras actuais nas iptables. Se acabaste de instalar, não deves ter nenhuma regra, e deverás ver


Chain INPUT (policy ACCEPT)

target     prot opt source               destination

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination


Permitir sessões estabelecidas

Podemos permitir sessões estabelecidas para receber tráfego:
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


Permitir Tráfego de entrar em portas específicas

Podes começar por bloquear tráfego, mas podes estar a trabalhar sobre SSH, então é necessário permitir SSH antes de bloquear o resto.
Para permitir tráfego de entrada na porta 22 (usada tradicionalmente pelo SSH), podes dizer a iptables para permitir todo o tráfego TCP na porta 22 da tua placa de rede.
# iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
Especificamente, isto adiciona (-A) a tabela INPUT a regra que qualquer tráfego na interface (-i) eth0 na porta de destino para o ssh que a iptables deverá saltar ("jump" -j), ou realizar a acção ACCEPT (aceitar).
Vamos conferir as regras: (só as primeiras linhas são mostradas, vais ver mais)
# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
Agora, vamos permitir todo o tráfego web
# iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
Conferir as regras, temos:
# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
Foi permitido especificamente o tráfego tcp para ssh e porta web, mas ainda não esta nada bloqueado, todo o tráfego pode entrar ainda.


Bloquear Tráfego

Quando uma decisão sobre um pacote é tomaca, outras regras não o afectam. Como as regras para permitir ssh e web vêm primeiro, e se as regras para bloquear tudo estiverem depois delas, pode-se continuar a aceitar o tráfego que queremos. Tudo o que é preciso fazer é colocar no final a regra para bloquear o tráfego todo. O comando -A diz as iptables para adicionar a regra no final, assim vamos usar mais uma vez.
# iptables -A INPUT -j DROP
# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
DROP       all  --  anywhere             anywhere
Como não foi especificado nenhuma interface ou protocolo, qualquer tráfego em qualquer porta vai ser bloqueado, exepto para web e ssh.


Editar Iptables

O único problema com esta configuração até agora é que até a porta de loopback estar bloqueada. Podiamos só ter escrito as regras de negação só para o eth0 especificando -i eth0, mas pode-se adicionar uma regra para o loopback. Se adicionar-mos essa regra agora, já vem tarde - depois do tráfego já ter sido negado. É preciso adicionar na quarta linha.
# iptables -I INPUT 4 -i lo -j ACCEPT
# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere
As últimas 2 linhas são muito semelhantes, por isso fazemos uma listagem com mais detalhes.
# iptables -L -v


Logging

Nos exemplos em cima nenhum do tráfego era registado. Se queres um log dos pacotes bloqueados para o syslog, está pode ser a forma mais rápida:
In the above examples none of the traffic will be logged. If you would like to log dropped packets to syslog, this would be the quickest way:
# iptables -I INPUT 5 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
Vê a secção #Dicas para mais ideias sobre logging.

Gravar iptables

If you were to reboot your machine right now, your iptables configuration would disapear. Rather than type this each time you reboot, however, you can save the configuration, and have it start up automatically. To save the configuration, you can use iptables-save and iptables-restore.


Configurar no Startup

Grava as tuas regras da firewall para um ficheiro
# iptables-save > /etc/iptables.up.rules
Depois modifica o script /etc/network/interfaces para aplicar as regras automáticamente ( a última linha é adicionada )
auto eth0
iface eth0 inet dhcp
  pre-up iptables-restore < /etc/iptables.up.rules
Também podes preparar um conjunto de regras de negação de ligações.
You can also prepare a set of down rules and apply it automatically
auto eth0
iface eth0 inet dhcp
  pre-up iptables-restore < /etc/iptables.up.rules
  post-down iptables-restore < /etc/iptables.down.rules


Dicas

Se as iptables são editadas regularmente
Os passos acima descrevem como configurar a tua firewall e presumir que vão ser relativamente estáticas ( e para a maioria deve ser ). Mas se realizas muito trabalho de desenvolvimento, podes querer que as tuas iptables sejam gravadas todas as vezes que reinicias. Para tal, podes-se adicionar uma linha como esta no etc/network/interfaces:
 pre-up iptables-restore < /etc/iptables.up.rules
 post-down iptables-save > /etc/iptables.up.rules
A linha "post-down iptables-save > /etc/iptables.up.rules" irá gravar as regras para ser usadas no próximo boot.
Using iptables-save/restore to test rules
If you edit your iptables beyond this tutorial, you may want to use the iptables-save and iptables-restore feature to edit and test your rules. To do this open the rules file in your favorite text editor (in this example gedit).
# iptables-save > /etc/iptables.test.rules
# gedit /etc/iptables.test.rules
You will have a file that appears similiar to (following the example above):
# Generated by iptables-save v1.3.1 on Sun Apr 23 06:19:53 2006
*filter
:INPUT ACCEPT [368:102354]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [92952:20764374]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j DROP
COMMIT
# Completed on Sun Apr 23 06:19:53 2006
Notice that these are iptables commands minus the iptable command. Feel free to edit this to file and save when complete. Then to test simply:
# iptables-restore < /etc/iptables.test.rules
After testing, if you have not added the iptables-save command above to your /etc/network/interfaces remember not to lose your changes:
# iptables-save > /etc/iptables.up.rules
More detailed Logging
For further detail in your syslog you may want create an additional Chain. This will be a very brief example of my /etc/iptables.up.rules showing how I setup my iptables to log to syslog:
# Generated by iptables-save v1.3.1 on Sun Apr 23 05:32:09 2006
*filter
:INPUT ACCEPT [273:55355]
:FORWARD ACCEPT [0:0]
:LOGNDROP - [0:0]
:OUTPUT ACCEPT [92376:20668252]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j LOGNDROP
-A LOGNDROP -p tcp -m limit --limit 5/min -j LOG --log-prefix "Denied TCP: " --log-level 7
-A LOGNDROP -p udp -m limit --limit 5/min -j LOG --log-prefix "Denied UDP: " --log-level 7
-A LOGNDROP -p icmp -m limit --limit 5/min -j LOG --log-prefix "Denied ICMP: " --log-level 7
-A LOGNDROP -j DROP
COMMIT
# Completed on Sun Apr 23 05:32:09 2006
Note a new CHAIN called LOGNDROP at the top of the file. Also, the standard DROP at the bottom of the INPUT chain is replaceed with LOGNDROP and add protocol descriptions so it makes sense looking at the log. Lastly we drop the traffic at the end of the LOGNDROP chain. The following gives some idea of what is happening:
* --limit sets the number of times to log the same rule to syslog
* --log-prefix "Denied..." adds a prefix to make finding in the syslog easier
* --log-level 7 sets the syslog level to informational (see man syslog for more detail, but you can probably leave this)
Desactivar a firewall
Se for preciso desáctivar a firewall temporariamente, podes apagar as regras usando:
# sudo iptables -F

quinta-feira, 7 de junho de 2012

Malware cria roubo automatizado de contas bancárias

 

 
Nesta imagem um dos trojans tenta fazer uma TED (Transferência Eletrônica de Fundos) a partir do computador da vítima


São Paulo – Cibercriminosos criaram uma nova forma automatizada de obter dados de contas bancárias usando o próprio computador da vítima.
Segundo a empresa Kaspersky, os cibercriminosos deixaram de lado golpes comuns por meio de páginas falsas e estão agora utilizando funções presentes em trojans bancários mais antigos como o Zeus e o Carberp. A técnica utilizada é chamada de URLZone.


Após a infecção, uma transação não autorizada é feita a partir da máquina da vítima, em vez de ser feita no computador do cibercriminoso. Mesmo bancos que utilizam a função "cadastramento de computadores", onde o usuário informa dados de sua máquina, podem estar em perigo.
Ao usar essa técnica os cibercriminosos evitam a detecção do golpe por sistemas anti-fraudes utilizados por alguns bancos e geram uma operação ilegal sem levantar suspeitas. O outro trojan conhecido como Carberp também possui funções semelhantes.
De acordo com a Kaspersky, diversos trojans bancários brasileiros usam essa técnica, conhecida como “automação”, que geralmente é instalada em ataques de drive-by-download e utilizam plugins no navegador infectado.
O golpe está programado para pagar contas ou realizar transferências de grandes valores. Basta que a vítima acesse a página do internet banking para o trojan iniciar as operações de roubo em segundo plano.
Com o aumento desse número de trojans nos últimos meses, alguns bancos no Brasil começaram a exigir a digitação de CAPTCHAS (digitação de letras e números aleatórios) para validar algumas operações. Porém, a Kaspersky afirma ter encontrado versões dos trojans com funções para quebrar os CAPTCHAS.
Para evitar cair nesse tipo de golpe é essencial que o usuário possua um software de segurança ativo e atualizado em sua máquina e sempre estar atento à movimentação em sua conta bancária e comunicar o banco se perceber alguma ação indevida.


Internet começa a migrar para o IPv6 nesta quarta-feira


Apesar da mudança, a maioria dos usuários não deve sentir diferenças.  “99,95% das pessoas será capaz de acessar os serviços sem interrupção. Caso eles não se conectem via IPv6, serão redirecionados para o protocolo IPv4. No entanto, como acontece com qualquer tecnologia de próxima geração, pode haver falhas”, afirmou o Google, em junho do ano passado, ao anunciar um teste de migração.

O IPv6 é o formato que vai substituir o atual padrão IPv4, baseado em 32 bits, que possui limite de 4,3 bilhões de combinações. A popularização de smartphones, tablets e outros dispositivos conectados forçou a ampliação do número de IPs.
Com o novo formato, o total de combinações disponíveis salta para 340 undecilhões (ou 3.4×10 elevado a 38). 

LinkedIn confirma roubo de senhas


O LinkedIn afirmou que os usuários que tiveram as senhas roubadas serão avisados por e-mail com instruções de como restaurar sua conta, uma vez que a empresa retirou a validade das senhas roubadas para evitar mais problemas. Ontem, 6, um cracker russo afirmou ter roubado 6.46 milhões de senhas encriptadas do LinkedIn e as publicado na internet.
Segundo empresas de segurança, cerca de 300.000 dessas senhas eram consideradas fracas e já teriam sido quebradas e utilizadas pelos criminosos.
O LinkedIn atualmente possui mais de 160 milhões de usuários e este ataque pode afetar menos de 10% da base de usuários.

Verifique se sua senha do LinkedIn foi roubada
Caso não queira aguardar até receber informações do próprio LinkedIn, os usuários podem utilizar a ferramenta da LastPass para checar se sua senha está entre as roubadas pelos crackers.
Basta acessar o site e digitar somente a senha utilizada no serviço e checar se ela se encontra entre as mais de 6 milhões roubadas.

quarta-feira, 30 de maio de 2012

A importância da segurança da informação


       Vivemos em um mundo globalizado, com o espaço geográfico fragmentado, porém fortemente articulado pelas redes, onde a informação, independente do seu formato, é um dos maiores patrimônios de uma organização moderna, sendo vital para quaisquer níveis hierárquicos e dentro de qualquer instituição que deseja manter-se competitiva no mercado. Considerada um ativo importantíssimo para a realização do negócio a informação deve ser protegida e gerenciada.
Nos últimos anos as tecnologias de informação e comunicação têm evoluído de forma rápida, fazendo com que as organizações tenham maior eficiência e rapidez nas tomadas de decisão, devido a este fato as chances de uma empresa não usar sistemas de informação tornou-se praticamente nula. Neste contexto a importância de se utilizar mecanismos de segurança e de armazenamento das informações é vital para a sobrevivência e competitividade destas organizações.

No passado a questão segurança da informação era muito mais simples, pois os arquivos contendo inúmeros papéis podiam ser trancados fisicamente, porém com a chegada das tecnologias da informação e comunicação a questão ficou bem mais complexa, hoje a maioria dos computadores conecta-se a internet e conseqüentemente a internet conecta-se a eles, além disto, sabemos que dados em formato digital são portáteis, este fato fez que estes ativos tornassem atrativos para ladrões. Mas isto não é tudo, existem inúmeras situações de insegurança que podem afetar os sistemas de informação como incêndios, alagamentos, problemas elétricos, poeira, fraudes, uso inadequado dos sistemas, engenharia social, guerras, seqüestros, etc.

Portanto podemos dizer que não existe segurança absoluta, torna-se necessário agirmos no sentido de descobrir quais são os pontos vulneráveis e a partir daí avaliar os riscos e impactos, e rapidamente providenciar para que a segurança da informação seja eficaz.

Infelizmente o que vemos na prática é que muitas empresas não dão o devido valor a esta questão e por muitas vezes o preço é muito alto, portanto o melhor caminho é reduzir ao máximo quaisquer riscos às informações, seguindo um trajeto no sentido único de manter a integridade e a disponibilidade dos sistemas de informação.
Para se implantar uma eficaz segurança da informação dentro de uma organização devemos ficar atentos para algumas questões como uma boa análise de riscos, a definição da Política de Segurança e por fim um plano de contingência.

A análise de riscos basicamente visa a identificação dos pontos de riscos que a que a informação está exposta, identificando desta maneira quais os pontos que necessitam de maior empenho em proteção. A política de segurança da informação é a formalização explícita de quais ações serão realizadas em um sentido único de garantir a segurança e disponibilidade dos mesmos, esta política é de extrema importância uma vez que descreve as regras necessárias para o uso seguro dos sistemas de informação. Os planos de contingência também possuem papel fundamental, pois descrevem o que deve ser feito em caso de problemas com as informações.

Nota-se que normalmente as pessoas são o elo mais frágil quando o assunto é segurança da informação, as soluções técnicas não contemplam totalmente sua segurança, desta forma torna-se necessário que os conceitos pertinentes a segurança sejam compreendidos e seguidos por todos dentro da organização, inclusive sem distinção de níveis hierárquicos.

Uma vez identificados quais os riscos que as informações estão expostas deve-se imediatamente iniciar um processo de segurança física e lógica, com o intuito de alcançar um nível aceitável de segurança.


segunda-feira, 14 de maio de 2012

Configuração SMB.CONF

Arquivo de Configuração


O arquivo de configuração do samba é o /etc/samba/smb.conf. Ele é dividido em duas sessões: Global e Sharing(compartilhamentos).

Sessão Global



[global]
# Definição do grupo de trabalho do servidor. O que for colocado aqui aparecerá no ambiente de rede windows
workgroup = informatica

# Descrição do servidor
server string = Servidor de Arquivos

# Permite o acesso apenas para os hosts nas redes especificadas.
hosts allow = 192.168.0. 127. 192.168.1.

# Carrega a lista das impressoras configuradas no sistema
printcap name = /etc/printcap
load printers = yes

# Representa uma conta guest, caso não seja de interesse, comente esta linha. Lembro que o usuário nobody deve existir
guest account = nobody

# Configura o samba para usar um arquivo de log para cada máquina que se conecte a ele
log file = /var/log/samba/%m.log
# caso queira um log único, use a linha abaixo
# log file = /var/log/samba/smbd.log

# Define o tamanho do arquivo de log. Em kb
max log size = 50

# Define a forma que o samba irá permitir acesso aos seus compartilhamentos. Se usarmos o parâmetro user, limitamos o acesso apenas a usuários cadastrados no servidor
security = user

# Se vc compartilhará recursos com sistemas que fazem diferença de caso(Maiúsculo/Minúsculo), siga as instruções abaixo:
# Preserva o caso(Maiúsculo/Minúsculo) do arquivo
preserve case = no

# Define se o arquivo criado pelo cliente obedecerá o padrão default do cliente. No caso definindo em no, significa que o arquivo será criado com o caso definido em defaul case
short preserve case = no

# Por default o DOS usa caixa alta, vamos definir como default caixa baixa
default case = lower

# Ativa ou desativa a verificação do caso pelo samba
case sensitive = no


Sessão de Compartilhamentos


Definição dos compartilhamentos. Aqui são definidas as pastas que deseja-se compartilhar com a rede.


#Faz com que sempre se mapei o diretório home do usuario
[homes]
comment = Diretorios de usuarios
browseable = no
writable = yes

# Para uso com máquinas NT/2000. o servidor cria um share netlogon
[netlogon]
comment = Network Logon Service
path = /home/netlogon
guest ok = yes
writable = no
share modes = no

# Carrega a lista de impressoras do sistema
[printers]
comment = All Printers
path = /va r/spool/samba
browseable = no
public = yes
guest ok = no
writable = no
printable = yes

# Cria um compartilhamento do diretorio tmp da máquina
[tmp]
comment = Temporary file space
path = /tmp
read only = no
valid users = teste_smb
write list = +users

# Define um diretório de acesso público, somente leitura, exceto para as pessoas que estejam dentro do grupo users
[public]
comment = Diretorio publico
path = /home/samba
public = yes
read only = yes
write list = +users


Parâmetros usados em compartilhamento


ParâmetroFunção
commentComentário do compartilhamento
pathpasta a compartilhar
publcDefine que todos podem acessar o compartilhamento
read onlydefine com somente leitura
write listDefine as pessoas ou grupos que podem gravar no compartilhamento. Se um grupo for especificado, anteceda ele com uma + (No passado era utilizado @).
create maskDefine a máscara de criação de arquivos dentro deste diretório, Ex: 775
browseableEsconde o diretorio de todos
writableDefine se é possível gravar no compartilhamento
valid usersUsuários válidos para o compartilhamento   

quarta-feira, 2 de maio de 2012

A história do Samba

     O Samba foi criado por Andrew Tridgell. Tridgell precisava montar um espaço em disco em seu PC para um servidor Unix. Esse computador rodava DOS e, inicialmente, foi utilizado o sistema de arquivos NFS (Network File System) para o acesso. Porém, um aplicativo precisava de suporte ao protocolo NetBIOS (que não era suportado pelo NFS). A solução que Tridgell encontrou não parecia ser das mais simples: ele escreveu um Sniffer (pequeno programa para captura de tráfego de dados em rede) para poder analisar o tráfego de dados gerado pelo protocolo NetBIOS. Uma vez implementado, Tridgell utilizou engenharia reversa em cima do protocolo SMB (Server Message Block) e implementou no Unix. Isso fez com que o servidor Unix aparecesse como um servidor de arquivos Windows em seu computador com DOS.

     Tridgell disponibilizou esse código publicamente 1992. Algum tempo depois o projeto foi posto de lado e assim ficou. Um dia Tridgell decidiu conectar o PC de sua esposa ao seu computador, que rodava Linux. Porém, na hora de conecta-los não encontrou meio melhor de fazer isso, se não com seu antigo código.
Após algumas trocas de e-mails, Tridgell descobriu que as documentações dos protocolos SMB e NetBIOS estavam atualizadas e então decidiu voltar a se dedicar ao projeto. Um dia, uma empresa entrou em contato com Tridgell reivindicando os direitos sobre o nome usado no software. Então ele teve a idéia de procurar em um dicionário uma palavra que tivesse as letras s, m e b (de SMB) e acabou encontrando a palavra "samba". A partir daí o projeto Samba cresceu e hoje Andrew Tridgell conta com uma excelente equipe de programadores e com milhares de usuários de sua solução espalhados pelo mundo.