quarta-feira, 30 de abril de 2014

Como apagar arquivos desnecessário no Linux

O pessoal do Windows está acostumado a usar ferramentas como o CCleaner para apagar arquivos desnecessário, como temporários e de cache. No Linux temos o BleachBit.


Você pode escolher os tipos de arquivos que quer apagar selecionando-os no lado esquerdo da tela. Após clique em Limpar.


Agora clique em Excluir.


Ao final do processo eu consegui quase 2Gb de espaço. 

O BleachBit pode ser instalado com o comando:

# apt-get install bleachbit


sexta-feira, 25 de abril de 2014

Instalação do ProFTP

O ProFTP é o principal servidor de FTP em uso no mundo. Ao contrário do ftpd, o ProFTP contém muitas opções de configuração e ajustes. Se você precisa de um servidor de FTP parrudo, sua opção será o ProFTP. Para instalá-lo, digite:

# apt-get install proftpd

Agora é necessário configurá-lo. Abra o arquivo /etc/proftpd/proftpd.conf

# vi /etc/proftpd/proftpd.conf

A primeira opção importante é a ServerType. É necessário analisar se o servidor será muito usado, ou se ficará a maior parte do tempo ocioso. Se esse for o caso, é interessante deixá-lo como inetd. Essa opção faz com que o ProFTP só seja executado quando houver alguma requisição para ele. O Inetd (ou outro programa semelhante, como xinetd e openbsd-inetd) fica monitorando as requisições da porta 21 usada pelo protocolo FTP e chama o programa proftpd para tratar essas requisições. Isso economiza recursos, uma vez que o programa servidor só estará realmente rodando quando for necessário. Agora, se o servidor FTP for muito acessado será interessante deixar que ele rode como standalone, ou seja, ele mesmo cuidará das requisições de FTP. No meu caso, ele ficará como inetd

ServerType inetd

Dependendo de qual programa inetd você está usando, a configuração pode ser um pouco diferente. Na minha máquina estou usando o openbsd-inetd. Nesse sistema é necessário verificar se existe uma linha semelhante a essa no arquivo /etc/inetd.conf.

ftp             stream  tcp     nowait  root    /usr/sbin/proftpd       /usr/sbin/in.ftpd

Foge ao objetivo desse artigo explicar essa linha. Para mais informações consulte a documentação do programa inetd. Agora é necessário reiniciar o openbsd-inetd.

# /etc/init.d/openbsd-inetd restart

A partir de agora o inetd estará ouvindo a porta 21. Para verificar se isso está ocorrendo digite:

$ netstat -na | grep :21
tcp        0      0 0.0.0.0:21              0.0.0.0:*               OUÇA      

Podemos também verificar quem está escutando a porta 21.

$ lsof -i tcp:21

Não houve retorno. Vamos ver se o ProFTP está rodando.

$ ps wax | grep proftp
 4278 pts/0    S+     0:00 grep --color=auto proftp

O ProFTP não está rodando. Vamos tentar a conexão.

$ ftp localhost
ftp: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
220 ProFTPD 1.3.1 Server (Debian) [127.0.0.1]
Name (localhost:ricardo): ricardo 
331 Password required for ricardo
Password:
230 User ricardo logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

Reparem que primeiramente a conexão foi recusada. Isso porque o inted leva um tempo para subir o ProFTP. Mas na segunda tentativa a conexão foi feita. E reparem também que foi o ProFTP quem recebeu a conexão.

E agora vejamos novamente quem está usando a porta 21.

$ lsof -i tcp:21
COMMAND  PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
ftp     2387 ricardo    3u  IPv4 5887019      0t0  TCP localhost:53469->localhost:ftp (ESTABLISHED)
ftp     2387 ricardo    4u  IPv4 5887019      0t0  TCP localhost:53469->localhost:ftp (ESTABLISHED)
ftp     2387 ricardo    5u  IPv4 5887019      0t0  TCP localhost:53469->localhost:ftp (ESTABLISHED)

Vamos ver se o ProFTP está rodando.

$ ps wax | grep proftp
 4325 ?        Ss     0:00 proftpd: connected: 172.20.120.4 (172.20.120.4:53512)
 4367 pts/2    S+     0:00 grep --color=auto proftp

Exatamente como falei, o ProFTP está rodando. Se eu desconectar do FTP o ProFTP deve ser retirado na memória.

ftp> bye
221 Goodbye.
$ ps wax | grep proftp
 7222 pts/2    S+     0:00 grep --color=auto proftp

Exatamente como previsto. Uma outra vantagem em usar o inetd é que não é necessário reiniciar o ProFTP quando seus arquivos de configuração são alterados.

Você pode querer que o usuário tenha acesso somente ao seu drive home. Para isso, descomente, no arquivo /etc/proftpd/proftpd.conf , a diretiva abaixo.

DefaultRoot                   ~

Também pode ser interessante filtrar os usuários que terão acesso ao FTP. Uma forma de fazer isso é validando somente aqueles que possuem um shell válido (uma entrada no arquivo /etc/passwd com bash ou sh, por exemplo). A seguinte diretiva faz isso.

RequireValidShell             on

Você também pode incluir os usuários que não deverão ter acesso ao FTP colocando-os no arquivo /etc/ftpusers.

Se você precisar configurar o FTP anônimo (FTP público), abra o arquivo /etc/proftpd/proftpd.conf e descomente as linhas do bloco e certifique-se de que o usuário ftp não esteja no arquivo  /etc/ftpusers.

Agora é possível usar o FTP para disponibilizar publicamente seus arquivo. Você também pode usar o ProFTP para servir arquivos de outros sites. Para isso edite o arquivo /etc/proftpd/virtuals.conf

O ProFTP ainda tem muitas outras opções que certamente vão te atender.

quarta-feira, 23 de abril de 2014

Ferramentas gráficas para administração geral

O Gadmin é um conjunto de ferramentas gráficas que facilitam a administração de várias aplicações servidoras. 


Ele tem suporte aos seguintes programas:
  • Dhcpd
  • Squid
  • Bind
  • Proftpd
  • Samba
  • Openvpn-client
  • Openvpn-server
  • Rsync
  • PostgreSQL

Cada módulo pode ser instalado separadamente através do gerenciador de pacotes da tua distribuição. No Debian, para instalar o módulo do Squid, basta digitar na linha de comando, como root:

# apt-get install gadmin-squid

terça-feira, 22 de abril de 2014

Uma interface gráfica para o iptables

Um dos grandes obstáculos para quem está começando a usar o iptables é entender a sua interface de linha de comando. Veja o exemplo abaixo.

# iptables -t nat -A PREROUTING -s 172.16.1.12 -d 8.8.8.8 -p udp --dport 53 -j DNAT --to-destination 172.20.1.1

Temos que admitir que pegar um firewall com 200 linhas parecidas com essa aí para administrar é um pouco sinistro até para quem já conhece o iptables, quanto mais para quem está começando.

O Fwbuider é uma ferramenta gráfica que torna a administração do iptables semelhante a do Checkpoint.


A idéia é criar as regras baseadas em objetos. Há vários objetos que podem ser criados, como sites, IPs, redes, portas, protocolos, etc. Os objetos podem ser arrastados para dentro das regras. Além de facilitar a administração ocultando a linha de comandos do Iptables com o Fwbuilder você pode checar se as regras estão corretas e se há regras conflitantes ou duplicadas. Somente depois de você se certificar de que tudo está correto é que as regras poderão ser aplicadas nos equipamentos. Também é possível administrar vários equipentos usando uma única interface.

Vamos começar instalando um Fwbuilder.

# apt-get install fwbuilder

Agora basta chamá-lo pela linha de comando para que a tela acima seja exibida.

$ fwbuilder

Clique no botão Create new firewall. Digite o nome do equipamento. É necessário também dizer que tipo de firewall você tem. O Fwbuilder tem suporte ao ASA, Iptables, IPFW, entre outros conforme podemos ver nas figuras abaixo.




É possível deixar o Fwbuilder encontrar as interfaces de rede sozinho, ou especificar manualmente. Eu escolhi manual.


Essa é atela de configuração do meu novo firewall. Do lado esquerdo estão os objetos.  Na parte da direita temos a regras de firewall, NAT e rotas da nossa política. Ainda não temos nehuma regra. Clicando em um objeto qualquer será mostrada, na parte de baixo, os dados deste objeto.


Vamos criar nosso primeiro objeto. No lado esquerdo, abra a pasta Objects e clique com o botão direito na Address e escolha New address. Na parte de baixo digitamos o nome do objeto (Administrador) e o seu IP (172.20.120.4).


Podemos também criar objetos de portas TCP/UDP, mas no campo Library localizado logo abaixo nos ícones, já há uma lista com as portas mais conhecidas.


Vamos clicar no nosso objeto firewall e dar um duplo clique em Routing para podermos criar os roteamentos. Agora, no lado direito, clique com o botão direito e escolha Insert New Rule.



Podemos arrastar os objetos para criar as regras. Crie os objetos necessários, como gateways de rede, portas TCP e UDP e redes. Também é possível agrupar objetos. 

Agora vamos criar as regras de firewall. Dê um duplo clique em Policy. Agora, no lado direito, clique com o botão direito e escolha Insert New Rule. Agora arraste os objetos necessários para criar as regras de firewall. Você pode colocar um comentário em cada regra para facilitar a administração.

Para quem está acostumado com as regras do Iptables, é possível verificar como ela será traduzida pelo Fwbuilder quando for aplicada no servidor. Para isso, clique com o botão direito na regra e escolha Compile Rule X. Na parte de baixo serão mostrados os comandos necessários para que a regra seja aplicada. 


É possível agrupar as regras. Por exemplo, podemos agrupar todas as regras da equipe de TI, outro grupo para regras de um sistema específico, etc. Para fazer isso, selecione as regras e clique com o botão direito. Agora escolha New Group.


Após digitar o nome, as regras ficarão agrupadas conforme a imagem abaixo.


Antes de aplicar as regras ao teu firewall é necessário salvar a política. Clique no ícone do Save.


Escolha o nome do arquivo e clique em Gravar. Agora vamos compilar a política clicando no ícone Compile. Esse processo verifica se tudo está ok, se não há regras conflitantes ou duplicadas.


Certifique-se de que o campo Compile esteja selecionado. Clique em Next.


Cheque as mensagens de erro. No nosso caso a política está correta. Clique em Finish. Agora vamos aplicar a política ao firewall. Clique no ícone Install.


Certifique-se de que o campo Install esteja selecionado e clique em Next. Antes de aplicar a política, é necessário criar a pasta /etc/fw no firewall.



Agora você precisa colocar os dados para conectar no firewall. Digite o usuário (geralmente o root) e a senha e clique em Install. 


Repare se na tela apareceu Sucess. Pronto! As regras de firewall e de NAT e os roteamentos foram configurados. É interessantes criar um link simbólico no firewall da seguinte forma:

# ln -s /etc/fw/Gateway_ipv6.fw /etc/init.d/firewall

Agora habilite o script firewall para iniciar no boot do firewall.

# chkconfig firewall on

Pode pode alterar a política simplesmente arrastando os objetos para a minha lista de regras, como no print abaixo.


Você pode montar um cluster de firewall. Para isso, adicione o segundo firewall. Clique com o botão direito na aba Cluster e clique em New Cluster.


Digite o nome do cluster e selecione os equipamentos que farão parte do cluster, bem como quem será o master. 

Clique em Next.


Aqui precisamos associae as interfaces de rede dos equipamentos. Clique em Next.


Escolha o protocolo usando no cluster, bem como os IPs virtuais que cada interface terá. Depois clique em Next.


Se os equipamentos já possuírem políticas você pode escolher de qual deles você vai importar para o cluster. Ou, no nosso caso, escolhemos a primeira opção que nos permitirá criar uma nova política. Clique em Next.


Aqui um resumo do nosso cluster. Clique em Fisich. Crie as regras de firewall, NAT e roteamentos. Quando for aplicar a política no cluster a seguinte tela irá aparecer.


Neste caso a política será aplicada em ambos os equipamentos. Você pode aplicar em apenas um deles se quiser.

O Fwbuilder é muito útil na administração de vários firewall, ou em ambientes onde o administrador do equipamento não conhece o Iptables. É possível administrar totalmente um firewall sem ter conhecimento algum em Iptables.

















sexta-feira, 4 de abril de 2014

Linux Olonca Live CD 2013

Qual a melhor distribuição Linux? A melhor é aquela personalizada por você mesmo. Por isso eu disponibilizei a iso da minha distribuição Linux Live CD personalizada no abaixo.


O hash md5 é:

cf4e501ff1ab9ea207c949a8d48d5604

Ela é baseada no Debian, usa interface Gnome 3 Clássica e possui a maioria dos programas apresentados neste blog. Ela também possui um instalador texto, mas um instalador gráfico mais atual está disponível no endereço:







quinta-feira, 3 de abril de 2014

Instalando um servidor FTP

A forma mais comum das empresas compartilharem arquivos pela internet é usando um FTP. No artigo anterior vimos como usar o cliente FTP. Agora vou mostrar como instalar o servidor.

O Ftpd é o mais simples dos servidores de FTP que conheço. Ele é mais leve que as outras opções mais conhecidas no mundo Linux, como o Proftpd e o Wu-ftpd. Para instalá-lo é simples:

# apt-get install ftpd

Após a instalação, dois arquivos precisam ser configurados. O primeiro é o /etc/ftpchroot. Nele nós listamos os usuários que deverão ter acesso somente à sua pasta home. Ou seja, quando esses usuários se conectarem via FTP eles não verão as pasta do sistema (/usr, /var, /etc), apenas conseguirão ver as pastas pessoais (geralmente /home/usuário). O segundo arquivo é o /etc/ftpusers. Ao contrário do que parece, aqui deverão ser cadastrados os usuários que NÃO deverão ter acesso ao FTP. Por padrão, o Ftpd não permite o login do root. Também não permite login anônimo. Se quiser habilitar o acesso público é só retirar o usuário anonymous do arquivo /etc/ftpusers.

Como podemos ver, o Ftpd é bem simples e resolve a maioria dos casos. Mas se você precisar de algo mais parrudo ou com mais opções de segurança experimente o Wu-ftpd, ou o Proftpd.



quarta-feira, 2 de abril de 2014

Acessando FTP pela linha de comando

Se você não tem um ambiente gráfico no momento e precisa acessar um FTP, é simples.

$ ftp endereço_do_ftp

Por exemplo, para conectar no servidor 10.50.0.32 eu uso:

$ ftp 10.50.0.32
Connected to 10.50.0.32.
220 ProFTPD 1.3.3a Server (FTP Fundacao Padre Anchieta) [200.136.27.145]
Name (10.50.0.32:ricardo): ricardoolonca

Se for acesso anônimo, use o usuário "anonymous". Aqui eu usei o meu  usuário.

331 Password required for ricardoolonca
Password:

Digite a senha. Para "anonymous" use um endereço de e-mail qualquer (nem precisa ser válido).

230 User ricardoolonca logged in
Remote system type is UNIX.
Using binary mode to transfer files.

Para ver os arquivo do FTP use "ls"

>ls
500 Illegal PORT command
ftp: bind: Address already in use

Se a mensagem acima aparecer, então algum sistema de segurança está impedindo o acesso via FTP Ativo. Vamos usar o modo passivo. 

ftp> passive
Passive mode on.

Vamos executar novamente o comando "ls".

ftp> ls
227 Entering Passive Mode (200,136,27,145,250,247).
150 Opening ASCII mode data connection for file list
drwxr-xr-x   2 ricardoolonca ricardoolonca               96 Feb    1  2013 bin
drwx------    2 ricardoolonca ricardoolonca             160 Jul   26   2013 Dropbox
-rw-r--r--     1 ricardoolonca ricardoolonca 5198323960 Mar  5  20:35 Full_20140305.tar.bz2
-rw-r--r--     1 ricardoolonca ricardoolonca 2000231846 Apr   1  13:51 Full20140401.tar.bz2
drwxr-xr-x   3 ricardoolonca ricardoolonca                72 Oct 28   2012 Justica Eleitoral
drwxr-xr-x   4 ricardoolonca ricardoolonca              104 Jun 10   2013 Programas
drwxr-xr-x   3 ricardoolonca ricardoolonca                72 Oct 28  04:00 Spark
drwxr-xr-x   2 ricardoolonca ricardoolonca                48 Feb 16  11:49 teste
drwxr-xr-x   4 ricardoolonca ricardoolonca              128 Apr  2   16:46 tmp
drwxr-xr-x   3 ricardoolonca ricardoolonca                72 Jan 28   04:00 tor-browser_pt-PT
226 Transfer complete

Para entrar em uma pasta use "cd".

ftp> cd tmp
250 CWD command successful
ftp> ls
227 Entering Passive Mode (200,136,27,145,235,116).
150 Opening ASCII mode data connection for file list
-rw-r--r--   1 ricardoolonca ricardoolonca       182 Apr  2 16:46 20140401.txt
drwxr-xr-x   2 ricardoolonca ricardoolonca       48 Apr  2 16:44 cmais
drwxr-xr-x   2 ricardoolonca ricardoolonca       80 Jun 10  2013 cmais2
226 Transfer complete

Para verificar a pasta local (da tua máquina, não do servidoir FTP) use "lcd".

ftp> lcd
Local directory now /home/ricardo

Para mudar a pasta local use "lcd" passando a pasta como parâmetro.

ftp> lcd tmp
Local directory now /home/ricardo/tmp

Para baixar um arquivo use "get", ou "mget" para vários arquivos.

ftp> get 20140401.txt
local: 20140401.txt remote: 20140401.txt
227 Entering Passive Mode (200,136,27,145,235,51).
150 Opening BINARY mode data connection for 20140401.txt (182 bytes)
226 Transfer complete
182 bytes received in 0.00 secs (1468.9 kB/s)

Para enviar um arquivo para o FTP use "put", ou "mput" para enviar vários arquivos.

ftp> mput *.txt* 
mput 20140401.txt? y
227 Entering Passive Mode (200,136,27,145,242,217).
150 Opening BINARY mode data connection for 20140401.txt
226 Transfer complete
182 bytes sent in 0.00 secs (3863.8 kB/s)
mput 20140401.txt~? y
227 Entering Passive Mode (200,136,27,145,245,154).
150 Opening BINARY mode data connection for 20140401.txt~
226 Transfer complete
127 bytes sent in 0.04 secs (3.1 kB/s)
mput 20140402.txt? y
227 Entering Passive Mode (200,136,27,145,238,232).
150 Opening BINARY mode data connection for 20140402.txt
226 Transfer complete
238 bytes sent in 0.00 secs (12912.3 kB/s)
mput 20140402.txt~? y
227 Entering Passive Mode (200,136,27,145,253,37).
150 Opening BINARY mode data connection for 20140402.txt~
226 Transfer complete
205 bytes sent in 0.00 secs (4085.6 kB/s)

Se for transferir arquivos binários execute primeiro "binary".

ftp> binary
200 Type set to I

Para mais opções, digite "help".

ftp> help
Commands may be abbreviated.  Commands are:

! dir mdelete qc site
$ disconnect mdir sendport size
account exit mget put status
append form mkdir pwd struct
ascii get mls quit system
bell glob mode quote sunique
binary hash modtime recv tenex
bye help mput reget tick
case idle newer rstatus trace
cd image nmap rhelp type
cdup ipany nlist rename user
chmod ipv4 ntrans reset umask
close ipv6 open restart verbose
cr lcd prompt rmdir ?
delete ls passive runique
debug macdef proxy send

Para sair do ftp digite "bye".

ftp> bye
221 Goodbye.


terça-feira, 1 de abril de 2014

Configuração do Cacti

O Cacti é uma ferramenta usada para fazer o monitoramento dos equipamentos. Ele gera gráficos estatísticos de rede, disco, memória e processador. Seu uso está mais voltado para análises de capacidade e cresicmento do ambiente, e não na análise de disponibilidade, como o Zabbix e o Nagios.

Cacti usa, por padrão, o protocolo SNMP (Simple Network Message Protocol), que é o protocolo padronizado para uso em monitoramento de rede. Quase todos os equipamentos de rede usam o SNMP, inclusive switch e roteadores. Por isso a utilização do Cacti provavelmente não vai quererer nenhum tipo de instalação de clientes nos equipamento monitorados.

Para instalar o sistema use o apt-get.

# apt-get install cacti

Uma tela aparecerá perguntando se deseja configurar a base de dados. Escolha SIM.



A próxima tela você deve inserir a senha do administrador do teu banco de dados. 


Nesta tela deve ser informada a senha que o Cacti usará para se conectar ao banco de dados. Você pode deixar essa linha em branco e o Cacti vai gerar uma senha aleatória.



Selecione o servidor web que você usa. No meu caso, Apache2


Após o processo terminar, abra um navegador e acesse:

http://ip_do_servidor_cacti/cacti

A tela seguinte irá aparecer.



Clique em Next


Como estamos fazendo uma instalação nova, escolha New Install e clique em Next. Na tela seguinte será feito um checagem para verificar se o servidor contém tudo o que o Cacti precisa para funcionar.


Clique em Finish.



O usuário e senha padrão do Cacti é admin. Digite admin em User Name e admin em Password. No primeiro acesso será solicitada uma nova senha.
 

Agora vamos instalar o primeiro servidor para monitorar, que é o próprio servidor Cacti. Primeiro instale o SMNP.

# apt-get install snmpd

Agora, na interface web, clique em Devices e depois em Localhost


Em SNMP Version, escolha Version 1. Não vou entrar em detalhes de segurança neste momento. Repare em Hostname. Aqui deve ser digitado o nome ou endereço IP do servidor. Neste caso é 127.0.0.1. Clique em Save no final da página. Agora, no menu a esquerda, clique em Graph Tree e depois em Default Tree. Agora clique em Add.


Em Tree Item Type escolha Graph. Em Graph deve haver 4 tipos de gráficos. Escolha o primeiro e clique em Create. Repita o processo para os 3 outros gráficos. Ao final, sua tela deverá estar parecida com esta abaixo.


Aguarde algumas horas para que o Cacti possa coletar dados e gerar os gráficos. Para vê-los, clique em graphs no menu acima.


Agora é só configurar os outros servidores.