Instalação do FreeBSD 9.0

O FreeBSD é um sistema operacional livre do tipo Unix descendente do BSD desenvolvido pela Universidade de Berkeley.

Está disponível para as plataformas Intel x86, DEC Alpha, Sparc, PowerPC e PC98 assim como para as arquiteturas baseadas em processadores de 64bits IA-64 e AMD64.

Considerado como robusto e estável, geralmente é utilizado em servidores, como de Internet ou Proxies, mas também pode ser utilizado como estação de trabalho.

Ports O Sistema de Ports, também chamado de Coleção de Ports ou simplesmente Ports, é um “sistema de instalação” de pacotes prático e eficiente utilizado pelo FreeBSD. Consiste numa estrutura de diretórios, os quais possuem arquivos (Makefiles) que especificam todos os pré-requisitos da instalação, como se deve compilar o código fonte, e o necessário para a instalação dos binários criados de um determinado pacote no sistema. Isto de forma praticamente automática, com pouca ou nenhuma intervenção do usuário.

O suporte do Ports é tão abrangente, possuindo atualmente mais de 20.000 softwares (abril/2009), que dificilmente é necessário procurar programas em outras fontes.

Arquivos binários pré-compilados do Ports são chamados de “pacotes” e estão disponíveis para download. Eles podem ainda ser automaticamente instalados sabendo-se o nome do pacote e passando este como parâmetro para o comando “pkg_add -r”.

Compatibilidade binária com Linux

O FreeBSD fornece compatibilidade binária com muitas outras variações do Unix. O mesmo também é compativel com o OS GNU/Linux. A razão por trás disso está em poder utilizar programas desenvolvidos para Linux, geralmente comerciais, que só são distribuídos em forma binária e que por isso não podem ser portados para o FreeBSD sem a vontade de seus criadores.

Esta extensão permite que os usuários usem a maioria dos programas que são distribuídas apenas em binários Linux. Quando comparado com o número de programas nativos disponíveis pelo Ports, a quantidade desses programas é insignificante.

Alguns aplicativos que podem ser utilizados sobre a compatibilidade Linux incluem StarOffice, Netscape, Adobe Acrobat, RealPlayer, VMware, Oracle, WordPerfect, Skype, Doom 3, Quake 4, a série Unreal Tournament, Beonex e outros.

Geralmente não há perda de desempenho na utilização de binários Linux em vez de programas nativos do FreeBSD.

Mascote e lema

Os derivados do BSD em geral tem como mascote um diabinho vermelho chamado Daemon que significa demônio em grego, mas na realidade se refere a programas que rodam na memória autonomamente para servir requisições.

Até 2005, o Beastie era o “logotipo” do FreeBSD, quando foi aberta uma competição para escolher um novo símbolo para o projeto. Em 8 de outubro, ganhou o desenho feito por Anton K. Gural para ser o novo símbolo do FreeBSD.

O lema do FreeBSD é The Power to Serve, ou seja, “O Poder de servir”, obviamente se referindo a sua aplicação como servidor.

História e desenvolvimento do FreeBSD

O projeto FreeBSD teve seu nascimento no início de 1993, em parte como uma consequência do conjunto de manutenção não-oficial do 386BSD (Unofficial 386BSD Patchkit). O primeiro lançamento oficial foi o FreeBSD 1.0 em dezembro de 1993, coordenado por Jordan Hubbard, Nate Williams e Rod Grimes.

O objetivo original era produzir um snapshot intermediário do 386BSD, de forma a poder corrigir uma série de problemas com este sistema, que o mecanismo de manutenção não era capaz de resolver. Alguns se lembrarão do nome inicial do projeto que era 386BSD 0.5 ou 386BSD Interim em referência a este fato.

386BSD era o sistema operacional de Bill Jolitz, que já estava naquele instante sofrendo quase um ano de negligência. Como o mecanismo de manutenção patchkit se tornava mais e mais desconfortável a cada dia que passava, foi decidido que algo tinha que ser feito ao que ofereceram a ele este snapshot interim. Tais planos foram bruscamente interrompidos quando Bill Jollitz decidiu repentinamente retirar sua sanção ao projeto sem nenhuma indicação clara do que deveria ser feito. Não levou muito para ficar claro que o objetivo continuava a valer a pena, mesmo sem a ajuda de Bill, e foi adotado o nome FreeBSD, sugerido por David Greenman.

O Início da divulgação e distribuição do sistem

Por volta desta época (1994), conforme a Novell e U.C. Berkeley acertaram ao longo do processo penal entre ambas, a respeito da situação legal da fita contendo o Net/2 de Berkeley. Uma das condições do acordo eram as concessões da U.C. Berkeley que implicava que grandes trechos do Net/2 fossem códigos impedidos e de propriedade da Novell, que havia por sua vez adquirido-os da AT&T algum tempo antes.

O que a Berkeley recebeu em retribuição foi a bênção da Novell para o lançamento da versão 4.4BSD-Lite que, quando acontecesse, seria declarado como impedido e todos os usuários do Net/2 seriam fortemente encorajados a mudar de sistema para a nova versão. Isso incluiu o FreeBSD, ao projeto foi dado o prazo final de julho de 1994 para parar de distribuir seu produto baseado na versão Net/2. Sob tais termos de acordo, o projeto poderia lançar uma última versão antes do prazo em questão, o que originou o FreeBSD 1.1.5.1.

O FreeBSD definiu então a árdua tarefa de literalmente se reinventar a partir de um sistema completamente novo e consideravelmente incompleto, o 4.4BSD-Lite. As versões Lite continham grandes blocos de código a menos, removidos pelo CSRG de Berkeley (devido a várias decisões legais), códigos necessários para a construção de um sistema inicializável e que podia ser utilizado em produção e o fato é, que a conversão do 4.4 para a plataforma Intel era altamente incompleta.

O projeto levou até novembro de 1994 para concluir esta transição, quando lançou a versão 2.0 do FreeBSD na rede mundial e em CDROM (em dezembro). Apesar de um pouco bruta naquele instante, a versão teve um sucesso significante, e foi seguida pelo FreeBSD 2.0.5, mais robusto e de mais fácil instalação, em junho de 1995.

Breve histórico de versões

Foi lançado o FreeBSD 2.1.5 em agosto de 1996, que foi bastante popular entre os provedores de internet (ISP) e as empresas a ponto de justificar a viabilidade de outra versão no ramo 2.1-STABLE. Esta versão foi o FreeBSD 2.1.7.1, lançado em fevereiro de 1997, que marcou o término do desenvolvimento mainstream do 2.1-STABLE. Agora em manutenção, apenas aperfeiçoamentos de segurança e outras correções críticas são realizadas neste ramo (RELENG_2_1_0). O ramo 2.2 do FreeBSD foi iniciado a partir da série parcial de desenvolvimento (-CURRENT) em novembro de 1996, foi intitulado ramo RELENG_2_2, e a primeira versão completa (2.2.1) foi lançada em abril de 1997. Versões posteriores ao longo do ramo 2.2 foram criadas no verão e outono de 1998, sendo a última delas (2.2.8) lançada em novembro de 1998, marcando o início do fim do ramo 2.2.

A árvore foi ramificada mais uma vez, em 20 de janeiro de 1999, iniciando os ramos 4.0-CURRENT e 3.X-STABLE. A partir da 3.X-STABLE, a versão 3.1 foi lançada, em 15 de fevereiro de 1999; a versão 3.2 foi lançada em 15 de maio de 1999; a 3.3 em 16 de setembro de 1999; a versão 3.4 em 20 de dezembro de 1999, e a 3.5 em 24 de junho de 2000, que foi complementada um pouco depois com uma pequena atualização de segurança, o 3.5.1, que incorporava algumas correções de segurança de última hora para o Kerberos. Esta se tornou a versão final para o ramo 3.X.

Outro ramo foi iniciado em 13 de março de 2000, de forma emergencial na metade do ramo 4.X-STABLE, considerado agora o ramo -STABLE corrente. Posteriormente houve várias versões desta série: 4.0-RELEASE foi apresentado ao mundo em março de 2000, e a versão mais recente, 4.10-RELEASE surgiu em maio de 2004. Existiriam versões adicionais ao longo do ramo 4.X-STABLE (RELENG_4) ainda em 2003.

A versão 5.0-RELEASE, muito aguardada, foi anunciada em 19 de janeiro de 2003. O resultado culminante de aproximadamente três anos de trabalho, esta versão colocou o FreeBSD no caminho do suporte avançado a multiprocessamento simétrico, suporte avançado a aplicações multithread e apresentou ao público suporte às plataformas UltraSPARC® e IA64. Esta versão foi seguida pela 5.1 em junho de 2003.

Além de um número muito grande de novas funcionalidades, as versões 5.X do FreeBSD contém ainda uma série de trechos em desenvolvimento em todas as arquiteturas de sistemas relacionadas. Por tal razão, as versões 5.X são consideradas versões de Nova Tecnologia, enquanto a série 4.X atua como versões de Produção. No momento apropriado, a série 5.X será declarada estável e o trabalho mais recente será destinado ao próximo ramo de desenvolvimento, o 6.0-CURRENT.

Por hora, projetos de desenvolvimento que requerem mais tempo continuam sendo realizados no ramo 5.X-CURRENT, e versões SNAPshot da série em CDROM (e lógico, na rede) estão contínuamente sendo disponibilizadas a partir do servidor de snapshots e apresentado como trabalho em progresso.

Produtos baseados no FreeBSD

  • Darwin, o núcleo do Mac OS X é em grande parte baseado no FreeBSD.
  • OpenDarwin, um projeto completamente separado da Apple que foi inicialmente baseado no Darwin.
  • PC-BSD é uma distribuição do FreeBSD projetada para uso desktop com instalador e gerenciador de pacotes simplificado.
  • BSDeviant é uma distribuição live CD que cabe em um Mini-CD
  • ClosedBSD
  • GNU/kFreeBSD
  • Debian GNU/kFreeBSD
  • Ging é uma distribuição live CD baseada no Debian GNU/kFreeBSD, indiretamente baseada no FreeBSD.
  • DragonFly BSD
  • Firefly BSD
  • O projeto FreeSBIE está produzindo distribuições live CD do FreeBSD, similares à distribuição Knoppix do Linux. O projeto FreeSBIE também inclui um conjunto de ferramentas para ajudá-lo a fazer seus próprios live file systems e CDROMs FreeSBIE.
  • Frenzy é outro live CD baseado no FreeBSD, direcionado principalmente para usuários russos.
  • PicoBSD é uma versão em disquete do FreeBSD.
  • m0n0wall é um pacote de firewall baseado no FreeBSD.
  • pfSense é um firewall/roteador basedo no m0n0wall e no FreeBSD.
  • FreeNAS é um servidor NAS baseado no FreeBSD/m0n0wall.
  • TrustedBSD
  • Gentoo/FreeBSD
  • DesktopBSD

Podemos obter o FreeBSD em Mirrors

Vamos instalação inicial do sistema

  1. Boot com o dvd ou cd do FreeBSD
  2. Nesta tela pode selecionar a primeira opção ou esperar ele carregar.
  3. Nesta tela temos que selecionar o que vamos fazer selecione Install
  4. Agora o sistema nos questiona sobre a configuração do teclado selecione YES
  5. Agora temos selecionar qual o teclado eu estou utilizando abnt2, então vou escolher Brazilian 275 ISO-8859-1 (accent keys)
  6. Agora precisamos informar o nome da máquina, vou informar freebsd
  7. Agora temos que selecionar o que vamos instalar em nosso sistema, vamos selecionar somente deixar de fora somente games, as outras opções doc,lib32,ports e src deixe marcado.
  8. Agora precisamos configurar as partições, selecione Guided
  9. Agora precisamos selecionar Entire Disk
  10. Se for questionado, que o disco vai ser apagado todos os dados do disco selecione YES
  11. Aqui o FreeBSD já montou as partições de acordo com o tamanho do disco definido, aqui vamos selecionar Finish.
  12. Agora vamos selecione COMMIT para confirmar as alterações.
  13. Depois que o sistema foi instalado temos que informar a senha do root.
  14. Agora se a placa de rede, foi detectada vamos poder configurar ela selecionando ok
  15. Agora selecione yes para configurar o ipv4
  16. Agora podemos selecionar yes para configurar o freebsd para obter ip em um servidor dhcp ou no para definirmos, vou selecionar no
  17. Agora temos que informar o endereço ip, mascara de sub-rede e o gateway.
  18. Agora vamos ser questionados sobre a configuração de ipv6, como não vou utilizar selecione no.
  19. Agora precisamos informar o domínio de pesquisa, e o ip dos servidores dns.
  20. Agora vamos selecionar yes para configurar o timezone.
  21. Agora selecione 2 America – North and South
  22. Agora selecione 10 Brazil
  23. Como eu estou no Paraná vou selecionar 8 porém selecione de acordo com a sua região.
  24. Agora selecione yes para configurar a abreviação.
  25. Agora vamos deixar marcados quais serviços vão ser inicializados no boot selecione sshd.
  26. Agora se você quer ajudar a equipe de desenvolvimento do FreeBSD com o crash dumps selecione yes eu vou selecionar no.
  27. Agora vamos selecionar yes para adicionar um usuário comum no sistema.
  28. Informe um nome pra ele por ex: douglas
  29. Agora informe o nome completo pra ele ex: Douglas Quintiliano dos Santos
  30. Vamos deixar o uid que o sistema gerar então somente ENTER
  31. Vamos deixar o login group do default então somente ENTER
  32. Agora vamos adicionar esse usuário no grupo wheel, informe wheel
  33. Vamos deixar o login class como default, então somente ENTER
  34. Agora podemos selecionar qual shell vamos utilizar vou informar csh
  35. Agora podemos informar qual o diretório home do usuário, vou deixar o padrão.
  36. As permissões vamos deixar as padrões, então somente ENTER
  37. Aqui vamos ser questionados sobre a autenticação com senha, então somente ENTER
  38. Aqui vamos ser questionados sobre o uso de senha vazia, então somente ENTER
  39. Aqui vamos ser questionados sobre o uso de senha randomica, então somente ENTER
  40. Agora vamos informar a senha
  41. Agora confirme a senha
  42. Agora vamos ser questionados sobre o bloqueio da conta, então somente ENTER
  43. Agora para confirmar a criação do usuário vamos informar yes
  44. Agora vamos ser questionados sobre a criação de mais uma conta, informe no
  45. Agora temos um menu de configuração principal, vou selecionar Exit, pois são os passos que efetuamos até o momento.
  46. Agora temos a opção de efetuar alguma configuração adicional no sistema, eu vou selecionar no.
  47. Vamos selecionar agora reboot.
  48. Agora vamos remover a mídia de instalação, e aguarde o sistema ser inicializado.

Depois do reboot

Agora depois do boot log no sistema com o usuario root e a senha que você definiu.

Aqui eu vou habilitar o root a efetuar sshd para o FreeBSD, então vamos lá

vi /etc/ssh/sshd_config
[...]
PermitRootLogin yes

Agora vamos reiniciar o ssh

/etc/rc.d/sshd restart

Agora vamos instalar o ports do nosso sistema para podermos instalar as nossas aplicacoes.

portsnap fetch && portsnap extract && portsnap update

Agora vamos instalar o portaudit para fazer auditoria em nossos ports então vamos procurar a localização do portaudit no ports

whereis portaudit
portaudit: /usr/ports/ports-mgmt/portaudit -> este é o caminho no ports 

Agora vamos acessar o diretório

cd /usr/ports/ports-mgmt/portaudit

Vamos compilar ele e instalar o portaudit

make install distclean

Agora vamos atualizar as variáveis de nosso ambiente

source /root/.cshrc

Agora vamos fazer uma auditoria de nosso ports

portaudit -Fda

Agora vamos instalar o portmanager para que ele possa atualizar as nossas aplicações que foram instaladas apartir do ports

whereis portmanager
portmanager: /usr/ports/ports-mgmt/portmanager

Vamos acessar o diretório do portmanager

cd /usr/ports/ports-mgmt/portmanager

Agora vamos compilar e instalar o portmanager

make install distclean 

Deixe as opções padrões nos questionamentos

Agora vamos atualizar as variaveis de nosso ambiente.

source /root/.cshrc

Agora vamos mandar atualizar as aplicações instaladas apartir de nosso ports

portmanager -u -f

Agora vamos mandar instalar o vim

pkg_add -r vim

Agora vamos configurar o vim o arquivo de exemplo do vim

cp /usr/local/share/vim/vim73/vimrc_example.vim /usr/local/share/vimrc

Vamos carregar as variáveis do ambiente

source /root/.cshrc

Agora vamos editar o arquivo do vim para o root vou disponibilizar o vimrc que eu utilizo que tem algumas customizações

wget -c http://wiki.douglasqsantos.com.br/Downloads/scripts/vimrc -O /root/.vimrc

Agora vamos ajustar o vim

vim /root/.vimrc

<ESQ> :set ff=unix

Caso ache necessário copie o arquivo ~/.vimrc para o /usr/share/skel para que novos usuários já tenham esse arquivo de configuração faça da seguinte forma

cp /root/.vimrc /usr/share/skel/dot.vimrc

Configuração de endereço ip e alguns serviços básicos

No meu caso como estou utilizando uma interface de rede Intel e a identificação dela para o sistema é em0 a configuração fica como abaixo.

vim /etc/rc.conf
[...]
#Configuração da loopback
ifconfig_lo0="inet 127.0.0.1"
#Configuração da interface de rede
ifconfig_em0="inet 10.0.0.23 netmask 255.255.255.0"
#Configuração do GW
defaultrouter="10.0.0.254"
#Configução do hostname da maquina
hostname="freebsd.douglasqsantos.com.br"
#Configurando uma interface de rede virtual opcional
ifconfig_em0_alias0="inet 192.168.10.1 netmask 255.255.255.0"
#Configurando mais uma interface de rede virtual opcional
ifconfig_em0_alias1="inet 192.168.11.1 netmask 255.255.255.0"
#Habilitando a maquina para trabalhar como gateway
gateway_enable="YES"
#Habilitando o syslog
syslogd_enable="YES"
syslogd_program="/usr/sbin/syslogd"
#Habilitar a checagem de sistema de arquivo na inicilização
fsck_y_enable="YES"
fsck_y_flags="-p"
#Habilitando o cron
cron_enable="YES"
cron_program="/usr/sbin/cron"
cron_dst="YES"
#Teclado abnt2
keymap="br275.iso.kbd"
#Limpeza de tmp
clear_tmp_enable="YES"
#Lista de modulos para carregar na inicialização
#kld_list="if_bwn if_bwi bwi_v3_ucode bwn_v4_ucode runfw ng_ubt cuse4bsd sem ntfs ntfs_iconv udf udf_iconv ext2fs"
#Desabilitando o PF
pf_rules="/etc/pf.conf"
pf_enable="NO"
pf_flags=""
#Acertando o NTP
ntpdate_enable="YES"
ntpdate_config="/etc/ntp.conf"
ntpdate_hosts="ntp.usp.br"

Vamos configurar o arquivo do syslog insira a configuração no final do arquivo

vim /etc/syslog.conf
[...]
*.*       /var/log/syslog

Agora vamos criar o arquivo do syslog e configurar as permissões dele

touch /var/log/syslog
chmod 600 /var/log/syslog

Agora vamos reiniciar o serviço do syslog para que ele possa utilizar a nova configuração

/etc/rc.d/syslogd restart

Como reiniciar o serviço de rede

/etc/netstart restart

Adicionando uma nova rota statica manualmente

route add -net 172.29.0.0 -netmask 255.255.255.0 -gateway 10.0.0.254

Adicionando uma rota padrão manualmente

route add default 10.0.0.254

Verificando agora as rotas

netstat -rn

Agora vamos configurar algumas variaveis do nosso ambiente

vim /root/.cshrc
#Vamos adicionar alguns alias
alias ls        ls -G
alias grep      grep --color
alias egrep     egrep --color
alias df        df -Th


#Aguns acertos de sistema
setenv  CLICOLOR true
setenv  EDITOR  vim
setenv  PAGER   less
setenv  BLOCKSIZE       K

Agora vamos importar essas configurações

source /root/.cshrc

Agora digite exemplo ls já vai aparecer os arquivos coloridos

Opcional

Agora vamos instalar o shell bash, vamos procurar ele no ports

whereis bash
bash: /usr/ports/shells/bash

Agora vamos compilar e instalar ele

cd /usr/ports/shells/bash
make install distclean

Agora vamos trocar o shell do root

chsh -s /usr/local/bin/bash root 

Agora vamos instalar o ls colorido, vamos procurar ele no ports

whereis gnuls
gnuls: /usr/ports/misc/gnuls

Agora vamos compilar e instalar ele

cd /usr/ports/misc/gnuls/
make install distclean

Agora vamos acertar o PS1 e o nosso ls

vim /root/.profile
#No Final do Arquivo
PAGER=less
EDITOR=vim
export PAGER EDITOR
PS1='\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]# '
alias ls="gnuls --color=auto"
alias df="df -Th"
alias grep="grep --color"
alias egrep="egrep --color"

Agora faça logout e logue novamente.

logout

Temos mais uma opção muito show de bola pra shell, para quem trabalha muito com o shell precisamos sempre de ferramentas que nós ajudem então temos o zsh

Vamos instalar ele

pkg_add -r zsh

Agora vamos mudar o shell do usuário root

chsh -s /usr/local/bin/zsh root

Agora vamos obter um arquivo personalizado dele eu peguei o padrão que eu utilizo do Arch Linux

wget -c http://www.douglas.wiki.br/Downloads/scripts/zshrc -O /root/.zshrc

Agora vamos fazer logout e logar novamente

logout

Agora pense que você não mandou instalar o kenel do sistema. Então a gente precisa obter ele, vamos fazer este processo com o cvsup, vamos mandar instalar ele.

Podemos mandar instalar ele com o pkg_add da seguinte forma

pkg_add -r cvsup-without-gui

Podemos mandar instalar tambem via ports aqui escolhemos as opções padrões do sistema.

cd /usr/ports/net/cvsup
make && make install clean

Agora vamos acertar a configuração dele.

cp -Rfa /usr/src/share/examples/cvsup/cvs-supfile /etc/supfile

Agora vamos acertar a configuração dele

vim /etc/supfile
[...]
#Vamos acertar o host que vamos obter os fontes podemos obter os hosts em http://www.freebsd.org/doc/handbook/cvsup.html#CVSUP-MIRRORS
*default host=cvsup.br.FreeBSD.org
#Vamos acertar aonde vamos inserir os fontes
*default prefix=/usr
#Agora vamos comentar o src-all que iria obter todo o sistema
#src-all
[...]
#Agora vamos descomentar o src-sys que são os fontes do kernel.
src-sys
#Agora vamos comentar o ports-all pois já obtemos com o portsnap
#ports-all
#Agora vamos comentar o doc-all que é a documentação do sistema eu ja mandei instalar na instalação do FreeBSD caso não tenha instalado podemos obter com essa opção
#doc-all
#Vamos comentar o www que recupera a arvore www dos repositórios do freebsd
#www
#Agora vamos comentar a coleção de projetos
#projects-all
#Agora vamos comentar os arquivos de controles do cvsroot
#cvsroot-all

Agora vamos obter os fontes

cvsup /etc/supfile

Agora vamos compilar o kernel para habilitar o ipfw

Agora vamos fazer alguns acertos

cd /usr/src/sys/amd64/conf
mkdir /root/kernels
cp GENERIC /root/kernels/douglas
ln -s /root/kernels/douglas

Agora vamos habilitar o ipfw dai tem opcional: compatibilidade com linux, quota, balanceamento de carga

vim douglas
[...]
options         SMP                     # Symmetric MultiProcessor Kernel
#habilitar o IPFW
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options IPFIREWALL_NAT # Aqui é ativo o NAT no kernel
options LIBALIAS # Necessário para o NAT
options IPDIVERT
options DUMMYNET

#Habilitar quota
options QUOTA

#Habilitar balanceamento de carga e priorizacao de pacotes
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
options ALTQ_NOPCC

Agora vamos testar a configuração do nosso kernel

/usr/sbin/config douglas

Agora vamos mudar o diretório como pedido

cd ../compile/douglas

Agora vamos compilar as dependências do kernel

make cleandepend && make depend

Agora vamos compilar o kernel

make

Agora vamos mandar instalar o kernel

make install

Vamos limpar os objetos temporários da compilação

make clean

Agora é so reiniciar o servidor

reboot 

Vamos testar o ipfw

ipfw show
65535 3153 352259 allow ip from any to any

Forma 2 de compilar o kernel

Fazer alguns acertos

cd /usr/src/sys/amd64/conf
mkdir /root/kernels
cp GENERIC /root/kernels/douglas
ln -s /root/kernels/douglas

Agora vamos habilitar o ipfw dai tem opcional: compatibilidade com linux, quota, balanceamento de carga

vim douglas
[...]
options         SMP                     # Symmetric MultiProcessor Kernel
#habilitar o IPFW
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options IPFIREWALL_NAT # Aqui é ativo o NAT no kernel
options LIBALIAS # Necessário para o NAT
options IPDIVERT
options DUMMYNET

#Habilitar quota
Options QUOTA

#Habilitar balanceamento de carga e priorizacao de pacotes
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
options ALTQ_NOPCC

Agora vamos compilar o nosso kernel

cd /usr/src
make buildkernel KERNCONF=douglas

Agora vamos instalar ele

make installkernel KERNCONF=douglas

Agora vamos reiniciar o servidor

reboot

Vamos testar o ipfw

ipfw show
65535 3153 352259 allow ip from any to any

Agora vamos instalar o htop para monitorarmos o sistema, mas antes vamos fazer alguns ajustes

mkdir -p /usr/compat/linux/proc
ln -s /usr/compat /compat

Agora vamos adicionar a entrada da compatibilidade com linux no final do arquivo /etc/fstab

vim /etc/fstab
[...]
linproc /compat/linux/proc linprocfs rw 0 0

Agora vamos montar essa partição

mount linproc

Agora vamos procurar no ports o htop

whereis htop
htop: /usr/ports/sysutils/htop

Agora vamos acessar ele e vamos mandar compilar e instalar, responda as perguntas com as opções padrões.

cd /usr/ports/sysutils/htop
make install distclean

Agora se tiver utilizando o enterpretador de shell csh temos que atualizar ele

source /root/.cshrc

Agora já podemos chamar o nosso htop

htop

Opcional

Fazendo um update de nosso FreeBSD, o processo de update do FreeBSD é bem mais simples do que o processo do OpenBSD aonde temos que obter os códigos fontes e compilar tudo e instalar.

O processo para um update do nosso FreeBSD é o seguinte.

Vamos obter os patchs

freebsd-update fetch

Agora vamos mandar instalar os patchs

freebsd-update install

Podemos deixar este processo agendado no crontab da seguinte forma

echo "@daily                                  root    freebsd-update cron" >> /etc/crontab

Caso tenha algum problema com a atualização podemos voltar o ponto anterior da seguinte forma

freebsd-update rollback

Agora podemos mandar instalar o portupgrade, para fazermos um upgrade dos nossos ports.

cd /usr/ports/ports-mgmt/portupgrade && make install distclean

Agora vamos fazer o upgrade do nosso ports

portupgrade -af

Referências