quarta-feira, 1 de agosto de 2007

Protegendo pastas do Apache com senha

Hoje eu tive que colocar senha numa pasta do apache e como nunca tinha feito isso tive que correr atrás no google. Então axei um site que me ajudou muito

Então adaptando um pouco lá vai:

entre na pasta do apache que deseja proteger, por exemplo /var/www/pasta_com_senha/

utilize o comando abaixo para criar o arquivo com a senha

# htpasswd -c /var/www/pasta_com_senha/.htpasswd web

Explicando:

/var/www/pasta_com_senha/.htpasswd é o arquivo que armazena a senha, você pode utilizar o nome que quiser porém por questões de segurança sempre o mantenha oculto. Obrigatoriamente ele deve estar na pasta que você deseja proteger.

web é o usuário que vai acessar a pasta, você pode escolher qualquer usuário.

após executar o comando ele vai pedir uma senha, que será a de acesso junto com o usuário web.

Agora no arquivo de configuração do Apache 2, /etc/apache2/apache2.conf , adicione o seguinte trecho:



<directory "/var/www/pasta_com_senha/">
AllowOverride None
Options Indexes MultiViews
Order allow,deny
Allow from all

AuthType Basic
AuthName "Acesso Restrito: "
AuthUserFile "/var/www/pasta_com_senha/.htpasswd"
Require valid-user

</directory>



Explicando as últimas linhas:

AuthType Basic É o tipo de autenticação
AuthName "Acesso Restrito: " É a mensagem que aparece quando pedir a senha
AuthUserFile "/var/www/pasta_com_senha/.htpasswd" É o arquivo que armazena a senha
Require valid-user Essa linha indica que usuário pode acessar, pode trocar valid-user pelo nome do usuário no caso web.

Para testar crie um arquivo php dentro da pasta com o seguinte conteúdo:

<?
phpinfo()
?>


Agora renicie o apache2

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

e tente acessar o arquivo php.

Qualquer dúvida comentem...

domingo, 29 de julho de 2007

Port Knocking

Bom esse post explica como fazer um Port Knocking com Iptables.

Port Knocking seria mais ou menos liberar uma porta no iptables caso seu ip esteja numa lista, caso contrário deixá-la bloqueada.

O exemplo que vou usar será o do ssh.

Antes de mais nada verifique se seu kernel possui o módulo ipt_recent
# modprobe -l | grep recent

se a saida do comando for parecida com
/lib/modules/2.6.20-15-generic/kernel/net/ipv4/netfilter/ipt_recent.ko

você não precisará compilar seu kernel. Agora suba o módulo
# modprobe ipt_recent

Agora crie um arquivo, o nome que utilizarei é pknock.sh e adicione ao seu conteúdo

Obs: As portas e o nome da lista podem e devem ser alterados para maior segurança.

#!/bin/bash
# bloqueia a porta do ssh, no caso a 2000 iptables -A INPUT -p tcp -s 0/0 --dport 2000 -j DROP
# libera a porta do ssh caso o ip esteja na lista SSHKNOCK
iptables -I INPUT -p tcp -s 0/0 --sport 1024:65535 --dport 2000 -m recent --rsource --name SSHKNOCK --rcheck -j ACCEPT
# ao se conectar na porta 2100 adiciona o ip na lista SSHKNOCK
iptables -I INPUT -p tcp -s 0/0 --sport 1024:65535 --dport 2100 -m recent --rsource --set --name SSHKNOCK -j DROP
# ao se conectar na porta 2200 retira o ip da lista SSHKNOCK
iptables -I INPUT -p tcp -s 0/0 --sport 1024:65535 --dport 2200 -m recent --rsource --name SSHKNOCK --remove -j DROP

salve o arquivo.

Agora para aplicar as regras ao iptables sempre que iniciar, no ubuntu edite o arquivo /etc/rc.local como root

# pico /etc/rc.local

antes da linha "exit 0"
adicione bash /home/user/pknock.sh

troque isso pela localização exata no teu pc.

salve o arquivo rc.local

Agora de permissão de execução para ele:
# chmod +x /etc/rc.local

Agora sempre que inicar seu pc as regras já estarão no iptables.

Dúvidas? comentem

Truecrypt

Truecrypt é um prorgama utilizado para criptografar partições inteiras, ou no meu caso pendrive.

No site é possivel fazer download do aplicativo tanto pra win quanto pra linux. O arquivo pra linux está no formato .tar.gz que contém ou um pacote .deb ou .rpm. No meu pc to usando o Ubuntu 7.04, então utilizarei o .deb.

# tar -zxvf truecrypt-4.3a-ubuntu-7.04-x86.tar.gz
# cd truecrypt-4.3a/
# dpkg -i truecrypt_4.3a-0_i386.deb

Criando a partição criptografada como usuário normal:

# truecrypt -c /dev/sda
Volume type:
1) Normal
2) Hidden
Select [1]: 1

WARNING: Data on device will be lost. Continue? [y/N]: y
Filesystem:
1) FAT
2) None
Select [1]: 1

Hash algorithm:
1) RIPEMD-160
2) SHA-1
3) Whirlpool
Select [1]: 1

Encryption algorithm:
1) AES
2) Blowfish
3) CAST5
4) Serpent
5) Triple DES
6) Twofish
7) AES-Twofish
8) AES-Twofish-Serpent
9) Serpent-AES
10) Serpent-Twofish-AES
11) Twofish-Serpent
Select [1]: 1

Enter password for new volume '/dev/sda':
Re-enter password:

Enter keyfile path [none]:

TrueCrypt will now collect random data.

To enable mouse movements to be used as a source of random data,
please do one of the following:
- Run TrueCrypt under administrator (root) account.
- Add read permission for your user to device /dev/input/mice.

Please type at least 320 randomly chosen characters and then press Enter:


Done: 1000.00 MB Speed: 16.25 MB/s Left: 0:00:00
Volume created.



Criando a partição criptografada como root:

# truecrypt -c /dev/sda
Volume type:
1) Normal
2) Hidden
Select [1]: 1

WARNING: Data on device will be lost. Continue? [y/N]: y
Filesystem:
1) FAT
2) None
Select [1]: 1

Hash algorithm:
1) RIPEMD-160
2) SHA-1
3) Whirlpool
Select [1]: 1

Encryption algorithm:
1) AES
2) Blowfish
3) CAST5
4) Serpent
5) Triple DES
6) Twofish
7) AES-Twofish
8) AES-Twofish-Serpent
9) Serpent-AES
10) Serpent-Twofish-AES
11) Twofish-Serpent
Select [1]: 1

Enter password for new volume '/dev/sda':
Re-enter password:

Enter keyfile path [none]:

Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]:y

Please move the mouse randomly until the required amount of data is captured...
Mouse data captured: 100%

Done: 1000.00 MB Speed: 14.25 MB/s Left: 0:00:00
Volume created.



Montando a partição:

# truecrypt -u /dev/sda /media/truecrypt

Enter user's or root's system password:
Enter password for '/dev/sda':

# truecrypt -l
/dev/mapper/truecrypt0 /dev/sda

Montado

Desmontando a partição:

# truecrypt -d /dev/sda

# truecrypt -l
No volumes mapped

Desmontado


Pronto agora seu pendrive está criptografado =)
Qualquer dúvida:

# man truecrypt

ou comentem


Esse post foi adaptado do artigo de andersonunifal

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6921