Mostrando postagens com marcador Dicas. Mostrar todas as postagens
Mostrando postagens com marcador Dicas. Mostrar todas as postagens

18 de dez. de 2013

mc (Midnight Commander) lento [ resolvido ]

Ocorre geralmente em pacotes RPM para CentOS, RHEL, SuSE etc.

O mc fica lento durante a sua iniciação.

Ocorre é que ele tenta resolver nomes para o host local bastando para resolver o problema acrescentar os nomes do host local no arquivo /etc/hosts.

Ex:

172.18.162.199 nomedohostlocal nomedohostlocal.nomedodominiolocal
10.39.145.199 nomedohostlocal nomedohostlocal.nomedodominiolocal
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 nomedohostlocal.nomedodominiolocal nomedohostlocal
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 nomedohostlocal.nomedodominiolocal nomedohostlocal

Se a dica foi útil para você  e desejar fazer uma doação este é meu endereço Bitcoin 14jtPns4wzqpKt4smzE7uiL8C2BXycv627

Obrigado!

18 de abr. de 2012

Instalando o Slackware virtualizado com drivers Virtio

Instale o Slackware normalmente e ao chegar na etapa de configurações do sistema selecione o modo expert de configuração do lilo.

na primeira linha do /etc/lilo.conf acrescente:
disk=/dev/vda bios=0x80 max-partitions=7

na segunda:
boot = /dev/vda

Na seção de imagens coloque:
root = /dev/vda1

Feito isso instale o lilo com a opção "install lilo" no menu.

Irá exibir uma mensagem de erro mas não se incomode com isso, é normal.

Agora vamos criar o initrd para que o Kernel possa carregar os módulos Virtio antes do demais.

mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys
mount -t proc proc /mnt/proc
chroot /mnt

Execute o mkinitrd_command_generator.sh, ele ira exibir o comando para a criação correta do initrd.
/usr/share/mkinitrd/mkinitrd_command_generator.sh

A saída será algo parecido com isso:
mkinitrd -c -k 2.6.38.7 -f ext4 -r /dev/vda1 -m virtio_ring:virtio_blk:virtio_pci:virtio_balloon:virtio_net:jbd2:mbcache:ext4 -u -o /boot/initrd-2.6.38.7.img

Execute o comando como acima e o mkinitrd irá criar o arquivo  /boot/initrd-2.6.38.7.img

agora crie um link simbólico para ele:
cd /boot
ln -sf initrd-2.6.38.7.img initrd.gz

Em seguida aponte para ele em seu /etc/lilo.conf imediatamente abaixo da imagem do Kernel
initrd = /boot/initrd.gz

Feito isso reinstale o lilo e reinicie a máquina virtual.

Pronto! O Seu Slackware estrá rodando virtualizado com os drivers Virtio

16 de abr. de 2010

Formatando endereços MAC com Sed

$ echo "00120e3fb09f" | sed -e 's!\.!!g;s!\(..\)!\1:!g;s!:$!!' -e 'y/abcdef/ABCDEF/'

A saída será:

00:12:0E:3F:B0:9F

24 de mar. de 2010

Exemplos práticos de backup com o utilitário rsync e o agendador de tarefas crontab.
Para os que tem dificuldades com o VI do crontab altere o editor padrão conforme indicado na dica.
insira no crontab com com freqüencia você deseja que o backup seja feito a linha de comando abaixo. Notem que este sistema foi implementado com dois discos rígidos que trabalham em redundância.
O crontab: o crontab é um arquivo texto com instruções de quais, quando e com que freqüencia uma ou mais tarefas serão executadas em um sistema Linux/Unix sua disposição é a seguinte:
min
hora
dia-mês
mês
dia-semana
comando
*
*
*
*
*
*
0 a 59
0 a 23
1 a 31
1 a 12
0 a 6
-
Obs: Para os dias da semana usa-se a seguinte disposição: 0 para domingo, 1 para segunda, 2 para terça e assim por diante. Os asteriscos são usados para omitir as suas respectivas unidades de tempo.
Exemplos de utilização do crontab.
1,21,41 * * * * echo "Funciona!"
Aqui está dizendo: "o comando do sexto campo toda hora, todo dia, nos minutos 1, 21 e 41"
30 4 * * 1 rm -rf /tmp/*
Aqui está dizendo: "Apagar todo conteúdo do diretório /tmp toda segunda-feira, as 4:30 da manhã.".
0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg
Aqui está dizendo: "Executar o mrtg como usuário root, durante 5 e 5 minutos dos minutos 0-59. Ou seja, executar de 5 em 5 minutos o mrtg sempre.".
#rsync -avP /mnt/hda2/diretorio_protegido_por_backup/ /mnt/hdb2/backup_do_diretorio_protegido_por_backup/
Note a barra "/" no final de cada path. Quando ela é usada apenas o conteúdo do diretório é copiado para o destino. Se a linha for sem a barra "/" o diretório inteiro será copiado para o destino.
Basta agora inserir sua linha de comando do rsync no crontab e o seu backup será efetuado conforme especificado. Não se esqueça de levantar o serviço crond para que o agendador funcione.

NOTA de créditos.
Com relação ao crontab foram extraídos da página do Eitch http://www.devin.com.br/eitch/

Proxy ARP

Quando se deseja que um serviço rodando em uma máquina da sua rede interna (192.168.y.z) possa ser acessado a partir da internet podemos fazer duas coisas.
A primeira é com o iptables, mas esta solução fica um tanto complicada quando a máquina possui muitos serviços que devam ser acessados.
A segunda muito mais simples de ser implementada é com a ferramenta ip do pacote iproute2. Segue abaixo a linha de comando.
ip neigh add lladdr 00:16:76:fe:41:9b proxy v.x.y.z dev ppp0
Onde:
v.x.y.z é o IP da sua interface de saída para a internet no caso ppp0
Não esqueça de habilitar o suporte ao proxy-ARP em seu Kernel
echo "1" > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo "1" > /proc/sys/net/ipv4/conf/eth1/proxy_arp
Lembrando apenas que a máquina em questão deve ter seu endereço MAC listado na tabela ARP do seu gateway caso deseje uma tabela ARP estática você pode criar um arquivo /etc/ethers conforme a listagem abaixo:
192.168.10.10 00:16:76:fe:41:9b
192.168.10.20 00:18:ff:1f:d1:ba
Para carrega-la basta digitar o comando arp -f
Uma outra alternativa mais completa e elegante é usar a ferramenta ip para criar uma tabela estática, conforme os comandos abaixo:
ip neigh add 192.168.10.10 lladdr 00:16:76:fe:41:9b dev eth0
ip neigh add 192.168.10.20 lladdr 00:18:ff:1f:d1:ba dev eth0
Onde: eth0 é a interface de rede do gateway que dá para sua rede interna.
Paz e saúde!

Destruindo arquivos e sistemas de arquivos de forma segura

Destruindo arquivos/partições de forma mais segura.
Esta seção tem a intenção de conscientizar o administrador do uso devido de técnicas para garantir que dados sensíveis sejam apagados de forma segura em seu sistema.
Quando um arquivo é apagado, apenas a entrada na tabela de inodes é mexida, e ele pode ainda ser recuperado com o debugfs e um pouco de paciência e engenharia. O mesmo acontece com as partições, que podem ser recuperadas com facilidade (isto é explicado no nível Intermediário do guia). Esta recuperação é proporcionada pelas regras de funcionamento do sistema de arquivos e do esquema de particionamento, ou seja, são permitidas pelo SO.
Vou um pouco mais além: O disco rígido é uma mídia magnética e opera de forma mecânica para ler/gravar dados. Quando um arquivo é apagado, seja por qualquer motivo, ainda é possível recupera-lo. O que permite isto é porque o HD nem sempre tem a precisão de gravar exatamente no mesmo lugar (pois a cabeça é movida mecanicamente), gravando em trilhas microscópicamente vizinhas a anterior. Então a imagem do arquivo que foi apagada continua lá. Segundo ouvi falar, a NASA possui recursos para recuperar até 60 regravações posteriores no disco. É claro que isto pode ocorrer em pouco tempo, dependendo do tamanho de sua partição e se esta for uma /var/spool em um servidor de e-mails :-)
Baseado nesta teoria, você poderá apagar os dados de forma destrutiva usando o programa shred, que regrava o arquivo repetidamente com dados aleatórios. Sua sintaxe é a seguinte:
shred -n 70 -v -u arquivo
Isto faz com que ele regrava o conteúdo do arquivo 70 vezes com dados aleatórios. O -u trunca e remove o arquivo após concluído.
Note que o uso de dados aleatórios serve para destruir as possibilidades de uma recuperação simples, este é o motivo de se recomendar sempre o uso de /dev/urandom ao invés de /dev/zero para destruição de arquivos.
OBS1: Saiba exatamente o que está fazendo pois estes procedimentos servem para dificultar ao máximo a recuperação de dados.
OBS2: Caso esteja usando um sistema de arquivos criptografado, estes procedimentos são praticamente desnecessários (dependendo do nível de segurança e algorítmos que você utiliza).
Texo extraído do Guia Foca/Linux http://focalinux.cipsga.org.br/

23 de mar. de 2010

Lista de usuários padrão no GNU/Linux

USER
UID
GID
HOME DIR
SHELL
root 0 0 /root /bin/bash
bin 1 1 /sbin/nologin
daemon 2 2 /sbin /sbin/nologin
adm 3 3 /var/adm /sbin/nologin
lp 4 7 /var/spool/lpd /sbin/nologin
sync 5 0 /sbin /sbin/sync
shutdown 6 0 /sbin /sbin/shutdown
halt 7 0 /sbin /sbin/halt
mail 8 12 /var/spool/mail /sbin/nologin
news 9 13 /var/spool/news
uucp 10 14 /var/spool/uucp /sbin/nologin
operator 11 0 /root /sbin/nologin
games 12 100 /usr/games /sbin/nologin
gopher 13 30 /usr/lib/gopher-data /sbin/nologin
ftp 14 50 /var/ftp /sbin/nologin
nobody 99 99 / /sbin/nologin
vcsa 69 69 /dev /sbin/nologin
rpm 37 37 /var/lib/rpm /bin/bash
wnn 49 49 /var/lib/wnn /bin/bash
ntp 38 38 /etc/ntp /sbin/nologin
nscd 28 28 / /bin/false
apache 48 48 /var/www /bin/false
mysql 27 27 /var/lib/mysql /bin/bash
mailnull 47 47 /var/spool/mqueue /sbin/nologin
smmsp 51 51 /var/spool/mqueue /sbin/nologin
rpc 32 32 / /sbin/nologin
xfs 43 43 /etc/X11/fs /sbin/nologin
gdm 42 42 /var/gdm /sbin/nologin
rpcuser 29 29 /var/lib/nfs /sbin/nologin
nsfnobody 65534 65534 /var/lib/nfs /sbin/nologin
sshd 74 74 /var/empty/sshd /sbin/nologin
ident 98 98 / /sbin/nologin
radvd 75 75 / /bin/false
postgres 26 26 /var/lib/pqsql /bin/bash
squid 23 23 /var/squid /dev/null
named 25 25 /var/named /bin/false
pcap 77 77 /var/arpwatch /sbin/nologin
amanda 33 6 var/lib/amanda/ /bin/bash
ldap 55 55 /var/lib/ldap /bin/false
postfix 89 89 /var/spool/postfix /bin/true
privoxy 100 101 /etc/privoxy
pvm 24 24 /usr/share/pvm3 /bin/bash
Podem ocorrer diferenças entre distros

Permissões no GNU/Linux

Tipo Dono Usuários do mesmo grupo do dono Usuários de grupos que não o do dono

d - diretório
l - link
- - arquivo normal

r w x
4 2 1
r w x
4 2 1
r w x
4 2 1

Permissões especias

Tipo VALOR FUNÇÃO

SUID

4
Quando ligado faz com que o arquivo rode com as permissões do seu dono e não com as de que o executa. É somente aplicável a rquivos executáveis.
SGUID 2
Quando ligado faz com que o arquivo rode com as permissões do grupo de seu dono e não com as permissões do grupo de quem o acessa. Pode ser usado em arquivos executáveis ou não incluindo diretórios. Se aplicado a diretórios todos os arquivos e subdiretórios que forem criados dentro deste terão as permissões de grupo do diretório pai
STICKY 1
Este bit quando ativado faz com que o arquivo/diretório só possa ser alterado/apagado por que o criou embora possa ser visualizado, aberto ou executado por qualquer usuário. Além do próprio usuário somente o root pode altera-lo ou apaga-lo

Exemplos:

Quero que um script criado pelo usuário root seja executado por qualquer usuário de qualquer grupo.
chmod 4755 /home/foo/script ou chmod 6755 /home/foo/script

Quero criar um diretório público em um servidor de arquivos Samba onde o dono do arquivo possa altera-lo ou apaga-lo mas os outros usuários só possam visualiza-lo.
chmod 1755 /home/diretorio_publico_em_questao

Eliminando o Neighbour table overflow

Faço conectividade de condomínios, e um problema que comunmente quem faz este tipo de serviço tem é o de isolar cada uma das máquinas, de forma que elas não se "enxerguem" nem façam difusão de nomes netbios. Elimino este inconveniente criando tantas sub-redes quanto o necessário, mas isso vai ficar para um artigo que estou preparando.

Esta técnica sempre funcionou muito bem com redes pequenas com até 40 máquinas mas surgiu um problema quando empreguei a mesma técnica com uma rede de mais de 500 máquinas.
Após alguns munitos de operação o sistema começava a dar uma mensagem de erro "Neighbour table overflow" a rede começava a ficar lenta até parar de vez.

Após muito pesquisar descobri o que ocorria, o kernel ao ter que manipular uma enorme quantidade de requisições ARP gerava uma tabela ARP gigantesca e por default ele não manipula tabelas superiores a 1024 entradas, passando disso ele provocava um transbordamento da tabela ARP que paralizava o sistema.

A solução para o problema foi a seguinte:
Alteramos o valor de entradas ARP que o Kernel pode suportar para seu limite máximo da seguinte forma.

echo 16384 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 32768 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 65535 > /proc/sys/net/ipv4/neigh/default/gc_thresh3

Pronto, basta inserir as linhas acima em seu rc.local antes que seu firewall seja levantado.

No meu caso as inseri no /etc/rc.d/rc.S do Slackware 10.2 antes mesmo da inicilização das interfaces de rede.

Está funcionando pefeitamente desde então.

Até a próxima! E um fraternal abraço a todos.

L7 Filter no Slackware

Instalando o l7-filter no Slackware 10.2 com o Kernel 2.6.15.3

O L7 simplesmente o chamaremos assim é um classificador de protocolos para o Netfilter, e identifica pacotes na camada de plicação (camada 7 OSI), ele é mais um classificador assim como os que classificam MAC-Addresess, portas, endereços etc.
Com ele podemos controlar tudo o que passa pelo seu gateway, bloqueando msn. e-mail, navegação, P2P etc.

1 - Baixar os programas necessários.
http://l7-filter.sourceforge.net/
- Site do projeto
http://www.kernel.org/
- Site do Kernel
http://www.netfilter.org
- Site onde baixaremos o Iptables

2 - Aplicar os patches no Kernel.
Usamos em nosso caso o Kernel versão 2.6.15.3, o mais recente em 10/02/2006 data em que este tutorial foi escrito.
descompactamos o kernel para o diretório /usr/src/ onde será criado o diretório /linux-2.6.15.3, em seguida criamos o link simbólico para os fontes do novo kernel,(isso é importante pois o se não for feito haverá problemas na instalação do Iptables) finalmente a aplicação do patch conforme segue abaixo.

cd /usr/src/linux-2.6.15.3/
patch -p1 < /path/do/netfilter-layer7-v2.1/kernel-2.6.13-2.6.15-layer7-2.1.patch

Obs: Caso você já haja configurado este kernel antes de um "make mrproper" para zera-lo, pois do contrário o patch não será corretamente aplicado, ele não irá gerar a opção para habilitar o l7-filter.

3 - Configurando o Kernel
Abordarei apenas os ítens que se referem ao Netfilter e L7
make menuconfig

Code maturity level options > Prompt for development and/or incomplete code/drivers
habilite esta opção

Networking > Networking options > Network packet filtering (replaces ipchains) > IP: Netfilter Configuration > Layer 7 match support (EXPERIMENTAL)
Configure-o como módulo

Recompile o Kernel 2.6.15.3 na ordem abaixo, dentro do diretório dos fontes do Kernel
make clean
make bzImage
cp /usr/src/linux-2.6.15.3/System.map /boot/System.map-2.6.15.3
ln -sf /boot/System.map-2.6.15.3 /boot/System.map
cp /usr/src/linux-2.6.15.3/.config /boot/config-2.6.15.3
ln -sf /boot/config-2.6.15.3 /boot/config
cp /usr/src/linux-2.6.15.3/arch/i386/boot/bzImage /boot/vmlinuz-2.6.15.3
make modules
make modules install

Feito isso, adcione o novo Kernel ao lilo e reinicie a máquina

4 - Aplicando o patch ao Iptables
cd /path/do/iptables-1.3.5
patch -p1 < /path/do/netfilter-layer7-v2.1/iptables-layer7-2.1.patch

Devido a um pequeno bug do l7, você deverá alterar uma permissão.
chmod +x /path/do/iptables-1.3.5/extensions/.layer7-test

5 - Compilando o Iptables
Primeiramente remova a versão anterior do iptables
removepkg iptables
agora recompile-lo
make KERNELDIR=/usr/src/linux/
make KERNELDIR=/usr/src/linux/ install
ou simplesmente:
make
make install

6 - Instalando os protocolos do L7
cd /path/do/l7-protocols-2006-01-22
make install
Pronto! Os protocolos foram copiados para o diretório /etc/l7-protocols/

7 - Habilitando o serviço.
Primeiramente carregue o módulo do l7-filter com o comando: modprobe ipt_layer7
agora basta adcionar as regras bloqueando o que você desejar.
Ex:
iptables -A FORWARD -m layer7 --l7proto msnmessenger -s 192.168.10.0/24 -j DROP

A regra acima bloqueia o msn, mas se você quiser apenas bloquear a transferência de arquivos e não o msn todo usa a seguinte:
iptables -A FORWARD -m layer7 --l7proto msn-filetransfer -s 192.168.10.0/24 -j DROP

Há muito mais no site do projeto! bom trabalho!

SSH sem senha

Primeira máquina

ssh-keygen -t rsa

O programa lhe perguntará o path e nome do arquivo com a chave, bem como uma senha. Deixe a senha em branco, simplesmente dê "enter" em tudo.
Em seguida o ssh-keygen criará um arquivo /root/.ssh/id_dsa.pub que deve ser copiado para a segunda máquina com o comando scp.
Ex:

scp /root/.ssh/id_dsa.pub 200.226.231.10:/root/

Segunda máquina

Já com o arquivo copiado na segunda máquina crie o arquivo /root/.ssh/authorized_keys2 com o comando touch.

touch /root/.ssh/authorized_keys2

Agora copie a chave para este arquivo com o comando cat

cat id_dsa.pub >> /root/.ssh/authorized_keys2

Pronto agora comandos ssh e scp podem ser dados diretamente para a máquina destino sem a necessidade de senha. Isso é muito útil para fazermos backups automatizados usando scp ou rsync.

Sincronizando Relógios de Sistema e Hardware

O GNU/Linux tem seu "próprio" relógio que não necessariamente é sincronizado com o relógio do hardware (RTC). Para sincroniza-los existe um comando chamado hwclock, que faz esta sincronização em ambos os sentidos, ou seja sincroniza o hardware baseado no sistema e vice versa.

Para sincronizar o relógio do hardware a partir do sistema:
hwclock --systohc

Para sincronizar o relógio do sistema a partir do hardware
hwclock --hctosys

Montando compartilhamentos Windows e Samba

smbmount //192.168.x.y/nome_do_compartilhamento /mnt/smb/ -o -U usuario

Se a dica foi útil para você  e desejar fazer uma doação este é meu endereço Bitcoin 14jtPns4wzqpKt4smzE7uiL8C2BXycv627

Obrigado!

Gua rápido para crimpagem de conectores RJ-45

CABEAMENTO T568A 10BaseT/100BaseT (STRAIGH)
pino / cor SINAL pino / cor
1 - B. VERDE +TD
B. VERDE - 1
2 - VERDE -TD
VERDE - 2
3 - B. LARANJA +RD
B. LARANJA - 3
4 - AZUL -
AZUL - 4
5 - B. AZUL -
B. AZUL - 5
6 - LARANJA -RD
LARANJA - 6
7 - B. MARROM -
B. MARROM - 7
8 - MARROM -
MARROM - 8

CABEAMENTO T568A 10BaseT/100BaseT (CROSS)
pino / cor SINAL pino / cor
1 - B. VERDE +TD
B. LARANJA - 1
2 - VERDE -TD
LARANJA - 2
3 - B. LARANJA +RD
B. VERDE - 3
4 - AZUL -
AZUL - 4
5 - B. AZUL -
B. AZUL - 5
6 - LARANJA -RD
VERDE - 6
7 - B. MARROM -
B. MARROM - 7
8 - MARROM -
MARROM - 8

CABEAMENTO T568A 1000BaseT (STRAIGH)
pino / cor SINAL pino / cor
1 - B. VERDE +BI_DA
B. VERDE - 1
2 - VERDE -BI_DA
VERDE - 2
3 - B. LARANJA +BI_DB
B. LARANJA - 3
4 - AZUL -BI_DC
AZUL - 4
5 - B. AZUL +BI_DC
B. AZUL - 5
6 - LARANJA -BI_DB
LARANJA - 6
7 - B. MARROM +BI_DD
B. MARROM - 7
8 - MARROM -BI_DD
MARROM - 8

CABEAMENTO T568A 1000BaseT (CROSS)
pino / cor SINAL pino / cor
1 - B. VERDE +BI_DA
B. LARANJA - 1
2 - VERDE -BI_DA
LARANJA - 2
3 - B. LARANJA +BI_DB
B. VERDE - 3
4 - AZUL +BI_DC
B. MARROM - 4
5 - B. AZUL -BI_DC
MARROM - 5
6 - LARANJA -BI_DB
VERDE - 6
7 - B. MARROM +BI_DD
AZUL - 7
8 - MARROM -BI_DD
B. AZUL - 8

Faixa de IPs privados

A IANA determina as seguintes faixas de IPs para redes privadas:

Rede
IP inicial
IP final
Broadcast
10.0.0.0/8 10.0.0.1 10.255.255.254 10.255.255.255
172.16.0.0/12 172.16.0.1 172.31.255.254 172.31.255.255
192.168.0.0/16 192.168.0.1 192.168.255.254 192.168.255.255

Redes CIDR

InterNIC
Sub-Rede
Quant. hosts
Nota
/0 0.0.0.0 4,2 bilhões
Inviável
/1 128.0.0.0 2,1 bilhões
Teórico
/2 192.0.0.0 1,05 bilhão
Teórico
/3 224.0.0.0 536 milhões
Teórico
/4 240.0.0.0 268 milhões
Teórico
/5 248.0.0.0 128 milhões
Teórico
/6 252.0.0.0 67 milhões
Teórico
/7 254.0.0.0 33 milhões
Teórico
/8 255.0.0.0 16 milhões
Classe A
/9 255.128.0.0 8 milhões
/10 255.192.0.0 4 milhões
/11 255.224.0.0 2 milhões
/12 255.240.0.0 1 milhão
/13 255.248.0.0 524.288
/14 255.252.0.0 262.144
/15 255.254.0.0 131.072
/16 255.255.0.0 65.536
Classe B
/17 255.255.128.0 32.768
/18 255.255.192.0 16384
/19 255.255.224.0 8192
/20 255.255.240.0 4096
/21 255.255.248.0 2048
/22 255.255.252.0 1024
/23 255.255.254.0 512
/24 255.255.255.0 256
Classe C
/25 255.255.255.128 128
/26 255.255.255.192 64
/27 255.255.255.224 32
/28 255.255.255.240 16
/29 255.255.255.248 8
/30 255.255.255.252 2
/31 255.255.255.254 1
/32 255.255.255.255 1 Sem broadcast