sexta-feira, 27 de janeiro de 2012

Bloqueando o UltraSurf fácil e simples!

Pessoal,

Como todos já sabem, existe hoje na internet inúmeros programas e sites que burlam os bloqueios que nós administradores fazemos com o intuito de melhorar a utilização do nosso link de internet.

A mais nova dor de cabeça dos administradores é o filho do capeta UltraSurf.
Um colega meu estava possuído por esse filho do cão e me pediu uma ajuda.

Como um bom baiano que sou e bom conhecedor das mandingas do terreiro de Pai Pupuca lá em Salvador. Rsrsrsrsrsrsrs! Pedi ajuda aos orixás e a resolução pra mim foi mais simples do que pensava.

Após uma análise do tráfego que o ultrasurf fazia, verifiquei que o mesmo tenta fazer a primeira conexão na porta 443, depois na 554 e caso não consiga nessas duas portas, ele parte pra uma porta alta aleatória (de 1024 a 65535). Além de manter um tráfego UDP todo o tempo para vários endereços para controle.

Bom, com essa análise, apenas fiz o bloqueio da porta TCP/443 (Libero apenas para os sites de banco e alguns poucos sites que utilizamos). Será necessário ajuste fino para liberação de vários sites que utilizam o HTTPS. (Paciência, é a vida)

Fiz o bloqueio da porta TCP/554, não conheço nenhum serviço que utilize esta porta por padrão.

Finalmente fiz o bloqueio de todo o tráfego UDP saindo da minha rede, com exceção do meu servidor DNS interno, pois é o único que tem necessidade desse tipo de tráfego.

Pra mim funfou legal galera! Qualquer coisa testem ai e me falem.

OBS: Todas as modificações foram feitas no IPTABLES.

segunda-feira, 17 de maio de 2010

Instalando o Apache2 e configurando domínios virtuais num Linux Debian Based

Instalar o Apache2 via apt-get ou aptitude:
apt-get install apache2 ou
aptitude install apache2
O apache2 depende dos pacotes apache2-mpm-worker, apache2.2-common, porém o apt-get ou o aptitude irá resolver as dependências.

Após a instalação o apache já está instalado e funcionando na porta padrão do protocolo HTTP (Porta 80). Caso seja necessário modificar a porta do apache2 será necessário editar o arquivo /etc/apache2/ports.conf e modificar os parâmetros abaixo para o novo valor :
NameVirtualHost *:80
Listen 80
O apache2 já está pronto para configuração de novos domínios virtuais, para isso será necessário criar o arquivo que servirá como modelo para os próximos domínios virtuais como segue abaixo:

Arquivo: /etc/apache2/sites-available/dominio.com.br

<VirtualHost *:80>
ServerName www.dominio.com.br
ServerAdmin network@dominio.com.br
DocumentRoot /webhost/dominio.com.br
ErrorLog /var/log/apache2/dominio.com.br-error.log
CustomLog /var/log/apache2/dominio.com.br-access.log combined
<
/VirtualHost>


Este arquivo contém a configuração mínima para um domínio virtual para habilitarmos a configuração do mesmo basta executar os comandos abaixo:

Habilita o site dominio.com.br:
a2ensite dominio.com.br
Carrega as configurações feitas para a memória do apache2:
/etc/init.d/apache2 reload

Abaixo veremos uma configuração de domínio virtual mais avançada, onde criamos uma regra de autorização para uma determinada faixa de rede e criamos a autenticação numa determinada pasta do site:

<VirtualHost *:80>
ServerName www.dominio.com.br
ServerAdmin network@dominio.com.br
DocumentRoot /webhost/dominio.com.br
ErrorLog /var/log/apache2/dominio.com.br-error.log
CustomLog /var/log/apache2/dominio.com.br-access.log combined

# Configuração de autorização junto com autenticação do diretório
<Directory /webhost/dominio.com.br/intranet>
# Não permite listagem do diretório em caso de não haver uma página válida
Options -Indexes
# Opção que habilita a autenticação do diretório
AllowOverride AuthConfig
Order allow,deny
# Permite acesso apenas com origem da rede 10.1.0.0/16
allow from 10.1.0.0/16
deny from all
<
/Directory>
<
/VirtualHost>


Para que a configuração de autenticação funcione na pasta especificada é necessário criar o arquivo /webhost/dominio.com.br/intranet/.htaccess com as configurações abaixo:
AuthName "Intranet"
AuthType Basic
AuthUserFile /etc/apache2/htusers
AuthGroupFile /etc/apache2/htgroups
require valid-user
Esse arquivo irá permitir a autenticação de usuários criados pelo programa htpasswd e adicionados no arquivo htusers especificado. Veremos como criar e adicionar o arquivo htusers:

Criar o arquivo /etc/apache2/htusers adicionando um novo usuário:
htpasswd -c /etc/apache2/htusers usuario1
Adicionar um novo usuário no arquivo /etc/apache2/htusers:
htpasswd /etc/apache2/htusers usuario2
Pronto! Seu apache já está configurado com domínios virtuais e com a configuração de autorização e autenticação de usuários para um determinado diretório.

quinta-feira, 13 de maio de 2010

Instalação e configuração básica do VSFTPD com acesso anônimo num Linux Debian Based

Instalar o serviço FTP via apt-get ou aptitude:

apt-get install vsftpd ou
aptitude install vsftpd

Editar o arquivo de configuração do VSFTPD (/etc/vsftpd.conf) e habilitar as configurações abaixo:

listen=YES # Habilita o serviço FTP no modo Daemon (Standalone)
anonymous_enable=YES # Habilita o acesso ao usuário anounymous
local_enable=YES # Habilita o acesso de usuários locais
write_enable=YES # Permite escrita no servidor
anon_upload_enable=YES # Permite upload de arquivos pelo usuário anounymous
ftpd_banner=Bem vindo ao FTP Server # Modifica a mensagem de boas-vindas do Serviço FTP
max_clients=1 # Permite o máximo de 1 conexão no servidor
Criar usuário para acesso local, configurando a pasta home:

useradd -m -d /webhost/dominio.com.br usuario
Testar a conexão localmente:

ftp localhost
Connected to localhost.
220 Bem vindo ao FTP Server
Name (localhost:usuario):
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put teste_upload.txt
ftp> get teste_download.txt


FTP instalado e configurado corretamente para acesso de usuários locais e usuário anonymous.

quarta-feira, 31 de março de 2010

Autenticação via SSH utilizando chave pública

Secure Shell ou SSH é, simultaneamente, um programa de computador e um protocolo de rede que permite a conexão com outro computador na rede, de forma a executar comandos de uma unidade remota. Possui as mesmas funcionalidades do TELNET, com a vantagem da conexão entre o cliente e o servidor ser criptografada.

A autenticação do mesmo pode ser feita utilizando o par usuário e senha ou mesmo um par de chaves (pública e privada), onde, dependendo das chaves, não será necessário a interação humana para acesso ao servidor, como veremos abaixo:

No cliente é necessário gerar o par de chaves que será usado na autenticação do usuário em questão, no exemplo estou utilizando o usuário aluno:

CLIENTE - /home/aluno~:$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/aluno/.ssh/id_rsa): ENTER
Enter passphrase (empty for no passphrase): ENTER
Enter same passphrase again: ENTER
Your identification has been saved in /home/aluno/.ssh/id_rsa.
Your public key has been saved in /home/aluno/.ssh/id_rsa.pub.
The key fingerprint is:
45:a9:26:7a:76:81:d4:b5:4f:83:13:47:51:90:9a:90 aluno@cliente
The key's randomart image is:
+--[ RSA 2048]----+
| . o+o==. |
| . E..=. |
| . . o=oo |
| o +.o+ . |
| . oS. . |
| . o . |
| o . |
| |
| |
+-----------------+


Isso irá criar um par de chaves do tipo rsa, id_rsa (chave privada) e id_rsa.pub (chave pública) no diretório /home/aluno/.ssh

Agora vamos copiar o arquivo com a chave pública para o servidor no diretório home do usuário a ser utilizado para autenticação, no nosso caso aluno também:

CLIENTE - /home/aluno~:$ scp .ssh/id_rsa.pub aluno@ip do servidor:


No servidor agora, no diretório home do usuário aluno, vamos importar a chave pública do usuário aluno do cliente:

SERVIDOR - /home/aluno~:$ cat id_rsa.pub > .ssh/authorized_keys


Pronto, a chave pública do usuário aluno do cliente já está importada no usuário aluno do servidor, para testar o acesso basta acessar via ssh a partir do cliente para o servidor com o usuário aluno:

CLIENTE - /home/aluno~:$ ssh aluno@ip do servidor


O acesso será feito sem uso de senhas, apenas com a negociação das chaves.

quinta-feira, 4 de fevereiro de 2010

Adicionando/Modificando um novo campo de um registro do LDAP

ldapmodify -x -h $LDAPHOST -D $LDAPBIND -w $LDAPBINDPASS -c << EOF || exit 19
dn: cn=usuario@dominio.com.br,ou=contas,dc=mail,dc=dominio,dc=com,dc=br
changetype: modify

replace: quota
quota: 1048576010S

add: ServiceDelivery
ServiceDelivery: virtual
EOF

sexta-feira, 18 de dezembro de 2009

Instalando e modificando o Libnotify para o Pidgin

No Debian, basta instalar o pacote pidgin-libnotify e depois editar suas configurações no gconf-editor do gnome:

apt-get install pidgin-libnotify


Agora editamos a localização no gconf-editor e procuramos a chave /apps/notification-daemon/popup_location. Por padrão ela vem configurada para o canto superior direito (bottom_right).

Usando o Vi como editor do Crontab

Caso o seu editor default do crontab não seja o Vi e sim o Nano, basta você executar o comandos abaixo para que o Vi se torne esse editor default:

ln -s /usr/bin/vi /etc/alternatives/editor