caixa de ferramentas unix.txt

Upload: rangeldenis

Post on 03-Apr-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    1/60

    Caixa de Ferramentas UNIX

    Esse documento a coleo de comandos e tarefas realizadas nos sistemasUnix/Linux/BSD na qual so utilizados no dia-a-dia dos administradores

    de redes ou paraos usurios avanados. Esse guia prtico e com explicaes diretas, entre

    aleitura supostamente para quem j conhece o assunto.

    Executando kernel e a informao do sistema# uname -a # Mostra a verso do kernel (e a

    verso BSD)# lsb_release -a # Informao completa de quaisquer distribuio# cat /etc/SuSE-release # Mostra a verso SuSe# cat /etc/debian_version # Mostra a verso Debian

    Usa /etc/DISTR-release com DISTR= lsb (Ubuntu), redhat,gentoo, mandrake, sun (Solaris), e assim por diante. Veja tambm/etc/issue. # uptime # Mostra quanto tem

    po o sistema est executando, ou seja, quanto tempo faz que o sistema no desligado# hostname # Mostra na tela o nome da mquina# hostname -i # Exibe o endereo IP da mquina (apenas no Linux)# man hier # Descrio da hierarquia dos arquivos no siste

    ma# last reboot # Exibe o histrico da reinicializao do sistema

    Informao do Hardware Hardware detectado no kernel # dmesg# Hardware detectado e mensagens de inicializao

    # lsdev # Informao sobre a instalao do hardware# dd if=/dev/mem bs=1k skip=768 count=256 2>/dev/null | strings -n 8 # Leitura da BIOS

    Linux# cat /proc/cpuinfo # Modelo da CPU

    # cat /proc/meminfo # Informao da memria# grep MemTotal /proc/meminfo # Exibe a memria fsica

    # watch -n1 'cat /proc/interrupts' # Relgio interrompe continuamente mutvel# free -m # Mostra o tamanho usado e livre da memria (-mpara MB)# cat /proc/devices # Dispositivos configurados# lspci -tv # Mostra os dispositivos PCI# lsusb -tv # Mostra os dispositivos USB# lshal # Mostra a lista de todos os dispositivos com suas propriedades# dmidecode # Mostra DMI/SMBIOS: como a informao da BIOS

    FreeBSD# sysctl hw.model # Mostra o modelo da CPU

    # sysctl hw # Mostra vrias informaes do hardware

    # sysctl vm # Memria usada# dmesg | grep "real mem" # Memria do hardware# sysctl -a | grep mem # Configuraes e informaes sobre a memria do kel# sysctl dev # Mostra os dispositivos configurados# pciconf -l -cv # Exibe dispositivos PCI# usbdevs -v # Exibe dispositivos USB# atacontrol list # Exibe dispositivos ATA# camcontrol devlist -v # Exibe dispositivos SCSI

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    2/60

    Load, estatsticas e mensagens Os comandos a seguir so usadospara localizar o que est acontecendo no sistema. # top

    # Exibe e atualiza os processos da CPU# mpstat 1 # Exibe os processos das capacidades relacionadas# vmstat 2 # a capacidade da memria virtual# iostat 2 # Exibe a capacidade I/O (2s intervalo)# systat -vmstat 1 # Resumo da capacidade do sistema BSD (1s intervalo)# systat -tcp 1 # Conexes tcp no BSD (tenta tambm ip)# systat -netstat 1 # Ativa as conexes de rede BSD# systat -ifstat 1 # BSD trfego de redes ativas# systat -iostat 1 # BSD taxa de transferncia do disco e da CPU# tail -n 500 /var/log/messages # As ltimas 500 linhas mensagens do registro# tail /var/log/warn # Mensagens de alerta do sistema, veja em syslog.conf

    Usurios# id # Exibe o id, usurio e grupo ati

    vo# last # Exibe o ultimo usurio logado# who # Exibe o usurio logado# groupadd admin # Adiciona um grupo admin e um usurio colin(Linux/Solaris)

    # useradd -c "Colin Barschel" -g admin -m colin# usermod -a -G # Adiciona um usurio ao grupo (Debian)# groupmod -A # Adiciona um usurio ao grupo (SuSE)# userdel colin # Exclui o usurio Colin# adduser joe # FreeBSD, adiciona o usurio ao sistema (interativamente)# rmuser joe # FreeBSD, deleta o usurio joe (interativamente)# pw groupadd admin # Usa pw no FreeBSD# pw groupmod admin -m newmember # Adiciona um novo membro ao grupo# pw useradd colin -c "Colin Barschel" -g admin -m -s /bin/tcsh# pw userdel colin; pw groupdel admin

    Senhas criptografadas esto armazenadas no /etc/shadow nos Linux e Solaris, no FreeBSDesto localizadas no /etc/master.passwd. Se o master.passwd for modifi

    cado manualmente(deleta a senha), executa # pwd_mkdb -p master.passwd para repor o b

    anco dedados.

    Para prevenir amplos acessos temporrios (para todos os usurios masroot) use nologin. A mensagem do nologin ser Exibido (talvez no trabal

    ha com as chavesssh). # echo "Desculpe no acessa agora" > /etc/nologin # (Linux

    )

    # echo "Desculpe no acessa agora" > /var/run/nologin # (FreeBSD)

    Limites Algumas aplicaes requerem limites superiores em arquivosabertos (como o Proxy do servidor de web, banco de dados). O limite

    padro sonormalmente mais baixos.LinuxCada Shell/script O limite do Shell regido por um ulimit. O estado c

    hecadocom ulimit -a. Por exemplo, para trocar os arquivos limites dos 1024

    para

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    3/60

    10240 faa:# ulimit -n 10240 # Isso apenas validar dentro do

    Shell

    O comando ulimit pode ser usado no em um script para trocar os limites do

    script apenas.Por usurio/processoAcesso de aplicaes e usurios podem serconfigurados no /etc/security/limits.conf. Por exemplo: # cat /etc/s

    ecurity/limits.conf* hard nproc 250 # Limites de processos por usuriosasterisk hard nofile 409600 # Aplicaes limites de arquivos abertos

    Sistema amploLimites do kernel so ajustados sysctl. Limites permanentes so

    ajustados no /etc/sysctl.conf. # sysctl -a# Visualiza todo o limite do sistema# sysctl fs.file-max # Visualiza o limite mximo de arquivos abertos# sysctl fs.file-max=102400 # Troca o limite mximo# echo "1024 50000" > /proc/sys/net/ipv4/ip_local_port_range #Faixa de portas# cat /etc/sysctl.conffs.file-max=102400 # Permanece a entrada no sysctl.conf# cat /proc/sys/fs/file-nr # Como muitos arquivos descritos em uso

    FreeBSDCada Shell/script Use o comando limits em csh ou tcsh ou igual aoLinux, use ulimit no bash shell. Por usurio/processo O padro doslimites de acesso so configurados no /etc/login.conf. Um valor ilimit

    adoainda limitado pelo sistema de valor mximo. Sistema amploLimites do k

    erneltambm so definidas no sysctl. Permanece os limites que so definidos no

    /etc/sysctl.conf ou /boot/loader.conf. A sintaxe igualao Linux mas as chaves so diferentes.# sysctl -a # Visualiza todo o limite do si

    stema# sysctl kern.maxfiles=XXXX # Nmero mximo de descritores no arquivo

    kern.ipc.nmbclusters=32768 # Permanece a entrada no /etc/sysctl.confkern.maxfiles=65536 # Tpico valor do squidkern.maxfilesperproc=32768kern.ipc.somaxconn=8192 # Fila TCP. Melhor para apache/sendmail# sysctl kern.openfiles # Quantos arquivos descritos so usados.# sysctl kern.ipc.numopensockets # Quantos sockets esto em uso# sysctl -w net.inet.ip.portrange.last=50000 # Padro 1024-5000# netstat -m # Capacidade de memria da rede

    Veja o FreeBSD handbook Chapter 11 paradetalhes. Solaris Seguindo os valores no /etc/system incrementaro mximo de descries por proc:: set rlim_fd_max = 4096 # L

    imite fsico nos arquivos de descries para o nico proc

    set rlim_fd_cur = 1024 # Limite lgico nas filas descritas para o nico proc

    RunlevelsLinux Uma vez iniciado o kernel inicia o init que ento comea o

    rc que inicia todos os scripts pertencente a um runlevel. O scripts so

    armazenados em um /etc/init.d e so ligados a um /etc/rc.d/rcN.d com No nmero do

    runlevel.

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    4/60

    O nvel padro do runlevel configurado em /etc/inittab. So normalmente3 ou 5:# grep default: /etc/inittab

    id:3:initdefault:

    O atual runlevel pode ser alterado com init. Por exemplo para ir do3 para

    o 5: # init 5 # Entra o runlevel 5

    0 Desliga e suspende1 Modo Single-User (also S)2 Multi-user sem rede3 Multi-user com rede5 Multi-user com X6 Reinicia

    Use chkconfig para configurar os programas que inicializar o bootpelo runlevel.# chkconfig --list # Lista todos os scripts do ini

    t# chkconfig --list sshd # Relata o estado do sshd# chkconfig sshd --level 35 on # Configura sshd para level 3 e 5# chkconfig sshd off # Desabilita sshd todos os runlevels

    Debian e distribuies baseadas no Debian como Ubuntu ou Knoppix usa o comandoupdate-rc.d para gerenciar o script do runlevel. Por padro comea e

    m2,3,4 e 5 e shutdown no 0,1 e 6. # update-rc.d sshd defaults

    # Ativa sshd como runlevel padro# update-rc.d sshd start 20 2 3 4 5 . stop 20 0 1 6 . # Com argumentos explcitos# update-rc.d -f sshd remove # Desabilita sshd para todos runlevels# shutdown -h now (or # poweroff) # Desliga o sistema ou suspende

    FreeBSD O boot do BSD se aproxima do sistema SysV, no existem runlevels. O

    final do estado (nico usurio, com ou sem X) configurado no /etc/ttys.

    Todos os scripts esto localizado no /etc/rc.d/ e no/usr/local/etc/rc.d/ a terceira parte das aplicaes. A ativao doservio est configurado no /etc/rc.conf e /etc/rc.conf.local.Por padro est configurado no /etc/defaults/rc.conf. O script respondepelo menos parastart|stop|status.# /etc/rc.d/sshd status

    sshd is running as pid 552.# shutdown now # Entra no modo single-user# exit # volta para o modo multi-usurio# shutdown -p now # Desliga e suspende o sistema# shutdown -r now # Reiniciat

    O processo do init pode ser usado para checar um dos seguintes runle

    vels. Por exemplo # init 6 para reiniciar.0 Desliga o sistema (sinal USR2)1 Vai o modo single-user (sinal TERM)6 Reinicia a mquina (sinal INT)c Bloqueia o acesso adicional TSTP)q Rescan o arquivo ttys(5) (sinal HUP)

    Zerar senha de RootLinux mtodo 1 Ao boot carrega (lilo ou grub), entra a opo seleo de

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    5/60

    inicializao: init=/bin/sh O kernel montar a partio e o initinicializar o bourne Shell em vez do rc e o runlevel. Usa o comando

    passwd para trocar a senha e reinicia.Esquea o modo single-user,voc

    precisa da senha para isso.Se, depois do booting, a partio root montado para

    somente para leitura, e remonta como rw: # mount -o remount,rw /# passwd # ou deleta a senha de root no (/etc/shadow)# sync; mount -o remount,ro / # sync depois de remontar para somente leitura# reboot

    FreeBSD mtodo 1No FreeBSD, inicia o single-user, remonta / rw e a senha. Voc

    pode selecionar o modo single-user menu (opo 4) como Exibe na tela 10segundos para

    iniciar. O modo single-user dar o Shell root da partio /. # mount -u /;mount -a # montar / rw# passwd# reboot

    Unixes e FreeBSD e Linux mtodo 2 Outros Unixes no poderia deix-lo ir embora

    com o truque simples init. A soluo montada na partio de outro SO (comm CD) etroca a senha no disco.

    Inicia o CD live ou a instalao em um modo de recuperao que vai lhe ar um

    ShellProcura a partio root com fdisk /dev/sda

    Monta e usa o chroot

    # mount -o rw /dev/ad4s3a /mnt# chroot /mnt # chroot into /mnt# passwd# reboot

    Mdulos do KernelLinux# lsmod # lista todos os mdulos carregad

    os# modprobe isdn # Carrega um mdulo

    FreeBSD# kldstat #Lista todos os mdulos carregado

    s# kldload crypto # Para carregar um mdulo

    Compilando o Kernel

    Linux# cd /usr/src/linux# make mrproper # Limpa o antigo .config se existir# make oldconfig # Re-usa o antigo .config se existente# make menuconfig # ou xconfig (Qt) ou gconfig (GTK)# make # Cria uma imagem comprimida# make modules # Compila os mdulos# make modules_install # Instala os mdulos# make install # Instala o kernel# reboot

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    6/60

    FreeBSD Atualizao opcional de origem (em /usr/src) com csup(como FreeBSD 6.2 ou posterior): # csup Eu sigo o supfile:*default host=cvsup5.FreeBSD.org # www.freebsd.org/handbook/cvsup.h

    tml#CVSUP-MIRRORS*default prefix=/usr*default base=/var/db*default release=cvs delete tag=RELENG_7src-all

    Modifica e refaz o kernel, copia a configurao de arquivo genrica para onovo nome e

    edita como se precisa (voc pode tambm editar o arquivo GENERICdiretamente). Para reiniciar a construo e aps a interrupo, adiciona a

    NO_CLEAN=YES, o comando make evita a limpeza dos objetos j formados.

    # cd /usr/src/sys/i386/conf/# cp GENERIC MYKERNEL# cd /usr/src# make buildkernel KERNCONF=MYKERNEL# make installkernel KERNCONF=MYKERNEL

    Para a reconstruo total SO:# make buildworld # Constri total o SO mas no o ker

    nel# make buildkernel # Usa KERNCONF para ambos# make installkernel# reboot# mergemaster -p # Compare somente os arquivos essenciais econhecidos# make installworld# mergemaster -i -U # Atualiza todas as configuraes e outros arquivos# reboot

    Para pequenas alteraes no fonte, voc pode usar NO_CLEAN=yes para evitara

    reconstruo de toda a rvore.# make buildworld NO_CLEAN=yes # No deeta os objetos antigos# make buildkernel KERNCONF=MYKERNEL NO_CLEAN=yes

    Repara o Grub Ento voc quebrou o grub? Boot com CD live, [procurasua partio Linux abaixo /dev e use o fdisk para localizar apartio do linux] monte a partio linux, adicione o /proc e o /dev e use

    grub-install /dev/xyz. Suponha que o linux esta em/dev/sda6:

    # mount /dev/sda6 /mnt # Monta a partio linux em /mnt# mount --bind /proc /mnt/proc # monta o subsistema proc no /mnt# mount --bind /dev /mnt/dev # monta os dispositivos no /mnt# chroot /mnt # troca a partio root Linux

    # grub-install /dev/sda # reinstala grub com suas antigas configuraes

    ProcessosListando | Prioridade | Background/Foreground | Top | KillListagem e PIDs Cada processo tem um nmero exclusivo, o PID. A listade todos os processo em execuo obtido com o ps.# ps -auxefw # Lista extensa de todos os pro

    cessos em execuo

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    7/60

    No entanto o uso mais tpico com o pipe ou o pgrep: # ps axww | grep cron586 ?? Is 0:01.48 /usr/sbin/cron -s

    # ps axjf # Todos processos no formato de rvore(Linux)# ps aux | grep 'ss[h]' # Localiza todos pids ssh sem o grep pid# pgrep -l sshd # Localiza os PIDs dos processos por (partede) nome# echo $$ # O PID de sua shell# fuser -va 22/tcp # Lista os processos usando a porta 22 (Linux)# pmap PID # Mapa dos processos em memria (Caa vazamentos de memria) (Linux)# fuser -va /home # Lista os processos acessing a partio /home# strace df # Traa os sinais e chamadas de sistema# truss df # Mesmo que acima em FreeBSD/Solaris/Unixware

    Prioridade Altera a prioridade dos processos em execuo comrenice. Nmero negativos tem uma prioridade maior , o menor

    -20 e o "nice" tem um valor positivo.# renice -5 586 # Maior Prioridade

    586: Prioridade antiga 0, nova prioridade -5

    Inicia o processo com uma prioridade definida com o nice. Positivo "

    nice" ou fraco, negativo fixa uma prioridade forte. Certifique se /usr/bin/nice

    ou o shell embutido usou (Verifique com # which nice).# nice -n -5 top # Prioridade forte(/usr/bin/nic

    e)# nice -n 5 top # Prioridade fraca (/usr/bin/nice)# nice +5 top # tcsh tem nice embutido (mesmo que acima!)

    Enquanto o nice altera o agendamento da CPU, um outro comando til o ionice, ir fixar

    o IO do disco. Isto muito til para aplicaes intensivas (ex. compilaoce pode

    selecionar uma classe (ociosa - melhor esforo - tempo real ), a pginado manual curta e bem explicativa.# ionice c3 -p123 # ajusta a classe ociosa para o

    PID 123 (Linux Somente)# ionice -c2 -n0 firefox # Executa o firefox com melhor esforo e maior prioridade# ionice -c3 -p$$ # Ajusta o shell atual para prioridade ociosa

    O ultimo comando muito til para compilar (ou debugar) um longo projeto. Cada comando

    iniciado neste shell ter a prioridade herdada. $$ o seu shell pid (te

    nte echo $$).FreeBSD usa idprio/rtprio (0= mxima prioridade, 31 = mais inativo) # idprio 31 make # Compila com menor prioridade# idprio 31 -1234 # Ajusta o PID 1234 com menor prioridade# idprio -t -1234 # -t remove qualquer prioridade de tempo real/ociosa

    Background/Foreground Quando iniciado a partir de um shell, osprocessos podem ser levados ao background e ao foreground com [Ctrl]

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    8/60

    -[Z] (^Z),bg e fg. Lista os processos com jobs.

    # ping cb.vu > ping.log^Z # ping interrompido (parado) com [Ctrl]-[Z]# bg # Coloca em segundo plano e continua executando# jobs -l # Lista os processos em segundo plano[1] - 36232 Running ping cb.vu > ping.log[2] + 36233 Suspended (tty output) top# fg %2 # Traz o processo 2 de volta ao primeiro plano

    Use nohup para iniciar o processo que tem que continuar a executar quando a

    shell fechada. # nohup ping -i 60 > ping.log &

    Top O programa top exibe informaes dos processos emexecuo. Veja tambm o programa htop de htop.sourceforge.net (a versomais poderosa do top) que roda em Linux e FreeBSD (ports/sysutils/ht

    op/).Enquanto o top executado pressione a tecla "h" para uma viso geral da

    ajuda. Teclasteis so:

    u [nome do usurio] Para exibir somente os processos pertencentesaousurio. Use + ou deixe em branco para todos os usurios.

    k [pid] Finaliza todos os processos com o pid.1 Para exibir todas as estatsticas dos processos (Linux somente)R Para ordenar.

    Signals/Kill Termina ou manda um sinal com kill ou

    killall.# ping -i 60 cb.vu > ping.log &

    [1] 4712# kill -s TERM 4712 # mesmo que finalizar com -15 4712# killall -1 httpd # Kill HUP processos por nome

    # pkill -9 http # Kill TERM processos por (parte de) nome# pkill -TERM -u www # Kill TERM processos usado por www# fuser -k -TERM -m /home # Kill cada processo acessando /home (paradesmontar)

    Sinais importantes so:1 HUP (desliga)2 INT (suspende)3 QUIT (fecha)9 KILL (fora)15 TERM (software envia o sinal de trmino)

    Sistema de ArquivosInfo de disco | Boot | Uso de disco

    | Arquivos abertos | Monta/remonta | MontaSMB | Monta imagem | Queima ISO | Criarimage | Memria de Disco | Desempenho de Disco

    Permisses Altere as permisses e propriedades comchmod e chown. A umask padro pode ser alterada para todos

    os usurios em /etc/profile para Linux ou /etc/login.conf para FreeBSD. A umask padro

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    9/60

    geralmente 022. A umask subtrado de 777, assim a umask 022 resulta napermisso de

    755. 1 --x executa # Modo 764 = executa/l/escreve | l/escreve | l2 -w- escreve # Para: |-- Dono --| |- Grupo-|

    |Outros|4 r-- lugo=a u=usurio, g=grupo, o=outros, a=todos

    # chmod [OPO] MODO[,MODO] ARQUIVO # MODO na forma [ugoa]*([-+=]([rwxXst]))# chmod 640 /var/log/maillog # Restringir o log -rw-r-----# chmod u=rw,g=r,o= /var/log/maillog # O mesmo acima# chmod -R o-r /home/* # Remove recursivamente leitura para outrospara todos os usurios# chmod u+s /path/to/prog # Fixa SUID bit no executvel (saiba o que esta fazendo!)# find / -perm -u+s -print # Localiza todos os programas com o SUID bit# chown user:group /path/to/file # Altera a propriedade do usurio e o grupo no arquivo# chgrp group /path/to/file # Altera a propriedade da grupo no arquivo# chmod 640 `find ./ -type f -print` # Altera a propriedade para 640 em todos osarquivos

    # chmod 751 `find ./ -type d -print` # Altera a permisso para 751 para todos os diretrios

    Informao de Disco# diskinfo -v /dev/ad2 # Informao sobre o disco (Setor/t

    amanho) FreeBSD# hdparm -I /dev/sda # Informao sobre o disco IDE/ATA (Linux)# fdisk /dev/ad2 # Exibe e manipula a tabela de parties# smartctl -a /dev/ad2 # O SMART exibe as informao do disco

    BootFreeBSD Para inicializar o antigo kernel se o novo kernel no iniciali

    zar, pare

    o boot durante a contagem regressiva# unload# load kernel.old# boot

    Sistema de ponto de montagem/Uso de disco# mount | column -t # Exibe o sistema de arquivos m

    ontados no seu sistema# df # Exibe o espao livre no disco e dispositivos montados# cat /proc/partitions # Exibe todas parties registradas (Linux)

    Uso de Disco# du -sh * # Lista o tamanho dos diretrios

    # du -csh # Tamanho total do diretrio corrente# du -ks * | sort -n -r # Ordena tudo por tamanho em kilobytes# ls -lSr # Exibe arquivos, maiores por ltimo

    Quem tem arquivos abertos Este muito til para localizar quemesta bloqueando a partio e tem que ser desmontado e recebe um erro tpic

    o:# umount /home/umount: unmount of /home # Impossvel desmontar porque um arquivo establoqueando o homeFalhou: Dispositivo Ocupado

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    10/60

    FreeBSD e maioria dos Unixes# fstat -f /home # Para montar o ponto

    # fstat -p PID # Para uma aplicao com PID# fstat -u user # Para um nome de usurio

    Localiza arquivos de log aberto (ou outros arquivos abertos), pela palavra Xorg:

    # ps ax | grep Xorg | awk '{print $1}'1252# fstat -p 1252USER CMD PID FD MOUNT INUM MODE SZ|DV R/Wroot Xorg 1252 root / 2 drwxr-xr-x 512 rroot Xorg 1252 text /usr 216016 -rws--x--x 1679848 rroot Xorg 1252 0 /var 212042 -rw-r--r-- 56987 w

    O arquivo com inum 212042 o nico arquivo em /var: # find -x /var -inum 212042/var/log/Xorg.0.log

    Linux Localiza arquivos abertos em um ponto de montagem: fuser oulsof:

    # fuser -m /home # Lista os processos acessandoo /home

    # lsof /homeCOMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEtcsh 29029 eedcoba cwd DIR 0,18 12288 1048587 /home/eedcoba (guam:/home)lsof 29140 eedcoba cwd DIR 0,18 12288 1048587 /home/eedcoba (guam:/home)

    Sobre uma aplicao:ps ax | grep Xorg | awk '{print $1}'

    3324# lsof -p 3324COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEXorg 3324 root 0w REG 8,6 56296 12492 /var/log/Xorg.0.log

    Sobre um arquivo nico: # lsof /var/log/Xorg.0.logCOMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEXorg 3324 root 0w REG 8,6 56296 12492 /var/log/Xorg.0.log

    Montando e Remontando um Sistema de Arquivos Por exemplo, o cdrom.Se listado em /etc/fstab # mount /cdrom Ou localize o dispositivo em

    /dev oucom o dmesgFreeBSD# mount -v -t cd9660 /dev/cd0c /mnt # cdrom

    # mount_cd9660 /dev/wcd0c /cdrom # outro mtodo# mount -v -t msdos /dev/fd0c /mnt # disquete

    Entrada no /etc/fstab:# Device Mountpoint FStype Options DumpPass#

    /dev/acd0 /cdrom cd9660 ro,noauto 0 0

    Para permitir o usurio fazer: # sysctl vfs.usermount=1 # Ou inserira linha "vfs.usermount=1" em /etc/sysctl.conf

    Linux# mount -t auto /dev/cdrom /mnt/cdrom # Tpico comando para montar c

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    11/60

    drom# mount /dev/hdc -t iso9660 -r /cdrom # Tpico IDE# mount /dev/scd0 -t iso9660 -r /cdrom # Tpico SCSI cdrom# mount /dev/sdc0 -t ntfs-3g /windows # Tpico SCSI

    Entrada no /etc/fstab: /dev/cdrom /media/cdrom subfs noauto,fs=cdfss,ro,procuid,nosuid,nodev,exec 0 0

    Montar uma Partio FreeBSD com Linux Localize o nmero da partio com fdiesta geralmente a partio root, mas poderia ser outro slice BSD tambm.

    e o FreeBSDtem muitas slices, eles no so o que esto listados na tabela fdisk, porm

    visvel em/dev/sda* ou /dev/hda*. # fdisk /dev/sda # Local

    iza a partio FreeBSD/dev/sda3 * 5357 7905 20474842+ a5 FreeBSD# mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt/dev/sda10 = /tmp; /dev/sda11 /usr # Outros slices

    Remontar Remontar um dispositivo sem desmontar. Necessrio parafsck por exemplo# mount -o remount,ro / # Linux

    # mount -o ro / # FreeBSD

    Copie os dados brutos a partir do cdrom em uma imagem iso: # dd if=/

    dev/cd0c of=file.isoAdicionar swap em tempo real Suponha que voc necessite de maisswap (agora mesmo), um arquivo de 2GB em /swap2gb (Linux comente). #

    dd if=/dev/zero of=/swap2gb bs=1024k count=2000# mkswap /swap2gb # Criar a rea de Swap# swapon /swap2gb # Ative a swap. Agora em uso!# swapoff /swap2gb # Quando terminar, desative a swap# rm /swap2gb

    Montar um Compartilhamento SMB Suponha que ns queremos acessar ocompartilhamento SMB em um computador smbserver, o endereo digitado e

    m um computadorWindows \\smbserver\myshare. Ns montamos em /mnt/smbshare. Alerta> ci

    fs precisa de umIP ou nome DNS, no um nome Windows. Linux# smbclient -U user -I 192.168.16.229 -L //smbshare/ # Lista os c

    ompartilhamentos# mount -t smbfs -o username=winuser //smbserver/myshare /mnt/smbshare# mount -t cifs -o username=winuser,password=winpwd //192.168.16.229/myshare /mnt/share

    Adicionando com o pacote mount.cifs possvel armazenar as credenciaisem um arquivo,

    por exemplo/home/user/.smb: username=winuserpassword=winpwdE

    montar os seguintes: # mount -t cifs -o credentials=/home/user/.smb//192.168.16.229/myshare /mnt/smbshareFreeBSD Use -I para pegar o IP (ou nome DNS); smbserver o nome Windo

    ws. # smbutil view -I 192.168.16.229 //winuser@smbserver # List os compartilhamentos# mount_smbfs -I 192.168.16.229 //winuser@smbserver/myshare /mnt/smbshare

    Montar uma imagemVoltando ao Linux# mount -t iso9660 -o loop file.iso /mnt # Monta uma

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    12/60

    imagem de CD# mount -t ext3 -o loop file.img /mnt # Monta uma imagem com sistema de arquivos ext3

    FreeBSD Com dispositivo de memria (faa # kldload md.ko se necessrio):# mdconfig -a -t vnode -f file.iso -u 0

    # mount -t cd9660 /dev/md0 /mnt# umount /mnt; mdconfig -d -u 0 # Limpeza do dispositivomd

    Ou com n virtual: # vnconfig /dev/vn0c file.iso; mount -t cd9660 /dev/vn0c /mnt# umount /mnt; vnconfig -u /dev/vn0c # Limpeza do dispositivovn

    Solaris e FreeBSD Voltando ao incio com a interface do arquivo ou lofi: # lofiadm -a file.iso# mount -F hsfs -o ro /dev/lofi/1 /mnt# umount /mnt; lofiadm -d /dev/lofi/1 # Limpeza do dispositivolofi

    Criar e Queimar uma imagem ISO Isto ir copiar setor por setor deum cd ou DVD. Com conv=notrunc, a imagem ser menor se ouver contedo nocd. Veja abaixo o dd examples.

    # dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc Use mkisofs para criaruma imagem CD/DVD de arquivos em um diretrio. Para evitar a restries de

    nomes dearquivos: -r permite a extenso Rock Ridge comuns ao sistema UNIX, -J

    permite extensoJoliet usada por sistemas Microsoft. -L permite arquivos ISO9660 com

    eando com umperodo. # mkisofs -J -L -r -V TITLE -o imagefile.iso /path/to/dir EmFreeBSD, mkisofs encontrado no ports em sysutils/cdrtools. Queimar u

    ma imagem ISOde CD/DVD

    FreeBSD FreeBSD no ativa DMA em dispositivos ATAPI por padro. DMA est

    habilitado com o comando sysctl e os argumentos abaixo, ou com /boot/loader.conf com asseguintes entradas:: hw.ata.ata_dma="1"

    hw.ata.atapi_dma="1"Use

    burncd com um dispositivo ATAPI(burncd parte da base dosistema) e cdrecord ( em sysutils/cdrtools) com um disco SCSI. # bur

    ncd -f /dev/acd0 data imagefile.iso fixate # Para discos ATAPI# cdrecord -scanbus # Para localizar o dispositivo (like 1,0,0)# cdrecord dev=1,0,0 imagefile.iso

    Linux Tambm usa cdrecord com Linux como descrito acima. Almdisso possvel usar a interface ATAPI nativa que se encontra com:

    # cdrecord dev=ATAPI -scanbus E queime o CD/DVD como acima. Ferramentasdvd+rw O dvd+rw-tools

    pacote (FreeBSD: ports/sysutils/dvd+rw-tools) pode fazer tudo e inclui

    growisofs para queimar CDs ou DVDs. Os exemplos se referem aosdispositivos de DVD /dev/dvd que poderia ser um link simblico para

    /dev/scd0 (tpico scsi em Linux) ou /dev/cd0 (tpicoFreeBSD) ou /dev/rcd0c (tpico NetBSD/OpenBSD de carter SCSI) ou

    /dev/rdsk/c0t1d0s2 (Exemplo de um dispositivo Solaris SCSI/ATAPI

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    13/60

    CD-ROM). Existe uma boa documentao com exemplos em FreeBSD handbook chapter

    18.7. # -dvd-compat finaliza o disco# growisofs -dvd-compat -Z /dev/dvd=imagefile.iso # Queima uma imagem iso existente# growisofs -dvd-compat -Z /dev/dvd -J -R /p/to/data # Queima diretamente

    Converter um arquivo do Nero .nrg para .iso O nero simplesmente adiciona um

    cabealho de 300Kb para uma imagem iso normal. Isto pode ser mudado com o dd. # dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300

    Converter uma imagem /bin/cue para .iso O pequeno bchunk program pode fazer isso. E no ports

    do FreeBSD em sysutils/bchunk. # bchunk imagefile.bin imagefile.cueimagefile.iso

    Criar um arquivo baseado em uma imagem Por exemplo, uma partiode 1GB usando o arquivo /usr/vdisk.img. Aqui usamos o vnode 0, mas t

    ambm poderia ser o1. FreeBSD# dd if=/dev/random of=/usr/vdisk.img bs=1K count=1M

    # mdconfig -a -t vnode -f /usr/vdisk.img -u 0 # Cria o dispositivo /dev/md1# bsdlabel -w /dev/md0

    # newfs /dev/md0c# mount /dev/md0c /mnt# umount /mnt; mdconfig -d -u 0; rm /usr/vdisk.img # Cleanup the md device

    O arquivo de imagem base pode ser automaticamente montado durante oboot com uma entrada

    em /etc/rc.conf and /etc/fstab. Teste sua instalao com # /etc/rc.d/mdconfig

    start (primeiro delete o dispositivo md0 com # mdconfig -d -u0).

    Note, porm, que essa configurao automtica s funcionar se o arquivode imagem no na partio root. A razo que o script /etc/rc.d/mdconfig

    utada

    muito cedo durante a inicializao e a partio raiz ainda somente leiturImagenslocalizadas fora da partio raiz ser montado mais tarde com o script/etc/rc.d/mdconfig2.

    /boot/loader.conf: md_load="YES" /etc/rc.conf:# mdconfig_md0="-t vnode -f /usr/vdisk.img" # /usr is not o

    n the root partition/etc/fstab: (Os 0 0 no final so importantes, diz ao fsck para ignorar

    este dispositivo,como ainda no existe)/dev/md0 /usr/vdisk ufs rw 0

    0Tambm possvel aumentar o tamanho da imagem depois, dizer, por exemplo,

    300 MB de maior dimenso. # umount /mnt; mdconfig -d -u 0# dd if=/dev/zero bs=1m count=300 >> /usr/vdisk.img# mdconfig -a -t vnode -f /usr/vdisk.img -u 0# growfs /dev/md0# mount /dev/md0c /mnt # A maior partio de arquivosagora 300MB

    Linux# dd if=/dev/zero of=/usr/vdisk.img bs=1024k count=1024

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    14/60

    # mkfs.ext3 /usr/vdisk.img# mount -o loop /usr/vdisk.img /mnt# umount /mnt; rm /usr/vdisk.img # Limpeza

    Linux with losetup/dev/zero muito mais rpido urandom, mas menos segura paracriptografia # dd if=/dev/urandom of=/usr/vdisk.img bs=1024k count=1

    024# losetup /dev/loop0 /usr/vdisk.img # Cria e associa /dev/loop0# mkfs.ext3 /dev/loop0# mount /dev/loop0 /mnt# losetup -a # Verifica os loops utilizados# umount /mnt# losetup -d /dev/loop0 # Separa# rm /usr/vdisk.img

    Criar um Sistema de Arquivos de Memria A memria do sistemade arquivos baseado muito rpido para a aplicao de IO pesado. Como cria

    umapartio de 64 MB montado em / memdisk:FreeBSD# mount_mfs -o rw -s 64M md /memdisk

    # umount /memdisk; mdconfig -d -u 0 # Limpeza do dispositivo m

    dmd /memdisk mfs rw,-s64M 0 0 # entrada /etc/fstab

    Linux# mount -t tmpfs -osize=64m tmpfs /memdisk

    Desempenho de Disco Ler e escrever um arquivo de 1GB na partioad4s3c (/home)# time dd if=/dev/ad4s3c of=/dev/null bs=1024k count=1000

    # time dd if=/dev/zero bs=1024k count=1000 of=/home/1Gb.file# hdparm -tT /dev/hda # Somente Linux

    NetworkRoteamento | Adicionar IP | Alterar

    MAC | Portas | Firewall | IPForward | NAT | DNS | DHCP | Trfego | QoS | NIS | Netcat

    Debugging (Veja mais Trafficanalysis)

    Linux# ethtool eth0 # Mostra o estado da ethernet (substitui

    mii-diag)# ethtool -s eth0 speed 100 duplex full # Fora 100Mbit Full duplex# ethtool -s eth0 autoneg off # Desabilita auto negociao# ethtool -p eth1 # Pisca o led da ethernet - muito til quando suportad

    o# ip link show # Mostra todas as interfaces no Linux (semelhante aoifconfig)# ip link set eth0 up # Levanta o dispositivo (ou desce). O mesmo que "ifconfig eth0 up"# ip addr show # Mostra todos os endereos IP no linux (semelhante aoifconfig)# ip neigh show # Semelhante ao arp -a

    Outros OS's

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    15/60

    # ifconfig fxp0 # Verifica o campo "media" no FreeBSD# arp -a # Verifica o Roteador (ou host) entrada ARP (todos OS)# ping cb.vu # A primeira coisa a tentar...# traceroute cb.vu # Imprime o caminho de rota para o destino# ifconfig fxp0 media 100baseTX mediaopt full-duplex # 100Mbit full duplex (FreeBSD)# netstat -s # Estatsticas do Sistema para protocolo de rede

    Comandos adicionais que nem sempre so instalados por padro, mas fcil deencontrar: # arping 192.168.16.254 # Ping na camada ethernet# tcptraceroute -f 5 cb.vu # Utiliza o TCP ao invs de icmp para rastrear firewalls

    RoteamentoImprimindo Tabela de Roteamento# route -n # Linux ou use "ip route"

    # netstat -rn # Linux, BSD and UNIX# route print # Windows

    Adiciona e Deleta RotasFreeBSD# route add 212.117.0.0/16 192.168.1.1

    # route delete 212.117.0.0/16

    # route add default 192.168.1.1Adiciona rota permanente em /etc/rc.conf static_routes="myroute"

    route_myroute="-net 212.117.0.0/16 192.168.1.1"

    Linux# route add -net 192.168.20.0 netmask 255.255.255.0 gw 192.168.16.25

    4# ip route add 192.168.20.0/24 via 192.168.16.254 # mesmo que acima com iproute# route add -net 192.168.20.0 netmask 255.255.255.0 dev eth0# route add default gw 192.168.51.254# ip route add default via 192.168.51.254 dev eth0 # mesmo que acima com ip

    route# route delete -net 192.168.20.0 netmask 255.255.255.0

    Solaris# route add -net 192.168.20.0 -netmask 255.255.255.0 192.168.16.254

    # route add default 192.168.51.254 1 # 1 = saltos para o prximo gateway# route change default 192.168.50.254 1

    Entradas permanentes so estabelecidas em /etc/defaultrouter.Windows

    # Route add 192.168.50.0 mask 255.255.255.0 192.168.51.253# Route add 0.0.0.0 mask 0.0.0.0 192.168.51.254

    Use add -p para criar uma rota persistente. Configure Endereos IPadicionaisLinux# ifconfig eth0 192.168.50.254 netmask 255.255.255.0 # Primeir

    o IP# ifconfig eth0:0 192.168.51.254 netmask 255.255.255.0 # Segundo IP# ip addr add 192.168.50.254/24 dev eth0 # Equivalente ao comando ip# ip addr add 192.168.51.254/24 dev eth0 label eth0:1

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    16/60

    FreeBSD# ifconfig fxp0 inet 192.168.50.254/24 # Primeir

    o IP# ifconfig fxp0 alias 192.168.51.254 netmask 255.255.255.0 # Segundo IP# ifconfig fxp0 -alias 192.168.51.254 # Remove o segundo apelido IPPermanent

    entries in /etc/rc.conf ifconfig_fxp0="inet 192.168.50.254 netmask255.255.255.0"ifconfig_fxp0_alias0="192.168.51.254 netmask 255.255.255.0"

    Solaris Check the settings with ifconfig -a# ifconfig hme0 plumb # Enable

    the network card# ifconfig hme0 192.168.50.254 netmask 255.255.255.0 up # First IP# ifconfig hme0:1 192.168.51.254 netmask 255.255.255.0 up # Second IP

    Alterar Endereo MAC Normalmente voc tem que derrubar arelao antes da mudana. No me diga porque voc quer mudar o endereo MAC# ifconfig eth0 down

    # ifconfig eth0 hw ether 00:01:02:03:04:05 # Linux# ifconfig fxp0 link 00:01:02:03:04:05 # FreeBSD# ifconfig hme0 ether 00:01:02:03:04:05 # Solaris# sudo ifconfig en0 ether 00:01:02:03:04:05 # Mac OS X Tiger

    # sudo ifconfig en0 lladdr 00:01:02:03:04:05 # Mac OS X LeopardMuitas ferramentas existentes para Windows. Por Exemplo etherchange.

    Ou procure por "Mac Makeup","smac". Portas em Uso Listando portas abertas: # netstat -an | grep

    LISTEN# lsof -i # Linux Lista todas as conexes de Internet# socklist # Linux Mostra lista de sockets abertos# sockstat -4 # FreeBSD Lista Aplicaes# netstat -anp --udp --tcp | grep LISTEN # Linux# netstat -tup # Lista conexes ativas de/para sistemas (Linux)# netstat -tupl # Lista portas em escuta do sistema (Linux)# netstat -ano # Windows

    Firewall Verificando se o firewall esta executando.Linux# iptables -L -n -v # Status

    Open the iptables firewall# iptables -P INPUT ACCEPT # Abre tudo# iptables -P FORWARD ACCEPT# iptables -P OUTPUT ACCEPT# iptables -Z # Zera os contadores de pacotes para todasas regras# iptables -F # Limpa todas as Regras# iptables -X # Deleta todas as Regras

    FreeBSD

    # ipfw show # Status# ipfw list 65535 # if answer is "65535 deny ip from any to any" the fw is disabled# sysctl net.inet.ip.fw.enable=0 # Disable# sysctl net.inet.ip.fw.enable=1 # Enable

    Encaminhamento IP para RoteamentoLinux Verifica e habilita o encaminhamento do IP com:# cat /proc/sys/net/ipv4/ip_forward # Verifica o IP encaminhado 0=o

    ff, 1=on

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    17/60

    # echo 1 > /proc/sys/net/ipv4/ip_forward

    ou edita /etc/sysctl.conf com: net.ipv4.ip_forward = 1FreeBSD Verifica e habilita com: # sysctl net.inet.ip.forwarding

    # Verifica o IP encaminhado 0=off, 1=on# sysctl net.inet.ip.forwarding=1# sysctl net.inet.ip.fastforwarding=1 # Para dedicao do roteador ou firewallPermanencia com entrada em /etc/rc.conf:gateway_enable="YES" # Defina como YES se essa mquina for um gateway.

    Solaris# ndd -set /dev/ip ip_forwarding 1 # Defina o IP para o encaminham

    ento 0=off, 1=on

    NAT Network Address TranslationLinux# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Para ati

    var o NAT# iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 20022 -j DNAT \--to 192.168.16.44:22 # Port forward 20022 to internal IP port ssh# iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 993:995 -j DNAT \--to 192.168.16.254:993-995 # Port forward of range 993-995# ip route flush cache

    # iptables -L -t nat # Check NAT statusDeleta a porta para o encaminhamento com -D em vez de -A.FreeBSD# natd -s -m -u -dynamic -f /etc/natd.conf -n fxp0

    Ou edita /etc/rc.conf com:firewall_enable="YES" # Defina YES para ativar a funo do firewallfirewall_type="open" # Tipo de firewall (veja /etc/rc.firewall)natd_enable="YES" # Habilite natd (if firewall_enable == YES).natd_interface="tun0" # Interface pblica ou endereo de IP para uso.natd_flags="-s -m -u -dynamic -f /etc/natd.conf"

    Porta em encaminhada com: # cat /etc/natd.confsame_ports yes

    use_sockets yesunregistered_only# redirect_port tcp insideIP:2300-2399 3300-3399 # Faixa de portaredirect_port udp 192.168.51.103:7777 7777

    DNS No Unix o DNS so vlidos para todas as interfaces e armazenadasno /etc/resolv.conf. O domnio para qual a mquina pertence tambm armaze

    ado noarquivo. A configurao mnima :nameserver 78.31.70.238

    search sleepyowl.net intern.labdomain sleepyowl.net

    Verifica o nome do domnio no sistema com: # hostname -d# Igual ao dnsdomainnameWindows No Windows o DNS so configurados pela interface. Para que exi

    ba aconfigurao DNS e para limpar o cache do DNS usa-se: # ipconfig /?

    # Exibe ajuda# ipconfig /all # Veja toda a informao incluindo o DNS

    Limpa o DNSLimpe o cache DNS do SO, alguns aplicativos usaseu prprio cache (ex. Firefox).

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    18/60

    # /etc/init.d/nscd restart # Reinicia nscd, se utilizar - Linux/BSD/Solaris# lookupd -flushcache # OS X Tiger# dscacheutil -flushcache # OS X Leopard and newer# ipconfig /flushdns # Windows

    Encaminhe as Consultas Faa um teste de configurao com seu amigo. Porexemplo o servidor DNS pblico 213.133.105.2 ns.second-ns.de pode ser

    usadopara teste. Veja como o servidor cliente responde isso (uma simples

    resposta).# dig sleepyowl.net

    sleepyowl.net. 600 IN A 78.31.70.238;; SERVER: 192.168.51.254#53(192.168.51.254)

    O roteador 192.168.51.254 respondeu e responsvel pela entrada do A. Pouca entrada

    pode ser requerida e o servidor de DNS pode selecionar com @:# dig MX google.com

    # dig @127.0.0.1 NS sun.com # Para teste o local do servidor# dig @204.97.212.10 NS MX heise.de # Consulta externa do servidor# dig AXFR @ns1.xname.org cb.vu # Obtenha a zona cheia(zona de transferncia)

    O programa da mquina tambm poderoso.

    # host -t MX cb.vu # Obtenha o mail MX de entrada# host -t NS -T sun.com # Obtenha o NS da conexo TCP.# host -a sleepyowl.net # Obtenha qualquer coisa

    Consultas Inversas Encontra o nome coletivo para o endereo de IP

    (in-addr.arpa). Isso pode ser feito dig, host enslookup: # dig -x 78.31.70.238

    # host 78.31.70.238# nslookup 78.31.70.238

    /etc/hosts Mquinas individuais podem ser configuradas no arquivo /etc/hosts ao

    contrrio de executar localmente para resolver as consultas do nome damquina. Oformato simples, por exempl78.31.70.238 sleepyowl.net sleepyowl

    Aprioridade entre as mquinas e as consultas dns, a ordem das consultas

    de resoluo denomes, podem ser configuradas no /etc/nsswitch.conf e /etc/host.conf

    . Oarquivo existente do Windows, normalmente no: C:\WINDOWS\SYSTEM32\DR

    IVERS\ETCDHCPLinux Algumas distribuies (SuSE) usa dhcpcd como cliente. O padro eth0# dhcpcd -n eth0 # Provocar uma renovao( no sempre funciona)

    # dhcpcd -k eth0 # lanamento e encerramento

    O arrendamento com a total informao so armazenadas no:/var/lib/dhcpcd/dhcpcd-eth0.info

    FreeBSD FreeBSD (e Debian) usa dhclient. Para configurar a interface(por

    exemplo bge0) executa: # dhclient bge0 O arrendamento com a total informao

    so armazenados no: /var/db/dhclient.leases.bge0 Usa/etc/dhclient.conf para preceder as opes ou forar as diferentes opes:

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    19/60

    at /etc/dhclient.confinterface "rl0" {

    prepend domain-name-servers 127.0.0.1;default domain-name "sleepyowl.net";supersede domain-name "sleepyowl.net";

    }

    Windows O dhcp pode ser renovado com ipconfig:# ipconfig /renew # renova todos os adaptadores

    # ipconfig /renew LAN # renew the adapter named "LAN"# ipconfig /release WLAN # release the adapter named "WLAN"

    Sim isto uma boa idia para renomear seu adaptador com simples nomes!Anlise de Trfego

    Bmon um pequeno console da largura de bandas epode exibir o fluxo de diferentes interfaces. Sniff com tcpdump# tcpdump -nl -i bge0 not port ssh and src \(192.168.16.121 or 192.1

    68.16.54\)# tcpdump -n -i eth1 net 192.168.16.121 # select to/from a single IP# tcpdump -n -i eth1 net 192.168.16.0/24 # select traffic to/from a network# tcpdump -l > dump && tail -f dump # Buffered output# tcpdump -i rl0 -w traffic.rl0 # Write traffic headers in binary file

    # tcpdump -i rl0 -s 0 -w traffic.rl0 # Write traffic + payload in binary file# tcpdump -r traffic.rl0 # Read from file (also for ethereal# tcpdump port 80 # The two classic commands# tcpdump host google.com# tcpdump -i eth0 -X port \(110 or 143\) # Check if pop or imap is secure# tcpdump -n -i eth0 icmp # Only catch pings# tcpdump -i eth0 -s 0 -A port 80 | grep GET # -s 0 for full packet -A forASCII

    Adiciona importante opes:

    -A Imprime cada pacotes na limpeza do texto (semcabealho)-X Imprime pacotes em hex e ASCII-l Faa a linha de sada do buffer-D Imprime todas as interfaces disponveis

    No Windows usa o windump www.winpcap.org. Usa windump -D para listar as interfaces. Scan com

    nmapNmap a porta scanner com SO, isto normalmente soinstalados nas distribuies e tambm esto disponveis para windows. Se vo

    scanseus servidores, hackers fazem isso para voc...# nmap cb.vu # scans todas portas reservadas TCP na mqu

    ina# nmap -sP 192.168.16.0/24 # Procura IP de fora e so usados pela mquina na mquina 0/24# nmap -sS -sV -O cb.vu # Faz a descrio SYN scan com a verso e SO detectadasPORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 3.8.1p1 FreeBSD-20060930 (protocol2.0)25/tcp open smtp Sendmail smtpd 8.13.6/8.13.680/tcp open http Apache httpd 2.0.59 ((FreeBSD) DAV/2 PHP/4.[...]

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    20/60

    Running: FreeBSD 5.XUptime 33.120 days (since Fri Aug 31 11:41:04 2007)

    Outro padro mais usados so as ferramentas hping (www.hping.org) um pacote

    IP assembler/analyzer e fping (fping.sourceforge.net). fping pode checar

    multiplos rund-robin fashion. Controle de trfego (QoS)Controle de trfego gerencia a fila, polcia, programao e outros parmetr

    de trfegopara uma rede. Os exemplos seguintes so simples usos prticos do Linux

    e FreeBSDcapacidades para uma melhor utilizao da largura de banda disponvel. lim

    iteuploadLimite de upload Modens DSL ou de cabo tm uma longa fila pa

    ramelhorar o rendimento upload. No entanto preenchendo a fila com um d

    ispositivo rpido(ethernet, por exemplo) ir diminuir drasticamente a interatividade. P

    or conseguinte, til para limitar a taxa de upload dispositivo para coincidir com a ca

    pacidade fsica domodem, isso deve melhorar muito a interatividade. Situado a cerca de

    90% da mxima modem

    (cabo) de velocidade. Linux Para a 512 Kbit upload modem. # tc qdiscadd dev eth0 root tbf rate 480kbit latency 50ms burst 1540# tc -s qdisc ls dev eth0 # Status# tc qdisc del dev eth0 root # Delete the queue# tc qdisc change dev eth0 root tbf rate 220kbit latency 50ms burst 1540

    FreeBSD FreeBSD usa o dummynet trfego afiado que so configuradosipfw. Tubos so usados para aumentar seus limites da largura da banda

    na nicado[K|M]{bit/s|Byte/s}, 0 meios ilimitados. Usando igual ao nmero do t

    ubo reconfiguraristo. Por exemplo o limite do upload da largura da banda para 500 Kb

    it.

    # kldload dummynet # carrega os mdulos se necessrio# ipfw pipe 1 config bw 500Kbit/s # cria um tubo com limitado pela largura da banda# ipfw add pipe 1 ip from me to any # diverte todos os upload tambmpelo tubo

    Qualidade de ServioLinux Prioridade nas filas com tc para otimizar VoIP. Veja o totalexemplo no voip-info.org ou www.howtoforge.com. Suposto VoIP usados

    udp na porta 10000:11024 e dispositivoseth0 (tambm poderia ser ppp0 ou assim). Seguindo os comandos define o

    QoS para as filasdas rvores e fora o trfego VoIP para as filas The following commands co

    m QoS0x1e (todos os bits). O padro do fluxo em 3 filas e QoSMnimo-atraso fluxo em 2 filas.

    # tc qdisc add dev eth0 root handle 1: prio priomap 2 2 2 2 2 2 2 21 1 1 1 1 1 1 0# tc qdisc add dev eth0 parent 1:1 handle 10: sfq# tc qdisc add dev eth0 parent 1:2 handle 20: sfq# tc qdisc add dev eth0 parent 1:3 handle 30: sfq# tc filter add dev eth0 protocol ip parent 1: prio 1 u32 \match ip dport 10000 0x3C00 flowid 1:1 # usa a faixa de portas para o

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    21/60

    s servidoresmatch ip dst 123.23.0.1 flowid 1:1 # e/ou usa IP do servidor

    Status and remove with # tc -s qdisc ls dev eth0# status da fila

    # tc qdisc del dev eth0 root # deleta todos QoS

    Calcula a faixa das portas e a mscara O filtro tc define a faixa dasportas e

    a mscara que voc calculou. Encontra o 2^N finalizando a faixa da porta, deduzi

    a faixa e converte para HEX. Essa a sua mscara. Exemplo para 10000 ->11024, a

    faixa 1024. # 2^13 (8192) < 10000 < 2^14 (16384) # finalizando 2^14 = 16384# echo "obase=16;(2^14)-1024" | bc # mask is 0x3C00

    FreeBSD O max largura da banda 500Kbit/s e ns definimos 3 filas com aprioridade 100:10:1 para VoIP:ssh:all the rest.# ipfw pipe 1 config bw 500Kbit/s

    # ipfw queue 1 config pipe 1 weight 100# ipfw queue 2 config pipe 1 weight 10# ipfw queue 3 config pipe 1 weight 1# ipfw add 10 queue 1 proto udp dst-port 10000-11024

    # ipfw add 11 queue 1 proto udp dst-ip 123.23.0.1 # e/ou usa o IP do servidor# ipfw add 20 queue 2 dsp-port ssh# ipfw add 30 queue 3 from me to any # reinicia todos

    Status e remove com # ipfw list# status das regras

    # ipfw pipe list # status do tubo# ipfw flush # deleta todas as regras por padro

    NIS Debugging Alguns comandos que deveria trabalhar ser bemconfiguradas NIS cliente:# ypwhich # Obtem a conexo NIS do servidor de nomes

    # domainname # Configura o nome do domnio NIS# ypcat group # Mostra o grupo do servidor NIS# cd /var/yp && make # Reconstri o yp banco de dados# rpcinfo -p servername # Relatrio de servio RPC do servidor

    Est ypbind executando? # ps auxww | grep ypbind/usr/sbin/ypbind -s -m -S servername1,servername2 # FreeBSD/usr/sbin/ypbind # Linux# yppoll passwd.bynameMapeia o passwd.byname tm outro nmero 1190635041. Seg Sep 24 13:57:21 2007O servio master servername.domain.net.

    Linux

    # cat /etc/yp.confypserver nomeservidordomain domain.net broadcast

    NetcatNetcat (nc) o melhor conhecido como "network SwissArmy Knife", isto pode ser manipulado, cria ou l/escreve TCP/IP coneces

    . Aqui sousados alguns exemplos, l alguns mais no net, por exemplo g-loaded.eu

    [...] e here.

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    22/60

    Voc precisa usar comandos netcat em vez de nc. Tambm veja umcomando similar socat.

    Transferncia de arquivo Copia a largura do diretrio sobre uma conexo. A

    transferncia muito rpido (no em cima do protocolo) e voc no precisa bagunar

    com NFS ou SMB ou FTP ou ento, faa um simples arquivo avaliado no servidor, e coloque

    isso no cliente. Aqui 192.168.1.1 o endereo do servidor. server# tar-cf - -C VIDEO_TS . | nc -l -p 4444 # Diretrio tar na porta do servidor 4444client# nc 192.168.1.1 4444 | tar xpf - -C VIDEO_TS # Puxa o arquivo na porta 4444server# cat largefile | nc -l 5678 # O nico arquivoclient# nc 192.168.1.1 5678 > largefile # Puxa o nico arquivoserver# dd if=/dev/da0 | nc -l 4444 # Imagem da partioclient# nc 192.168.1.1 4444 | dd of=/dev/da0 # Puxa a partio para o cloneclient# nc 192.168.1.1 4444 | dd of=da0.img # Puxa a partio para o arquivo

    Outros hacks Especialmente aqui, voc conhece mais do que voc faz.Shellremota Opo -e somente para a verso Windows? Ou usa nc 1.10. # nc -l

    p 4444 -e /bin/bash # Fornece um shell remoto (servidor clandestino)# nc -lp 4444 -e cmd.exe # shell remoto para Windows

    Servidor de emergncia web Servidor nico arquivo na porta 80 no loop. #while true; do nc -l -p 80 < unixtoolbox.xhtml; done

    Bate-papo Alice e Bob pode conversar com um socket TCP simples. O texto

    transferido com a chave de entrada.alice# nc -lp 4444

    bob # nc 192.168.1.1 4444

    SSH SCPChave Pblica | Fingerprint | SCP |

    TunelamentoAutenticao por chave pblica Conecte na mquina sem senhautilizando a autenticao por chave pblica. A idia acrescentar sua chav

    licapara a authorized_keys2 arquivo na mquina remota. Para isso veja o ex

    emplo: conectemquina-cliente para mquina-servidor, a chave gerada no

    cliente. Com cygwin voc poderia ter criada em sua casa um diretrio e odiretrio do

    .ssh utilizando # mkdir -p /home/USER/.sshUsa ssh-keygen para gerar o par de chaves. ~/.ssh/id_dsa is the

    private key, ~/.ssh/id_dsa.pub chave pblica.Copia somente a chave pblica para acrescentar o arquivo no servid

    or~/.ssh/authorized_keys2 em sua casa no servidor.

    # ssh-keygen -t dsa -N ''

    # cat ~/.ssh/id_dsa.pub | ssh you@host-server "cat - >> ~/.ssh/authorized_keys2"

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    23/60

    Utilizando o cliente Windows ssh.com A verso no comercial do cliente ssh.com

    pode ser feito o download no site ftp: ftp.ssh.com/pub/ssh/. Chavesgeradas pelo

    cliente ssh.com precisa ser convertido para o servidor OpenSSH. Issopode ser feito com

    o comando ssh-keygenCria o par de chaves com o cliente ssh.com: Configuraes - Autentic

    ao doUsurio - Gerar Novo...

    Eu uso o tipo de chave DSA; comprimento da chave 2048.Copia a gera chave pblica pelo ssh.com cliente para o servidor ta

    mbm o ~/.sshdiretrio.

    As chaves esto no C:\Documents and Settings\%USERNAME%\Application

    Data\SSH\UserKeys.Usa o comando ssh-keygen no servidor para converter a chave:

    # cd ~/.ssh# ssh-keygen -i -f keyfilename.pub >> authorized_keys2

    Aviso: Ns usamos a chave DSA, RSA tambm possvel. A chave no protegi

    r senha. Usando o putty para WindowsPutty simples e livre o cliente ssh para Windows.

    Cria o par de chaves com o programa puTTYgen.Salve a chave pblica (por exemplo em C:\Documents and

    Settings\%USERNAME%\.ssh).Copia a chave pblica para o servidor no ~/.ssh folder:

    # scp .ssh/puttykey.pub [email protected]:.ssh/Usa o comando ssh-keygen no servidor para converter a chave para

    OpenSSH:# cd ~/.ssh

    # ssh-keygen -i -f puttykey.pub >> authorized_keys2

    Ponto da chave privada localizada nas configuraes putty: Conexo - SSH -

    Auth

    Checa fingerprint No primeiro login, ssh perguntar se amquina for desconhecida com o fingerprint tem que ser armazenada no n

    a mquinadesconhecida. Para evitar um man-in-the-middle ataque o administrado

    r do servidor podeser enviado para seu servidor fingerprint que comparado no primeiro

    login. Usassh-keygen -l para obter o fingerprint (no servidor):

    # ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub # Para chave RSA2048 61:33:be:9b:ae:6c:36:31:fd:83:98:b7:99:2d:9f:cd /etc/ssh/ssh_host_rsa_key.pub# ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub # Para DSA (padro)2048 14:4a:aa:d9:73:25:46:6d:0a:48:35:c7:f4:16:d4:ee /etc/ssh/ssh_host_dsa_key.pub

    Agora o cliente se conectar a esse servidor, pode verificar que eleest se conectando

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    24/60

    ao servidor direito:# ssh lindaA autenticao da mquina 'linda (192.168.16.54)' no pode ser estabelecida.Chave DSA fingerprint 14:4a:aa:d9:73:25:46:6d:0a:48:35:c7:f4:16:d4:ee.Voc tem certeza que deseja continuar a conexo (sim/no)? sim

    Transferncia segura de arquivos Alguns comandos simples:

    # scp file.txt host-two:/tmp# scp joe@host-two:/www/*.html /www/tmp# scp -r joe@host-two:/www /www/tmp

    No Konqueror ou Midnight Commander isso possvel para o acesso do sistema remoto com o

    endereo fish://user@porta. Entretanto a implementao muitolenta.

    Alm disso possvel para montar o diretrio remoto comsshfs um sistema de arquivo baseada no SCP. Veja sshfs. Tunelame

    ntoTunelamento SSH permite o encaminhamento ou reverte para frente de u

    ma porta atravs daconexo SSH, garantindo assim o trfego e o acesso das portas que de out

    ra fora sobloqueadas. Isso s com TCP. A nomenclatura geral para o encaminhament

    o e o reverso (veja tambm ssh and NAT example):# ssh -L localport:desthost:destport user@gate # desthost como pode

    ser visto a partir do porto# ssh -R destport:desthost:localport user@gate # porta local encaminha para o seu destino

    # desthost: localport como pode ser visto a partir do cliente do incio do tnel# ssh -X user@gate # Para forar encaminhamento X

    Este conectar na porta e encaminhar a porta local para a mquina desthost: destport.

    Nota desthost a mquina de destino como pode ser visto pela porta, entose a

    conexo para a porta, ento o desthost o localhost. Mais do que uma pora para oencaminhamento possvel.Encaminha direto para a porta Vamos dizer que

    nsqueremos acessar o CVS (porta 2401) e http (porta 80) que esto execut

    ando na porta.Esse simplesmente exemplo, na mquina destino assim a mquina local, e

    usamor aporta 8080 localmente instanciada de 80 por isso no precisa ser o roo

    t. Primeiro asesso ssh aberta, ambos os services so acessveis nas portas locais. #

    sh -L 2401:localhost:2401 -L 8080:localhost:80 usuario@portaNetbios e desktop remoto encaminham para um segundo servidor Vamos d

    izer que um servidor smb Windows a porta est por trs e no est executando o ssh. Nsecisamos

    de acesso ao compartilhamento SMB e desktop remoto tambm para o servidor.

    # ssh -L 139:smbserver:139 -L 3388:smbserver:3389 usuario@porta Ocompartilhamento SMB pode agora ser acessado com \\127.0.0.1\, mas s

    omente se o local docompartilhamento desabilitado, porque o local do compartilhamento ou

    vido na porta

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    25/60

    139.Isto possvel para manter o local compartilhado habilitado, para

    isso ns precisamos criar um novo dispositivo virtual com um novo endereo IP para o

    tunelamento, o compartilhamento smb conectar atravs do endereo. Alm diso o local

    RDP est pronto para ser ouvido na porta 3389, ento ns escolhemos 3388. Para

    isso vamos usar um IP virtual 10.1.1.1.

    Com putty usa-se Origem porta=10.1.1.1:139. possvel a criao mltip

    dedispositivos de loop e o tnel. No Windows 2000, somente putty

    funcionou comigo.No Windows Vista tambm encaminhar a porta 445 na adio para a po

    ta 139.Tambm no Vista o pacote KB942624 impede a porta 445 para ser

    encaminhada, entoeu tive que desinstalar esse pacote no Vista.

    Com o cliente ssh.com, desabilite "Permite somente conexo local".Desde que

    ssh.com vincular todos os endereos, apenas uma parte nica podeser

    conectado.Agora cria a interface loopback com o IP 10.1.1.1:# Sistema->Painel de Controle->Adicionar Hardware # Sim, Hardwar

    e est prontopara ser conectado # Adiciona um novo hardware (em baixo).

    # Instala o hardware que manualmente selecionado # Adaptador deRede # Microsoft

    , Microsoft Adaptador Loopback.Configura o endereo IP do dispositivo falso para 10.1.1.1 mask 25

    5.255.255.0,sem gateway.

    avanado->WINS, Habilita LMHosts Lookup; Desabilita NetBIOS sobreTCP/IP.

    # Habilita Cliente para Microsoft redes. # Desabilita compartilhamento dearquivo e impressora para a rede Microsoft.

    Tive que reiniciar para esse trabalho. Agora conecta para o compartilhamento com

    \\10.1.1.1 e o desktop remoto para 10.1.1.1:3388. Debug Se no funcionar

    So as portas encaminhadas: netstat -an? Veja isto 0.0.0.0:139 ou10.1.1.1:139

    Faz telnet 10.1.1.1 139 conectado?Voc precisa checar o box "Portas local aceita conexes de outras

    mquinas". o "Compartilhamento de arquivo e impressora para redes Microsoft

    " desabilitou na interface loopback?

    conexo de dois clientes atrs do NAT Suponhamos dois clientesesto fazendo o gateway NAT e o cliente cliadmin tm conexo para cliente

    cliusuario(destino), ambos podem logar para a porta com ssh e so executados no

    Linux com sshd.Voc no precisar ter acesso root em nenhum lugar desde que as portas do

    porto esto

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    26/60

    acima de 1024. Ns usamos 2022 na porta. Tambm porque a porta usada localmente, a

    opo GatewayPorts no necessrio.No cliente cliusuario (de destino para a

    porta):# ssh -R 2022:localhost:22 usuario@porta # encaminha o cl

    iente 22 para a porta: 2022No cliente cliadmin (da mquina da porta):# ssh -L 3022:localhost:2022 admin@porta # encaminha o clien

    te 3022 para a porta:2022Agora o administrador pode ligar diretamente para o cliente cliusuar

    io com: # ssh -p 3022 admin@localhost # local:3022 -> porta:2022 -> cliente:22

    Conecta com VNC por trs do NAT Suponhamos um cliente Windows VNC escutando na

    porta 5900 tem que ter o acesso por trs do NAT. No cliente cliwin a porta:

    # ssh -R 15900:localhost:5900 user@gate On client cliadmin (from host to

    gate): # ssh -L 5900:localhost:15900 admin@gate Agora o administrador pode

    conectar diretamente ao cliente VNC com: # vncconnect -display :0 localhost

    Escave um tnel ssh multi-hop Suponhamos que voc no possa

    alcanar o servidor diretamente com ssh, mas somente atravs de vrias mqunas (porexemplo, por causa de questes de roteamento). s vezes, ainda necessrio

    para obterum cliente direto - conexo com o servidor, por exemplo, para copiar a

    rquivos com scp ouencaminhar outras portas como SMB ou VNC. Uma maneira de fazer isso

    a cadeia de tneisem conjunto para avanar com uma porta para o servidor ao longo do lpul

    o. Estetransportador porto s chega ao seu destino final na ltima conexo com o

    servidor.

    Suponha que queremos transmitir a porta SSH a partir de um cliente para um servidor maisde dois saltos. Uma vez que o tnel construdo, possvel se conectar ao

    rvidordiretamente do cliente (e tambm adiciona outra porta para o encaminha

    mento).Criandotnel no shell cliente -> maquina1 -> maquina2 -> servidor e escav

    artnel 5678 cliente># ssh -L5678:localhost:5678 mquina1 # 5678 um

    a porta arbitraria para o tnelmaquina_1># ssh -L5678:localhost:5678 mquina2 # sequncia 5678 da mquina1 para a mquina2maquina_2># ssh -L5678:localhost:22 servidor # No final do tnel na porta

    22 no servidor

    Utilizando tnel com outro shell cliente -> usando o tnel 5678 no servidor # ssh -p 5678 localhost # conecta diretamente do cliente para o servidor# scp -P 5678 myfile localhost:/tmp/ # ou copia o arquivo diretamenteutilizando o tnel# rsync -e 'ssh -p 5678' myfile localhost:/tmp/ # ou rsync o arquivo diretamentepara o servidor

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    27/60

    Autoconnect script e manter vivoEu uso as variaes do script a seguir para

    manter uma mquina alcanveis por um tnel SSH reverso. A conexo automaente

    reconstruda se fechado. Voc pode adicionar vrios -L or -Rtneis em uma linha. #!/bin/sh

    COMMAND="ssh -N -f -g -R 3022:localhost:22 [email protected]"pgrep -f -x "$COMMAND" > /dev/null 2>&1 || $COMMANDexit 0

    1 * * * * colin /home/colin/port_forward.sh # crontab entrada (aqui a cada hora)

    VPN com SSH A partir da verso 4.3, o OpenSSH pode usar o dispositivotun/tap para encriptar um tunnel. Isto muito semelhante a outras sol

    ues VPN baseadaem TLS como o OpenVPN. Uma vantagem com o SSH que no h a necessidade d

    e instalar econfigurar um software adcional. Alm disso o tunel utiliza a autentic

    ao SSH como achave compartilhada. A desvantagem que o encapsulamento feito atravs

    do TCP quepoderiam resultar em um desempenho ruim em um link lento. Alm disso,

    o tnel estconfiando em uma nica conexo TCP (frgil). Esta tcnica muito til paraconfigurao rpida de uma VPN baseada em IP. No h nenhuma limitao quanporta TCP, todas os protocolos de camadas 3/4 como o ICMP, TCP/UDP,

    etc so transmitidosatravs da VPN. Em qualquer caso, as seguintes opes so necessrias no ar

    vosshd_conf: PermitRootLogin yes

    PermitTunnel yes

    Conexo P2P nica Aqui estamos conectando dois hosts, e hclienthserver com um tnel peer to peer. A conexo started from hclient para ohserver feito como root. Os pontos de extremidade do tnel so 10.0.1.1

    (servidor) e10.0.1.2 (cliente) e criamos um dispositivo tun5 (isso tambm poderiaser um outro

    nmero). O procedimento muito simples:Conectar com SSH usando o tnel, opo-wConfigure os endereos IP do tnel. Uma vez no servidor e uma vez o

    cliente.

    Conectar ao servidor Conexo iniciada no cliente e os comandos so executados

    no servidor.Linux o Servidorcli># ssh -w5:5 root@hserver

    srv># ifconfig tun5 10.0.1.1 netmask 255.255.255.252 # Executada no shell do s

    ervidor

    FreeBSD o Servidorcli># ssh -w5:5 root@hserver

    srv># ifconfig tun5 10.0.1.1 10.0.1.2 # Executada no shell do servidor

    Configure o Cliente Comandos executados no cliente:cli># ifconfig tun5 10.0.1.2 netmask 255.255.255.252 # Cliente um

    Linux

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    28/60

    cli># ifconfig tun5 10.0.1.2 10.0.1.1 # Cliente um FreeBSD

    Os dois hosts esto conectados de forma transparente e podem se comunicar com qualquer

    protocolo de camada 3/4 usando os endereos IP do tnel.Conectar DuasRedes Alm da instalao p2p acima, mais til conectar duas redes pro

    ascom uma VPN SSH usando dois gateways. Supondo o exemplo, netA 192.16

    8.51.0/24 e netB192.168.16.0/24. O procedimento semelhante ao citado acima, ns precis

    amos somenteadicionar o roteamento. O NAT deve ser ativado na interface privada

    somente se osgateways no so padro da sua rede.

    192.168.51.0/24 (netA)|gatewayA gatewayB|192.168.16.0/24 (netB)

    Conectar com SSH usando o tnel, opo-wConfigure os endereos IP do tnel. Uma vez no servidor e uma vez o

    cliente.Adicione o roteamento para as duas redes.Se necessrio, ative o NAT na interface privada do gateway.

    A instalao started from gatewayA in netA. Conectar do GatewayA para

    o GatewayB A conexo iniciada a partir gatewayA e os comandos so executadosem gatewayBGatewayB o LinuxgatewayA># ssh -w5:5 root@gateB

    gatewayB># ifconfig tun5 10.0.1.1 netmask 255.255.255.252 # Executada no shell do GatewayBgatewayB># route add -net 192.168.51.0 netmask 255.255.255.0 dev tun5gatewayB># echo 1 > /proc/sys/net/ipv4/ip_forward # Somente necessrio se ogateway no for padrogatewayB># iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    GatewayB o FreeBSDgatewayA># ssh -w5:5 root@gateB # Cria o di

    spositivo tun5gatewayB># ifconfig tun5 10.0.1.1 10.0.1.2 # Executada no shell doGatewayBgatewayB># route add 192.168.51.0/24 10.0.1.2gatewayB># sysctl net.inet.ip.forwarding=1 # Somente necessrio se ogateway no for padrogatewayB># natd -s -m -u -dynamic -n fxp0 # veja NATgatewayA># sysctl net.inet.ip.fw.enable=1

    Configure GatewayA Comando executado no GatewayAGatewayA o LinuxgatewayA># ifconfig tun5 10.0.1.2 netmask 255.255.255.252

    gatewayA># route add -net 192.168.16.0 netmask 255.255.255.0 dev tun5gatewayA># echo 1 > /proc/sys/net/ipv4/ip_forward

    gatewayA># iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    GatewayA o FreeBSDgatewayA># ifconfig tun5 10.0.1.2 10.0.1.1

    gatewayA># route add 192.168.16.0/24 10.0.1.2gatewayA># sysctl net.inet.ip.forwarding=1gatewayA># natd -s -m -u -dynamic -n fxp0 # veja NATgatewayA># sysctl net.inet.ip.fw.enable=1

    Agora as duas redes privadas esto conectadas transparentemente via VP

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    29/60

    N SSH. O NATsoemten necessrio se os gateways no forem o padro da rede. Neste caso

    s clientesno sabem para onde encaminhar a resposta,e o nat dever ser ativado.

    RSYNC Rsync quase pode substituir completamente o cp e scp, almdisso, se interromper as transferncias so eficientemente reiniciado. A

    pgina domanual boa... Aqui alguns Exemplos:

    Copia o contedo completo do diretrio:# rsync -a /home/colin/ /backup/colin/ # modo "arquiv

    o". manter o mesmo# rsync -a /var/ /var_bak/# rsync -aR --delete-during /home/user/ /backup/ # utilizao relativa (veja abaixo)

    Mesmo que a anterior, porm sobre a rede com com compresso. O Rsync usao SSH por

    padro para o transporte e usar as chaves ssh se for definido. Use ":"como o SCP. Uma

    tpica cpia remota:# rsync -axSRzv /home/user/ user@server:/backup/user/ # Cpia remota

    # rsync -a 'user@server:My\ Documents' My\ Documents # Simula a cpia para uma shell remota

    Excluir qualquer diretrio tmp dentro de /home/user/ e manter a hierarquia de pastasrelativa, que o diretrio remoto ter a estrutura /backup/home/user/. Is

    to tipicamenteusado para backups.# rsync -azR --exclude=tmp/ /home/user/ user@server:/backup/ Usa a p

    orta20022 para a conexo ssh:# rsync -az -e 'ssh -p 20022' /home/colin/ user@server:/backup/colin

    / Usandoo daemon rsync (usado com "::") muito rpido, porm no encriptografados

    or ssh. Alocalizao do /backup definido pela configurao em /etc/rsyncd.conf. A

    ivel RSYNC_PASSWORD pode ser ajustado para evitar a necessidade de digitar a senha

    manualmente.# rsync -axSRz /home/ ruser@hostname::rmodule/backup/

    # rsync -axSRz ruser@hostname::rmodule/backup/ /home/ # Para copiar de volta

    Algumas opes importantes:-a, --archive modo arquivo; mesmo que -rlptgoD

    (sem -H)-r, --recursive recursivo em diretrios-R, --relative usar nome de diretrios

    relativo

    -H, --hard-links preserva os links-S, --sparse manipula os arquivos de formaeficiente

    -x, --one-file-system no atravessa o limitedo sistema de arquivos

    --exclude=PATTERN Exclui os arquivospadres

    --delete-during exclui receptor durante xfer,no antes

    --delete-after exclui receptor aps a

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    30/60

    transferncia, no antes

    Rsync em Windows Rsync est disponvel para Windows atravs doCygwin ou empacotado em cwrsync. Isto muito conveniente para backups automatizados. Instalar um deles (not

    both) eadicione o caminho para as variveis do sistema Windows: # Painel de c

    ontrole ->Sistema -> aba Avanado, boto Variveis de Ambiente. Edite a "Pasta" vari

    eis desistema e adicione o caminho completo para o rsync instalado, exempl

    o: C:\ProgramFiles\cwRsync\bin ou C:\cygwin\bin. Desta forma os comandos rsync e

    ssh esto disponveis no shell do Windows.Autenticao via ChavePblica Rsync automaticamente encapsulada por SSH e, portanto, usa

    aautenticao no servidor SSH. os backups automticos para evitar a intera

    o usuriousa autenticao SSH via chave pblica e pode ser usado o comando rsync qu

    e serexecutado sem uma senha.

    Todos os seguintes comandos so executados dentro de umconsole do Windows. Em um console (Iniciar -> Executar -> cmd) crie

    e carregue a

    chave conforme descrito no SSH, altere o "user" e "server" asappropriate. If the file authorized_keys2 does not exist yet, simplycopy id_dsa.pub to

    authorized_keys2 and upload it.conforme o caso. Se o arquivo authorized_keys2 ainda no

    existe, basta copiar id_dsa.pub para authorized_keys2 e carreg-lo.# ssh-keygen -t dsa -N '' # Cria a chave pblica e p

    rivada# rsync user@server:.ssh/authorized_keys2 . # Copia o arquivo localmente do server# cat id_dsa.pub >> authorized_keys2 # Ou usar um editor para adicionar achave# rsync authorized_keys2 user@server:.ssh/ # Copia o arquivo de volta para o se

    rver# del authorized_keys2 # Remove a cpia local

    Agora teste com (em uma linha): rsync -rv "/cygdrive/c/Documents andSettings/%USERNAME%/My Documents/" \'user@server:My\ Documents/'

    Backup Automtico Use um arquivo em lotes para automatizar o backup eadicionar

    o arquivo nas tarefas agendadas (Programas -> Acessrios -> Ferramentas do Systema

    -> Tarefas Agendadas). Por exemplo crie o arquivo backup.bat e substitua user@server.

    @ECHO OFFREM rsync o diretrio My DocumentsSETLOCALSET CWRSYNCHOME=C:\PROGRAM FILES\CWRSYNCSET CYGWIN=nontsecSET CWOLDPATH=%PATH%REM descomente a linha seguinte, se usar cygwinSET PATH=%CWRSYNCHOME%\BIN;%PATH%echo Pressione Control-C para Abortarrsync -av "/cygdrive/c/Documents and Settings/%USERNAME%/My Documents/" \

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    31/60

    'user@server:My\ Documents/'pause

    SUDOSudo is a standard way to give users some administrative rights without giving out the root password. Sudo is very useful in a multi user environment with a mixof server and workstations. Simply call the command with sudo:# sudo /etc/init.d/dhcpd restart # Run the rc script as root# sudo -u sysadmin whoami # Run cmd as an other user

    ConfigurationSudo is configured in /etc/sudoers and must only be edited with visudo. The basic syntax is (the lists are comma separated):user hosts = (runas) commands # In /etc/sudoers

    users one or more users or %group (like %wheel) to gain the rightshosts list of hosts (or ALL)runas list of users (or ALL) that the command rule can be run as. It is enclos

    ed in ( )!commands list of commands (or ALL) that will be run as root or as (runas)

    Additionally those keywords can be defined as alias, they are called User_Alias,

    Host_Alias, Runas_Alias and Cmnd_Alias. This is useful for larger setups. Herea sudoers example:# cat /etc/sudoers# Host aliases are subnets or hostnames.Host_Alias DMZ = 212.118.81.40/28Host_Alias DESKTOP = work1, work2

    # User aliases are a list of users which can have the same rightsUser_Alias ADMINS = colin, luca, adminUser_Alias DEVEL = joe, jack, juliaRunas_Alias DBA = oracle,pgsql

    # Command aliases define the full path of a list of commands

    Cmnd_Alias SYSTEM = /sbin/reboot,/usr/bin/kill,/sbin/halt,/sbin/shutdown,/etc/init.d/Cmnd_Alias PW = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root # Not rootpwd!Cmnd_Alias DEBUG = /usr/sbin/tcpdump,/usr/bin/wireshark,/usr/bin/nmap# The actual rulesroot,ADMINS ALL = (ALL) NOPASSWD: ALL # ADMINS can do anything w/o a password.DEVEL DESKTOP = (ALL) NOPASSWD: ALL # Developers have full right on desktopsDEVEL DMZ = (ALL) NOPASSWD: DEBUG # Developers can debug the DMZ servers.

    # User sysadmin can mess around in the DMZ servers with some commands.sysadmin DMZ = (ALL) NOPASSWD: SYSTEM,PW,DEBUGsysadmin ALL,!DMZ = (ALL) NOPASSWD: ALL # Can do anything outside the DMZ.%dba ALL = (DBA) ALL # Group dba can run as database user.

    # anyone can mount/unmount a cd-rom on the desktop machinesALL DESKTOP = NOPASSWD: /sbin/mount /cdrom,/sbin/umount /cdrom

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    32/60

    Encrypt FilesOpenSSLA single fileEncrypt and decrypt:# openssl aes-128-cbc -salt -in file -out file.aes# openssl aes-128-cbc -d -salt -in file.aes -out file

    Note that the file can of course be a tar archive.tar and encrypt a whole directory# tar -cf - directory | openssl aes-128-cbc -salt -out directory.tar.aes #Encrypt# openssl aes-128-cbc -d -salt -in directory.tar.aes | tar -x -f - #Decrypt

    tar zip and encrypt a whole directory# tar -zcf - directory | openssl aes-128-cbc -salt -out directory.tar.gz.aes #Encrypt# openssl aes-128-cbc -d -salt -in directory.tar.gz.aes | tar -xz -f - #Decrypt

    Use -k mysecretpassword after aes-128-cbc to avoid the interactive password request. However note that this is highly insecure.Use aes-256-cbc instead of aes-128-cbc to get even stronger encryption. This uses also more CPU.

    GPGGnuPG is well known to encrypt and sign emails or any data. Furthermore gpg andalso provides an advanced key management system. This section only covers filesencryption, not email usage, signing or the Web-Of-Trust.

    The simplest encryption is with a symmetric cipher. In this case the file is encrypted with a password and anyone who knows the password can decrypt it, thus the keys are not needed. Gpg adds an extention ".gpg" to the encrypted file names.# gpg -c file # Encrypt file with password# gpg file.gpg # Decrypt file (optionally -o otherfile)

    Using keysFor more details see GPG Quick Start and GPG/PGP Basics and the gnupg documentation among others.

    The private and public keys are the heart of asymmetric cryptography. What is important to remember:

    Your public key is used by others to encrypt files that only you as the receivercan decrypt (not even the one who encrypted the file can decrypt it). The public key is thus meant to be distributed.Your private key is encrypted with your passphrase and is used to decrypt fileswhich were encrypted with your public key. The private key must be kept secure.Also if the key or passphrase is lost, so are all the files encrypted with yourpublic key.The key files are called keyrings as they can contain more than one key.

    First generate a key pair. The defaults are fine, however you will have to enter

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    33/60

    at least your full name and email and optionally a comment. The comment is useful to create more than one key with the same name and email. Also you should usea "passphrase", not a simple password.# gpg --gen-key # This can take a long timeThe keys are stored in ~/.gnupg/ on Unix, on Windows they are typically stored in

    C:/Documents and Settings/%USERNAME%/Application Data/gnupg/.~/.gnupg/pubring.gpg # Contains your public keys and all othersimported~/.gnupg/secring.gpg # Can contain more than one private key

    Short reminder on most used options:

    -e encrypt data-d decrypt data-r NAME encrypt for recipient NAME (or 'Full Name' or 'email@domain')-a create ascii armored output of a key-o use as output file

    The examples use 'Your Name' and 'Alice' as the keys are referred to by the email or full name or partial name. For example I can use 'Colin' or '[email protected]' for my key [Colin Barschel (cb.vu) ].Encrypt for personal use only

    No need to export/import any key for this. You have both already.# gpg -e -r 'Your Name' file # Encrypt with your public key# gpg -o file -d file.gpg # Decrypt. Use -o or it goes to stdout

    Encrypt - Decrypt with keysFirst you need to export your public key for someone else to use it. And you need to import the public say from Alice to encrypt a file for her. You can eitherhandle the keys in simple ascii files or use a public key server.

    For example Alice export her public key and you import it, you can then encrypta file for her. That is only Alice will be able to decrypt it.# gpg -a -o alicekey.asc --export 'Alice' # Alice exported her key in ascii

    file.# gpg --send-keys --keyserver subkeys.pgp.net KEYID # Alice put her key on a server.# gpg --import alicekey.asc # You import her key into your pubring.# gpg --search-keys --keyserver subkeys.pgp.net 'Alice' # or get her key from aserver.

    Once the keys are imported it is very easy to encrypt or decrypt a file:# gpg -e -r 'Alice' file # Encrypt the file for Alice.# gpg -d file.gpg -o file # Decrypt a file encrypted by Alice for you.

    Key administration# gpg --list-keys # list public keys and see the KEYIDS

    The KEYID follows the '/' e.g. for: pub 1024D/D12B77CE the KEYID is D12B77CE# gpg --gen-revoke 'Your Name' # generate revocation certificate# gpg --list-secret-keys # list private keys# gpg --delete-keys NAME # delete a public key from local key ring# gpg --delete-secret-key NAME # delete a secret key from local k

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    34/60

    ey ring# gpg --fingerprint KEYID # Show the fingerprint of the key# gpg --edit-key KEYID # Edit key (e.g sign or add/del email)

    Encrypt PartitionsLinux with LUKS | Linux dm-crypt only | FreeBSD GELI | FBSD pwd onlyThere are (many) other alternative methods to encrypt disks, I only show here the methods I know and use. Keep in mind that the security is only good as long the OS has not been tempered with. An intruder could easily record the password from the keyboard events. Furthermore the data is freely accessible when the partition is attached and will not prevent an intruder to have access to it in this state.LinuxThose instructions use the Linux dm-crypt (device-mapper) facility available onthe 2.6 kernel. In this example, lets encrypt the partition /dev/sdc1, it couldbe however any other partition or disk, or USB or a file based partition createdwith losetup. In this case we would use /dev/loop0. See file image partition. The device mapper uses labels to identify a partition. We use sdc1 in this example, but it could be any string.dm-crypt with LUKS

    LUKS with dm-crypt has better encryption and makes it possible to have multiplepassphrase for the same partition or to change the password easily. To test if LUKS is available, simply type # cryptsetup --help, if nothing about LUKS shows up, use the instructions below Without LUKS. First create a partition if necessary: fdisk /dev/sdc.Create encrypted partition# dd if=/dev/urandom of=/dev/sdc1 # Optional. For paranoids only (takesdays)# cryptsetup -y luksFormat /dev/sdc1 # This destroys any data on sdc1# cryptsetup luksOpen /dev/sdc1 sdc1# mkfs.ext3 /dev/mapper/sdc1 # create ext3 file system# mount -t ext3 /dev/mapper/sdc1 /mnt# umount /mnt

    # cryptsetup luksClose sdc1 # Detach the encrypted partitionAttach# cryptsetup luksOpen /dev/sdc1 sdc1# mount -t ext3 /dev/mapper/sdc1 /mntDetach# umount /mnt# cryptsetup luksClose sdc1

    dm-crypt without LUKS# cryptsetup -y create sdc1 /dev/sdc1 # or any other partition like /dev/loop0# dmsetup ls # check it, will display: sdc1 (254,0)

    # mkfs.ext3 /dev/mapper/sdc1 # This is done only the first time!# mount -t ext3 /dev/mapper/sdc1 /mnt# umount /mnt/# cryptsetup remove sdc1 # Detach the encrypted partition

    Do exactly the same (without the mkfs part!) to re-attach the partition. If thepassword is not correct, the mount command will fail. In this case simply removethe map sdc1 (cryptsetup remove sdc1) and create it again.FreeBSDThe two popular FreeBSD disk encryption modules are gbde and geli. I now use gel

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    35/60

    i because it is faster and also uses the crypto device for hardware acceleration. See The FreeBSD handbook Chapter 18.6 for all the details. The geli module must be loaded or compiled into the kernel:options GEOM_ELIdevice crypto # or as module:# echo 'geom_eli_load="YES"' >> /boot/loader.conf # or do: kldload geom_eli

    Use password and keyI use those settings for a typical disk encryption, it uses a passphrase AND a key to encrypt the master key. That is you need both the password and the generated key /root/ad1.key to attach the partition. The master key is stored inside the partition and is not visible. See below for typical USB or file based image.Create encrypted partition

    # dd if=/dev/random of=/root/ad1.key bs=64 count=1 # this key encrypts the mater key# geli init -s 4096 -K /root/ad1.key /dev/ad1 # -s 8192 is also OK for disks# geli attach -k /root/ad1.key /dev/ad1 # DO make a backup of /root/ad1.key# dd if=/dev/random of=/dev/ad1.eli bs=1m # Optional and takes a longtime# newfs /dev/ad1.eli # Create file system# mount /dev/ad1.eli /mnt

    Attach# geli attach -k /root/ad1.key /dev/ad1# fsck -ny -t ffs /dev/ad1.eli # In doubt check the file system# mount /dev/ad1.eli /mnt

    DetachThe detach procedure is done automatically on shutdown.# umount /mnt# geli detach /dev/ad1.eli

    /etc/fstab

    The encrypted partition can be configured to be mounted with /etc/fstab. The password will be prompted when booting. The following settings are required for this example:# grep geli /etc/rc.confgeli_devices="ad1"geli_ad1_flags="-k /root/ad1.key"# grep geli /etc/fstab/dev/ad1.eli /home/private ufs rw 00

    Use password onlyIt is more convenient to encrypt a USB stick or file based image with a passphrase only and no key. In this case it is not necessary to carry the additional key

    file around. The procedure is very much the same as above, simply without the key file. Let's encrypt a file based image /cryptedfile of 1 GB.# dd if=/dev/zero of=/cryptedfile bs=1M count=1000 # 1 GB file# mdconfig -at vnode -f /cryptedfile# geli init /dev/md0 # encrypts with password only# geli attach /dev/md0# newfs -U -m 0 /dev/md0.eli# mount /dev/md0.eli /mnt# umount /dev/md0.eli

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    36/60

    # geli detach md0.eli

    It is now possible to mount this image on an other system with the password only.# mdconfig -at vnode -f /cryptedfile# geli attach /dev/md0# mount /dev/md0.eli /mnt

    SSL CertificatesSo called SSL/TLS certificates are cryptographic public key certificates and arecomposed of a public and a private key. The certificates are used to authenticate the endpoints and encrypt the data. They are used for example on a web server(https) or mail server (imaps).Procedure

    We need a certificate authority to sign our certificate. This step isusually provided by a vendor like Thawte, Verisign, etc., however we can also

    create our own.Create a certificate signing request. This request is like an unsigned certificate (the public part) and already contains all necessary information. The certificate request is normally sent to the authority vendor for signing. This step also creates the private key on the local machine.

    Sign the certificate with the certificate authority.If necessary join the certificate and the key in a single file to be used by theapplication (web server, mail server etc.).

    Configure OpenSSLWe use /usr/local/certs as directory for this example check or edit /etc/ssl/openssl.cnf accordingly to your settings so you know where the files will be created. Here are the relevant part of openssl.cnf:[ CA_default ]dir = /usr/local/certs/CA # Where everything is keptcerts = $dir/certs # Where the issued certs are keptcrl_dir = $dir/crl # Where the issued crl are kept

    database = $dir/index.txt # database index file.

    Make sure the directories exist or create them# mkdir -p /usr/local/certs/CA# cd /usr/local/certs/CA# mkdir certs crl newcerts private# echo "01" > serial # Only if serial does not exist# touch index.txt

    If you intend to get a signed certificate from a vendor, you only need a certificate signing request (CSR). This CSR will then be signed by the vendor for a limited time (e.g. 1 year).

    Create a certificate authority

    If you do not have a certificate authority from a vendor, you'll have to createyour own. This step is not necessary if one intend to use a vendor to sign the request. To make a certificate authority (CA):# openssl req -new -x509 -days 730 -config /etc/ssl/openssl.cnf \-keyout CA/private/cakey.pem -out CA/cacert.pem

    Create a certificate signing request

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    37/60

    To make a new certificate (for mail server or web server for example), first create a request certificate with its private key. If your application do not support encrypted private key (for example UW-IMAP does not), then disable encryptionwith -nodes.# openssl req -new -keyout newkey.pem -out newreq.pem \-config /etc/ssl/openssl.cnf# openssl req -nodes -new -keyout newkey.pem -out newreq.pem \-config /etc/ssl/openssl.cnf # No encryption for the key

    Keep this created CSR (newreq.pem) as it can be signed again at the next renewal, the signature onlt will limit the validity of the certificate. This process also created the private key newkey.pem.

    Sign the certificateThe certificate request has to be signed by the CA to be valid, this step is usually done by the vendor. Note: replace "servername" with the name of your serverin the next commands.# cat newreq.pem newkey.pem > new.pem# openssl ca -policy policy_anything -out servernamecert.pem \-config /etc/ssl/openssl.cnf -infiles new.pem# mv newkey.pem servernamekey.pem

    Now servernamekey.pem is the private key and servernamecert.pem is the server certificate.

    Create united certificateThe IMAP server wants to have both private key and server certificate in the same file. And in general, this is also easier to handle, but the file has to be kept securely!. Apache also can deal with it well. Create a file servername.pem containing both the certificate and key.

    Open the private key (servernamekey.pem) with a text editor and copy the private key into the "servername.pem" file.Do the same with the server certificate (servernamecert.pem).

    The final servername.pem file should look like this:

    -----BEGIN RSA PRIVATE KEY-----MIICXQIBAAKBgQDutWy+o/XZ/[...]qK5LqQgT3c9dU6fcR+WuSs6aejdEDDqBRQ-----END RSA PRIVATE KEY----------BEGIN CERTIFICATE-----MIIERzCCA7CgAwIBAgIBBDANB[...]iG9w0BAQQFADCBxTELMAkGA1UEBhMCREUx-----END CERTIFICATE-----

    What we have now in the directory /usr/local/certs/:

    CA/private/cakey.pem (CA server private key)CA/cacert.pem (CA server public key)certs/servernamekey.pem (server private key)

    certs/servernamecert.pem (server signed certificate)certs/servername.pem (server certificate with private key)

    Keep the private key secure!

    View certificate informationTo view the certificate information simply do:# openssl x509 -text -in servernamecert.pem # View the certificate info# openssl req -noout -text -in server.csr # View the request info# openssl s_client -connect cb.vu:443 # Check a web server certificat

  • 7/29/2019 Caixa de Ferramentas UNIX.txt

    38/60

    e

    CVSServer setup | CVS test | SSH tunneling | CVS usageServer setupInitiate the CVSDecide where the main repository will rest and create a root cvs. For example /usr/local/cvs (as root):# mkdir -p /usr/local/cvs# setenv CVSROOT /usr/local/cvs # Set CVSROOT to the new location (local)# cvs init # Creates all internal CVS config files# cd /root# cvs checkout CVSROOT # Checkout the config files to modify them# cd CVSROOTedit config ( fine as it is)# cvs commit configcat >> writers # Create a writers file (optionally also readers)colin^D # Use [Control][D] to quit the edit# cvs add writers # Add the file writers into the repository

    # cvs edit checkoutlist# cat >> checkoutlistwriters^D # Use [Control][D] to quit the edit# cvs commit # Commit all the configuration changes

    Add a readers file if you want to differentiate read and write permissions Note:Do not (ever) edit files directly into the main cvs, but rather checkout the file, modify it and check it in. We did this with the file writers to define the write access.

    There are three popular ways to access the CVS at this point. The first two don't need any further configuration. See the examples on CVSROOT below for how to u

    se them:

    Direct local access to the file system. The user(s) need sufficient file permission to access the CS directly and there is no further authentication in addition to the OS login. However this is