FreeBSD 8.0-RELEASE

November 26, 2009

Hoje foi lançado oficialmente a versão 8 do FreeBSD, apesar de as ISOs estarem disponíveis desde o dia 22. Nessa versão apareceram novidades realmente excitantes, como por exemplo a versão 13 do sistema de arquivos ZFS finalmente considerado estável e pronto para ser usado em produção. Os subsistemas USB, rede, TTY e Jails foram violentamente aprimorados. Vários drivers de dispositivos foram adicionados, assim como novos protocolos de rede e atualizações de outros. Uma lista completa das novidades pode ser encontrada AQUI. As imagens para download podem ser encotradas AQUI.


Comandos e parâmetros da semana

November 20, 2009

Durante essa semana aprendi uns comandos e parâmetros interessantes para o FreeBSD:

Grep colorido

Eu sei, é frescura, mas é legal, o parâmetro –colour=auto do grep no FreeBSD deixa o texto que casou com a expressão usada destacado em vermelho.

Cmdwatch, um watch (do linux) para FreeBSD

Um comando que eu sentia falta era o watch do Linux, conheci o cmdwacth que faz o mesmo trabalho, para instalar acesse /usr/ports/sysutils/cmdwatch e dê um make install clean.

No “Freeba” não tem tac, vai de tail -r

Outra coisa que precisei essa semana, listar o conteúdo de um arquivo invertendo a saída, no Linux tem comando tac, no FreeBSD você pode usar o tail -r.


Usando PF com FIBs no FreeBSD

November 17, 2009

Com o advento das múltiplas tabelas de roteamento no FreeBSD (FIB) ficou muito fácil distribuir certos tipos de tráfego por determinados links. Por exemplo, vamos supor que temos 2 links com respectivos gateways 192.168.1.254 e 10.10.1.254, para adicionar as duas rotas como default em 2 tabelas diferentes faça o seguinte:

  • route add default 192.168.1.254
  • setfib 1 route add default 10.10.1.254

Agora temos a tabela 0 com a rota default 192.168.1.254 e a tabela 1 com a rota default 10.10.1.254, agora vamos enviar todo tráfego para porta 25 para o segundo link (10.10.1.254) usando o PF:

  • pass in quick on $int_if from any to port 25 rtable 1

Fonte: Lista do FUG.


Remontando partições no FreeBSD

November 17, 2009

Para remontar uma partição no FreeBSD enquanto ela está sendo usada use o parâmetro -u do comando mount. Por exemplo, você precisa remontar uma partição para adicionar as flags noexec, nosuid e noatime. O comando ficaria assim:

  • mount -urw -o noexec,nosuid,noatime /particao.

O paradoxo do Exterminador do Futuro

November 4, 2009

Quase não consegui dormir essa noite pensando sobre o que James Cameron quis fazer na série O Exterminador do Futuro, não sei se ele não tem a menor noção dos paradoxos de viagens no tempo ou se ele sabia o que estava fazendo. Mas bem, considerando que ele sabia o que estava fazendo, fui obrigado a fazer diagramas essa noite tentando colocar no papel a origem “dos” John Connor que viriam a existir no futuro. Encontrei esse excelente artigo sobre o problema, deixei minha opnião como um comentário do artigo. Vocês também devem ter ficado bitolados com o fato de o filme dizer que o John Connor enviou Kyle Reese de volta no tempo para proteger sua mãe e esse veio a ser o seu pai. Mas, se John Connor o enviou no tempo, indiretamente para ser o seu pai, como diabos ele já existia no futuro??? Leiam o artigo, é uma boa teoria do que se passa na série.


Novidades do Bash 4

September 29, 2009

Algumas novidades na nova versão do Bash me deixaram empolgado.

Vetores associativos

Esse recurso permite criar “dicionários” em bash, para ativá-lo use declare -A <nome_do_vetor>, exemplo:

declare -A lista
lista['nome']=”Danilo Egea”
lista['idade']=21
lista['sexo']=”nao lembro quando foi a ultima vez”

Para recuperar os valores use ${lista['nome']}, exemplo:

echo ${lista['sexo']}
nao lembro quando foi a ultima vez

Conversão de maiúsculo para minúsculo e vice versa

O Bash agora permite usar algumas expansões de variáveis novas, são elas: “,”,  “,,”, “^” e “^^”.

Para converter a primeira letra para maiúsculo use:

nome=”danilo”
echo ${nome^}
Danilo

Para converter todas as letras para maiúsculo:

nome=”danilo”
echo ${nome^^}
DANILO

Para converter a primeira letra para minúsculo:

nome=”DANILO”
echo ${nome,}
dANILO

Para converter todas as letras para minúsculo:

nome=”DANILO”
echo ${nome,,}
danilo

Usando ** para listar arquivos

Use ** para listar todos os arquivos dentro de todos os diretórios de onde você está no momento, ** expande para uma lista de todos os arquivos, exemplo:

ls **

FONTE: Linux Magazine edição 58.


Squid com ZPH

September 19, 2009

ZPH (Zero Penalty Hit) é um recurso do squid que permite a marcação de pacotes originados de algo que está em cache. Ele é usado principalmente em sistemas onde há controle de banda. Quando você faz a limitação de tráfego no servidor, os objetos que estiverem em cache também serão limitados quando solicidatos. Com o ZPH você consegue saber o que não deve passar pelo controle de banda. No seu squid.conf coloque as seguintes linhas:

zph_mode tos
zph_local 0×02

Assim o Squid irá marcar os pacotes com a flag 0×02, agora no seu firewall (IPFW no meu caso) adicione uma regra permitindo o tráfego marcado antes das suas regras de controle de banda:

ipfw -q add 50 allow ip from any to any iptos mincost

default:
 set log Phase Chat LCP IPCP CCP tun command
 set device /dev/cuaU0
# set speed 236800
 set speed sync
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT \
           OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"

claro:
 set authname claro
 set authkey claro
 set phone *99***1\#
 set login "TIMEOUT 10 \"\" \"\" \ CAUSE ERROR PLEASE NO CHANGE!
      gin:--gin: \\U word: \\P"
 set timeout 1
 set ifaddr 10.0.0.1/0 127.0.0.1/0 255.255.255.0 0.0.0.0
 #set ifaddr 10.0.0.1/0
# add default HISADDR
 enable dns
default:
 shell logger "LABEL down (up UPTIME): OCTETSIN received, OCTETSOUT sent"

claro:
 shell route delete default
claro:
 shell route delete default
 shell route add default -interface INTERFACE

Rotacionando os logs do Squid com o Newsyslog no FreeBSD

September 19, 2009

O Newsyslog é uma ferramenta do FreeBSD criada para manutenção de logs, ela é usada pelo sistema para rotacionar logs como o /var/log/messages, /var/log/auth.log e etc. O link abaixo mostra como usá-la para rotacionar e compactar os logs do Squid, não se esqueça de colocar “logfile_rotate 0” no seu squid.conf.

REFERÊNCIA


Lista de idéias para o FreeBSD 9.0

September 18, 2009

Durante uma sessão de brainstorm entre os desenvolvedores do FreeBSD, algumas coisas interessantíssimas sairam daquelas mentes, como suporte a Xen dom0, melhorias para o VirtualBox e mais um monte de coisas.

REFERÊNCIA


ZFS considerado pronto para produção no FreeBSD 8

September 15, 2009

O ZFS agora é considerado pronto para produção no FreeBSD 8 segundo seus desenvolvedores. Isso realmente foi uma boa notícia, agora é só esperar o FreeBSD 8-RELEASE ficar pronto.

REFERÊNCIA 1REFERÊNCIA 2