segunda-feira, 27 de dezembro de 2010

Dica: Formatando NTFS com ntfsprogs.

Dica muito útil para formatação de pendrives, partições, hds externos:

Instalando:
# yum install ntfsprogs ntfs-3g -y

Formatando:
# mkntfs -f /dev/sdXX

Acessando:
# ntfs-3g /dev/sdXX /ponto-de-montagem
# cd /ponto-de-montagem


um abraço.

sexta-feira, 24 de dezembro de 2010

Wireless Realtek no Fedora.

Dica de configuração para Fedora.

# uname -a

Linux localhost.localdomain 2.6.34.7-63.fc13.i686 #1 SMP Fri Dec 3 12:35:44 UTC 2010 i686 i686 i386 GNU/Linux

# lspci | grep Wireless
04:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8192SE Wireless LAN Controller (rev 10)

Primeiramente baixe o driver aqui.

No meu caso uma RTL8192SE

Após:

# tar -zxvf rtl8192se_linux_2.6.0019.1207.2010.tar.gz
# cd rtl8192se_linux_2.6.0019.1207.2010
# make
# make install
# depmod -a
# modprobe r8192se_pci


Adicionando ao boot

# echo "modprobe r8192se_pci" >> /etc/rc.local


Testando

# dhclient wlan0
# ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr 1C:4B:D6:83:7B:CD
inet addr:192.168.10.105 Bcast:192.168.10.255 Mask:255.255.255.0


e um abraço.

Virtualbox 4.0 - Dica

Em um post anterior citei como fazer uma migração de uma VDI, isso é importante caso queira fazer um backup, carregar em um pendrive, seja lá o que queira fazer com sua VDI.

Há uma alteração no comando VBoxManage -

De:
# VBoxManage internalcommands setvdiuuid bsd.vdi

Para:
# VBoxManage internalcommands sethduuid bsd.vdi

Com isso basta adicionar sua VDI no Virtualbox normalmente.

Mais?? Leia o Changelog

quinta-feira, 2 de dezembro de 2010

Inutilidades - Dosbox + Populous

Dica útil para saudosistas de velharias:

O Jogo Populous jogado na plataforma DOS pode ser jogado usando DOSBOX.

Baixando do Dosbox:

# yum -y install dosbox

Baixando o Populous:

http://www.abandonia.com/pt/games/14999/

Para configurar o Dosbox para acesso a pasta local C:\

z:\mount c /home/$SEU_USER/$PASTA_DO_POPULOUS

lembrando que no DOS são 8.3 nome + extensão (tosquice).

Referência:
http://www.dosbox.com/wiki/Basic_Setup_and_Installation_of_DosBox

quarta-feira, 24 de novembro de 2010

Dica: montando partições remotamente com sshfs

Dica velha, mas útil.

# yum install sshfs -y

# sshfs usuario@ip:/local /ponto/de/montagem

Simples.

Claro pode-se adicionar um -p[porta]

ou exportar a id-rsa.pub antes para não ficar pedindo senha.

abraço.

terça-feira, 16 de novembro de 2010

Linux - Dica: Backup de LVM

No artigo anterior vimos a criação de uma LVM em cima de Raid1. Tá, mas e se eu quisesse um backup disso?

Graças ao snapshot de LVM (ok, ok, muito falei de ZFS e Btrfs mããããssss)

sendo windows0 o snapshot

Subindo módulo

oldserver# modprobe dm-snapshot

oldserver# dd if=/dev/VG0/windows0 | gzip -7 | dd of=minhaimagem.gz

scp minhaimagem.gz user@IP:~/

faça o que quiser com a imagem...

newserver# cat minhaimagem.gz | gunzip | dd of=/dev/VG0/nova-lvm

Se for uma VM use o virt-manager para apontar que é mais fácil.

abraço.

Linux - Raid 1 + LVM

Esses dias deparei-me com a necessidade de implementar um Raid1 em um servidor antigo, onde a controladora não suportava Raid com SATA (tá OK, fica ruim - mas era necessário).

Criando Raid 1 via linha de comando

# yum install raidutils

Fdisk

[root@localhost ~]# fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 2550 20482843+ 83 Linux
/dev/sda2 2551 60801 467901157+ fd Linux raid autodetect

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 * 1 1275 10241406 83 Linux
/dev/sdb2 1276 1340 522112+ 82 Linux swap / Solaris
/dev/sdb3 1341 60801 477620482+ fd Linux raid autodetect

Criando as Partições:

fdisk /dev/sda
n
2
t
fd
w

fdisk /dev/sdb
n
3
t
fd
w

# partprobe /dev/sda
# partprobe /dev/sdb

# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb3
mdadm: size set to 467901056K
mdadm: largest drive (/dev/sdb3) exceed size (467901056K) by more than 1%
Continue creating array? yes

# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb3[1] sda2[0]
467901056 blocks [2/2] [UU]
[>....................] resync = 0.8% (3954496/467901056) finish=58.6min speed=131816K/sec

unused devices:

OBS: tenha paciência isso demora

# mke2fs -j /dev/md0

ou formate com o Filesystem que você preferir (ou crie LVM).

LVM (básico):

# pvcreate /dev/md0

# vgcreate VG0 /dev/md0

# lvcreate -L 40G -n virtual0 VG0

Feito, criada a LVM. (normalmente eu uso system-config-lvm)

terça-feira, 19 de outubro de 2010

Dica: system-config-selinux

Enquanto quebro a cabeça entendo o SELinux, vamos a instalação da GUI.

# yum provides policycoreutils-gui
Plugins carregados: presto, refresh-packagekit
policycoreutils-gui-2.0.82-13.fc13.i686 : SELinux configuration GUI
Repo : fedora

# yum install policycoreutils-gui -y

e pronto para usar

# system-config-selinux

isso já ajuda muito.

sexta-feira, 15 de outubro de 2010

Migrando máquinas virtuais VMWare para KVM / Xen / Qemu

Em recente migração de tecnologia VMWare ESXi para CentOS KVM, necessitei migrar alguns hosts para o novo Servidor.

# qemu-img info debian-flat.vmdk
image: debian-flat.vmdk
file format: raw
virtual size: 10G
disk size: 10G

Se a imagem for "raw" não há necessidade de nada a ser feito, apenas renomear para debian-flat.img, a grosso modo trocar de extensão.

Se a for necessário convertê-la:

# qemu-img convert debian-flat.vmdk -O raw /SEU-CAMINHO/debian-flat.img

Feito configure sua imagem usando o virt-manger.

Referência:
http://unixfoo.blogspot.com/2008/12/vmware-to-xen-conversion.html

terça-feira, 21 de setembro de 2010

Dica - ntpdate no Debian.

Segue a instalação e configuração:

# apt-get install ntp ntpdate

edite o arquivo /etc/default/ntpdate

NTPDATE_USE_NTP_CONF=yes

NTPSERVERS="ima.cipsga.org.br ntp.ansp.br a1.adm.idbrasil.org.br a2.adm.idbrasil.org.br a3.adm.idbrasil.org.br a4.adm.idbrasil.org.br"

NTPOPTIONS=""


feito isso:

# /etc/init.d/ntpdate restart

abraço.

quinta-feira, 9 de setembro de 2010

Dica - Cannot read table of mounted filesystems: Input/output error

Esse "erro" é causado por falta de espaço em disco.
Geralmente estouro de partição "/" :P

Simples:

grep -v rootfs /proc/mounts > /etc/mtab

--
Boa sorte.

fonte:
http://muhdzamri.blogspot.com/2007/07/df-disk-usage-reporting-tool.html

Dica - Megaupload Downloader

Estava eu procurando uns WAREZ para download, quando me deparei com um "iso" que demoraria 11 horas. Fui atrás de solução e achei o plowshare.

Plowshare é um Downloader linha-de-comando.

Site:
http://code.google.com/p/plowshare/

Como ele mesmo se define:

plowshare is a command-line application designed for some of the most popular file-sharing websites. Using plowshare you will be able to download files (and for some modules also upload, list and delete) on UNIX-like operating systems:

$ plowdown http://rapidshare.com/files/130403982/1989_-_Castellum_honesti.rar
1989_-_Castellum_honesti.rar

$ plowup natalie_merchant-crazy_man_michael.mp3 megaupload
http://www.megaupload.com/?d=710JVG89


Muito bom, funcional (faz download e upload) tranquilo.

fica a dica.

terça-feira, 31 de agosto de 2010

Zimbra - Erro "Bad for loop variable"

Pequena "Gambiarra" para solucionar um problema na instalação.


Erro para instalação:
# sh install.sh
./util/utilfunc.sh: 223: Syntax error: Bad for loop variable

Solução caseira:
# ln -sf /bin/bash /bin/sh


Removido de:
http://www.zimbra.com/forums/installation/30240-solved-223-syntax-error.html

terça-feira, 27 de julho de 2010

Zimbra - Erro: "zimbra_identity don't exists."

Dica para o erro:

/opt/zimbra/.ssh/zimbra_identity don't exists.

Esse erro aparece quando tentamos acessar a "Mail Queues"

# su -zimbra
$ zmsshkeygen
$ zmupdateauthkeys

Um Abraço.

Zimbra - Backup de Mailbox

Backup e Restore de Mailbox do Zimbra, mais uma luta...

Backup

# su - zimbra
$ zmmailbox -z -m joaocep@meuemail.com.br getRestURL "/Inbox?fmt=zip" > /tmp/joaocep@meuemail.com.br.zip

Restore

# su - zimbra
$ zmmailbox -z -m joaocep@meuemail.com.br postRestURL "/Inbox?fmt=zip" /tmp/joaocep@meuemail.com.br.zip

OBS: Copie com scp para seu novo servidor.

Dicas:
tipo de compressão - "/Inbox?fmt=zip" ou "/Inbox?fmt=tgz"
Nome da pasta - /Inbox , /Sent , /Trash , /Drafts

um abraço.

Zimbra - Exportando e Importando ldif - ZCS 6

Usando zimbra versão 6 , passei o maior trabalho para conseguir exportar o ldap do bicho.

OBS: Supondo que você saiba instalar e configurar o Zimbra.

Sendo assim,

EXPORTANDO LDAP:

$ su - zimbra

$ /opt/zimbra/openldap/sbin/slapcat -F /opt/zimbra/data/ldap/config -b "" -l /tmp/backup-ldap.ldif

$ exit
# scp /tmp/backup-ldap.ldif USUARIO@IP_NOVO_SERVER:/SEU_DESTINO

IMPORTANDO LDAP:

$ su - zimbra
$ zmcontrol stop

$ rm -f data/ldap/hdb/db/__db.* data/ldap/hdb/db/*.bdb data/ldap/hdb/db/alock data/ldap/hdb/logs/*

$/opt/zimbra/openldap/sbin/slapadd -F /opt/zimbra/data/ldap/config -b "" -q -l /SEU_DESTINO/backup-ldap.ldif

$ zmcontrol start



isso basta para sincronizar um servidor zimbra com usuários e senhas, NÃO CAIXAS.

feito.

Referência:
http://wiki.zimbra.com/wiki/Scripts_to_sync_to_a_remote_Zimbra_backup_machine

segunda-feira, 26 de julho de 2010

Zimbra - Erro de ldap

$ zmcontrol status
Unable to determine enabled services from ldap.
Unable to determine enabled services. Cache is out of date or doesn't exist.

1 - confira seu DNS

$ nslookup SEUSERVER.SEUDOMINIO -- e verifique se aparecerá o SEU IP.

2 - verifique se o SEU IP e HOSTNAME estão corretamente adicionados em:

/etc/hosts
/etc/hostname

feito isso.

$ zmcontrol start

e boa sorte.

segunda-feira, 19 de julho de 2010

Comando find - Excluindo arquivos recursivamente.

Segue a dica:

$ find . -type f -name "$ARQUIVO" -exec rm -i {} \;
O Comando acima busca um arquivo e pede confirmação para exclusão (se encontrado).

$ find . -type f -name "*.mp3" -exec rm -f {} \;
O comando acima busca e exclui sem confirmação (rm -f) arquivos .mp3

um abraço.

sexta-feira, 16 de julho de 2010

Erro da porta 491 "Go Global" no Squid

Para resolver um problema comum entre Go Global e Squid.

No log aparecendo:

# tail -f /var/log/squid/access.log | grep sispro
1279286206.092 0 192.9.212.152 TCP_DENIED/403 1472 CONNECT www8.sisproasp.com.br:491 - NONE/- text/html


Adicione a porta 491 (Go Global) no arquivo squid.conf

anteriormente

acl SSL_ports port 443 563


adicionado a porta 491

acl SSL_ports port 443 563 491


e reiniciando o serviço:

# /etc/init.d/squid reload

Pronto.

sábado, 19 de junho de 2010

Migrando ACL para seu novo Pool ZFS

Necessitei fazer a migração de um antiga partição ext3 para uma nova partição Fuse-ZFS.

Criando Backup das ACL no ext3:
# getfacl -R DIRETORIO-ORIGEM > regras_ACL.acl

Restaurando as regras no novo diretório ZFS:
# cd /CAMINHO/NOVO/DIRETORIO/
# setfacl --restore regras_ACL.acl

Testando ACL:
0-raiser:/home/joaocep# getfacl ZebraDesignerv2.exe
# file: ZebraDesignerv2.exe
# owner: joaocep
# group: joaocep
user::rw-
group::---
other::---

Sendo meu /home/joaocep um sistema ZFS:
0-raiser:/home/joaocep# zfs list
NAME USED AVAIL REFER MOUNTPOINT
JOAOCEP 36,9G 15,3G 23,3G /home/joaocep

OBS: ACL é extremamente útil usando samba.

grande abraço.

quinta-feira, 10 de junho de 2010

ZFS-fuse Vs BTRFS - Abordagem simples

Com base em um sistema Debian Testing já instalado em um Virtualbox faço uma abordagem simples sobre estes dois excelentes sistemas de arquivos.

Para ficar divertido adicionei mais 4 discos de 1GB usando o Vbox.

# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00001c8c

Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 1 303 2433816 83 Linux
/dev/sda2 304 1044 5952082+ 5 Estendida
/dev/sda5 304 344 329301 82 Linux swap / Solaris
/dev/sda6 345 1044 5622718+ 83 Linux

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Dispositivo Boot Start End Blocks Id System
/dev/sdb1 1 130 1044193+ 83 Linux

Disk /dev/sdc: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Dispositivo Boot Start End Blocks Id System
/dev/sdc1 1 130 1044193+ 83 Linux

Disk /dev/sdd: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Dispositivo Boot Start End Blocks Id System
/dev/sdd1 1 130 1044193+ 83 Linux

Disk /dev/sde: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Dispositivo Boot Start End Blocks Id System
/dev/sde1 1 130 1044193+ 83 Linux


com base nisso, vamos ao que interessa.


Atualizando a base APT:

# echo "deb http://http.us.debian.org/debian testing main contrib non-free" >> /etc/apt/sources.list && apt-get update

Atualizando o Kernel:

# apt-get install linux-image-2.6.32-3-686 linux-headers-2.6.32-3-686 -y && reboot



ZFS-Fuse [Zeta Byte File System]

Criei um diretório /home/zfs para este exemplo.

# apt-get install zfs-fuse

Opa, o zfs sobe automáticamente:
# ps -aux | grep fuse
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
root 1487 0.1 1.8 1165316 7160 ? Ssl 11:19 0:04 /sbin/zfs-fuse

caso não suba:

# zfs-fuse & >> /dev/null

Indo direto ao que interessa.

Resolvi disponibilizar 3 discos para ZFS, bom .. poderia ser um disco solitário, mas testar crash tem mais graça.

# zpool create ZFS raidz /dev/sdb1 /dev/sdc1 /dev/sdd1

# zpool status

pool: ZFS
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
ZFS ONLINE 0 0 0
raidz1 ONLINE 0 0 0
sdb1 ONLINE 0 0 0
sdc1 ONLINE 0 0 0
sdd1 ONLINE 0 0 0

errors: No known data errors

Com o status conseguimos enxergar informações sobre o pool.

# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
ZFS 2,97G 43,6M 2,93G 1% ONLINE -

Listagem de pools é com list (dã).

Caso necessite alterar o caminho do pool.
# zfs set mountpoint=/home/ZFS ZFS

E seu pool troca de caminho...

# zfs create ZFS/joaocep

E eu crio um novo volume "joaocep" dentro de "ZFS"
é interessante possuir áreas dentro dos Pools.

# zfs set compression=on ZFS/joaocep

E seu pool ganha compactação

# zfs set shareiscsi=on ZFS/joaocep

E seu pool NÃO ganha um compartilhamento iscsi simples, isso mesmo... no linux a bagaça ainda não foi implementada --- mas no Opensolaris basta um pkg install SUNWisgt.

Ok, vamos aos snapshots, a parte mais interessante de um sistema inteligente.

Uma cosisa legal - sintaxe

# zfs snapshot NOMEDOPOOL@NOME-DO-BACKUP

# zfs snapshot ZFS@backup-raiz1
# zfs snapshot ZFS/joaocep@backup-subdir1


Acima dois exemplos de formas de backup, de pastas e sub-pastas.

Tá, e o restore?

# zfs rollback ZFS@backup-raiz1
feito, ele retorna o backup de ZFS.

Para verificar os seus volumes, use o comando list (dã)

# zfs list
# zfs list -t snapshot
# zfs list -t all


Clonando subvolumes:

# zfs clone ZFS/joaocep@backup-subdir1 ZFS/joaomancy

Note, antes de criar um "clone" faça um snapshot - o clone só será feito usando um snapshot anterior.

Infelizmente nem todas as funções foram portadas para zfs-fuse -- a grosso modo, no Linux.



BTRFS [B-tree File System]


O Btrfs possui uma grande vantagem, ele converte filesystem ext3 em btrfs usando uma lógica simples ( https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 )

Criei um diretório /home/brtfs para este exemplo.

Instalando e Convertendo:
# apt-get install btrfs-tools -y && fsck.ext3 -f -y /dev/sde1 && btrfs-convert /dev/sde1

Montando a Partição
# mount -t btrfs /dev/sde1 /home/btrfs

Onboot
# echo "/dev/sde1 /home/btrfs btrfs defaults 0 0" >> /etc/fstab

Vamos a parte boa!

Uma dica importante, lembra dos POOL do ZFS, então. um snapshot só poderá ser montando dentro do próprio POOL ( Slice no BSD, Volume Novel, Partição Extendinda com Volume Lógico... como seu cérebro entender )

Criando um Subvolume ( -S cria, -D Destroi):
# btrfsctl -S arquivos /home/brtfs/

Criando um Snapshot do subvol arquivos:
# btrfsctl -s bkarquivos /home/brtfs/arquivos

Voltando um "backup" do btrfs - rollback:
Esta tarefa é simples, ele guarda a imagem na "raiz" do pool no caso um diretório /home/btrfs/bkarquivos - copie o arquivo e pronto.

Verificando o seu sistema de arquivos:
# btrfs-show
Label: none uuid: 7c36bf25-6c45-48bf-adaf-73f9dab93b42
Total devices 1 FS bytes used 93.11MB
devid 1 size 1019.72MB used 1019.72MB path /dev/sde1

Btrfs Btrfs v0.19

Se quiser voltar para ext3 ( rollback de filesystem )

# umount /home/btrfs
# btrfs-convert -r /dev/sde1


Não esqueça de trocar o btrfs da fstab e montar com ext3

Criação de Raid usando btrfs:
https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices

Pensou que eu fosse reinventar a roda é...

Minhas Conclusões:

Sinceramente prefiro o ZFS, há muito mais opções e sua sintaxe é simples, btrfs não esconde os snapshots o que atrapalha caso "metidos a admin" queiram visualizar os documentos contidos em seus sistemas.

Há implementações boas no btrfs que superam o zfs-fuse, como o resize de volumes (LVM faz isso) e "QUOTAS" de disco.

ZFS para Opensolaris possui tudo isso com Plus -- Solaris Zones dentro de um subvol é violento , ou shareiscsi=on .

Claro, alguém vai querer Benchmark veja nos links abaixo:
http://oss.oracle.com/projects/btrfs/dist/documentation/benchmark.html
http://www.linux-mag.com/id/7308

Independente de "Velocidade" para minha pessoa ZFS é muito melhor, mas cada caso é um caso e eu penso sinceramente testar btrfs em um Zimbra -- por exemplo.

Grande abraço a todos.

Referências:
https://btrfs.wiki.kernel.org
http://zfs-on-fuse.blogspot.com/

OBS: Esta abordagem não credencia você a sair destruindo o seu disco para usar ZFS ou Btrfs.

quarta-feira, 2 de junho de 2010

Zfs no Debian Testing [Dummy Mode]

Com base no artigo escrito a um bom tempo sobre ZFS em Debian Lenny

Resolvi fazer uma alteração mais simples.

adicionando no sources.list:

####
deb http://http.us.debian.org/debian testing main contrib non free
####

# apt-get update

# apt-get install zfs-fuse

pronto... bons snapshots.

OBS: Fiz isso em meu Desktop lembrando que servidores estáveis ainda não foram batizados com ZFS do Linux, somente ZFS em Opensolaris ou FreeBSD.

segunda-feira, 22 de março de 2010

IPF e IPnat - Firewall Opensolaris

Configurando um FW/Router com Opensolaris

Com base no blog do Franklin Ronald, resolvi escrever este manualzinho para ajudar o pessoal, boa leitura.

Pré Configurações:

Desabilitando o nwam:
#svcadm disable svc:/network/physical:nwam

Habilitando modo manual:
#svcadm enable svc:/network/physical:default

Configurando o modo manual

Usando Gnome, vá em:
System->Administration->Network

Configure sua interface e reinicie o serviço:

# svcadm restart milestone/network
feito isso , basta dar um reboot e atribuir os seus IPS.

Configurando o Arquivo ipf.conf

###/etc/ipf/ipf.conf###
pass in quick on lo0 all
pass out quick on lo0 all

pass in quick proto tcp from 192.168.10.2/32 to any port = 25 keep state
pass in quick proto tcp from 192.168.10.2/32 to any port = 110 keep state
pass in quick proto tcp from 192.168.10.2/32 to any port = 143 keep state
pass in quick proto tcp from any to any port = 22 keep state
pass in quick proto tcp from any to any port = 80 keep state
pass in quick proto tcp from any to any port = 8080 keep state
pass in quick proto tcp from any to any port = 443 keep state
pass in quick proto icmp from any to any icmp-type 8 keep state
pass in quick proto icmp from any to any icmp-type 13 keep state
pass in quick proto tcp from any to any port = 222 keep state
pass in quick proto tcp from any to any port = 3389 keep state

pass out quick from any to any keep state
# Libera porta FTP-DATA
pass in quick on rge0 proto tcp/udp from any to any port = 20 keep state
# Libera porta do FTP
pass in quick on rge0 proto tcp/udp from any to any port = 21 keep state
# Libera portas passivas do FTP
pass in quick on rge0 proto tcp/udp from any to any port 32768 >< style="font-weight: bold;">Ativando o ipf:
# svcadm refresh ipfilter && ipf -E && ipf -Fa -f /etc/ipf/ipf.conf

Verifique suas regras com:
# ipfstat -nih

Configuração de Redirecionamento de portas -- ipnat

####/etc/ipf/ipnat.conf####
rdr rtls0 0/0 port 3389 -> 192.168.10.204 port 3389
rdr rtls0 0/0 port 53 -> 192.168.10.245 port 53 udp
#email
rdr rtls0 0/0 port 25 -> 192.168.10.2 port 25
rdr rtls0 0/0 port 110 -> 192.168.10.2 port 110
rdr rtls0 0/0 port 143 -> 192.168.10.2 port 143
rdr rtls0 0/0 port 80 -> 192.168.10.2 port 80

map rtls0 192.168.10.0/24 -> 0/32
#### EOF ####

Ativando ipnat:
# ipnat -CF -f /etc/ipf/ipnat.conf

Verifique suas regras com:
# ipnat -l

DICA: Sempre que houver NAT deve-se abrir a porta no firewall (sim,no BSD não precisa) mas no ipf há essa necessidade. Note também a necessidade de dizer que é "tcp" , "udp" ou "tcp/udp" , parece besta mas me quebrei com isso.


É bem gostoso trabalhar com o ipf, ele é durão mas é muito bom, boa sorte...


Manpages:
http://docs.sun.com/app/docs/doc/816-5166/6mbb1kq4r?a=view
http://docs.sun.com/app/docs/doc/816-5175/ipfilter-5?a=view

route
http://slashzeroconf.wordpress.com/2008/03/05/enabling-and-disabling-ip-forwarding-in-solaris-10/

ftp
http://tecnolovers.skhizos.com/?q=taxonomy/term/16

nwan
http://joaocep.blogspot.com/2009/07/opensolaris-desabilitando-nwam-e-usando.html

Alterar o hostname no Opensolaris

Segue a dica:

# su
# cd /etc/
# chmod 777 nodename
Adicione o novo nome do host
#
nano nodename
# chmod 444 nodename
# chmod 777 hosts
Adicione o novo nome do host aqui também
# nano hosts
# chmod 444 hosts
# vi /etc/hostname.
# reboot

Fiz isso baseado na referência, mas na prática não precisa tudo aquilo não.

Referência:
http://web.ics.purdue.edu/~acm/sigs/sigos/wiki/tiki-index.php?page=Changing+the+Hostname+in+OpenSolaris

quinta-feira, 18 de março de 2010

Modem 3G Nokia CS-10 no Debian e Derivados.

Esse foi trabalhoso, mas espero que este tutorialzinho ajude.

Existem duas maneiras de conseguir o "Feito":

É muito importamte ler uma das referências:
http://ubuntuforum-br.org/index.php?topic=59371.0

Iniciando

Modo Gráfico:
# apt-get install udev wvdial network-manager

Baixe o arquivo:
http://www.elitoral.com.br/dognew/downloads/nokia_cs10_3g.zip

Instale:
# unzip nokia_cs10_3g.zip
# cd Nokia_CS10_3g/linux
# sh install.sh

Clique no ícone do network-manager (gnome) e Editar Conexões / Banda Larga Móvel / Adicionar

Siga o menu intuitivo, coloque o 3G na Porta USB e Boa navegação.

Modo Texto:
# apt-get install udev wvdial

Aqui "fede" um pouco...

Crie o arquivo /etc/udev/rules.d/90-nokia-zerocd.rules

###/etc/udev/rules.d/90-nokia-zerocd.rules###
SUBSYSTEMS=="usb", SYSFS{idVendor}=="0421", SYSFS{idProduct}=="060c", ACTION=="add", PROGRAM=="nokia-testcd %M %s{serial}", RUN+="/usr/bin/eject -s %k", OPTIONS+="last_rule"
###EOF###

Crie o script /lib/udev/nokia-testcd

#!/bin/sh ###/lib/udev/nokia-testcd###
# Don't eject if flag in place
if [ -f /etc/udev/nokia-zerocd-noeject ]; then
exit 1
fi
# Extract USB serial into major and minor numbers
minor=`echo $2 | sed 's/.[0-9]*\.//'`
major=`echo $2 | sed 's/\.[0-9]*$//'`
# Compare with current software version
if [ "$major" -gt "0" ] || [ "$minor" -gt "10" ]; then
exit 1
fi
# Clean exit on match
exit 0
####EOF###



Dê permissões de execução ao mesmo

# chmod +x /lib/udev/nokia-testcd

reinicie o udev

# /etc/init.d/udev restart

Feito isso, basta editar o /etc/wvdial.conf

###/etc/wvdial.conf###
[Dialer vivo]
Init1 = ATZ
Init2 = AT+CFUN=1
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init4 = AT+CGDCONT=1,"IP","zap.vivo.com.br"
Password = vivo
Phone = *99#
Modem Type = Analog Modem
Stupid mode = yes
Baud = 460800
New PPPD = yes
Modem = /dev/ACM0
ISDN = 0
Username = vivo
Carrier Check = no
Auto Reconnect = yes
###EOF###

Testando a Conexão:

# wvdial vivo
--> Sending: AT+CGDCONT=1,"IP","zap.vivo.com.br"
AT+CGDCONT=1,"IP","zap.vivo.com.br"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT
~[7f]}#@!}!}!} }<}!}$}&@}#}$@#}%}&}7[08](q}"}&} } } } }'}"}(}"[7f]`~~~ --> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu Mar 18 16:55:22 2010
--> Pid of pppd: 2459
--> Using interface ppp0
--> pppd: �"[11][08]�"[11][08]
--> pppd: �"[11][08]�"[11][08]
--> pppd: �"[11][08]�"[11][08]
--> pppd: �"[11][08]�"[11][08]
--> pppd: �"[11][08]�"[11][08]
--> pppd: �"[11][08]�"[11][08]
--> local IP address 187.xx.xx.xx
--> pppd: �"[11][08]�"[11][08]
--> remote IP address 10.0.0.1
--> pppd: �"[11][08]�"[11][08]
--> primary DNS address 200.xx.xx.202
--> pppd: �"[11][08]�"[11][08]
--> secondary DNS address 200.xx.xx.41
--> pppd: �"[11][08]�"[11][08]

Boa navegação!

OBSERVAÇÃO: Há uma diferença entre o arquivo 90-nokia-zerocd.rules (editado) e o mesmo referente no script baixado, mas ambos funcionáram em modo gráfico, em modo texto só consegui fazer funcionar usando o modo editado.

Referências:
gráfica (primeira dica):
http://ubuntuforum-br.org/index.php?topic=59371.0

texto:
http://www.islascruz.org/html/index.php/blog/show/Nokia-Internet-Stick-CS-10-on-Linux.html

segunda-feira, 15 de março de 2010

OpenVPN em OpenSolaris

OpenVPN em OpenSolaris 2009.06

Mais uma vez escrevo um tutorial por não achar nada em pt_br para OpenSolaris.

Instalando pacotes necessários.
# pkg refresh --full
# pkg install SUNWgcc

Interface TUN/TAP
# mkdir -p /usr/local/src
# cd /usr/local/src
# wget http://www.whiteboard.ne.jp/~admin2/tuntap/source/tuntap/tuntap.tar.gz
# tar xvfz tuntap.tar.gz
# chown -R root:root tuntap
# cd tuntap
# ./configure
# make
# make install

Lib de Compressão LZO
# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
# gzcat lzo-2.03.tar.gz | tar xvf lzo-2.03.tar.gz
# gzcat lzo-2.03.tar.gz | tar xvf -
# cd lzo-2.03
# ./configure
# make
# make install

Instalação do OpenVPN
# cd /usr/local/src
# wget http://www.openvpn.net/release/openvpn-2.1_rc15.tar.gz
# tar xvfz openvpn-2.1_rc15.tar.gz
# chown -R root:root openvpn-2.1_rc15
# cd openvpn-2.1_rc15
# wget -O tun.c http://www.whiteboard.ne.jp/~admin2/tuntap/source/openvpn/2.1/tun.c

Configurando com LZO
# ./configure --with-lzo-lib=/usr/local/lib

Configurando sem LZO
# ./configure --disable-lzo

# make
# make install

Arquivo de Configuração:

###/etc/openvpn/openvpn.conf retirado do vivaolinux###
# Interface da VPN
dev tun
port 5000
proto udp
server 192.168.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/kenji.crt
key /etc/openvpn/easy-rsa/keys/kenji.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
push "route 192.168.0.0 255.255.0.0"
comp-lzo
ping-timer-rem
persist-tun
persist-key
group nobody
daemon
mute 20
####Fim####

Copie a pasta openvpn-2.1_rc15/easy-rsa/ para /etc/openvpn/

# cp -r /usr/local/src/openvpn-2.1_rc15/easy-rsa/ /etc/openvpn/

agora vamos gerar as chaves de criptografia usando sh "shell" NÃO BASH!!!

Configurações para Server
# sh
# ./vars
# ./clean-all
# ./build-ca
# ./build-key-server kenji

Configuração de Clientes
# ./build-key dr-gori
# ./build-key karas

Voltando a Conf do Server
# ./build-dh

# cp -r $KEYS /etc/openvpn/

OBS: KEYS são as suas chaves, não vai me digitar $KEYS

Copie as $KEYS correspondentes aos Clientes e coloque nas pastas específicas.


Inicializando o Serviço no OpenSolaris:

# /usr/local/sbin/openvpn --daemon --writepid /tmp/openvpn.pid.pid --cd /etc/openvpn/ --config /etc/openvpn/openvpn.conf

Para Matar o processo:

# kill 'cat /tmp/openvpn.pid'


Verificando a tun0:
# ifconfig tun0
tun0: flags=10010008d1 mtu 1500 index 3
inet 192.168.0.1 --> 192.168.0.2 netmask ffffffff
ether b8:be:60:db:0:0

Feito isso, é só configurar os Clientes.


um Abraço!

Configuração em Cliente Windows:
http://www.guiadohardware.net/tutoriais/openvpn/pagina7.html


OBS 1 : Fiz testes com Clientes: Windows , Linux e FreeBSD.

OBS 2 : O arquivo de Configuração pode ser de QUALQUER outro tutorial visto, com ou sem lzo.

OBS 3 : É importante haver os arquivos *.cert e *.key para funcionamento da VPN.

OBS 4 : Em ZONES ele não reconhece a REDE.

OBS 5 : Kenji, Karas e Dr-Gori, sim -- são do Spectreman.

Bibliografia
http://web.vathorstweb.nl/index.php?option=com_content&task=view&id=68&Itemid=48

Licença CC conforme site:
http://creativecommons.org/licenses/by-sa/2.5/br/

sexta-feira, 19 de fevereiro de 2010

FreeBSD 8 e ftpproxy

Buenas,

Após penar bastante com o ftpproxy e documentação do OpenBSD, vi que existem sim algumas mudanças nas confs de ftpproxy do FreeBSD serie 6 para o 8 (dã).


SO - FreeBSD8
Instalação:

via ports:
#cd /usr/ports/ftp/ftpproxy && make install clean

ou pkg_add
#pkg_add -r ftpproxy (mais fácil)

1 - adicione no arquivo /etc/rc.conf
inetd_enable="YES"'

2 - adicione no /boot/loader.conf
net.inet.ip.forwarding=1

para ativar sem reboot
#sysctcl net.inet.ip.forwarding=1

3 - no seu /etc/pf.conf
#FTP
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
rdr on $INTERFACE_INTERNA proto tcp from $REDE_LOCAL to any port 21 -> 127.0.0.1 port 8021

4 - no arquivo /etc/inetd.conf
ftp-proxy stream tcp nowait root /usr/sbin/ftp.proxy ftp.proxy

5 - reinicie os serviços
#/etc/rc.d/pf restart
#/etc/rc.d/inetd restart

6 - conferindo

#netstat -an
tcp4 0 0 *.8021 *.* LISTEN
tcp4 0 0 127.0.0.1.8021 *.* LISTEN

OBS: na versão 6 do FreeBSD o inetd era diferente:
ftp-proxy stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy -n -V -D3 -u nobody -m 55000 -M 57000 -t 300

feito isso, um abraço, e tudo por não notar que o executável não está mais em libexec e sim em sbin :P

terça-feira, 19 de janeiro de 2010

Opensolaris 2009.06 acessando Active Directory

Passando um pouco de trabalho com o Linux no Active Directory, e sinceramente achando mais fácil colocar um Opensolaris no AD, resolvi fazer este tutorial, baseado em não achar nada parecido em pt_BR.

Supondo que:

Servidor Windows:
Hostname dc.windows.local
IP 10.1.1.200

Servidor Opensolaris 2008.11
Hostname arquivos.windows.local
IP 10.1.1.201

Sincronizando os horarios:
#ntpdate dc.windows.local


Adicione os Servidores em /etc/hosts
# cat /etc/hosts
127.0.0.1 arquivos.local localhost loghost
10.1.1.201 arquivos.windows.local arquivos loghost
10.1.1.200 dc.windows.local dc


# cat /etc/resolv.conf
domain windows.local
search windows.local
nameserver 10.1.1.200

# rm -f /etc/nsswitch.conf
# cp /etc/nsswitch.dns /etc/nsswitch.conf

# ping dc.windows.local
dc is alive

Editando o arquvivo /etc/krb5/krb5.conf

#############################
[libdefaults]
default_realm = WINDOWS.LOCAL

[realms]
WINDOWS.LOCAL = {
kdc = dc.windows.local
admin_server = dc.windows.local
kpasswd_server = dc.windows.local
kpasswd_protocol = SET_CHANGE
}

[domain_realm]
.windows.local = WINDOWS.LOCAL
#############################

O Pulo do gato está aqui:

No seu Windows Server 2008:
Group Policy Management tool and changed the following:

Computer Configuration\Policies\Administrative Templates\System\Net
Logon\Allow Cryptography Algorithms Compatible with Windows NT 4.0 -> Enabled

iniciar -> executar -> gpupdate /force.

Voltando ao Opensolaris:
# sharectl set -p lmauth_level=2 smb

# svcadm enable -r smb/server

Colocando o Opensolaris no Domínio "windows.local"

# smbadm join -u administrador windows.local
After joining windows.local the smb service will be restarted automatically.
Would you like to continue? [no]: yes
Enter domain password: [SENHA DO ADMINISTRADOR]
Joining windows.local ... this may take a minute ...
Successfully joined windows.local

Boa Sorte, dá pra implementar um fileserver.

Baseado em:
http://livingonthecloud.blogspot.com/2009/02/joining-opensolaris-cifs-server-to-ad.html
http://blogs.sun.com/timthomas/entry/configuring_the_opensolaris_cifs_server
http://joaocep.blogspot.com/2009/07/instalando-samba-3-no-opensolaris.html

sexta-feira, 15 de janeiro de 2010

Intel Ethernet PRO/1000 GB Ethernet Controller on Lenny

Após penar um turno em cima desta placa, resolvi postar a resposta para algum nerd perdido:

Debian Lenny
Com base em um HP Proliant DL 180

#lspci | grep Ethernet
07:00.0 Ethernet controller: Intel Corporation Device 10c9 (rev 01)
07:00.1 Ethernet controller: Intel Corporation Device 10c9 (rev 01)

Baixe os drivers no site da Intel:

http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=13663&lang=eng

* Logicamente de outro micro em rede (dã)

No HP digite:

#apt-get install build-essentials linux-headers-`uname -r`
# tar xfv igb-2.1.1.tar.gz
# cd igb-2.1.1/src
# make
# make install
# modprobe igb

adicione o igb no /etc/modules para subir no boot e configure a rede.

* Dica: os pacotes necessários para a instalação estão no ISO1 do install normal.

e um abraço...

terça-feira, 12 de janeiro de 2010

Zimbra - Alterando porta http

Solucionando um probleminha comum de pós instalação.

Geralmente esquecemos que a porta 80 é utilizada por outro serviço:

zmprov ms zimbraMailPort zimbraMailSSLPort

ex:

zmprov ms mx.exemplo.com.br zimbraMailPort 5080 zimbraMailSSLPort 5081

um abraço