Comandos “which” e “whereis”

August 24, 2009 by thiago · Deixe seu comentário
Filed under: Live Linux 

Os comandos which e whereis são usados para realizar a busca de arquivos no sistema de forma muito rápida. Mas Você sabe a diferença entre os 2?

  • whereis – busca por arquivos executáveis, man pages, arquivos de configuração e fontes.
  • which – busca por executáveis nos PATHs exportados.

Exemplos:

# whereis named.conf
named: /usr/sbin/named /etc/named.conf /usr/share/man/man8/named.8.gz

# whereis httpd
httpd: /usr/sbin/httpd /etc/httpd /usr/share/man/man8/httpd.8.gz

# which httpd
/usr/sbin/httpd

# which X /usr/bin/X11/X

Ótima dica para quem se ve perdido no linux.

[]‘s

Lista de softwares equivalentes do WINDOWS para o LINUX

August 10, 2009 by thiago · Deixe seu comentário
Filed under: Live Linux 

Segue o site pessoal

http://www.linuxrsp.ru/win-lin-soft/table-eng.html

Muito bacana.

[]‘s

Instalação e Configuração do shorewall

August 10, 2009 by thiago · Deixe seu comentário
Filed under: Live Linux 

O que é shorewall?

Shorewall é uma interface de configuração de regras de Iptables (Front-End).  O Shoreline, mais conhecido como Shorewall, possibilita uma configuração mais organizada e rápida do seu firewall.
Instalar os pacotes:

# apt-get install shorewall shorewall-doc

Copiar os arquivos de exemplo para o diretório de configuração do shorewall:

# cp /usr/share/doc/shorewall/examples/two-interfaces/* /etc/shorewall/

Uma rápida explicação de cada arquivo de configuração, para uma implementação simples de firewall.

Zones

Neste arquivo são definidos os tipos de zonas de sua rede. Os três tipos de zonas mais utilizados são:

  • loc – Define a zona local. Será utilizado para definir regras para a rede local;
  • net – Define a zona de Internet. Será utilizado para definir regras para o link de dados;
  • dmz – Define a zona delimitada.

A variável FW já é uma zona declarada implicitamente. Essa zona corresponde ao firewall e é utilizada para definir regras para o mesmo.

Editar o arquivo /etc/shorewall/zones e inserir a seguinte configuração:

###########################
#ZONE TYPE OPTIONS IN OUT
###########################
net ipv4
loc ipv4

# NUNCA REMOVER ESTA LINHA

Obs.: A zona FW não precisa ser definida, pois como já disse, é implicitamente definida.

Interfaces

Neste arquivo são atribuídas zonas às interfaces de rede. Antes de tudo deverá existir uma estrutura de rede. Neste artigo estou utilizando eth0 para Internet (DHCP) e eth1 para rede local (IP STATIC).

Editar o arquivo /etc/shorewall/interfaces e inserir:

###################################
#ZONE INTERFACE BROADCAST OPTIONS
###################################
net eth0 detect dhcp,tcpflags
loc eth1 detect tcpflags,detectnets,nosmurfs

# NUNCA REMOVA ESTA LINHA

Masq

Mais conhecido como masquerade (mascaramento de rede), o masq define as máscaras de rede e a ordem que elas serão apresentadas. Usado por servidores que servem como gateway para rede local.

Editar o arquivo /etc/shorewall/masq e inserir:

##############################################
#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC
##############################################
eth0 eth1

# NUNCA REMOVER ESTA LINHA

Policy

Toda política da rede é definida nesta zona. Antes de executar qualquer regra de exceção definida na zona rules (próximo tópico), o Shorewall utiliza as regras globais definidas nesta zona para só então dar prosseguimento às exceções.

Editar o arquivo /etc/shorewall/policy e inserir:

#
# Policies for traffic originating from the firewall ($FW)
#
# If you want open access to the Internet from your firewall, change the
# $FW to net policy to ACCEPT and remove the ‘info’ LOG LEVEL.
# This may be useful if you run a proxy server on the firewall.

$FW net ACCEPT # LINHA 1
$FW loc ACCEPT # LINHA 2
$FW all REJECT info # LINHA 3

# Policies for traffic originating from the local LAN (loc)
#
# If you want to force clients to access the Internet via a proxy server
# on your firewall, change the loc to net policy to REJECT info.

loc net REJECT info
loc $FW REJECT info
loc ipsec ACCEPT
loc all DROP info

#
# Policies for traffic originating from the Internet zone (net)
#

net $FW DROP info
net loc DROP info
net all DROP info

# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info

# ULTIMA LINHA – NUNCA REMOVA

Uma breve explicação de algumas linhas do conf policy:

  • LINHA 1 – Todas as requisições do firewall para a internet serão aceitas;
  • LINHA 2 – Todas as requisições do firewall para a rede local serão aceitas;
  • LINHA 3 – Todas as requisições do firewall para todos os outros lugares serão rejeitados e devidamente catalogado em log. Por isso o “info” ao final da linha.

As opções de ações usadas nas zonas policy e rules são:

  • ACCEPT – Aceita pacotes/requisições;
  • REJECT – Rejeita pacotes/requisições e retorna mensagem de rejeição;
  • DROP – Elimina pacotes/requisições e não retorna mensagem alguma.

Rules

Nesta zona são definidas as regras finais para o destino e origem de cada pacote/requisição. Após terem passados pelas regras da zona policy, o firewall trata os pacotes com essas exceções e direciona-os para o seu destino/origem finais.

Editar o arquivo /etc/shorewall/rules e inserir:

##########################################
#AÇÃO ORIGEM DESTINO PROTO DESTINO ORIGEM
#SOLICITANTE TAXA USUÁRIO
# ZONA ZONA PORTA PORTA(S)
##########################################

# Aceita conexões DNS vindas do firewall para a rede
#


DNS/ACCEPT $FW net

# Permite Ping vindos da “zone loc” para rede
#

Ping/ACCEPT loc $FW
Ping/ACCEPT loc loc

# Rejeita ping vindo da “zone net” batizados como “maus”…
#
Ping/ACCEPT net:200.200.200.00 $FW
Ping/DROP net $FW

ACCEPT $FW loc icmp
ACCEPT $FW net icmp

# Abrindo portas
#
ACCEPT net $FW tcp 22 # SSH
ACCEPT net $FW tcp 9000 # SSH
ACCEPT net $FW tcp 8080 # Tomcat6
ACCEPT net $FW tcp 9100 # Apache2
ACCEPT net $FW tcp 80 # Apache2
ACCEPT net $FW tcp 1521 # Oracle_Listener
ACCEPT net $FW tcp 10000 # Webmin
ACCEPT net $FW tcp 1158 # OEM

# Redirecionando conexões
# Neste exemplo estou direcionando uma requisição vinda da internet
# e direcionando-a para a rede local no IP 192.168.27.2 na porta 4899
#
DNAT $FW loc:192.168.27.2:4899 tcp 1158

# ULTIMA LINHA – NUNCA REMOVA

Mais informações no  site oficial do Shorewall.

[]‘s Pessoal.

GlusterFS – Cluster de Filesystem no Linux

August 1, 2009 by thiago · Deixe seu comentário
Filed under: Live Linux 

GlusterFS é um sistema de arquivos para cluster, ou melhor, um sistema de arquivos clusterizável, capaz de escalonar muitos e muitos GigaBytes e distribuí-los via rede, entre vários storages e servidores. Esse sistema de arquivos trabalha na arquitetura de cliente/servidor, onde você precisará ter um ou vários servidores de arquivos e os clientes se conectarão via rede, por padrão na porta 6996.

No GlusterFS você poderá criar várias estratégias para o armazenamento dos dados, sendo possível criar compartilhamentos estilo NFS, criar armazenamento distribuído, armazenamento distribuído+replicado, dentre outros.

Ao meu ver, a configuração mais interessante é o armazenamento distribuído, onde se pode criar vários servidores de arquivos e distribuir os dados para os clientes em apenas um ponto de montagem, ou seja, quando a máquina cliente gravar os dados no diretório (montado via rede), o GlusterFS se encarregará de realizar um “striping” dos dados entres todos os servidores. O conceito seria basicamente de um RAID 0 via rede, onde cada servidor do GlusterFS receberá uma pequena quantidade dos arquivos enviados pelo cliente, maximizando assim a performance de Leitura/Gravação.

Alguém pode estar se questionando, “E se um servidor resolver parar?”. Para ambientes críticos poderá utilizar a configuração de armazenamento distribuído + replicado. Para maiores informações, veja o wiki do GlusterFS.

Instalação

A distribuição Linux utilizada foi o Ubuntu, onde todos os pacotes necessários para o GlusterFS já estão disponíveis nos repositórios, e a instalação é muito simples.

Nos servidores:

# apt-get update
# apt-get install glusterfs-server

Nos clientes:

# apt-get update
# apt-get install glusterfs-client

Em ambos (Cliente/Servidor) foi criado um diretório em /etc/glusterfs/ contendo o arquivo de configuração. Eles são “glusterfs-server.vol” para o servidor e “glusterfs-client.vol” para o cliente.

Configuração do servidor

Vamos criar quatro servidores GlusterFS e o arquivo de configuração para todos eles é o mesmo.

# file: /etc/glusterfs/glusterfs-server.vol

##############################################
###  GlusterFS Server Volume Specification  ##
##############################################

# Exportando o volume “brick” com o conteúdo do diretório /export
volume brick
type storage/posix
option directory /export
end-volume

# Configuração de rede para o volume exportado
volume server
type protocol/server
option transport-type tcp/server
option listen-port 6996
subvolumes brick
option auth.ip.brick.allow *
end-volume

#EOF

Devemos nos atentar na opção “option auth.ip.brick.allow *”, pois por default o GlusterFS negará o acesso para todos. Com o parâmetro “*” estamos dizendo para permitir o acesso de qualquer host da rede.

Configuração do cliente

# file: /etc/glusterfs/glusterfs-client.vol

##############################################
###  GlusterFS Client Volume Specification  ##
##############################################

volume remote1
type protocol/client
option transport-type tcp/client
option remote-host 192.168.1.1
option remote-subvolume brick
end-volume

volume remote2
type protocol/client
option transport-type tcp/client
option remote-host 192.168.1.2
option remote-subvolume brick
end-volume

volume remote3
type protocol/client
option transport-type tcp/client
option remote-host 192.168.1.3
option remote-subvolume brick
end-volume

volume remote4
type protocol/client
option transport-type tcp/client
option remote-host 192.168.1.4
option remote-subvolume brick
end-volume

volume stripe0
type cluster/stripe
option block-size 1MB
subvolumes remote1 remote2 remote3 remote4
end-volume

#EOF

Como podem observar, os arquivos de configurações são bem simples. No cliente fica bem claro que configuramos quatro volumes e em quatro servidores diferentes. Depois criamos um volume chamado stripe0, que é justamente o aglomerado desses quatro volumes.

Utilização

A utilização é bem simples, primeiro precisamos iniciar o daemon no servidor e depois apenas montamos o volume nos clientes.

Servidor:

# glusterfsd -f /etc/glusterfs/glusterfs-server.vol

# ps aux | grep gluster
root      4568  0.0  0.2  19028  1264 ?        Ssl  16:23   0:00 [glusterfs]
root      4601  0.0  0.1   3252   812 pts/0    S+   16:25   0:00 grep gluster

Cliente:

# glusterfs -f /etc/glusterfs/glusterfs-client.vol /mnt

# mount
glusterfs on /mnt type fuse (rw,nosuid,nodev,allow_other,default_permissions,max_read=1048576)

# df -h
glusterfs     7,5G  1,9G  5,7G  25% /mnt

Pronto, agora você pode ter um filesystem clusterizado na sua casa e no seu trabalho.

Espero ter ajudado []‘s

Limpando o cache do seu Linux

August 1, 2009 by thiago · Deixe seu comentário
Filed under: Live Linux 

Oi Pessoal, bom dia!

Encontrei esse Shell no viva-o-linux e me ajudou em muito, então estou compartilhando com vocês também.

Segue um script SHELL para facilitar nossa vida.

#!/bin/sh
#
# Salve este script no diretório /etc/cron.hourly e dê permissão
# de execução a ele. Desse modo a cada hora sera verificada se a
# porcentagem de memória utilizada pelo sistema atingiu o valor definido
# na variável ‘percent’. Caso positivo, o script informará ao kernel
# que este deverá alterar o valor da opção ‘drop_caches’ para 3.
#
# Mais detalhes: ‘man proc’ -> /proc/sys/vm/drop_caches.

PATH=”/bin:/usr/bin:/usr/local/bin”

# Porcentagem máxima de uso da memória, antes de executar a limpeza:
# Obs.: Altere conforme sua necessidade.
percent=80

# Quantidade de memória RAM no sistema:
ramtotal=`grep -F “MemTotal:” < /proc/meminfo | awk ‘{print $2}’`
# Quantidade de RAM livre:
ramlivre=`grep -F “MemFree:” < /proc/meminfo | awk ‘{print $2}’`

# RAM utilizada pelo sistema:
ramusada=`expr $ramtotal – $ramlivre`

# Porcentagem de RAM utilizada pelo sistema:
putil=`expr $ramusada \* 100 / $ramtotal`

# Checando porcentagem:
if [ $putil -gt $percent ]
then
# Sincronizando os dados cacheados na memória com o(s) disco(s):
sync
# ‘Dropando’ cache:
echo 3 > /proc/sys/vm/drop_caches
else
# Remove-se as variáveis da memória e finaliza-se o script:
unset percent ramtotal ramlivre ramusada putil
exit $?
fi # Fim

[]‘s

« Página AnteriorPróxima Página »