domingo, dezembro 27, 2009

Configuração Avançada do YUM

Configuração Avançada do YUM


Introdução

O YUM é a ferramenta padrão para gerenciamento de pacotes das distribuições FEDORA, REDHAT e CENTOS. Semelhante ao APT-GET utiliza repositórios remotos para distribuir pacotes tanto oficiais como desenvolvidos por terceiros.
Este tutorial orienta sobre como utilizar o YUM de maneira avançada, isto é, configurando plugins e outras opções de configuração com recursos interessantes.

Os passos aqui desenvolvidos foram executados em um CENTOS 5.4. Dependendo da distribuição utilizada poderão haver mudanças.


Arquivos de Configuração

O YUM utiliza os seguintes diretórios e arquivos de configuração:


/etc/yum.conf
/etc/yum.repos.d
/etc/yum/pluginconf.d
/etc/logrotate.d/yum


[root@hermes ~]# cd /etc/yum.repos.d/

[root@hermes yum.repos.d]# ls

CentOS-Base.repo  CentOS-Media.repo  Citrix.repo  epel.repo  epel-testing.repo  
mirrors-rpmforge  remi.repo  rpmforge.repo




[root@hermes yum.repos.d]# cd /etc/yum/

[root@hermes yum]# ls

pluginconf.d

[root@hermes yum]# cd pluginconf.d/

[root@hermes pluginconf.d]# ls

fastestmirror.conf   security.conf







Arquivo comentado: /etc/yum.conf



[root@hermes ~]# cat /etc/yum.conf

[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1

# Set to ‘1’ if you wish to show any duplicate packages from any repository, from package listings like the info or list commands
showdupesfromrepos=1

# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h

installonly_limit = 5

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
[root@hermes ~]# man yum.conf
[root@hermes ~]# cat yum.conf
cat: yum.conf: No such file or directory
[root@hermes ~]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
showdupesfromrepos=1

# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h

installonly_limit = 5

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d




Plugin: yum-security


O pacote yum-security instala um plugin capaz de executar updates de pacotes que estejam marcados com problemas de segurança e vulnerabilidades. Isto é extremadamente útil, pois nem sempre é necessário fazer um update de pacotes apenas para obter a versão mais recente.

As informações sobre problemas de segurança e vulnerabilidades são obtidas a partir das seguintes fontes:

  • RedHat advisory
  • RedHat Bugzilla database
  • CVE number from MITRE's Common Vulnerabilities and Exposures directory

Para instalar o pacote basta executar como root: yum install yum-security

Após a instalação do pacote estão disponíveis novos comandos no yum:

  • yum list-sec: lista os pacotes utilizando o RedHat Advisory ID e a classificação de cada update conforme os tipos enhancement, bugfix ou security.
  • yum list-sec cves: lista os pacotes substituindo o RedHat Advisory ID pelo CVE ID.
  • yum list-sec bzs: lista os pacotes utilizando o RedHat Bugzilla ID

Caso um pacote tenha vários registros estará listado vários vezes.

Para pode instalar apenas os pacotes com problemas de segurança executar como root: 
yum update --security

Caso seja escolhido instalar apenas um pacote específico utilizar o comando: 
yum update --bz 410101

O comando acima instala o pacote cujo RedHat Bugzilla ID é o 410101

Outro comando disponível é o yum info-sec <advisory-number> que fornece informações detalhadas sobre as vulnerabilidades envolvidas no pacote.

















quinta-feira, maio 21, 2009

Problemas com RBLs




Minha atual configuração de RBLs no Postfix


reject_rbl_client zen.spamhaus.org,

reject_rbl_client dul.dnsbl.sorbs.net,

reject_rbl_client list.dsbl.org,

reject_rbl_client cbl.abuseat.org,

reject_rbl_client bl.spamcop.net,

reject_rbl_client ix.dnsbl.manitu.net,

reject_rbl_client combined.rbl.msrbl.net,

reject_rbl_client l2.apews.org,



Porém depois de aplicar o seguinte comando:



[root@prometeu log]# cat maillog | grep 'RBL lookup error' | wc -l

19875



É possível observar uma taxa muito alta de erros.



A documentação não é muito clara no sentido. A zen.spamhaus.org comunica que se o número de consultas for superior a um limite estabelecido então a conexão será cortada a não ser que seja feito um contrato profissional.



Revisando cada RBL conforme os comandos abaixo:



[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'zen.spamhaus.org' | wc -l

73

[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'dul.dnsbl.sorbs.net' | wc -l

0

[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'list.dsbl.org' | wc -l

9557

[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'cbl.abuseat.org' | wc -l

1

[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'bl.spamcop.net' | wc -l

3

[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'ix.dnsbl.manitu.net' | wc -l

3

[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'combined.rbl.msrbl.net' | wc -l

0

[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'l2.apews.org' | wc -l

0

[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'sbl-xbl.spamhaus.org' | wc -l

10241







RBLs que atualmente estão funcionando:





                                 reject_rbl_client dnsbl.njabl.org,

                                 reject_rbl_client dul.dnsbl.sorbs.net,

                                 reject_rbl_client cbl.abuseat.org,

                                 reject_rbl_client bl.spamcop.net,

                                 reject_rbl_client ix.dnsbl.manitu.net,

                                 reject_rbl_client combined.rbl.msrbl.net,

                               


A RBL l2.apews.org foi retirada por ser restritiva demais e gerar um alto número de falsos positivos.


quinta-feira, maio 14, 2009

Tópicos para Programar C em Linux



Tópicos para Programar C em Linux


Os seguintes exemplos abaixo permitem iniciar a programação em C com o Linux. Foram retirados do Site VIVAOLINUX.
Claro que para a UFRGS é inútil, pois os professores dos primeiros semestres só conseguem ajudar utilizando compiladores
e recursos da M$.

1) Para compilar um programa em C a partir do linux.

$ gcc pessoal1.c -o pessoal1

2) Exemplo de programa C em Linux.


#include <stdio.h>
int main()
{
printf("oi, pessoal! \n");
while(!getchar());
return 0;
}

3) Exemplo completo de programa com compilação.


$ gcc -Wall /home/pirrola/hello.c -o /home/pirrola/hello

Executando:

$ ./hello

O programa de exemplo:


#include
int main (){
printf ("Hello, world!\n");
while(!getchar());
return 0;
}