domingo, 30 de março de 2008
Reinstalando o GRUB
Usaremos um Live CD, do Ubuntu por exemplo, para inicializarmos a máquina.
Motando a partição onde se encontra o diretório raiz "/":
# mkdir /media/mnt
# mount /dev/sda1 /media/mnt/
# mount -o bind /dev/ /media/mnt/dev
Usaremos o camando chroot para entrarmos no ambiente do sistema:
# chroot /media/mnt
Para recuperar o grub usaremos o seguinte comando:
grub-install /dev/sda
terça-feira, 25 de março de 2008
Montando compartilhamento Windows (Cont.)
username=usuário
password=senha
Para proteger esse arquivo contra leituras de terceiros:
chmod 600 /root/secret.txt
Agora basta acrescentar a seguinte linha em /etc/fstab:
//maquina_windows/pasta_compartilhada /mnt/win cifs user,
uid=500,rw,noauto,suid,credentials=/root/secret.txt 0 0
segunda-feira, 24 de março de 2008
Dica: Arquivos com senha usando o VI
vi -x arquivo.txt
Caso o arquivo ainda não esteja encriptado, foneça uma senha:
Enter encryption key:Daí toda vez que abrir o arquivo será pedido a senha criada.
vi arquivo.txt
segunda-feira, 17 de março de 2008
Montando compartilhamento Windows
1 - Criando o diretório onde será montado o compartilhamento:
#mkdir /mnt/win
2 - Edite o arquivo /etc/fstab e adicione a seguinte linha:
3 - O compartilhamento será montado no boot do sistema, mas você poderá montar com o comando:
#mount /mnt/win
Em breve mais dicas sobre montagens de compartilhamento Windows no Linux.
quinta-feira, 13 de março de 2008
PF: Firewall (OpenBSD) para Casa ou Pequeno Escritório
A Rede
A rede está configurada da seguinte forma:
[ COMP1 ] [ COMP3 ]
| |
---+------+-----+------- xl0 [ OpenBSD ] fxp0 --- ( Internet )
|
[ COMP2 ]
Existem vários computadores na rede interna; o diagrama mostra apenas três, mas o número real é irrelevante. Estes computadores são estações de trabalho usadas para navegar na Internet, ler email, chat, etc., exceto COMP3 que também roda um pequeno servidor web. A rede interna usa a faixa de ips 192.168.0.0 / 255.255.255.0.
O firewall OpenBSD é um Celeron 300 com duas placas de rede: uma 3com 3c905B (xl0) e uma Intel EtherExpress Pro/100 (fxp0). Ele possui uma conexão Internet a Cabo e faz NAT para compartilhar o acesso com a rede interna. O endereço IP na interface externa é atribuído dinamicamente pelo Provedor de Acesso Internet.
Objetivo
Os Objetivos são:- Prover acesso irrestrito à Internet para a rede interna.
- Usar "negar por padrão" como política padrão de regras.
- Permitir o seguinte tráfego vindo da Internet para o firewall:
- SSH (porta TCP 22): será utilizado para manutenção remota do firewall.
- Auth/Ident (porta TCP 113): utilizado por alguns serviços como SMTP e IRC.
- ICMP Echo Requests: o tipo de pacote ICMP usado pelo comando ping.
- Redirecionar tentativas de conexão na porta 80 TCP (que são tentativas de conexão a um servidor web) para o computador COMP3. Também permitir trafego TCP porta 80 destinado a COMP3 através do firewall.
- Logar estatísticas de filtragem na interface externa.
- Por padrão, responder com um TCP RST ou ICMP Unreachable para pacotes bloqueados.
- Tornar as regras o mais simples possível, para facilitar a manutenção.
Preparação
As regras
A seguir um passo a passo através das regras que realizarão os objetivos acima descritos.Macros
As seguintes macros são definidas para facilitar a leitura e manutençao das regras:ext_if="fxp0"
int_if="xl0"
tcp_services = "{ 22, 113 }"
icmp_types = "echoreq"
comp3="192.168.0.3"
As primeiras duas linhas definem a interface de rede onde a filtragem acontecerá. Definindo elas aqui, se precisarmos mover este sistema para outra máquina com hardware diferente, nós trocamos apenas estas duas linhas e o resto das regras continuará a mesma. A terceira e quarta linhas listam os números de portas TCP dos serviços que serão abertos para a internet (SSH e ident/auth) e os tipos de pacotes ICMP que terão permissão de alcançar a máquina do firewall. Finalmente, a última linha define o endereço IP de COMP3.
Nota: Caso a conexão com a Internet necessite PPPoE, então, filtragem e NAT devem acontecer na interface tun0 não em fxp0.
Opções
set block-policy return
set loginterface $ext_if
Todo sistema Unix possui uma interface "loopback". É uma interface de rede virtual que é utilizada por aplicações para conversarem entre si dentro do sistema. No OpenBSD, a interface loopback é lo. É recomendado desabilitar qualquer filtragem nas interfaces loopback. Usando set skip para isto.
set skip on lo
Scrub
scrub in
Tradução do Endereço de Rede (NAT)
Para fazer NAT para toda a rede interna a seguinte regra nat será usada:nat on $ext_if from !($ext_if) to any -> ($ext_if)
O "!($ext_if)" pode ser substituído por "$int_if" neste caso, mas caso você tenha várias interfaces precisará adicionar mais regras NAT, ao passo que, com esta estrutura o NAT será feito em todas as interfaces protegidas.
Já que o endereço IP da interface externa é atribuído dinamicamente, parênteses devem ser colocados em volta da interface, assim o PF notará qualquer alteração no endereço.
Como queremos que o proxy FTP funcione, adicionaremos uma âncora NAT também:
nat-anchor "ftp-proxy/*"
Redirecionamento
rdr-anchor "ftp-proxy/*"
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
Note que esta regra funcionará apenas com conexões destinadas à porta 21. Caso usuários se conectem a servidores FTP em outras portas, então uma lista deve ser utilizada para especificar as portas de destino, por exemplo: from any to any port { 21, 2121 }.
As últimas regras de redirecionamento pegam qualquer tentativa de conexão vinda da Internet em direção à porta 80 TCP no firewall. Tentativas de conexões legítimas nesta porta serão de usuários tentando acessar o servidor web da rede. Estas conexões devem ser redirecionadas para COMP3:
rdr on $ext_if proto tcp from any to any port 80 -> $comp3
Regras de Filtragem
Agora as regras de filtragem. Começando com negar por padrão:block in
Neste ponto todo tráfego tentando entrar em uma interface será bloqueado, mesmo estes da interface de rede interna. As regras seguintes abrem o firewall de acordo com os objetivos acima descritos, bem como quaisquer interfaces virtuais que se façam necessárias.
Tenha em mente que o pf pode bloquear tráfego entrando e saindo de uma interface. Para simplificar sua vida você pode escolher fazer a filtragem de tráfego em apenas uma direção ao invés de bloquear entrada e saída. Em nosso caso optamos por filtrar tráfego entrando na interface, uma vez filtrada a entrada, não tentaremos obstruir sua saída, portanto faremos o seguinte:
pass out keep state
Precisamos ter uma âncora para o ftp-proxy:
anchor "ftp-proxy/*"
É bom usar também a proteção antispoof:
antispoof quick for { lo $int_if }
Agora abrimos as portas usadas pelos serviços que estarão disponíveis para a Internet. Primeiro, o tráfego que é destinado ao firewall em si:
pass in on $ext_if inet proto tcp from any to ($ext_if) \
port $tcp_services flags S/SA keep state
Especificando as portas na macro $tcp_services simplifica a abertura de serviços adicionais para a Internet através da simples edição da macro e recarregamento das regras. Serviços UDP também podem ser abertos com a criação de uma macro $udp_services e adição de uma regra de filtragem similar à anterior, que especifique proto udp.
Além de ter uma regra rdr que redireciona o tráfego do servidor web para COMP3, ainda PRECISAMOS permitir a passagem do tráfego através do firewall:
pass in on $ext_if inet proto tcp from any to $comp3 port 80 \
flags S/SA synproxy state
Para aumentar um pouco a segurança, faremos uso de TCP SYN Proxy com intuito de proteger o servidor web.
Tráfego ICMP precisa ser permitido:
pass in inet proto icmp all icmp-type $icmp_types keep state
Similar à macro $tcp_services, a macro $icmp_types pode ser facilmente editada para alterar os tipos de pacotes ICMP que terão permissão de passar pelo firewall. Note que esta regra se aplica a todas interfaces de rede.
Agora o tráfego deve passar "de" e "para" a interface interna. Assumiremos que os usuários da rede interna sabem o que estão fazendo e não nos causarão problemas. Esta não é necessariamente uma suposição válida; um conjunto de regras muito mais restritivo pode ser apropriado para muitos ambientes.
pass in quick on $int_if
Tráfego TCP, UDP e ICMP pode sair do firewall com destino à Internet de acordo com a regra "pass out keep state" anterior. A informação de estado das conexões é mantida de forma que pacotes que retornam passarão pelo firewall.
O Conjunto Completo de Regras
# macros
ext_if="fxp0"
int_if="xl0"
tcp_services="{ 22, 113 }"
icmp_types="echoreq"
comp3="192.168.0.3"
# opções
set block-policy return
set loginterface $ext_if
set skip on lo
# scrub
scrub in
# nat/rdr
nat on $ext_if from !($ext_if) -> ($ext_if:0)
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021
rdr on $ext_if proto tcp from any to any port 80 -> $comp3
# regras de filtragem
block in
pass out keep state
anchor "ftp-proxy/*"
antispoof quick for { lo $int_if }
pass in on $ext_if inet proto tcp from any to ($ext_if) \
port $tcp_services flags S/SA keep state
pass in on $ext_if inet proto tcp from any to $comp3 port 80 \
flags S/SA synproxy state
pass in inet proto icmp all icmp-type $icmp_types keep state
pass quick on $int_if
segunda-feira, 10 de março de 2008
O comando MOUNT
Em sua forma mais básica, basta usar:
# mount opcoes dispositivo ponto_de_montagem
Para verificar quais sistemas de arquivos estão montados, digita-se apenas:
# mount
Por exemplo, pode-se remontar uma partição já montada /dev/hda5 como somente-leitura executando o seguinte comando:
# mount -o remount,ro /dev/hda5 /mnt/C/
Uma vez terminado o backup, pode-se remontá-la novamente como leitura e escrita:
# mount -o remount,rw /dev/hda5 /mnt/C/
# mount -t iso9660 -o loop,ro redhat-i386-CD-1.iso /mnt/iso
Para desmontagem dos sistemas de arquivos, utiliza-se o comando umount que recebe como parâmetro o ponto de montagem ou o dispositivo.
# umount '(ponto_de_montagem | dispostivo)'
segunda-feira, 3 de março de 2008
Dicas de Sites
Site muito bom sobre Oracle, com vários artigos e tutoriais das versões 8,9,10 e 11g do Oracle. Tem também várias dicas de configuração de Linux e Oracle. Guia de instalação do Oracle nos Linux Red Hat e Fedora.
2 - www.puschitz.com
Nesse site encontra-se muitos artigos sobre Linux, com foco em segurança e customização. Tem também guias de instalação do Oracle em Red Hat Linux.