segunda-feira, 25 de novembro de 2013

Como descobrir as regras do IPTables que não estão sendo usadas

Quanto menos regras um firewall tiver, melhor. E um firewall de borda costuma ter centenas, ou mesmo milhares de regras. Quanto mais regras ele tiver, pior será seu desempenho. Portanto, é aconselhável verificar periodicamente o uso das regras do firewall, tanto para desabilitar regras não usadas quando para priorizar as regras mais utilizadas.

No IPTables, isso pode ser feito com o seguinte comando:

# iptables -nL --verbose


Chain INPUT (policy DROP 8513K packets, 940M bytes)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 REJECT     all  --  *      *       172.20.19.149        0.0.0.0/0            reject-with icmp-port-unreachable
   31  1860 REJECT     all  --  *      *       172.20.15.202        0.0.0.0/0            reject-with icmp-port-unreachable
   16  1112 REJECT     all  --  *      *       149.20.56.0/24       0.0.0.0/0            reject-with icmp-port-unreachable
    1    60 REJECT     all  --  *      *       172.20.15.177        0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       172.20.50.56         0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       10.90.1.0/24         0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       172.20.15.79         0.0.0.0/0            reject-with icmp-port-unreachable
1003M 1142G ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
 132K 7916K ACCEPT     tcp  --  eth0   *       172.20.1.82          0.0.0.0/0            multiport dports 10050,10051
35371 2971K ACCEPT     icmp --  eth0   *       172.20.1.82          0.0.0.0/0          
    0     0 ACCEPT     icmp --  eth1   *       200.136.27.146       0.0.0.0/0          
5005K  300M ACCEPT     tcp  --  lo     *       0.0.0.0/0            0.0.0.0/0            multiport dports 3000,3128,8080,16667
   45  2700 ACCEPT     tcp  --  eth0   *       172.20.120.4         0.0.0.0/0            multiport dports 22,81,139,445,666,3000,4200,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.120.5         0.0.0.0/0            multiport dports 22,25,81,666,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.120.7         0.0.0.0/0            multiport dports 22,25,81,666,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.120.6         0.0.0.0/0            multiport dports 22,25,81,666,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.120.2         0.0.0.0/0            multiport dports 22,25,81,666,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.120.1         0.0.0.0/0            multiport dports 22,25,81,666,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.120.8         0.0.0.0/0            multiport dports 22,25,81,666,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.1.130         0.0.0.0/0            multiport dports 22,25,81,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.1.146         0.0.0.0/0            multiport dports 22

Reparem que essa listagem traz o número de pacotes e o tamanho total dos dados trafegados pela regra. Regras zeradas significam que não estão sendo usadas. Esses valores consideram o período compreendido entre a última ativação do firewall (ou boot o servidor) até o momento presente.

terça-feira, 29 de outubro de 2013

Auditoria de sistemas com Lynis

Após fazer uma instalação de um servidor, independente do sistema operacional, é aconselhável fazer uma auditoria de segurança. Há várias ferramentas para isso. No Linux temos uma bem simples, mas que ajuda muito, chamado Lynix.

Para instalá-lo, digite, como root:

# apt-get install lynis

Antes de usá-lo é importante atualizar seu banco de dados.

# lynis --check-update

 == Lynis ==

  Version         :   1.3.0 [ Outdated ]
  Release date    :   28 April 2011
  Update location :   http://www.rootkit.nl/

 == Databases ==
                      Current          Latest           Status
  -----------------------------------------------------------------------------
  Malware         :   2008062700       2008062700       Up-to-date
  File perms      :   2008053000       2008053000       Up-to-date


Copyright 2007-2012 - Michael Boelen, http://www.rootkit.nl/

Agora vamos executá-lo. A cada tela, ou fase, o programa fará uma pausa para que você possa ver o que está sendo feito. No final, uma resumo do que foi encontrado e as dicas do que pode ser feito é listada.

# lynis -c

[ Lynis 1.3.0 ]

################################################################################
 Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
 welcome to redistribute it under the terms of the GNU General Public License.
 See LICENSE file for details about using this software.

 Copyright 2007-2012 - Michael Boelen, http://www.rootkit.nl/
################################################################################

[+] Initializing program
------------------------------------
  - Detecting OS...                                           [ DONE ]
  - Clearing log file (/var/log/lynis.log)...                 [ DONE ]

  ---------------------------------------------------
  Program version:           1.3.0
  Operating system:          Linux
  Operating system name:     Linux
  Operating system version:  3.2.0-4-686-pae
  Kernel version:            3.2.0-4-686-pae
  Hardware platform:         i686
  Hostname:                  fpawks0703
  Auditor:                   [Unknown]
  Profile:                   /etc/lynis/default.prf
  Log file:                  /var/log/lynis.log
  Report file:               /var/log/lynis-report.dat
  Report version:            1.0
  ---------------------------------------------------

[ Press [ENTER] to continue, or [CTRL]+C to stop ]

  - Checking profile file (/etc/lynis/default.prf)...
  - Program update status...                                  [ UPDATE AVAILABLE ]

      ===============================================================================
        Notice: Lynis update available
          Current version : 130   Latest version : 131
          Please update to the latest version for new features, bug fixes, tests
          and baselines.
      ===============================================================================


[ Press [ENTER] to continue, or [CTRL]+C to stop ]


[+] System Tools
------------------------------------
  - Scanning available tools...
  - Checking system binaries...
    - Checking /bin...                                        [ FOUND ]
    - Checking /sbin...                                       [ FOUND ]
    - Checking /usr/bin...                                    [ FOUND ]
    - Checking /usr/sbin...                                   [ FOUND ]
    - Checking /usr/local/bin...                              [ FOUND ]
    - Checking /usr/local/sbin...                             [ FOUND ]
    - Checking /usr/local/libexec...                          [ NOT FOUND ]
    - Checking /usr/libexec...                                [ NOT FOUND ]
    - Checking /usr/sfw/bin...                                [ NOT FOUND ]
    - Checking /usr/sfw/sbin...                               [ NOT FOUND ]
    - Checking /usr/sfw/libexec...                            [ NOT FOUND ]
    - Checking /opt/sfw/bin...                                [ NOT FOUND ]
    - Checking /opt/sfw/sbin...                               [ NOT FOUND ]
    - Checking /opt/sfw/libexec...                            [ NOT FOUND ]
    - Checking /usr/xpg4/bin...                               [ NOT FOUND ]
    - Checking /usr/css/bin...                                [ NOT FOUND ]
    - Checking /usr/ucb...                                    [ NOT FOUND ]

[ Press [ENTER] to continue, or [CTRL]+C to stop ]

================================================================================

  -[ Lynis 1.3.0 Results ]-

  Tests performed: 181
  Warnings:
  ----------------------------
   - [15:17:02] Warning: Found one or more zombie processes (16988 16990 16992) [test:PROC-3612] [impact:L]
   - [15:19:27] Warning: Found BIND version in banner [test:NAME-4210] [impact:M]
   - [15:20:44] Warning: Found possible unused iptables rules (1 1 2 1 2 3 4 5 6 7 8 2 3 4 6 8) [test:FIRE-4513] [impact:L]
   - [15:21:06] Warning: Root can directly login via SSH [test:SSH-7412] [impact:M]
   - [15:21:28] Warning: PHP option register_globals option is turned on, which can be a risk for variable value overwriting [test:PHP-2368] [impact:M]
   - [15:21:28] Warning: PHP option expose_php is possibly turned on, which can reveal useful information for attackers. [test:PHP-2372] [impact:M]
   - [15:21:58] Warning: klogd is not running, which could lead to missing kernel messages in log files [test:LOGG-2138] [impact:L]
   - [15:22:37] Warning: Found one or more stratum 16 peers [test:TIME-3116] [impact:L]

  Suggestions:
  ----------------------------
   - [15:15:42] Suggestion: update to the latest stable release.
   - [15:17:02] Suggestion: Check the output of ps for dead or zombie processes [test:PROC-3612]
   - [15:17:21] Suggestion: Install a PAM module for password strength testing like pam_cracklib or pam_passwdqc [test:AUTH-9262]
   - [15:17:21] Suggestion: When possible set expire dates for all password protected accounts [test:AUTH-9282]
   - [15:17:21] Suggestion: Configure password aging limits to enforce password changing on a regular base [test:AUTH-9286]
   - [15:17:21] Suggestion: Default umask in /etc/profile could be more strict like 027 [test:AUTH-9328]
   - [15:17:21] Suggestion: Default umask in /etc/login.defs could be more strict like 027 [test:AUTH-9328]
   - [15:17:21] Suggestion: Default umask in /etc/init.d/rc could be more strict like 027 [test:AUTH-9328]
   - [15:19:10] Suggestion: Disable drivers like USB storage when not used, to prevent unauthorized storage or data theft [test:STRG-1840]
   - [15:19:10] Suggestion: Disable drivers like firewire storage when not used, to prevent unauthorized storage or data theft [test:STRG-1846]
   - [15:20:14] Suggestion: Purge removed packages (225 found) with aptitude purge command, to cleanup old configuration files, cron jobs and startup scripts. [test:PKGS-7346]
   - [15:20:44] Suggestion: Check iptables rules to see which rules are currently not used (iptables --list --numeric --verbose) [test:FIRE-4513]
   - [15:21:28] Suggestion: Change the register_globals line to: register_globals = Off [test:PHP-2368]
   - [15:21:28] Suggestion: Change the expose_php line to: expose_php = Off [test:PHP-2372]
   - [15:21:28] Suggestion: Change the allow_url_fopen line to: allow_url_fopen = Off, to disable downloads via PHP [test:PHP-2376]
   - [15:21:38] Suggestion: Check if Squid has been configured to restrict access to all safe ports [test:SQD-3624]
   - [15:21:38] Suggestion: Configure Squid option reply_body_max_size to limit the upper size of requests. [test:SQD-3630]
   - [15:21:58] Suggestion: Check why klogd is not running [test:LOGG-2138]
   - [15:22:18] Suggestion: Add legal banner to /etc/motd, to warn unauthorized users [test:BANN-7122]
   - [15:22:18] Suggestion: Add legal banner to /etc/issue, to warn unauthorized users [test:BANN-7126]
   - [15:22:18] Suggestion: Add legal banner to /etc/issue.net, to warn unauthorized users [test:BANN-7130]
   - [15:22:34] Suggestion: Enable sysstat to collect accounting [test:ACCT-9626]
   - [15:22:34] Suggestion: Enable auditd to collect audit information [test:ACCT-9628]
   - [15:22:37] Suggestion: Check ntpq peers output [test:TIME-3116]
   - [15:22:37] Suggestion: Check ntpq peers output for time source candidates [test:TIME-3128]
   - [15:23:26] Suggestion: One or more sysctl values differ from the scan profile and could be tweaked [test:KRNL-6000]
   - [15:23:41] Suggestion: Harden the system by removing unneeded compilers. This can decrease the chance of customized trojans, backdoors and rootkits to be compiled and installed [test:HRDN-7220]
   - [15:23:41] Suggestion: Harden compilers and restrict access to world [test:HRDN-7222]
================================================================================
  Files:
  - Test and debug information      : /var/log/lynis.log
  - Report data                     : /var/log/lynis-report.dat
================================================================================
  Notice: Lynis update available
  Current version : 130    Latest version : 131
================================================================================
  Hardening index : [64]     [############        ]
================================================================================
  Tip: Disable all tests which are not relevant or are too strict for the
       purpose of the particular machine. This will remove unwanted suggestions
       and also boost the hardening index. Each test should be properly analyzed
       to see if the related risks can be accepted, before disabling the test.
================================================================================
  Lynis 1.3.0
  Copyright 2007-2012 - Michael Boelen, http://www.rootkit.nl/
================================================================================


#

* Resumi a saida do comando acima

Veja quantas coisas eu posso fazer para melhorar a segurança do meu servidor.


segunda-feira, 7 de outubro de 2013

Criando partições com Fdisk

Uma das mais conhecidas ferramentas para manipular a tabela de partições no Linux é o Fdisk.

Para listarmos a tabela de partições de um disco use a opção "-l":

# fdisk -l /dev/sda

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

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       12158    97659103   83  Linux
Warning: Partition 1 does not end on cylinder boundary.
/dev/sda2           12158       36473   195310237   83  Linux
Warning: Partition 2 does not end on cylinder boundary.
/dev/sda3           36473       60801   195414660    f  Extended LBA
/dev/sda5           36473       60801   195414660   83  Linux
Warning: Partition 5 does not end on cylinder boundary.
#


Aqui temos um disco de 500Gb com 2 partições primárias (1 e 2), uma extendida (3) e uma lógica (5).

Para alteramos as partições, podemos chamar o Ddisk passando como parâmetro o disco (no nosso exemplo, /dev/sda).

# fdisk /dev/sda
GNU Fdisk 1.2.4
Copyright (C) 1998 - 2006 Free Software Foundation, Inc.
This program is free software, covered by the GNU General Public License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Using /dev/sda
Command (m for help):


Para ajuda, tecle "m".

Command (m for help): m
Command action
   a   toggle bootable flag
   b   edit bsd disklabel
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
Command (m for help):  


O Fdisk pode assustar no início, mas ele tem opções bem interessantes, e sua ajuda realmente nos ajuda. Por exemplo, para listar as partições, tecle "p".

Command (m for help): p                                                  

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

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       12158    97659103   83  Linux
Warning: Partition 1 does not end on cylinder boundary.                  
/dev/sda2           12158       36473   195310237   83  Linux
Warning: Partition 2 does not end on cylinder boundary.                  
/dev/sda3           36473       60801   195414660    f  Extended LBA
/dev/sda5           36473       60801   195414660   83  Linux
Warning: Partition 5 does not end on cylinder boundary.                  
Command (m for help):                                                    


Use "n" para criar uma nova partição, "d" para excluir, "p" para listar as partições, "l" para listar os tipos de partições que o Fdisk conhece, "w" para gravar as mudanças e "q" para sair.


sexta-feira, 4 de outubro de 2013

É usuário Linux mas o Windows veio instalado no PC? Saiba que é possível pedir reembolso!

Se você comprou um computador com Windows, mas prefere usar o Linux, saiba que você pode desinstalar o Windows e pedir reembolso do valor do software. 

No vídeo abaixo isso é explicado melhor.



quinta-feira, 3 de outubro de 2013

quarta-feira, 2 de outubro de 2013

Compartilhamento de arquivos via nfs

A melhor forma de compartilhar arquivos entre máquinas Unix/Linux é usando o Nfs. Ao contrário de outros sistemas, como o Smb, o Nfs usa o protocolo Udp, o que agiliza a transferência dos dados. As permissões, por padrão, são dadas para as máquina, e não para um usuário como acontece no Smb.

Para instalar o servidor nfs, basta instalar o pacote nfs-kernel-server.

# apt-get install nfs-kernel-server

Após a instalação, edite o arquivo /etc/exportfs para configurar os compartilhamentos.

/home/ricardo/tmp    172.20.120.4(rw,no_subtree_check)

Nesta linha estou compartilhando a pasta /home/ricardo/tmp com o equipamento 172.20.120.4 no modo de leitura e escrita. Para habilitar as mudanças digite:

# exportfs -a

Na máquina cliente, execute:

# mount -t nfs 172.20.1.127:/home/ricardo/tmp /mnt/tmp

Para que o mapeamento seja montado no boot, crie uma entrada no arquivo /etc/fstab como a seguinte:

172.20.1.127:/home/ricardo/tmp /mnt/tmp nfs defaults 0 0

O nfs tem muitos parâmetros que podem ser ajustados. Para ter uma visão geral sobre eles consulte a página de manual.

$ man nfs

sexta-feira, 27 de setembro de 2013

Evolution, uma alternativa ao Outlook

Uma das dificuldades das pessoas que estão migrando do Windows para o Linux é encontrar programas semelhantes aos que usava no sistema anterior. O Outlook, muito usado em empresas, é um deles. Pois temos o Evolution, que é muito parecido e também pode ser integrado ao Exchange e ao Google (Calendário, Gmail, Lista de contatos, etc).


A Evolution tem cliente de e-mail, agenda, organizador de tarefas,  calendário, lista de contatos, memorandos e tudo o que o Outlook tem.  


Tem suporte a Imap, Imaps, Exchange, Usenet, Pop3, Pop3s, Smtp, Smtps, Entrega local (maildir) e muitos outros que podem ser instalado separadamente.



Vejam como é fácil enviar um e-mail usando uma conta do Gmail. Se você estiver usando o Gnome3, basta criar uma conta on-line usando o teu usuário do Google para que todas as configurações são feitas automaticamente.


quinta-feira, 26 de setembro de 2013

segunda-feira, 23 de setembro de 2013

Trabalhando com variáveis de ambiente.

A linha de comando do Linux tem uma característica muito útil que é o uso de variáveis e, ao contrário da maioria das linguagens de programação, não é necessário dizer que tipo de dado a variável contém. Por exemplo, vamos definir uma variável chamado IDADE.

$ IDADE=37

Para mostrar o valor da variável IDADE, eu digito:

$ echo $IDADE
37

Vamos agora multiplicar IDADE por 2:


$ echo $(($IDADE * 2))
74

Para concatenar um texto à variável IDADE não é necessário fazer nenhum conversão.

$ texto=`echo $IDADE "Teste"`
$ echo $texto
37 Teste

As variáveis comuns não são exportas para os sub-shell. Veja isso na sequência de comandos abaixo:

$ echo $texto
37 Teste
$ bash
$ echo $texto

$ exit
exit
$ echo $texto
37 Teste

Veja que a variável $texto só existe no bash corrente. Quando entro em um novo bash, ela não existe. Para que uma variável seja visível para os sub-shell é necessário torná-la uma variável de ambiente.

$ export texto

Agora vamos analisar a mesma sequência de comandos:

$ echo $texto
37 Teste
$ export texto
$ bash
$ echo $texto
37 Teste
$ exit
exit
$ echo $texto
37 Teste

O shell já configurar várias variáveis de ambiente que personalizam seu sistema. Para listá-las, digite:

$ env

Aqui eu apresento as principais:

  • SHELL=/bin/bash - Mostra o shell atual
  • TERM=xterm - O tipo de terminal atualmente em uso
  • USER=ricardo - O usuário corrente
  • DESKTOP_SESSION=gnome - O desktop atualmente em uso
  • PATH=/usr/games:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/brlcad/bin:/sbin:/usr/sbin:/sbin:/usr/sbin - As pastas onde o sistema vai procurar por executáveis quando estes forem digitados na linha de comando.
  • PWD=/home/ricardo/Downloads - A pasta atual
  • LANG=pt_BR.utf8 - A linguagem atual do sistema
  • HOME=/home/ricardo - O diretório de trabalho do usuário atual
  • OLDPWD=/home/ricardo - O diretório anterior (antes de um comando "cd" ter sido executado.

As variáveis de ambiente podem ser configuradas de uma forma geral através do arquivos /etc/profile, e pode ser personalizada através do arquivo ~/.profile de cada usuários.

sexta-feira, 20 de setembro de 2013

O drive de cd não abre. O que fazer?

Algumas vezes o drive de cd emperra e não abre, mesmo você apertando o botão open. Você clica com o botão direito e manda ejetar, mas mesmo assim ele não abre. O que fazer?

Antes de tentar usar um clip (daqueles de prender papel), tente usar o comando eject como root.

# eject

Segundo a própria documentação do eject, dependendo do tipo de midia há 4 maneiras de ejetá-la. O eject tenta todos os tipos possíveis, e serve não só para dvd, mas para fitas de backup, zip e jaz drive, hd externo, e muitos outros. 

Agora, se nem assim funcionar, só com clip, mesmo. Mas é bom desligar o equipamento antes.

quarta-feira, 18 de setembro de 2013

Script bash com cores

Quem escreve script bash pode trabalhar com cores. É simples:

$ echo -e '\e[34;43;1m teste \e[m'


Aqui, a cor do texto é azul (34) e o fundo amarelo (43) e negrito (1). Abaixo mostro um script simples que mostra todas as combinações possíveis.

#!/bin/bash
for atributo in 1 4 7
do
    for texto in `seq 30 37`
    do
        echo -n '|'
        for fundo in `seq 40 47`
        do
            echo -n -e '\e['$texto';'$fundo';'$atributo'm '$texto $fundo $atributo' \e[m'
            echo -n ' | '
        done
        echo   
    done
done

Ao executar esse script, a tela abaixo é mostrada. Cada célula contém os valores para a cor do texto, a cor do fundo, e o atributo.


Assim fica mais fácil escrever scripts elegantes.

sexta-feira, 13 de setembro de 2013

Como saber o tamanho de uma pasta

Uma forma de saber o tamanho de uma pasta é usando o du. Por padrão, du mostra o tamanho de cada arquivo e pasta dentro da pasta pesquisada, sumarizando. Por exemplo, para mostrar o tamanho das pastas e arquivos da pasta atual, de uma forma amigável, eu uso:

$ du -h
64K    ./Contas/Telefone
84K    ./Contas/Celular
100K    ./Contas/Outras
188K    ./Contas/Freitas
12K    ./Contas/Cursos
72K    ./Contas/Luz
236K    ./Contas/Transferencia
508K    ./Contas/Seguro
148K    ./Contas/Carro
56K    ./Contas/Casa
240K    ./Contas/Cartao
28K    ./Contas/Livros
8,0K    ./Contas/Net
12K    ./Contas/Escolinha
1,8M    ./Contas
6,2M    ./Apostilas/Rede
42M    ./Apostilas/Linux
2,9M    ./Apostilas/ShellScript
896K    ./Apostilas/Hardware
828K    ./Apostilas/Html
308K    ./Apostilas/Pesquisas
3,1M    ./Apostilas/Contos
173M    ./Apostilas/Linux Magazine
1,4M    ./Apostilas/Historia_da_informatica
64M    ./Apostilas/Ipv6
388K    ./Apostilas/Musica/Flauta Doce_files/capa_data
12K    ./Apostilas/Musica/Flauta Doce_files/index2_data
440K    ./Apostilas/Musica/Flauta Doce_files
8,0K    ./Apostilas/Musica/tecnicas_files/h_data
224K    ./Apostilas/Musica/tecnicas_files
52K    ./Apostilas/Musica/digitacao_files
2,5M    ./Apostilas/Musica
328K    ./Apostilas/Cubo-magico/rubik_sol_arquivos
768K    ./Apostilas/Cubo-magico
54M    ./Apostilas/Outras revistas
12M    ./Apostilas/Efemerides
1,6M    ./Apostilas/Normas
764K    ./Apostilas/Oracle
1,9M    ./Apostilas/Unimes/Gestao_financeira
22M    ./Apostilas/Unimes/Gestao
102M    ./Apostilas/Unimes/Economia
3,7M    ./Apostilas/Unimes/Infraestrutura_em_ti
980K    ./Apostilas/Unimes/Hardware
4,8M    ./Apostilas/Unimes/Gestao_Software_Livre
2,3M    ./Apostilas/Unimes/Gestao_de_negocios_da_informacao
336K    ./Apostilas/Unimes/Governanca_em_projetos
137M    ./Apostilas/Unimes
500M    ./Apostilas
4,2M    ./Outros
432K    ./Documentos/PFCodAcesso.aspx_arquivos
5,2M    ./Documentos
1,1M    ./Documentacao/Web
3,0M    ./Documentacao/Outros
180K    ./Documentacao/Vulnerabilidades
216K    ./Documentacao/Politica
20K    ./Documentacao/Feitos
512K    ./Documentacao/Backups
28K    ./Documentacao/Pendencias
20K    ./Documentacao/PJ x Clt
1,2M    ./Documentacao/Gateway
1,9M    ./Documentacao/Dr
20K    ./Documentacao/Sistemas de arquivos
8,0M    ./Documentacao
24K    ./Programacao/remoto
424K    ./Programacao
519M    .

Se você reparar bem, verá o tamanho total da pasta atual (última linha) bem como o tamanho de cada subpasta de primeiro nível, as de segundo nível, e assim por diante. Você quiser saber o tamanho somente das pastas, sem duas subpastas, digite:

$ du -sh *
500M    Apostilas
1,8M    Contas
8,0M    Documentacao
5,2M    Documentos
4,2M    Outros
424K    Programacao

Para saber somente o tamanho da pasta atual, digite:

$ du -sh .
519M    .


quarta-feira, 11 de setembro de 2013

Dropbox para Linux

Para quem ainda não conhece, o Dropbox é um serviço de armazenamento na nuvem que oferece 2Gb de espaço gratuito, e esse espaço ainda pode aumentar até 16Gb. Os arquivos podem ser acessados pela web. Aqui vou explicar como instalar o cliente do Dropbox no Linux e selecionar pastas para serem sincronizadas automaticamente com a nuvem.


A primeira coisa a fazer é se cadastrar no site www.dropbox.com. Em seguida, baixe o pacote no endereço abaixo de acordo com a tua distribuição.


No meu caso eu baixei o arquivo dropbox_1.6.0_i386.deb. Em seguida execute, como root, o comando:

# dpkg -i dropbox_1.6.0_i386.deb

Se a instalação ocorrer sem problemas, abra o Dropbox. No Gnome, ele fica em "Aplicativos/Internet".


A tela abaixo deverá aparecer.


Escolha "Já tenho uma conta no Dropbox" e clique em "Seguinte".


Digite os teus dados e clique em "Seguinte". 


Escolha a opção que desejar e clique em "Seguinte".


Escolha "Avançado" e clique em "Seguinte"


Escolha a opção padrão e clique em "Seguinte".

Escolha a segunda opção e clique em "Sincronização seletiva".


Como essa é a segunda máquina que faço, posso escolher qual pasta sincronizar. Essa relação que ele mostra é a que já está na nuvem. Só para efeito de ilustração, vou selecionar somente a pasta "ProgramasRFB". Clique em "Atualizar" e depois em "Instalar".


Agora o sistema abre um pequeno tutorial. Se você não conhece o Dropbox aconselho acompanhar esse manual para saber os recursos que o Dropbox tem. Por exemplo, nesta tela ele já afirma que qualquer alteração nos arquivos do Dropbox serão replicados para todos os equipamentos que a conta possui. Clique em "Pular Tour".


Clique em "Encerrar".


Já vai aparecer um ícone do Dropbox no canto superior direito (se você usa o Gnome clássico) ou no canto inferior direito (se você usa o Gnome Shell). Clicando nele com o botão direito um menu aparecerá mostrando as informações referentes do serviço.

E agora, o pulo do gato para quem usa Linux. Você não precisa mover seus arquivos para a pasta Dropbox para que eles sejam sincronizados. Basta criar um link. Por exemplo, se você quer colocar a pasta Vídeos no dropbox, primeiro crie um link clicando na pasta com o botão direito e escolhendo a opção "Criar link".


 Agora mova o link criado para a pasta do Dropbox e renomei-a para Vídeos. Veja como ficou na imagem abaixo.


A pasta com todos os seus arquivos já foram sincronizados com a nuvem e com a outra máquina que possuo.

sexta-feira, 6 de setembro de 2013

Instalando um pacote com dpkg

As vezes você precisa instalar um programa que não está disponível nos repositórios da distribuição Linux que você usa. Neste caso, se você usa uma distro derivada do Debian, você vai precisar do dpkg. O dpkg é executado automaticamente pelo apt-get e pelo aptitude, mas quando você faz o download do pacote manualmente, o apt não vai resolver o teu problema. Vamos supor que você baixou o pacote "iceweasel.deb". Para instalá-lo, digite como root:

# dpkg -i iceweasel.deb

Se você precisar reconfigurar o pacote, execute:

# dpkg --configure iceweasel

Se quiser saber informações sobre o "iceweasel", digite:

$ dpkg -s iceweasel 
Package: iceweasel
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 10006
Maintainer: Maintainers of Mozilla-related packages
Architecture: i386
Version: 17.0.8esr-1~deb7u1
Provides: gnome-www-browser, www-browser
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.16.0), libgtk2.0-0 (>= 2.10), libnspr4 (>= 2:4.9-2~) | libnspr4-0d (>= 1.8.0.10), libstdc++6 (>= 4.1.1), fontconfig, procps, debianutils (>= 1.16), xulrunner-17.0 (>= 17.0.8esr-1~deb7u1), libsqlite3-0 (>= 3.7.12-1~)
Suggests: fonts-stix | otf-stix, mozplugger, libgssapi-krb5-2 | libkrb53
Breaks: xul-ext-torbutton
Conffiles:
 /etc/iceweasel/pref/iceweasel.js f1bcbce2d713f2f639a9a9db7c3ad228
 /etc/iceweasel/profile/prefs.js 93be5f9524282281f3667126622465b3
 /etc/iceweasel/profile/mimeTypes.rdf 904530787fbba18b4c308f61d98b7fa0
 /etc/iceweasel/profile/localstore.rdf 261033f45887bd20dbce72ea8d0fb34e
 /etc/iceweasel/profile/chrome/userContent-example.css c27e3e72e487dc0351e59ba1fe8d86f5
 /etc/iceweasel/profile/chrome/userChrome-example.css fbfca410cac55d488681dc195a16d9e0
 /etc/iceweasel/profile/bookmarks.html f1bdc87110734c387740b3454b8fedb5
 /etc/iceweasel/searchplugins/common/duckduckgo.xml 10875ea748c00bec65f896c0e8b4cb27
 /etc/iceweasel/searchplugins/common/debsearch.xml 626edd789818df62e5980799dcdb2b71
 /etc/iceweasel/searchplugins/locale/en-US/yahoo.xml 0f60b8553cc11238aa83c0676d353cd0
 /etc/iceweasel/searchplugins/locale/en-US/wikipedia.xml 4bf0b9bb9dadd8ef93129a90c047b732
 /etc/iceweasel/searchplugins/locale/en-US/twitter.xml 2349c3ba24652f25519dfde46b36b101
 /etc/iceweasel/searchplugins/locale/en-US/google.xml f44e88cd631f9c92c0cba9d603663ac1
 /etc/iceweasel/searchplugins/locale/en-US/eBay.xml 38b8e877633189e3604b423aca30e605
 /etc/iceweasel/searchplugins/locale/en-US/bing.xml 0df4ccff8b3ffd8a4e7fbc0e8300d739
 /etc/iceweasel/searchplugins/locale/en-US/amazondotcom.xml 7789a0fcebe1a90c7ce4d14633bbba3a
 /etc/iceweasel/iceweaselrc a7f1bcffd6febdb02e86652a60ebfd16 obsolete
Description: Web browser based on Firefox
 Iceweasel is Firefox, rebranded. It is a powerful, extensible web browser
 with support for modern web application technologies.

Para saber a lista de arquivos do pacote iceweasel., digite:

$ dpkg -L iceweasel

A opção "-l" dá um pequeno resumo do pacote.

$ dpkg -l iceweasel
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Nome                                        Versão                    Arquitectura          Descrição
+++-===========================================-==========================-==========================-===========================================================================================
ii  iceweasel                                   17.0.8esr-1~deb7u1         i386                       Web browser based on Firefox

Se quiser saber qual pacote contém o binário iceweasel, digite:

$ dpkg -S bin/iceweasel
iceweasel: /usr/bin/iceweasel

Bem, essas são as principais opções do dpkg. Ele é um programa essencial nas distribuições baseadas em Debian e certamente esse comando estará presente se você usa Debian, Mint, Ubuntu, etc.

quinta-feira, 5 de setembro de 2013

Corrigindo sistemas de arquivos MSDOS

Alguns pendrives e cartões de memória antigos podem ainda estar usando o sistema de arquivos MS-DOS (FAT16). Esse sistema é corrompido facilmente. Mas para recuperá-lo, o Linux tem o fsck.msdos. Para instalá-lo, digite:

# apt-get install dosfstools

Supondo que o cartão esteja instalado em /dev/sdb, digite:

# fsck.msdos -av /dev/sdb1
dosfsck 3.0.13 (30 Jun 2012) dosfsck 3.0.13, 30 Jun 2012, FAT32, LFN
Checking we can access the last sector of the filesystem
Boot sector contents:
System ID "mkdosfs"
Media byte 0xf8 (hard disk)
       512 bytes per logical sector
      8192 bytes per cluster
        16 reserved sectors
First FAT starts at byte 8192 (sector 16)
         2 FATs, 16 bit entries
    131072 bytes per FAT (= 256 sectors)
Root directory starts at byte 270336 (sector 528)
       512 root directory entries
Data area starts at byte 286720 (sector 560)
     62465 data clusters (511713280 bytes)
32 sectors/track, 64 heads
         0 hidden sectors
   1000000 sectors total
Reclaiming unconnected clusters.
/dev/sdb1: 20 files, 480/62465 clusters
#


quarta-feira, 4 de setembro de 2013

Veja vídeos e fotos de forma rápida com Display

Uma forma de ver fotos e videos de uma forma rápida é usando o comando "display" disponível no pacote "graphicsmagick-imagemagick-compat".

Para ver um arquivo digite:

$ display foto.jpeg


É uma forma rápido e simples de ver fotos. Se quiser ver várias fotos é só digitar, por exemplo, o comando:

$ display *.jpeg

Agora basta usar as setas de navegação para navegar pelas fotos.

Para instalar o programa, basta digitar:

# apt-get install graphicsmagick-imagemagick-compat

terça-feira, 3 de setembro de 2013

Dig, utilitário para consulta de nomes

O dig é outro utilitário usado para consultar nomes. Sua sintaxe é simples:

$ dig ricardoolonca.blogspot.com.br
; <<>> DiG 9.7.3 <<>> ricardoolonca.blogspot.com.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- 5669="" br="" id:="" noerror="" opcode:="" query="" status:="">;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ricardoolonca.blogspot.com.br.    IN    A

;; ANSWER SECTION:
ricardoolonca.blogspot.com.br. 141 IN    CNAME    blogspot.l.googleusercontent.com.
blogspot.l.googleusercontent.com. 138 IN A    74.125.234.44
blogspot.l.googleusercontent.com. 138 IN A    74.125.234.43
blogspot.l.googleusercontent.com. 138 IN A    74.125.234.42

;; Query time: 41 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Mon Aug 19 05:42:32 2013
;; MSG SIZE  rcvd: 141


Para consulta o servidor mx:

$ dig -q-type=mx google.com
; <<>> DiG 9.7.3 <<>> -q-type=mx google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- 14288="" br="" id:="" nxdomain="" opcode:="" query="" status:="">;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;-type=mx.            IN    A

;; AUTHORITY SECTION:
.            10800    IN    SOA    a.root-servers.net. nstld.verisign-grs.com. 2013081900 1800 900 604800 86400

;; Query time: 41 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Mon Aug 19 05:44:09 2013
;; MSG SIZE  rcvd: 101

;; Got answer:
;; ->>HEADER<<- 29147="" br="" id:="" noerror="" opcode:="" query="" status:="">;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.            IN    A

;; ANSWER SECTION:
google.com.        288    IN    A    190.98.170.168
google.com.        288    IN    A    190.98.170.172
google.com.        288    IN    A    190.98.170.148
google.com.        288    IN    A    190.98.170.157
google.com.        288    IN    A    190.98.170.152
google.com.        288    IN    A    190.98.170.183
google.com.        288    IN    A    190.98.170.163
google.com.        288    IN    A    190.98.170.167
google.com.        288    IN    A    190.98.170.182
google.com.        288    IN    A    190.98.170.158
google.com.        288    IN    A    190.98.170.178
google.com.        288    IN    A    190.98.170.153
google.com.        288    IN    A    190.98.170.162
google.com.        288    IN    A    190.98.170.173
google.com.        288    IN    A    190.98.170.187
google.com.        288    IN    A    190.98.170.177

;; Query time: 43 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Mon Aug 19 05:44:09 2013
;; MSG SIZE  rcvd: 284


Todos esses servidores respondem pelos e-mail.

segunda-feira, 2 de setembro de 2013

Acesso remoto pelo Chrome

É possível fazer acesso remoto através de um plugin do Chrome, o Chrome Remote Desktop. Após instalar o plugin, ao abrir uma nova aba, o ícone aparecerá.

Sua utilização é simples. Primeiro clique no ícone "Chrome Remote Desktop". A tela abaixo aparecerá.



Para compartilhar sua área de trabalho, clique em "Share".


O plugin gera um código aleatório. Esse número deverá ser passado para a pessoa que for acessar sua máquina. Este deverá instalar o plugin e clicar no botão "Access". A tela abaixo aparecerá pedindo o código gerado no passo anterior.


Pronto! O legal é que você pode acessar qualquer máquina que tenha o Chrome instalado, independente do sistema operacional.