Regras de Iptables para bloque ataques Brutal Force no OpenSSH

iptables -A INPUT -p tcp –syn –dport 22 -m recent –name sshattack –set

iptables -A INPUT -p tcp –dport 22 –syn -m recent –name sshattack
–rcheck –seconds 60 –hitcount 3 -j LOG –log-prefix ‘SSH REJECT: ‘

iptables -A INPUT -p tcp –dport 22 –syn -m recent –name sshattack
–rcheck –seconds 60 –hitcount 3 -j REJECT –reject-with tcp-reset

iptables -A FORWARD -p tcp –syn –dport 22 -m recent –name sshattack
–set

iptables -A FORWARD -p tcp –dport 22 –syn -m recent –name sshattack
–rcheck –seconds 60 –hitcount 3 -j LOG –log-prefix ‘SSH REJECT: ‘

iptables -A FORWARD -p tcp –dport 22 –syn -m recent –name sshattack
–rcheck –seconds 60 –hitcount 3 -j REJECT –reject-with tcp-reset

Posted in Sem categoria

Criando Engenie de busca para firefox

Artigo retirado do Dicas-L da Unicamp

Adicionando o apt-get.org à barra de busca do firefox

Colaboração: Conrado Pinto Rebessi

Para aqueles que usam Debian, e por vezes querem algum software que não está na distro principal, o apt-get.org eh um grande amigo.

Dias atrás navegando em um site de busca, percebi um link para adicionar a busca ao firefox. Cliquei no link, reiniciei o firefox e ‘voilá!’ a busca já estava na barra do firefox, e funcionando!

Comecei então a pensar, como fazer isto para o apt-get.org, q eu uso mais que este site de busca? Fiz alguns testes e cheguei à rsposta:

O firefox (pelo menos no 1.0.4) guarda os plugins de busca no diretório: /usr/lib/mozilla-firefox/searchplugins

Entrando neste diretório, vemos que para cada site de busca, existem 2 arquivos, por exemplo, debsearch.gif e debsearch.src. O arquivo .gif é o icone que vai aparecer na barra de busca (pode ser gif ou png) O arquivo .src é o que contém as informações de busca (url, parametros, etc)

Mãos à obra então!

Baixei da net um ícone, e guardei em /tmp/check.png. Copiei este icone para a pasta:

cp /tmp/check.png /usr/lib/mozilla-firefox/searchplugins/aptgetorg.png

e criei o arquivo aptgetorg.src, com o conteudo:

# Apt-get.org plug-in to firefox by conradopinto at yahoo dot com dot br @ 14/06/2006

version = “1.0”
# Nome que vai aparecer na combo-box de buscas
name=”Apt-Get.org”
# Descrição
description=”Apt-Get.org Unnoficial Debian Packages Search”
# Método HTML
method=”get”
# página de pesquisa
action=”http://www.apt-get.org/search.php”
>

# Dados a serem passados na pesquisa
# campo de busca

# arquiteturas


# Por padrão, a pesquisa é feita apenas pelas arquiteturas all e i386
# para mais arquiteturas, adicione a linha para a arquitetura desejada, por exemplo:
#

Agora é só fechar o firefox, abrir de novo e correr pro abraço.

Posted in Sem categoria

Scanner de Web Server Nikto

Neste tutorial iremos mostra como utilizar o Nikto, um scanner para Web Server escrito em Perl, no qual pode ser utilizado para detectar vulnerabilidades em servidores Web Apache.

Considerações Iniciais

Os testes realizados foram efetuados no seguinte ambiente

Distribuição Debian Gnu/Linux 3.1 R2
Kernel 2.6.17
Apache 2.0.59
Perl 5.8.4

– Baixando os pacotes necessários
O Nikto pode ser baixado no site http://www.cirt.net/nikto/ o link direto para download do script é http://www.cirt.net/nikto/nikto-current.tar.gz

– Iniciando a configuração.
É muito simple a utilização do script após ter baixo para o seu computador o script descompacte em uma pasta utilizando o seguinte comando:

tar -zxvf nikto-current.tar.gz
Em meu caso será criado a pasta com o script nikto-1.35 que é a versão atual do script quando escrevi este artigo, entre no diretório.

– Fazendo Update da base de dados
Para fazer update com atualizações da base de dados do Nikto utilize os comandos abaixo:

perl /nikto.pl -update

– Rodando o scanner
Para rodar o scanner basta executar o comando abaixo

perl ./nikto.pl ”allcgi ”h localhost

– Flags importantes
Algumas flags de comando importantes que podemos citar estão descriminadas abaixo com suas respectivas funcionalidades:

-h: Especifica o host a ser scanneado

-allcgi: Executa todos os scripts internos do Nikto para scanner o host desejado

-cookies Imprime os cookies encontrados

-evasion+ Técnica de invasão IDS

-findonly Encontra apenas portas https, não executa o scanner completamente

-Format Salva arquivo no formato (use -o) : htm, csv or txt

-generic Força um scanner completo padrão

-host+ Host alvo o mesmo que -h

-id+ Usa autênticação no host no formato userid:password
-nolookup Pula a resolução de nomes
-output+ Escreve a saida do comando para arquivo
-port+ Utilizado para indicar a porta do httpd (padrão 80)
-ssl Força scan em modo ssl
-timeout Tempo de Timeout do servidor (padrão 10 segundos)
-useproxy Usa proxy configurados no config.txt
-Version Imprime a versão dos plugins do banco de dados
-vhost+ Virtual Host ( para cabeçalho do host )
-verbose Apresenta a saída conforme o scan está rodando

Abaixo está a descrição das técninicas de invasão de IDS:
1 Random URI encoding (non-UTF8)
2 Directory self-reference (/./)
3 Premature URL ending
4 Prepend long random string
5 Fake parameter
6 TAB as request spacer
7 Random case sensitivity
8 Use Windows directory separator (\)
9 Session splicing

Técnicas de mutação:
1 Test all files with all root directories
2 Guess for password file names
3 Enumerate user names via Apache (/~user type requests)
4 Enumerate user names via cgiwrap (/cgi-bin/cgiwrap/~user type requests)

Posted in Sem categoria

Tutorial Avançado de Apache

Introdução

Nessa artigo descreverei como instalar e configurar um servidor apache, instalar e ativar o suporte a PHP e monitora-lo, ou seja, veremos um passo a passo dos processos que regem a configuração de um servidor WEB.
[editar]
Pacotes

Veremos agora os pacotes que são necessários para instalação

Apache – http://www.apache.org

Awstats ” http://awstats.sourceforge.net

Nikto – http://www.cirt.net/code/index.shtml

php ” http://www.php.net

ssl- http://www.openssl.org

MySql ” http://mysql.com
[editar]
Observação

A distro usada nesse artigo é o Debian, devendo os passos serem adaptados a distribuição que o usuário estiver usando

[editar]
Instalando os Pacotes

Como vamos instalar nosso servidor Apache com suporte a php e ssl primeiro vamos instalar esses pacotes, o ssl em algumas distribuições Linux já vem por padrão instalado. Se estiver usando o Debian para instalar o ssl basta:

apt-get install openssl

ou após fazer o downloads do pacote no site www.openssl.org

cd
tar ”zxvf openssl-X.X.X (onde o X corresponde a versão do openssl)
./config
make
make teste
make install

apt-get install mysql-server-4.1

[editar]
Compilando o Apache

A instalação do apache e bem simples de se fazer, basta baixar o httpd (nome do servidor apache) descompactar

tar -zxvf httpf-x.x.xx.tar.gz

O x corresponde a versão do apache que ate o momento em que escrevia esse artivo e a 2.0.53. Vamos compilar o apache com suporte a ssl (Security soquet layer), para tal basta no prompt digitarmos a seginte sintaxe:

./configure –prefix=/usr/local/apache2 –enable-module=so –enable-ssl

Agora vamos compila -lo e instala ” lo para tal basta usar os comandos:

make
make install

Após compilado terá que ser criado um link para que o apache se inicializa junto com o sistema, como mandamos que o apache fosse instalado no /usr/apache2053, o arquivo que faz o servidor carregar chama-se apachectl arquivo este que se encontra dentro de apasta bin.

ln -s /usr/apache2053/bin/apachectl /etc/init.d/apache2

[editar]
Compilando o PHP

Crie no diretório raiz a pasta php

mkdir php

Baixe o binário do php para a pasta que acabou de criar. Descompacte o binário que se encontra dentro da pasta:

tar -jxvf php-X.X.X.tar.bz2

(note que o X representa a versão do php, até quando escrevia essa artivo a versão mais nova do php e 5.0.3)

Primeiramente vamos compilar o PHP adicionando ele ao nosso servdor apache para isso

./configure ”with -apxs2=/usr/apache2053/bin/apxs ”with-gettext ”with-mysql

[editar]
Configuração do Servidor Apache

O arquivo de configuração do Apache chama-se httpd.conf, ( /etc/apache/httpd.conf) com o seu editor de texto favorito (vi, vim, joe e etc). Primeira coisa a ser feita e procurar pela string NameVirtualHost, e com essa string que daremos o endereço local do nosso servidor, ou seja, o endereço de Ip da maquina.

Ex.: 192.168.1.2

Logo abaixo veremos a seguinte diretiva

É através dessa diretiva que será configurado os sites do nosso servidor, para cada site hospedado , terá obrigatoriamente de haver uma diretiva como a acima devidamente configurada.
[editar]
1° Passo

Descomentar toda a diretiva

#
ServerAdmin webmaster@host.some_domain.com
DocumentRoot /www/docs/host.some_domain.com
ServerName host.some_domain.com
ErrorLog logs/host.some_domain.com-error.log
CustomLog logs/host.some_domain.com-access.log common

[editar]
2° Passo

Configurar o endereço do servidor

Substituir toda string _default_:*>#
ServerAdmin webmaster@host.some_domain.com
DocumentRoot /www/docs/host.some_domain.com
ServerName host.some_domain.com
ErrorLog logs/host.some_domain.com-error.log
CustomLog logs/host.some_domain.com-access.log common

[editar]
3° Passo

Configurar um email do administrador, para isso so ir na diretiva ServerAdmin e colocar o email do administrador


ServerAdmin pix@ac.com
DocumentRoot /www/docs/host.some_domain.com
ServerName host.some_domain.com
ErrorLog logs/host.some_domain.com-error.log
CustomLog logs/host.some_domain.com-access.log common

[editar]
4° Passo

Definiremos agora aonde os arquivos da paginas hospedadas no servidor, se encontrarão. Por padrão o apache usa o diretório www, mas você pode perfeitamente mudar esse diretório basta configurar a diretiva corretamente. Para definirmos onde as paginas se encontrarão configuraremos a diretiva DocumentRoot. Lembre-se que os exemplos contidos nesse texto são meramente ilustrativo.


ServerAdmin pix@ac.com
DocumentRoot /var/www/mario
ServerName host.some_domain.com
ErrorLog logs/host.some_domain.com-error.log
CustomLog logs/host.some_domain.com-access.log common

[editar]
5° Passo

Definiremos agora o nome do site a ser hospedado, para isso basta alterar a diretiva ServerName.


ServerAdmin pix@ac.com
DocumentRoot /var/www/mario
ServerName www.mario.com.br
ErrorLog logs/host.some_domain.com-error.log
CustomLog logs/host.some_domain.com-access.log common

[editar]
6° Passo

Configuraremos agora onde se encontrará o log de erro do Apache, isto se torna necessário para que o administrador possa ter uma maior controle sobre os tipos e a freqüência os erros ocorrem no servidor. A diretiva ErrorLog e que se incumbirá de armazenar o log de erro onde nos desejarmos.


ServerAdmin pix@ac.com
DocumentRoot /var/www/mario
ServerName www.mario.com.br
ErrorLog /var/log/apache/error_mario.log
CustomLog logs/host.some_domain.com-access.log common

No exemplo acima, o nosso ErrorLog foi configurado pra salvar um arquivo de log com o nome do site, isso é muito importante para podermos diferenciar os logs de erro, então todo site deverá ter um ErrorLog “personalizado”, colocando ainda por cima o log de erro dentro do diretório de log do sistema /var/log.
[editar]
7° Passo

Agora configuraremos a diretiva que irá determinar os acessos ao site hospedado em nosso servidor, isso e importante pra podermos gerar estatística de acesso dos sites. A diretiva chama- ser CustomLog. Direcionaremos ela da mesma forma que fizemos com a diretiva ErrorLog, ou seja, pra dentro do diretório de log do sistema e com o nome do nosso site.


ServerAdmin pix@ac.com
DocumentRoot /var/www/mario
ServerName www.mario.com.br
ErrorLog /var/log/apache/error_mario.log
CustomLog /var/log/apache/access_mario.log

A essa diretiva temos ainda a possibilidade de adicionar duas opções:

Commom: so registra que há o acesso.

Combined: faz registro detalhado de acesso do Servidor


ServerAdmin pix@ac.com
DocumentRoot /var/www/mario
ServerName www.mario.com.br
ErrorLog /var/log/apache/error_mario.log
CustomLog /var/log/apache/access_mario.log combined

Nesse caso geraremos uma arquivo de log bem detalhado.

Veja como ficou a configuração da nossa diretiva


ServerAdmin lpix@ac.com
DocumentRoot /var/www/leandro
ServerName www.mario.com.br
ErrorLog /var/log/apache/error_mario.log
CustomLog /var/log/apache/access_mario.log combined

Agora e hora de salvarmos as alterações e reiniciar o apache. A forma de reiniciar o serviço do apache varia de acordo com a distribuição, no meu caso eu uso o Debian para reinicia-lo basta digitar no prompt a seguinte linha de comando /etc/init.d/apache restart

Após reiniciado vamos fazer um teste com nosso servidor, para isso vamos criar uma arquivo de texto dentro da pasta /var/www/mario/index.html. Colocando qualquer coisa dentro do mesmo, lembre- se esse arquivo e so um teste para ver se nosso servidor esta funcionando. Após criar o arquivo vá no seu browser favorito e digite o endereço lacalhost, no meu caso 192.168.1.2

Agora veremos a estatística de aceso do nosso servidor, para isso basta usar o comando tail (devo ressaltar que este comando server para ver qualquer tipo de log do sistema)

tail -f /var/log/apache/access_mario.log

[editar]
Ativando Suporte a PHP

Para Configurarmos o PHP, editaremos o arquivo de configuração do Apache: httpd.conf localziando e alterando as seguintes strings:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Procure a diretiva abaixo e adicione a seguinte string na frete dela: index.php
DirectoryIndex index.html

[editar]
Monitorando e criando estatísca do servidor

Para fazermos a análise do nosso servidor usaremos o Awstats, programa esse que serve para analisar log de servidores Web e FTP dentre outros. Descompacte o programa no diretório /usr/local , entre no diretório onde o mesmo foi descompactado e acesse a pasta tools. Nesta pasta existe uma arquivo em perl chamado awstats_configure.pl. Agora veremos as etapas de configuração do Awstats:

1° No prompt digite: # perl awstats_configure.pl
2° Ele vai perguntar se quer seguir, responda sim
3° Você terá de indicar onde se encontra o httpd.conf (/etc/apache/httpd.conf)
4º Será criado o arquivo de configuração do awstats
5° Colocar o domínio que se deseja (www.mario.com.br)
6° Usar default para o diretório em que o arquivo de configuração do awstats se encontrará (/etc)
7° Em seguida ele criara os arquivos e pedirá que pressione enter finalizando assim a instalação.

Agora que o awstats já esta instalado, vamos editar o seu arquivo de configuração. Vamos para o diretório /etc/awstats/awstats.www.mario.com.br.conf, para adicionarmos novos sites basta copiar este arquivo de configuração apenas renomeando-o e fazendo as devidas modificações. Já dentro do arquivo de configuração procurar as seguintes diretivas:

LogFile coloque o caminho para o arquivo de log que foi criado anteriromente (/var/log/apache/access_mario.log). Muito importante ressaltar que o caminho se encontra e deve ficar entre aspas.

Site Domain é o domínio do site (www.mario.com.br)

DirData ” Diretório onde serão armazenadas as informações de processamento do log /var/www/mario/relatório, pode reparar que o diretório relatório não existe, devendo ser criado na respectiva pasta.

Agora para finalizar basta procurar a diretiva lang e altera -la para:

lang = “br”, caso salguem esteja usando o Debian por padrão ele vem como auto, não se esqueça de
colocar tudo com letra minúscula e dentro das aspas.

Agora e so salvar o as alterações.

Gerando o relatório: /usr/cgi-bin

./awstats.pl -config=domínio_do_site -update -output > /var/www/leandro/relatorio/index.html

Após este comando restart o servidor Apache

Obs.:

1) No Débian basta usar o seguinte comando para instalar o awstats:

apt-get install ”fu awstats

Para criar o arquivo de configuração basta usar o comando cp (cópia) renomeando o arquivo awstats.conf para o nome do seu site respectivamente. Exemplo:

cp /etc/awstats/awstats.conf/ /etc/awstats/awstats.www.mario.com.br.conf

E configura-lo conforme indicado acima.

2) Não esquecer do sinal de igual quando for gerar o relatório

Para fazer a estatística atualizar autimaticamente basta adicionar no crontab as seguintes linhas:

01 * * * * root /usr/lib/cgi-bin/awstats.pl -config=nomedomeiodoarquivo -update

Exemplo: 01 * * * * root /usr/lib/cgi-bin/awstats.pl -config=www.site.com.br -u pdate

No meu caso as estatísticas são atualizadas de hora em hora usando como arquivo de configuração awstats.www.site.com.br.conf.
[editar]
Análise de Vulnerabilidades do Servidor Apache

Agora vamos descompactar e instalar o Nikto (veremos sua utilidade mais a frente) Vá ao diretório onde ser encontra o binário do Nikto e descompacte com a seguinte sintaxe:

tar -zxvf nikto-1.34.tar.gz

Para configurar

/nikto.pl -update (isso irá atualizar a base de dados pra quando for sanear o servidor)

Para scanear uma maquina:

./nikto.pl ”allcgi ”h localhost

onde:

allcgi = usa todos os scripts CGI da base de dados pra scanear -h = define um host a ser scaneado localhost = nome do host
[editar]
Corrigindo as vulnerabilidades

1° passo: editar o arquivo httpd.conf dentro do mesmo procure a diretiva icons na diretiva options remover a diretiva index procurar a diretiva manual e substituir a diretiva Allow from all por Deny from all

após alteradas as diretivas acima salvar o arquivo e restartar o apache.
[editar]
Criando Autenticação no servidor Apache

Para criar um processo de autenticação do servidor apache, devemos criar dentro do diretório que se quer proteger (/var/www/Mario/relatório) um arquivo com o nome de .htacces

vi /var/www/Mario/relatório/.htacces

(lembre- se que isso e somente um exemplo, na hora devendo ser adaptado ao diretório que html que esta usando)

Devemos então colocar dentro desse arquivo o seguinte conteúdo:

AuthType Basic
AuthName “Área Restrita”
AuthUserFile /var/www/Mario/usuario ( caminho completo do arquivo de usuário e senha)
Require valid-user (faz com que seja pedido usário e senha)

Depois de digitar o conteúdo acima, salve e saia do arquivo. Agora criaremos o arquivo de usuário:

htpasswd ”c /var/www/usuario admin

Onde usuário é o arquivo de usuário e admin e o nome do usuário

Esse usuário que criamos é o administrador, para criarmos usuários posteriormente basta digitarmos a linha acima, uma vez que todos os usuários ficam no mesmo arquivo, somente retira ”se o ”c e no lugar de admin o nome do usuário que se deseja adicionar.

Para finalizar temos que configurar o Apache para proteger o diretório, logo abaixo da string do site criar a seguinte diretiva:

vi /etc/apache/httpd.conf

(lembre-se o caminho é entre aspas)
AllowOverride AuthConfig
Order Allow,Deny
Allow from all

Posted in Sem categoria

Customizando o Live do Ubuntu

Customizing a (K)Ubuntu 6.04 Linux Live CD
This tutorial reflects a work I had to do in the last days: I had to build a modified Kubuntu live CD, using the latest “Kubuntu 6.04 Flight3” (to use a 2.6.15 kernel). The system had to boot in console mode, defaulting to the Italian “Standard” keyboard layout, running an SSH server and having partimage (client and server).
I started this work using this tutorial by Prof. Dr. Reinhard Schiedermeier, who modified an older version of Ubuntu: the main difference was the use of cloop filesystem, instead of the squashfs used in 6.04 Flight3.
1 Copy the LiveCD
Export a shell variable (say, WORK) pointing to a working directory somewhere on your disk (say, ~/mylivecd), so you can use this page as a copy-and-paste howto.

$ export WORK=~/mylivecd
$ mkdir -p $WORK

Mount a (K)Ubuntu Linux Live CD

$ mount -t iso9660 /dev/hdc /cdrom

or the ISO image:

$ sudo mount -t iso9660 -o loop /path/to/dapper-live-i386.iso /cdrom

Then copy the content of the disk into a new directory, set the write permission on the new directory’s content, and unmount the Live CD (or the ISO image):

$ cd $WORK
$ mkdir ubuntu-livecd
$ cp -a /cdrom/. ubuntu-livecd
$ chmod -R u+w ubuntu-livecd
$ sudo umount /cdrom

The directory contains about 580 MB. You need a copy, because it will be modified.
2 Free space (I)
The copy of the Live CD has various subdirectories. I removed one of them, containing some Windows applications.

$ rm -rf $WORK/ubuntu-livecd/programs

The Live CD works fine without these programs. That saves about 95 MB.
3 Mount the compressed filesystem
The visible content of the Live CD is mainly used for booting. (K)Ubuntu Linux itself is contained in a compressed filesystem image in $WORK/ubuntu-livecd/casper/filesystem.squashfs.
To decompress and read this file, you need the squashfs module. I built a custom kernel (on Debian) using the kernel-patch-squashfs package, but you can easily use any way to get the squashfs module.
Finally loopback mount the compressed filesystem on a new mount point, say $WORK/old:

$ mkdir $WORK/old
$ sudo mount -t squashfs -o loop,ro $WORK/ubuntu-livecd/casper/filesystem.squashfs $WORK/old

Have a look at $WORK/old. You should see the root of the (K)Ubuntu filesystem.
4 Create an image for the modified compressed filesystem
This requires abount 2 GB of disk space. Make an empty file of 2 GB size:

$ sudo dd if=/dev/zero of=$WORK/ubuntu-fs.ext2 bs=1M count=2147

Format the file with an Ext2 filesystem:

$ sudo mke2fs $WORK/ubuntu-fs.ext2

mke2fs will warn you that ubuntu-fs.ext2 a not a real device. This is ok, proceed.
Now loopback mount the freshly formatted filesystem on a new mount point, say $WORK/new:

$ mkdir $WORK/new
$ sudo mount -o loop $WORK/ubuntu-fs.ext2 $WORK/new

5 Copy the compressed filesystem
To modify the (K)Ubuntu filesystem, we need to decompress and copy it:

$ sudo cp -a $WORK/old/. $WORK/new

We can umount $WORK/old now, because we have copies of all the data we need:

$ sudo umount $WORK/old

6 Chroot and tweak the system
Now it’s time to fine-tune the system to your needs, chrooting into the new system and using the standard Debian/Ubuntu tools.
First, prepare the /proc filesystem and the /etc/resolv.conf file for the copied filesystem and chroot into it:

$ sudo cp /etc/resolv.conf $WORK/new/etc/
$ sudo mount -t proc -o bind /proc $WORK/new/proc
$ sudo chroot $WORK/new /bin/bash

Now you are at the root of the (K)Ubuntu filesystem. Tweak the system as you like:

# apt-get remove ttf-baekmuk \
ttf-kochi-gothic \
ttf-kochi-mincho
# vi /etc/apt/sources.list # (Enable universe repositories)
# apt-get update
# apt-get install partimage partimage-server ssh
# /etc/init.d/partimaged stop # (Stops extra processes and frees sockets)
# /etc/init.d/ssh stop # (Stops extra processes and frees sockets)
# update-rc.d -f partimaged remove
# update-rc.d -f kdm remove
# apt-get clean
# dpkg-reconfigure console-data # (Select Italian Standard keyboard)

and leave the (K)Ubuntu filesystem:

# exit
$ sudo umount $WORK/new/proc
$ sudo rm $WORK/new/etc/resolv.conf

You are back at your own system.
7 Finish the modified filesystem
First, update the manifest file to reflect the modified packages:

$ sudo chroot $WORK/new dpkg-query -W –showformat=’${Package} ${Version}\n’ \
> $WORK/ubuntu-livecd/casper/filesystem.manifest

Next, clear the free disk space. Even if some Debian packages were removed, the unused space on the modified filesystem still holds the content. Fill all free space on the modified filesystem with zeroes (this will eventually fail with “no space left”), then remove the zero file:

$ sudo dd if=/dev/zero of=$WORK/new/dummyfile
$ sudo rm $WORK/new/dummyfile

Now, all unused data blocks are filled with zeroes and compress to almost nothing.
8 Build the modified compressed filesystem
Re-generate the modified filesystem:

$ sudo rm $WORK/ubuntu-livecd/casper/filesystem.squashfs
$ cd $WORK/new
$ sudo mksquashfs . $WORK/ubuntu-livecd/casper/filesystem.squashfs

This is the most time-consuming step. Umount $WORK/new now, we are done:

$ cd $WORK
$ sudo umount $WORK/new

9 Create the new Live-CD
On the Live-CD there is a MD5 hash. Adjust it to the modified content of the CD:

$ cd $WORK/ubuntu-livecd
$ sudo find . -type f -print0 |xargs -0 md5sum |sudo tee md5sum.txt

Now build the ISO image file, ubuntu-new.iso:

$ cd $WORK
$ sudo mkisofs \
-o ubuntu-new.iso \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-r \
-V “Custom Ubuntu Live CD” \
-cache-inodes \
-J \
-l \
ubuntu-livecd

Burn ubuntu-new.iso to a disk and you are done! For testing, a virtual PC like qemu is great.

Posted in Sem categoria

xorg.conf do IBM Think Pad T23

# /etc/X11/xorg.conf (xorg X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the /etc/X11/xorg.conf manual page.
# (Type “man /etc/X11/xorg.conf” at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorg

Section “Files”
FontPath “/usr/share/X11/fonts/misc”
FontPath “/usr/share/X11/fonts/cyrillic”
FontPath “/usr/share/X11/fonts/100dpi/:unscaled”
FontPath “/usr/share/X11/fonts/75dpi/:unscaled”
FontPath “/usr/share/X11/fonts/Type1”
FontPath “/usr/share/X11/fonts/100dpi”
FontPath “/usr/share/X11/fonts/75dpi”
# path to defoma fonts
FontPath “/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType”
EndSection

Section “Module”
Load “i2c”
Load “bitmap”
Load “ddc”
Load “dri”
Load “extmod”
Load “freetype”
#Load “glx”
Load “int10”
Load “type1”
Load “vbe”
EndSection

Section “InputDevice”
Identifier “Generic Keyboard”
Driver “kbd”
Option “CoreKeyboard”
Option “XkbRules” “xorg”
Option “XkbModel” “pc104”
Option “XkbLayout” “us”
Option “XkbVariant” “intl”
EndSection

Section “InputDevice”
Identifier “Configured Mouse”
Driver “mouse”
Option “CorePointer”
Option “Device” “/dev/input/mice”
Option “Protocol” “ExplorerPS/2”
Option “ZAxisMapping” “4 5”
Option “Emulate3Buttons” “true”
EndSection

Section “InputDevice”
Identifier “Synaptics Touchpad”
Driver “synaptics”
Option “SendCoreEvents” “true”
Option “Device” “/dev/psaux”
Option “Protocol” “auto-dev”
Option “HorizScrollDelta” “0”
EndSection

Section “InputDevice”
Driver “wacom”
Identifier “stylus”
Option “Device” “/dev/wacom” # Change to
# /dev/input/event
# for USB
Option “Type” “stylus”
Option “ForceDevice” “ISDV4” # Tablet PC ONLY
EndSection

Section “InputDevice”
Driver “wacom”
Identifier “eraser”
Option “Device” “/dev/wacom” # Change to
# /dev/input/event
# for USB
Option “Type” “eraser”
Option “ForceDevice” “ISDV4” # Tablet PC ONLY
EndSection

Section “InputDevice”
Driver “wacom”
Identifier “cursor”
Option “Device” “/dev/wacom” # Change to
# /dev/input/event
# for USB
Option “Type” “cursor”
Option “ForceDevice” “ISDV4” # Tablet PC ONLY
EndSection

Section “Device”
Identifier “S3 Inc. SuperSavage IX/C SDR”
Driver “savage”
BusID “PCI:1:0:0”
#Option “RenderAccel” “true”
EndSection

Section “Monitor”
Identifier “Generic Monitor”
Option “DPMS”
HorizSync 28-51
VertRefresh 43-60
EndSection

Section “Screen”
Identifier “Default Screen”
Device “S3 Inc. SuperSavage IX/C SDR”
Monitor “Generic Monitor”
DefaultDepth 16
SubSection “Display”
Depth 1
Modes “1024×768”
EndSubSection
SubSection “Display”
Depth 4
Modes “1024×768”
EndSubSection
SubSection “Display”
Depth 8
Modes “1024×768”
EndSubSection
SubSection “Display”
Depth 15
Modes “1024×768”
EndSubSection
SubSection “Display”
Depth 16
Modes “1024×768”
EndSubSection
SubSection “Display”
Depth 24
Modes “1024×768”
EndSubSection
EndSection

Section “ServerLayout”
Identifier “Default Layout”
Screen “Default Screen”
InputDevice “Generic Keyboard”
InputDevice “Configured Mouse”
InputDevice “stylus” “SendCoreEvents”
InputDevice “cursor” “SendCoreEvents”
InputDevice “eraser” “SendCoreEvents”
InputDevice “Synaptics Touchpad”
EndSection

Section “DRI”
Mode 0666
EndSection

Posted in Sem categoria