Sites de referência:
www.slackwarezine.com.br – Ótimo site com bons tutoriais em pdf.
www.aurelio.net – Site de um cara que escreve bem pra caramba – há bons tutoriais. Muita coisa sobre bash.
Índice:
Cdr – Gravação de CD, músicas em formato ogg, tudo em modo texto.
Tar, gzip, bzip2, zip e unzip:
TUTORIAIS
** Gravando Cds em modo texto:
* Para formatar CD-RW:
cdrecord -v speed=16 dev=0,0,0 blank=fast
* Para transformar um diretório em .ISO:
mkisofs -r -J -o imagem.iso /diretório
* Para ver uma ISO num diretório digite:
mount -o loop imagem.iso /diretório
* Para gravar a imagem criada:
cdrecord -v -eject -fs=16M speed=16 dev=0,0,0 -data -multi imagem.iso
* Para ripar todas as faixas de um cd digite:
cdparanoia -sv -B
* Para ripar uma única faixa:
cdparanoia -sv 2 faixa2.wav
* No mesmo diretório onde você ripou o CD digite para gravar:
cdrecord -v -fs=16M speed=16 dev=0,0,0 -audio -pad *
* Para criar uma iso:
cdrdao read-cd --device 0,0,0 --driver generic-mmc novo.toc
* Criar isso de CDs protegidos:
cdrdao read-cd --device 0,0,0 --driver generic-mmc --read-raw novo.toc
* Para gravar a iso:
cdrdao write --device 0,0,0 --driver generic-mmc novo.toc
* Para Transformar MP3 em cdr
mpg123 --cdr - track1.mp3 > track1.cdr
* Para Transformar ogg em wav (depois é só gravar com o cdrecord)
oggdec *.ogg
** O screen quebra um galhão. Digite screen para usá-lo.
* Para marcar e copiar:
Crtl+a <esc> <barra de espaco> para marcar o inicio e o fim do texto a ser copiado.
* Dicas diversas:
Ctrl+a <a> vai para a janela usada por antes da atual.
Ctrl+a <backspace> vai para a janela imediatamente anterior.
Ctrl+a <A> vai te dar um prompt para alterar o título da janela.
Crtl+" mostrara a lista de janelas ativas.
Ctrl+1 vai para a janela numero 1.
Crtl+2 vai para a janela numero 2 e assim por diante.
* Dica de uso:
Com o screen é interessante você adotar um padrão, por exemplo:
na janela 0 eu sempre deixo o root
na janela 1 eu sempre deixo o ogg123
na janela 2 deixo o wvdial
na janela 3 deixo o bash
na janela 4,5 e assim por diante vou abrindo outras seções do bash
** Pequeno tutorial de como compactar e descompactar arquivos. Mas lembre-se: tar.bz2 é o formato que oferece a melhor compactação.
Compactando:
TAR: tar -cvf nome_do_arquivo.tar arquivos
TAR+GZIP: tar -czvf nome_do_arquivo.tgz arquivos
TAR+BZ2: tar -cjvf nome_do_arquivo.tar.bz2 arquivos
GZIP: gzip nome_do_arquivo.gz arquivos
ZIP: zip -9 nome_do_arquivo.zip arquivos
Descompactando:
.TAR: tar -xvf nome_do_arquivo.tar
.TGZ: tar -zxvf nome_do_arquivo.tgz (ou .tar.gz)
.TAR.BZ2: tar -jxvf nome_do_arquivo.tar.bz2
.GZ: gzip -d nome_do_arquivo.gz
.ZIP: unzip nome_do_arquivo.zip
.bz2: bzip2 -d nome_do_arquivo.bz2
** Firewall. Trata-se de um pequeno script que eu aperfeiçoei. Execute-o como root.
#!/usr/bin/bash
# By Leandro Figueira Ceranto - [email protected]
# This program is protected with GPL Licence. Details in www.gnu.org
# Root user only for exec this aplication.
# Based on script developed by forumgdh.net
# Date: 1/02/2005.
#
# O jeito e limpar a tela para o user prestar atencao em alguns erros que podem ocorrer.
clear
#
echo "Carregando o firewall..."
#
# Mude os caminhos a seguir de acordo com suas necessidades.
IPTABLES="/usr/sbin/iptables"
REDEINT="192.168.0.0/8"
IPDNSPROVEDOR="200.221.11.101"
ENT="ppp0"
#
# carregando os modulos
echo #
# O comando a seguir tenta carregar o modulo iptables necessario para o funcionamento deste script
# Por ser um comando essencial, se ele nao carregar o script para aqui mesmo, gerando um erro.
echo -n Carregando o modulo ip_tables...&& modprobe ip_tables && echo ... [OK]
#
# Descomente a linha a seguir se voce for compartilhar a conexao com a internet
# echo -n Carregando compartilhamento de conexao...&& modprobe iptable_nat && echo ...[OK]
echo #
#
# Descomente a linha a seguir se voce for usar o compartilhamento de conexao.
#$IPTABLES -t nat -F && echo -n .......... [OK]
#
# Inicio da parte 'bruta' do script
#
# Liberando as tabelas
#
# Perceba que eu estou usando o comando “echo -n” combinado com
# o “&&” para controlar os erros (sei que é uma solução porca pra caramba, mas é bem útil) do script.
#
echo -n Limpando as tabelas...&& $IPTABLES -F && echo ... [OK]
echo #
echo -n Ativando protecoes gerais.....
# Protege contra os "Ping of Death"
$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# Protege contra os ataques do tipo "Syn-flood, DoS, etc"
$IPTABLES -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
# Permitir repassamento (NAT,DNAT,SNAT) de pacotes etabilizados e os relatados ...
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Logar os pacotes mortos por inatividade ...
#$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG
# Protege contra port scanners avanados (Ex.: nmap)
$IPTABLES -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Protege contra pacotes que podem procurar e obter informaes da rede interna ...
$IPTABLES -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
# Protege contra todos os pacotes danificados e ou suspeitos ...
$IPTABLES -A FORWARD -m unclean -j DROP
# Bloqueando traceroute
$IPTABLES -A INPUT -p udp -s 0/0 -i $ENT --dport 33435:33525 -j DROP
# Protecoes contra ataques
$IPTABLES -A INPUT -m state --state INVALID -j DROP
# Performance - Setando acesso a web com delay minimo
$IPTABLES -t mangle -A OUTPUT -o $ENT -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $ENT -p tcp --dport 80 -j TOS --set-tos Minimize-Delay
# Deixa passar as portas UDP do servidor DNS, e Rejeitar o restante
$IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p udp -j REJECT
# Bloqueia qualquer tentativa de conexao de fora para dentro por TCP
$IPTABLES -A INPUT -i $ENT -p tcp --syn -j DROP
# Mesmo assim fechar todas as portas abaixo de 32000
$IPTABLES -A INPUT -i $ENT -p tcp --dport :32000 -j DROP
# Responde pacotes icmp especificados e rejeita o restante
$IPTABLES -A INPUT -i $ENT -p icmp --icmp-type host-unreachable -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p icmp --icmp-type source-quench -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p icmp -j REJECT --reject-with icmp-host-unreachable
# libera acesso interno da rede
$IPTABLES -A INPUT -p tcp --syn -s $REDEINT -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --syn -s $REDEINT -j ACCEPT
$IPTABLES -A FORWARD -p tcp --syn -s $REDEINT -j ACCEPT
# libera conexoes de fora pra dentro
# Libere esses parametros somente com absoluta certeza do que se esta fazendo.
#$IPTABLES -A INPUT -p tcp --destination-port 80 -j ACCEPT
#$IPTABLES -A INPUT -p tcp --destination-port 443 -j ACCEPT
#$IPTABLES -A INPUT -p tcp --destination-port 20 -j ACCEPT
#$IPTABLES -A INPUT -p tcp --destination-port 21 -j ACCEPT
#$IPTABLES -A INPUT -p tcp --destination-port 22 -j ACCEPT
#libera conexoes de dentro pra fora:
$IPTABLES -A OUTPUT -p tcp --destination-port 80 -j ACCEPT #porta http
$IPTABLES -A OUTPUT -p tcp --destination-port 3306 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --destination-port 22 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --destination-port 20 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --destination-port 21 -j ACCEPT #porta do ftp
$IPTABLES -A OUTPUT -p tcp --destination-port 86 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --destination-port 5190 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --destination-port 443 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --destination-port 6666 -j ACCEPT #porta do irc
$IPTABLES -A OUTPUT -p tcp --destination-port 6667 -j ACCEPT #porta do irc
$IPTABLES -A OUTPUT -p tcp --destination-port 6668 -j ACCEPT #porta do irc
# libera o bittorrent - (no X.X.X.X pelo IP da maquina correspondente)
#$IPTABLES -A INPUT -p tcp --destination-port 1214 -j ACCEPT
#$IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 1214 -j DNAT --to-dest X.X.X.X
#$IPTABLES -A FORWARD -p tcp -i ppp0 --dport 1214 -d X.X.X.X -j ACCEPT
#$IPTABLES -t nat -A PREROUTING -i ppp0 -p udp --dport 1214 -j DNAT --to-dest X.X.X.X
#$IPTABLES -A FORWARD -p udp -i ppp0 --dport 1214 -d X.X.X.X -j ACCEPT
# faz o icq receber arquivos - (no X.X.X.X pelo IP da maquina correspondente
#$IPTABLES -A INPUT -p tcp --destination-port 2000:3000 -j ACCEPT
#$IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 2000:3000 -j DNAT --to-dest X.X.X.X
#$IPTABLES -A FORWARD -p tcp -i ppp0 --dport 2000:3000 -d X.X.X.X -j ACCEPT
#$IPTABLES -t nat -A PREROUTING -i ppp0 -p udp --dport 2000:3000 -j DNAT --to-dest X.X.X.X
#$IPTABLES -A FORWARD -p udp -i ppp0 --dport 2000:3000 -d X.X.X.X -j ACCEPT
# compartilha a web na rede interna
#$IPTABLES -t nat -A POSTROUTING -s $REDEINT -o ppp0 -j MASQUERADE
#echo 1 > /proc/sys/net/ipv4/ip_forward
# bloqueia o resto
$IPTABLES -A INPUT -p tcp --syn -j DROP
$IPTABLES -A OUTPUT -p tcp --syn -j DROP
$IPTABLES -A FORWARD -p tcp --syn -j DROP
# bloqueia ping
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo ..... [OK]
echo #
# Libera loopback. Isso e muito importante se voce for usar o cups ou samba via html.
echo -n Liberando o loopback...
iptables -I INPUT -i lo -j ACCEPT
iptables -I OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
iptables -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT && echo ... [OK]
# ----------------------------------------------------------------
echo #
echo "Firewall carregado."
# EOF
Tutoriais