Páginas

quarta-feira, 28 de dezembro de 2011

Apache: Senha diretorio

O servidor Web Apache ajuda com o arquivo .htaccess que direciona o controle de cada pasta lida no servidor.
Primeiramente você deve criar um arquivo que contém o login e senha. Para isso utilize o comando:

# cd /diretorio/protegido

# htpasswd -c .htpasswd USER

A senha será solicitada e então cria-se um arquivo com o nome .htpasswd

# vim .htaccess

Insira as linhas:

AuthUserFile /home/usuario/.htpasswd
AuthType Basic
AuthName "Restrito"
Require valid-user

sábado, 24 de dezembro de 2011

FreeBSD: Erro instalação iRedMail

postfix instalation fail

############################################################################
Try this:
* When you get this error, try to Install mail/postfix26/ manually:
# cd /usr/ports/mail/postfix26/
# make clean
# make install clean
* If postfix is installed with above step, edit iRedMail-0.6.1/.iRedMail.installation.status, append this line:
export status_install_port_mailpostfix26='DONE'
* Re-execute iRedMail.sh script:
# bash iRedMail.sh

FONTE: http://www.iredmail.org/forum/topic1171-installation-failing-in-freebsd80-with-iredmail061.html
############################################################################

I also ran into this issue while installing 0.7.0-beta2. This will require a fix before .7 is released. Here is what I did to fix it based on directions from link above.

cd /usr/ports/mail/postfix26
make deinstall reinstall clean

Once complete, edit iRedMail-0.7.0-beta2/.iRedMail.installation.status and add the following line:

export status_install_port_mailpostfix26='DONE'


No meu caso, utilizo postfix 2.7. Fica "mailpostfix27".

FONTE: http://code.google.com/p/iredmail/issues/detail?id=52

sábado, 10 de dezembro de 2011

MySQL: Permissão para acesso remoto

Para quem tem um servidor com IP fixo e quer liberar o acesso remoto ao MySQL pela internet exigindo nome de usuário e senha, o comando é simples:

grant all privileges on BD.TABELA to usuário identified by "senha";

Exemplo:

mysql> grant all privileges on LOJA.* to ze identified by "123456";

Para quem quer restringir o acesso a um IP fixo (rede local sem DHCP ou Internet com ADSL Business):

mysql> grant all privileges on LOJA.* to ze@192.168.10.15 identified by "123456";

Para conectar use:

$ mysql -h 200.156.12.2 -D LOJA -u ze -p
Enter Passwd: 123456

quinta-feira, 8 de dezembro de 2011

Cron

#minute (0-59)
#| hour (0-23)
#| | day of the month (1-31)
#| | | month of the year (1-12 or Jan-Dec)
#| | | | day of the week (0-6 with 0=Sun or Sun-Sat)
#| | | | | commands
#| | | | | |
### rotate logs weekly (Sunday at 12midnight)
00 0 * * 0 squid -k rotate

sexta-feira, 2 de dezembro de 2011

FreeBSD: Installing PHP 5

A tutorial on installing PHP from the FreeBSD ports for Apache and MySQL. What you need to add to the httpd.conf file and which of the PHP5 ports to choose.

Choosing which port to use
In the past there were several ports for PHP such as /www/mod-php5, /lang/php5-cli, and /lang/php5. Since the release of PHP 5.1.14 there is now only /lang/php5 This port now allows you to choose if you want to install the CLI, CGI, and Apache module.

CLI stands for command line interpreter. It is used for running PHP scripts from the command line and makes creating shell scripts very simple if you already know PHP. The Apache PHP Module is disabled by default, so make SURE that if you plan to use this for web work that you enable it.

Installing the port
Since all PHP ports are now combined you will need to configure it to be sure the parts you need are built.

# cd /usr/ports/lang/php5
# make config
# make install
When you run make config you will be shown a list of options. To use PHP with Apache make sure the Apache Module box is selected.

Once php has installed you will need to install the extra modules for things such as MySQL. These modules are all located in the ports. Some of the most common modules are

/usr/ports/databases/php5-mysql - MySQL Database
/usr/ports/www/php5-session - Sessions
/usr/ports/graphics/php5-gd - Graphics Library
Adding the PHP 5 module to Apache
Apache needs the following lines in the httpd.conf file to use php. These lines should already be added by the port but if you have problems you should double check your httpd.conf file. Note that Apache 2.x does not need the AddModule line.

# Apache 1.3.x
LoadModule php5_module libexec/apache/libphp5.so
AddModule mod_php5.c
# Apache 2.x
LoadModule php5_module libexec/apache/libphp5.so
If you installed using the port and had apache installed already it should do this automatically for you.

Next find your DirectoryIndex section in your httpd.conf file. Apache is set up for PHP 4, but not PHP 5 currently so you will need to modify it and change the 4s to 5s like this.




DirectoryIndex index.php index.php3 index.html


DirectoryIndex index.php3 index.html




DirectoryIndex index.php index.html index.htm


DirectoryIndex index.html



This code is telling Apache to open index.php first you have the PHP 5 module loaded. You can change the order as you wish. Or if you just wanted to skip it you could simply add the following line to the httpd.conf file since you know you are going to have php 5.

DirectoryIndex index.php index.html index.htm
Now apache just needs to know what it should parse the PHP files with. These two lines should be added to the httpd.conf file, and can be put at the bottom if needed.

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
If want to use PHP code inside of .htm files you can just add on those extensions.

AddType application/x-httpd-php .php .htm .html
Configuring PHP
Settings for PHP are stored in /usr/local/etc/php.ini You will need to create this file by copying it from /usr/local/etc/php.ini-dist

# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
In this file you can set the memory limit for programs. Turn on global variables if you must, set the max file upload size, and everything else you need.

Testing PHP
Once you have restarted Apache so the changes take effect you are ready to test it. To test it run the following command to create a php file that you can attempt to run

# echo "" >> /usr/local/www/data/test.php
Then point your web browser to http://yourdomain.com/test.php and if it works you will see several pages of information on your PHP settings. If it did not work you will see only the text you typed in.

quinta-feira, 3 de novembro de 2011

FreeBSD: Controle de Mac Address com IPFW

Através da contribuição de Alessandro de Souza Rocha , este tutorial tem como objetivo facilitar o entendimento do uso de Mac Adress diretamente no firewall (ipfw) sem a necessidade de fazer o controle na tabela ARP.
O tutorial é bem simples e objetivo, sem complicações para implantação.

Para ativação do ipfw com o controle do mac, é necessário inserir estas linhas no seu kernel e posteriormente compilá-lo

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT

Feito este procedimento, deve-se inserir a seguinte linha dentro do arquivo /etc/sysctl.conf:


net.inet.ip.fw.one_pass=0


Eesta linha desabilita a passangem única dos pacotes, , pronto depois disso só setar no firewall a regras:

Ex:

#Firewall programa
fwcmd="/sbin/ipfw"

# Ponha sua interface interna e o ip da placa de rede

oif="rl0"
oip="192.168.0.100"
oip="10.1.1.100"
oip="100.1.1.100"

# Meu servidor de DNS

dns1="200.200.200.200”

#desativando passagem única (não esquecer!)

ipfw disable one_pass

# limpando as regras existentes


/sbin/ipfw -f flush

#liberar a tabela arp


ipfw add 10 allow layer2 not mac-type ip



##############################################
#Controle de mac e ip de cada Cliente #
##############################################

# Cliente: Cliente 1

ipfw add 1 allow layer2 src-ip 192.168.0.1 mac any 00:11:09:d9:3f:6b in via rl0

# Cliente: Cliente 2

ipfw add 104 allow layer2 src-ip 10.1.1.2 MAC any 00:0b:d0:fe:00:d1 in via rl0

# Cliente: Cliente 3

ipfw add 5 allow layer2 src-ip 100.1.1.2 MAC any 00:0A:52:00:88:2D in via rl0

#fechando tudo que não tiver cadastro na tabela acima
ipfw add 65000 deny all from any to any layer2 in via rl0

FONTE: bsdsul.com.br

terça-feira, 1 de novembro de 2011

FreeBSD: Dividir arquivo grande em partes

# split -b 1m grande parte
Quebra o arquivo em partes de 1mb

# split -b 1500k grande parte
Quebra o arquivo em partes de 1.5mb

FONTE: http://fug.com.br/

quinta-feira, 27 de outubro de 2011

FreeBSD: Precedência de regras do PF e IPFW em FreeBSD

Objetivo:

Como já é quase um consenso, as ferramentas de firewall para Freebsd, sozinhas não são completas. O IPFW é considerado como o melhor firewall disponível para o Freebsd, mas não possui suporte a NAT built-in.

Particularmente, odeio a implementação do natd, e ainda mais o divert no IPFW para conseguir a solução do NAT. Já o PF (Packet Filter) importado do Openbsd, é considerado a melhor implementação de nat disponível para bsd, mas deixa a desejar, para muitos, na principal funcionalidade de um firewall, que é filtrar pacotes.

Como temos disponibilidade das duas, por que não usar o filtro de pacotes (e outras coisas mais, como controle de banda) com o IPFW e deixar o nat para o PF?


A resposta parece óbvia a princípio, mas não encontrei em nenhum lugar, uma documentação clara sobre procedência de regras, ao misturar IPFW + PF (não considero código-fonte como documentação). Sem este pequeno detalhe, a vida de quem vai construir esta solução pode se tornar um verdadeiro inferno (mexeu com o sistema do capeta, deu nisso!).

Em testes particulares, cheguei a algumas conclusões, que posto aqui para serem completadas da melhor maneira possível pelos integrantes da lista (particularmente acho interessante adicionar aqui, o fluxo de pacotes passando pelo fwd do IPFW e route-to do PF).

Estrutura do teste:

——–|fw|——–

Onde os hosts da lan acessan a internet através do firewall (fw) que é o default gateway da rede. Para testes de nat, um micro da lan possui um servidor web, publicado no endereço ip válido da interface externa do firewall, que possui uma regra de nat para permitir que hosts externos à lan se conectem a este servidor.

Regras de Nat (pf.conf):

#——– MACROS ———#
if_ext = “tun0″
if_lan = “rl0″

#——– NAT ————#
nat on $if_ext from $if_lan:network to any -> ($if_ext)
rdr on $if_ext proto tcp from any to ($if_ext) port 8080 -> 192.168.2.3
port 80

1) Tráfego da Lan, saindo para a internet, passando pelo firewall:

—> PF (IN if_lan) —> IPFW (IN if_lan / OUT if_ext) —> PF (NAT)
—> PF (OUT if_ext)

Ou seja, consigo filtrar pacotes com o IPFW, saindo pela interface externa, baseado nos endereços ip de origem dos pacotes (endereço da lan), pois as regras do IPFW são processadas antes do nat do PF. Já as regras de saída do PF (OUT if_ext) são processadas somente após passarem pelo nat, impossibilitando políticas baseadas no endereço ip de origem.

2) Tráfego externo, entrando pelo firewall, em direção ao servidor web:

—> PF (NAT) —> PF (IN if_ext) —> IPFW (IN if_ext / OUT if_lan)
—> PF (OUT if_lan)

Neste caso, as regras de filtragem, independente de utilizadas no PF ou IPFW, devem levar em consideração que o destino do pacote já foi traduzido pelo nat.

FONTE: http://www.jack.eti.br/www/?p=256

segunda-feira, 24 de outubro de 2011

FreeBSD: Burst

$fw add pipe 1 ip from 177.xx.xx.15 to any out via $ext_if
$fw add pipe 2 ip from any to 177.xx.xx.15 in via $ext_if
$fw pipe 1 config bw 128Kbit/s queue 16 burst 256K
$fw pipe 2 config bw 128Kbit/s queue 16 burst 256K

FONTE: http://www.fug.com.br/historico/html/freebsd/2011-10/msg00154.html

OpenBSD: Kernel enxuto

Uma ferramenta interessante para "enxugar" o seu kernel no OpenBSD é o dmassage, que pode ser baixado em http://www.sentia.org/downloads/dmassage-0.6.tar.gz.

Descompacte o programa:
#cd /root (baixei no diretório do root)
#tar -zxvf dmassage-0.6.tar.gz

Para utilizá-lo, vá para o diretório onde ficam os arquivos do kernel em sua plataforma. Por exemplo:

# cd /usr/src/sys/arch/i386/conf/
# /root/dmassage-0.6/dmassage -s GENERIC > KERNEL

A ferramenta irá analisar os devices carregados através da saída do dmesg e irá comentar no arquivo GENERIC os devices não utilizados. O novo arquivo de kernel estará no arquivo KERNEL, somente com o estritamente necessário.

Após isso, pode continuar o procedimento normal de compilacão e instalacão do seu kernel.

quinta-feira, 22 de setembro de 2011

MySQL: Esqueceu a senha de root

Boa noite People com sempre este POST é dedicado a Ela sempre incomparável Mandy – Karin.

Pessoal hoje surgiu a dificuldade de fazer backup de bases e os desenvolvedores precisavam da senha do root do mysql. Não tinhamos então eu fui acionado para tal feito e como de costume vou deixar aqui mastigadinho para os meus amigos e leitores do blog.

Bom primeiro como root vamos matar o processo do MYSQLD:

# killall mysqld

Repita o comando até aparacer a mensagem que não existe mais nenhum processo com este nome. Olha o pessoal manda dar stop no mysql mas mata ele logo dá no mesmo !

Com ele matado de morte morrida, vamos inicar o mysql de forma que ele aceite o root sem senha é muito importante você digitar o comando exatamente igual abaixo:

# /usr/local/bin/mysqld_safe –skip-grant-tables &

espere o comando ser executado, se após 1 minuto não retornar ao prompt apenas tecle

vamos entrar no mysql para trocar a senha do root

#mysql

se ele entrar funcionou se não , verifique os passos acima !!!

>

digite o comando :

> use mysql;

vai dar um comando dizendo que a data base foi trocada

> UPDATE user SET Password=PASSWORD('nova_senha') WHERE User='root';

Vai exibir as alterações nas tabelas da base de dados, vamos finalizar dandos os privilégios ao root

> FLUSH PRIVILEGES;

Bom resolvido seu problema agora você anota e guardaa senha, porém se perde-la novamente volte aqui este post vai estar aqui pronto pra lhe ajudar no que lhe for preciso …

FONTE: http://danilosbrasil.wordpress.com/2009/08/27/esqueci-a-senha-do-root-mysql/

terça-feira, 6 de setembro de 2011

Cacti: Modelos (templates) de gráficos para o CACTI

CACTI é uma ferramenta de gerenciamento de protocolo SNMP.

O CACTI permite criar gráficos para diversos recursos que são monitorados via SNMP. As opções de criação de gráficos tornam-se disponíveis após a criação de "Devices", isto é, de equipamentos. Já abordei em outras dicas como instalar e configurar o servidor CACTI, inserir "Devices" ou instalar e configurar os clientes snmp.

A ferramenta fornece muitas opções para criação de gráficos, vou descrever os melhores modelos disponíveis no CACTI e suas aplicações. Com o uso diário em nossa empresa verificamos e testamos todos os templates disponíveis na ferramenta.

Agora vamos inserir os modelos (templates) de gráficos:

Gráfico para verificar uso de CPU:
Na opção "console", clique em "Management/Devices", clique no Device desejado.
Na opção "Associated Graph Templates", clique em "Add Graph Template:" e selecione "ucd/net - CPU Usage" e clique no botão "add".
Na opção "Associated Graph Templates", clique em "Add Graph Template:" e selecione "Unix - Processes" e clique no botão "add".
Clique no botão "save".
Na opção "console", clique em "Create/New Graphs".
Na opção "Create new graphs for the following host:", selecione o Device utilizado no item 1. Pronto, é só selecionar os itens que deseja e clique no botão "create".
Na opção "console", clique em "Management/Graph Trees", clique no "Graph Trees" desejado.
Na opção "Tree Items", clique na opção "Add".
Na opção "Tree Item Type", altere para "Host".
Na opção "Tree Item Value/Host/Choose a host here to add it to the tree.", selecione o Device utilizado no item 1. Pronto é só clicar em "graphs" e visualizar o gráfico criado.

Gráfico para verificar uso de disco:
Na opção "console", clique em "Management/Devices", clique no Device desejado.
Na opção "Associated Data Queries", clique em "Add Data Query:" e selecione "SNMP - Get Mounted Partitions" e clique no botão "add".
Clique no botão "save".
Na opção "console", clique em "Create/New Graphs".
Na opção "Create new graphs for the following host:", selecione o Device utilizado no item 1. Pronto, é só selecionar os itens que deseja e clique no botão "create".
Na opção "console", clique em "Management/Graph Trees", clique no "Graph Trees" desejado.
Na opção "Tree Items", clique na opção "Add".
Na opção "Tree Item Type", altere para "Host".
Na opção "Tree Item Value/Host/Choose a host here to add it to the tree.", selecione o Device utilizado no item 1. Pronto, é só clicar em "graphs" e visualizar o gráfico criado.

Gráfico para verificar tráfego de rede de computadores:
Na opção "console", clique em "Management/Devices", clique no Device desejado.
Na opção "Associated Data Queries", clique em "Add Data Query:" e selecione "SNMP - Interface Statistics" e clique no botão "add".
Clique no botão "save".
Na opção "console", clique em "Create/New Graphs".
Na opção "Create new graphs for the following host:", selecione o Device utilizado no item 3.1. Pronto é só selecionar os itens que deseja e clique no botão "create".
3.6- Na opção "console", clique em "Management/Graph Trees", clique no "Graph Trees" desejado.
Na opção "Tree Items", clique na opção "Add".
Na opção "Tree Item Type", altere para "Host".
Na opção "Tree Item Value/Host/Choose a host here to add it to the tree.", selecione o Device utilizado no item 1. Pronto, é só clicar em "graphs" e visualizar o gráfico criado.


Gráfico para verificar uso de memória:
Na opção "console", clique em "Management/Devices", clique no Device desejado.
Na opção "Associated Graph Templates", clique em "Add Graph Template:" e selecione "ucd/net - Memory Usage" e clique no botão "add".
Na opção "Associated Data Queries", clique em "Add Data Query:" e selecione "SNMP - Get Mounted Partitions" e clique no botão "add".
Clique no botão "save".
Na opção "console", clique em "Create/New Graphs".
Na opção "Create new graphs for the following host:", selecione o Device utilizado no item 1. Pronto é só selecionar os itens que deseja e clique no botão "create".
4.7- Na opção "console", clique em "Management/Graph Trees", clique no "Graph Trees" desejado.
Na opção "Tree Items", clique na opção "Add".
Na opção "Tree Item Type", altere para "Host".
Na opção "Tree Item Value/Host/Choose a host here to add it to the tree.", selecione o Device utilizado no item 4.1. Pronto, é só clicar em "graphs" e visualizar o gráfico criado.

segunda-feira, 5 de setembro de 2011

FreeBSD: Snmpd

Configurar snmpd

cd /usr/ports/net-mgmnt/net-snmp
make install clean

edit rc.conf
snmpd_enable="YES"

cd /usr/local/share/snmp
edit snmpd.conf
syslocation home (Local)
syscontact me@here.com (E-mail de contato)
rocommunity private (replace with whatever read only name you'd like)
rwcommunity public (again, change this to whatever you'd like)
master yes

/usr/local/etc/rc.d/snmpd start

snmpwalk -v1 -c public 127.0.0.1

FONTE: http://forums.cacti.net/about5870.html&highlight=

Cacti: Forbidden

# Cacti: An rrd based graphing tool
#
Alias /cacti /usr/share/cacti


Order Deny,Allow
Deny from all
Allow from 10.0.0.0/8



### Cacti
Alias /cacti "/usr/local/share/cacti/"


Order Deny,Allow
Deny from all
Allow from 10.1.0.0/24


OK

quinta-feira, 1 de setembro de 2011

Netstat

Já tive problemas semelhantes em redes nateadas que só tinham um ip de nat.

Solução simples (no caso tinha disponivel mais ip's na mascara)

com pf:

nat on $ext_if from $rede_lan to any -> { 200.x.x.1, 200.x.x.2,
200.x.x.3 } round-robin

Algo assim auxilia no ganho de mais conexões tcp.


/usr/bin/netstat -n | /usr/bin/grep '^tcp4' | /usr/bin/wc -l
65325


/usr/bin/netstat -n | /usr/bin/grep '^tcp4' | /usr/bin/grep
'ESTABLISHED' | /usr/bin/wc -l
47699

quarta-feira, 31 de agosto de 2011

DNS: DNS Reverso para classe /29


Fiz o seguinte:
no* named.conf*
*zone "197.10.189.in-addr.arpa" {
type master;
file "/var/named/189.10.197.rev";
allow-transfer {
201.10.124.26;
200.255.125.214;
};
notify yes;
};*

e no arquivo *197.10.197.in-addr.arpa*
*$ttl 38400
197.10.189.in-addr.arpa. IN SOA server.folhadomate.com.br.
junior.folhadomate.com.br. (
1208190170
10800
3600
604800
38400 )

176-184.197.10.189.in-addr.arpa. IN NS ns1.folhadomate.com.br.
176-184.197.10.189.in-addr.arpa. IN NS
ns03-bsa.brasiltelecom.net.br.

197.10.189.in-addr.arpa. IN NS ns1.folhadomate.com.br.
178.197.10.189.in-addr.arpa. IN PTR
server.folhadomate.com.br.dig -x 189.10.197.178
*
*internamente no servidor funciona 100%, mas se rodo externamente ocorre
assim:*

FONTE: http://www.mail-archive.com/debian-user-portuguese@lists.debian.org/msg116316.html

Redhat: the working directory is not writable

Jan 25 16:03:44 um1udns1 named[3349]: the working directory is not writable

Resolution.

under /var/named/chroot/var/

#chmod 775 named (rwx for both)

restart named service.

now onward error disappear in logs.

FONTE: http://raman-kumar.blogspot.com/2011/01/named3349-working-directory-is-not.html

terça-feira, 30 de agosto de 2011

Redhat: Liberar dns para o registro.br

Se esse servidor DNS responde como autoritativo para algum domínio registrado
no Registro.br deve ser

"any" (ou simplesmente nem setar pois é o valor default) , pois toda a internet
irá consultar ele quando

quiser resolver algum nome dentro do seu domínio.

Se ele for apenas um servidor DNS recursivo ( servidor cache como alguns chamam
por ai... ), ou seja,

o que resolve nomes para os computadores "da sua rede e filiais", você deve
deixar não só o allow-query

com a acl, mas as diretivas



allow-query { "trusted"; };
allow-query-cache { "trusted"; };
allow-recursion { "trusted"; };

FONTE: http://www.fug.com.br/historico/html/freebsd/2009-03/msg00436.html

FreeBSD: rc.conf para bridge

hostname="Serveur"

ipv6_enable="NO"
cloned_interfaces="bridge0"
ifconfig_bridge0="addm em1 addm em2 addm bge0 addm bge1 up"
ifconfig_bridge0_alias0="inet 10.254.0.0/8"
ifconfig_em0="inet 192.168.0.254/24"
defaultrouter="192.168.0.1"
ifconfig_em1="up"
ifconfig_em2="up"
ifconfig_bge0="up"
ifconfig_bge1="up"

gateway_enable="YES"
firewall_enable="YES"
firewall_script="/etc/firewall.rules"
firewall_logging="YES"
natd_enable="YES"
natd_interface="em0"
natd_flags="-dynamic -m -s"

keymap="fr.iso.acc"
sshd_enable="YES"
ntpd_enable="YES"
named_enable="YES"

FONTE: http://forums.freebsd.org/showthread.php?p=145315#post145315

segunda-feira, 29 de agosto de 2011

Squid: Bloqueia MSN

liberamsn = host com acesso ao msn.

### Conf

acl liberamsn src 192.168.0.66/255.255.255.255
acl bloqueia_msn dstdomain "/etc/squid/bloqmsn.txt"
acl bloqueia_msn2 url_regex "/etc/squid/bloqmsn2.txt"
acl bloqueia_msn3 url_regex -i /gateway/gateway.dll

http_access allow liberamsn
http_access deny bloqueia_msn
http_access deny bloqueia_msn2
http_access deny bloqueia_msn3

### bloqueiamsn.txt

passport.com
msn.com.br
msn.com
sc.msn.com
www.msn.be
207.46.110.11
messenger.msn.com.br
http.msg.yahoo.com
nickname.msn.com.br
chat.msn.com
chat.msn.com.br
msgr.hotmail.com
gateway.messenger.hotmail.com
http1.msgr.hotmail.com
http2.msgr.hotmail.com
http3.msgr.hotmail.com
http4.msgr.hotmail.com
http5.msgr.hotmail.com
http6.msgr.hotmail.com
http7.msgr.hotmail.com
http8.msgr.hotmail.com
http9.msgr.hotmail.com
http10.msgr.hotmail.com
http11.msgr.hotmail.com
http12.msgr.hotmail.com
http13.msgr.hotmail.com
http14.msgr.hotmail.com
http15.msgr.hotmail.com
http16.msgr.hotmail.com
http17.msgr.hotmail.com
http18.msgr.hotmail.com
http19.msgr.hotmail.com
http20.msgr.hotmail.com

### bloqueiamsn2.txt

x-msn

Iptables: Ler arquivo

#!/bin/bash

IPTABLES="/usr/sbin/iptables"

for i in 'cat lista.txt'
do

$IPTABLES -A FORWARD -s $i -p tcp --dport 1863 -j ACCEPT
$IPTABLES -A FORWARD -d $i -p tcp --sport 1863 -j ACCEPT

done

$IPTABLES -A FORWARD -p tcp --dport 1863 -j DROP
$IPTABLES -A FORWARD -p tcp --sport 1863 -j DROP
$IPTABLES -A FORWARD -d loginnet.passport.com -j DROP

FONTE: http://under-linux.org/f96/iptables-ler-arquivo-texto-86161/

sábado, 27 de agosto de 2011

FreeBSD - Banda Compartilhada

A ideia é criar um pipe principal com o valor de 256Kbps e definir queues dos clientes para o pipe principal.

quinta-feira, 25 de agosto de 2011

FreeBSD - Upgrading 8, 7, 6, 5, 4

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

Author: Ralf S. Engelschall
Created: 2009-01-01
Modified: 2011-01-29
Version: 1.4

ATTENTION: THIS UPGRADE PROCEDURE MIGHT NOT WORK FOR YOU AS YOUR
ENVIRONMENT IS DIFFERENT. ALSO, THIS UPGRADE PROCEDURES MIGHT DESTROY
YOUR SYSTEM AND YOU POTENTIALLY MIGHT LOOSE DATA. NO WARRANTY AT ALL.
USE IT AT YOUR OWN RISK!

This upgrades from FreeBSD 7.3-STABLE to 8.2-STABLE.

---- PREPARE ----------------------------------------------------------------

o # reboot once to make sure OLD system is at least
# able to still successfully reboot autonomous at all
# SORRY, THIS IS _NOT_ A JOKE -- THIS IS A VERY SERIOUS ISSUE!
$ shutdown -r now

---- BUILD ------------------------------------------------------------------

o # switch to a reasonable run-time environment
$ cd /; exec `/usr/bin/which bash sh | head -1`
$ PATH=/bin:/usr/bin:/sbin:/usr/sbin; umask 022; unset TMOUT

o # install backward compatibility files
# ("locale data" to /usr/local/share/compat/, "libraries" to /usr/local/lib/compat/)
# notice: via binary packages as FreeBSD 8.X ports cannot be installed under FreeBSD 7.X
$ url="ftp://ftp.freebsd.org/pub/FreeBSD/ports/`uname -m`/packages-8-stable/All"; \
( cd /tmp; for pkg in localedata-5.4.tbz \
compat6x-`uname -m`-6.4.604000.200810_3.tbz \
compat7x-`uname -m`-7.3.703000.201008_1.tbz; do \
fetch -p $url/$pkg; pkg_add $pkg; rm -f $pkg; \
done )

o # install latest FreeBSD Upgrade Toolkit
$ cd /usr; \
fetch http://people.freebsd.org/~rse/dist/freebsd-adm-1.2.2.tar.gz; \
rm -rf adm; gunzip > RELENG_8

o # upgrade /usr/src (already required for "mergemaster -p" below!)
$ (cd /usr/src && make cleandir); \
(cd /usr/adm && make update)

o # upgrade kernel configuration
$ vi /sys/`uname -m`/conf/`hostname -s | tr 'a-z' 'A-Z'`

<< options ADAPTIVE_GIANT << options STOP_NMI << device sio << device ugen << device uscanner << device isa << device mem << device io << device sl << device ppp >> options COMPAT_FREEBSD6
>> options COMPAT_FREEBSD7
>> options P1003_1B_SEMAPHORES
>> options PRINTF_BUFR_SIZE=128
>> options HWPMC_HOOKS
>> options MAC
>> options FLOWTABLE
>> device acpi
>> device uart

o # prepare the upgrade
# (just to be sure, should be not really necessary this time)
$ mergemaster -p

o # build new system
$ cd /usr/adm && make world-build && make kernel-build

---- INSTALL ----------------------------------------------------------------

o # workaround 1/3 for "bad system call" during usage of ln(1) in "make etc"
$ cp -p /bin/ln /bin/ln.old

o # upgrade system
$ make world-install && make kernel-install

o # workaround 2/3 for "bad system call" during usage of ln(1) in "make etc"
$ cp -p /bin/ln /bin/ln.new
$ cp -p /bin/ln.old /bin/ln

o # cleanup system (part 1)
$ rm -f /etc/rc.d/early.sh /etc/rc.d/idmapd /etc/rc.d/isdnd /etc/rc.d/nfslocking /etc/rc.d/ip6fw
$ make etc
$ make clean

o # workaround 3/3 for "bad system call" during usage of ln(1) in "make etc"
$ cp -p /bin/ln.new /bin/ln
$ rm -f /bin/ln.old

o # regenerate /etc/localtime
$ tzsetup

o # reboot into upgraded system
$ shutdown -r now

---- CLEANUP ----------------------------------------------------------------

o # switch to a reasonable run-time environment
$ cd /; exec `/usr/bin/which bash sh | head -1`
$ PATH=/bin:/usr/bin:/sbin:/usr/sbin; umask 022; unset TMOUT

o # cleanup system (part 2)
$ ( for dir in /bin /sbin /usr/bin /usr/sbin /usr/libexec /usr/libdata /usr/lib32; do \
find $dir -mtime +2 -type f -xdev -print; \
find $dir -mtime +2 -type l -xdev -print; \
done ) >/tmp/remove
$ vi /tmp/remove
# REVIEW FILES TO REMOVE MANUALLY
$ cat /tmp/remove | xargs chflags noschg
$ cat /tmp/remove | xargs rm -f
$ ( for dir in /lib /usr/lib; do \
find $dir -mtime +2 -type f -xdev -print; \
find $dir -mtime +2 -type l -xdev -print; \
done ) | grep -v /usr/lib/compat >/tmp/move
$ vi /tmp/move
# REVIEW FILES TO MOVE MANUALLY
$ for x in `cat /tmp/move`; do chflags noschg $x; mv $x /usr/lib/compat/; done
$ cd /usr/src; make BATCH_DELETE_OLD_FILES=YES delete-old delete-old-libs

o # reboot into cleaned system
# (mainly to reload the shared library cache and to
# make sure everything really still works fine)
$ shutdown -r now


#############################################################
#############################################################
Upgrading from FreeBSD 6.X to FreeBSD 7.X
#############################################################
#############################################################

Author: Ralf S. Engelschall
Created: 2007-05-24
Modified: 2009-08-01
Version: 1.3

ATTENTION: THIS UPGRADE PROCEDURE MIGHT NOT WORK FOR YOU AS YOUR
ENVIRONMENT IS DIFFERENT. ALSO, THIS UPGRADE PROCEDURES MIGHT DESTROY
YOUR SYSTEM AND YOU POTENTIALLY MIGHT LOOSE DATA. NO WARRANTY AT ALL.
USE IT AT YOUR OWN RISK!

This upgrades from FreeBSD 6.4-STABLE to 7.2-STABLE.

---- PROLOG -----------------------------------------------------------------

o # reboot once to make sure OLD system is at least
# able to still successfully reboot autonomous at all
# SORRY, THIS IS _NOT_ A JOKE -- THIS IS A VERY SERIOUS ISSUE!
$ shutdown -r now

---- BUILD ------------------------------------------------------------------

o # switch to a reasonable run-time environment
$ cd /; exec `/usr/bin/which bash sh | head -1`
$ PATH=/bin:/usr/bin:/sbin:/usr/sbin; umask 022; unset TMOUT

o # install backward compatibility files
# ("locale data" to /usr/local/share/compat/, "libraries" to /usr/local/lib/compat/)
# notice: via binary packages as FreeBSD 7.x ports cannot be installed under FreeBSD 6.X
$ url="ftp://ftp.freebsd.org/pub/FreeBSD/ports/`uname -m`/packages-7-stable/All"; \
( cd /tmp; for pkg in localedata-5.4.tbz compat6x-`uname -m`-6.4.604000.200810.tbz; do \
fetch -p $url/$pkg; pkg_add $pkg; rm -f $pkg; \
done )

o # install latest FreeBSD Upgrade Toolkit
$ cd /usr; \
fetch http://people.freebsd.org/~rse/dist/freebsd-adm-1.2.2.tar.gz; \
rm -rf adm; gunzip > RELENG_7

o # upgrade /usr/src (already required for "mergemaster -p" below!)
$ (cd /usr/src && make cleandir); \
(cd /usr/adm && make update)

o # upgrade kernel configuration
$ vi /sys/`uname -m`/conf/`hostname -s | tr 'a-z' 'A-Z'`

>> options COMPAT_FREEBSD6
>> options SCTP # Stream Transmission Control Protocol
>> options UFS_GJOURNAL # Enable gjournal-based UFS
>> options STOP_NMI # Stop CPUS using NMI instead of IPI
>> options AUDIT # Security event auditing
>> options GEOM_LABEL # Provides labelization

<< options GEOM_GPT # GUID Partition Tables. >> options GEOM_PART_GPT # GUID Partition Tables.

<< options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!] >> options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!]

<< options NTFS >> options STACK # stack(9) support

>> device uart # Generic UART driver

<< device lnc # NE2100, NE32-VL Lance Ethernet cards >> device le # AMD Am7900 LANCE and Am79C9xx PCnet

>> device firmware # firmware assist module

>> device dcons # Dumb console driver
>> device dcons_crom # Configuration ROM for dcons

<< device rr232x # Highpoint RocketRAID 232x o # prepare the upgrade # (mainly create "ftp" group) $ mergemaster -p o # build new system $ cd /usr/adm && make world-build kernel-build ---- INSTALL ---------------------------------------------------------------- o # upgrade system $ make world-install kernel-install o # cleanup system (part 1) $ rm -f /etc/rc.d/ike /etc/rc.d/pccard /etc/rc.d/pcvt /etc/rc.d/ramdisk $ rm -f /etc/rc.d/ramdisk-own /etc/rc.d/usbd /etc/rc.d/nfslocking $ make etc $ make clean o # reboot into upgraded system $ shutdown -r now ---- CLEANUP ---------------------------------------------------------------- o # switch to a reasonable run-time environment $ cd /; exec `/usr/bin/which bash sh | head -1` $ PATH=/bin:/usr/bin:/sbin:/usr/sbin; umask 022; unset TMOUT o # cleanup system (part 2) $ ( for dir in /bin /sbin /usr/bin /usr/sbin /usr/libexec /usr/libdata; do \ find $dir -mtime +2 -type f -xdev -print; \ find $dir -mtime +2 -type l -xdev -print; \ done ) >/tmp/remove
$ vi /tmp/remove
# REVIEW FILES TO REMOVE MANUALLY
$ cat /tmp/remove | xargs rm -f
$ ( for dir in /lib /usr/lib; do \
find $dir -mtime +2 -type f -xdev -print; \
find $dir -mtime +2 -type l -xdev -print; \
done ) | grep -v /usr/lib/compat >/tmp/move
$ vi /tmp/move
# REVIEW FILES TO MOVE MANUALLY
$ for x in `cat /tmp/move`; do chflags noschg $x; mv $x /usr/lib/compat/; done
$ cd /usr/src; make BATCH_DELETE_OLD_FILES=YES delete-old delete-old-libs

---- EPILOG ----------------------------------------------------------------

o # reboot into cleaned system
# (mainly to reload the shared library cache and to
# make sure everything really still works fine)
$ shutdown -r now

#############################################################
#############################################################
Upgrading from FreeBSD 5.X to FreeBSD 6.X
#############################################################
#############################################################

Author: Ralf S. Engelschall
Version: 1.5
Modified: 2007-05-24
Created: 2006-01-11

ATTENTION: THIS UPGRADE PROCEDURE MIGHT NOT WORK FOR YOU AS YOUR
ENVIRONMENT IS DIFFERENT. ALSO, THIS UPGRADE PROCEDURES MIGHT DESTROY
YOUR SYSTEM AND YOU POTENTIALLY MIGHT LOOSE DATA. NO WARRANTY AT ALL.
USE IT AT YOUR OWN RISK!

The following is a step-by-step procedure for upgrading a server from
FreeBSD 5.[45]-STABLE to a FreeBSD 6.2-STABLE.

It is able to upgrade the server completely remotely with neither
console access nor single-user mode requirements. It was successfully
tested on about 20 servers in February 2007.

---- PREPARE ----------------------------------------------------------------

o # reboot once to make sure OLD system is at least
# able to still successfully reboot at all ;-)
# SORRY, THIS IS NOT A JOKE -- THIS IS A VERY SERIOUS ISSUE!
$ shutdown -r now

---- BUILD ------------------------------------------------------------------

o # switch to a reasonable run-time environment
$ cd /; exec `/usr/bin/which bash sh | head -1`
$ PATH=/bin:/usr/bin:/sbin:/usr/sbin; umask 022; unset TMOUT

o # install backward compatibility files
# (locale data to /usr/local/share/compat/, libraries to /usr/local/lib/compat/)
# notice: via binary packages as ports cannot be installed under FreeBSD 5.X
$ url="ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All"
$ ( cd /tmp; for pkg in localedata-5.4.tbz compat5x-i386-5.4.0.8_7.tbz; do \
fetch -p $url/$pkg; pkg_add $pkg; rm -f $pkg; \
done )

o # install latest FreeBSD Upgrade Toolkit
$ cd /usr; \
fetch http://people.freebsd.org/~rse/dist/freebsd-adm-1.2.2.tar.gz; \
rm -rf adm; gunzip > options COMPAT_FREEBSD5

o # prepare the upgrade
# (mainly create "_dhcp" and "audit" user/group)
$ mergemaster -p

o # build new system
$ cd /usr/adm && make world-build kernel-build

---- INSTALL ----------------------------------------------------------------

o # upgrade system
$ make world-install kernel-install

o # cleanup system (part 1)
$ rm -f /etc/rc.d/gbde_swap /etc/rc.d/initdiskless /etc/rc.d/ppp-user
$ rm -f /etc/rc.d/preseedrandom /etc/rc.d/rcconf.sh /etc/rc.d/vinum
$ make etc
$ make clean

o # reboot into upgraded system
$ shutdown -r now

---- CLEANUP ----------------------------------------------------------------

o # switch to a reasonable run-time environment
$ cd /; exec `/usr/bin/which bash bash sh | head -1`
$ PATH=/bin:/usr/bin:/sbin:/usr/sbin; umask 022; unset TMOUT

o # cleanup system (part 2)
$ ( for dir in /bin /sbin /usr/bin /usr/sbin /usr/libexec /usr/libdata; do \
find $dir -mtime +2 -type f -xdev -print; \
find $dir -mtime +2 -type l -xdev -print; \
done ) >/tmp/remove
$ vi /tmp/remove
# REVIEW FILES TO REMOVE MANUALLY
$ cat /tmp/remove | xargs rm -f
$ ( for dir in /lib /usr/lib; do \
find $dir -mtime +2 -type f -xdev -print; \
find $dir -mtime +2 -type l -xdev -print; \
done ) | grep -v /usr/lib/compat >/tmp/move
$ vi /tmp/move
# REVIEW FILES TO MOVE MANUALLY
$ for x in `cat /tmp/move`; do chflags noschg $x; mv $x /usr/lib/compat/; done
$ cd /usr/src; make BATCH_DELETE_OLD_FILES=YES delete-old delete-old-libs

o # reboot into cleaned system
# (mainly to reload the shared library cache and to
# make sure everything really still works fine)
$ shutdown -r now

#####################################################
#####################################################
Upgrading from FreeBSD 4.X to FreeBSD 5.X
#####################################################
#####################################################

Ralf S. Engelschall
Version: 3.4 (2005-09-28)

ATTENTION: THIS UPGRADE PROCEDURE MIGHT NOT WORK FOR YOU AS YOUR
ENVIRONMENT IS DIFFERENT. ALSO, THIS UPGRADE PROCEDURES MIGHT DESTROY
YOUR SYSTEM AND YOU POTENTIALLY MIGHT LOOSE DATA.

The following is a step-by-step procedure for upgrading a FreeBSD 4.X
(actually 4.11-STABLE) system to FreeBSD 5.X (actually 5.4-STABLE).

It uses a hard-core in-place system overwriting approach in order to
require no console access and single-user mode at all. Hence it is
suitable for upgrading a server remotely via just SSH access.

It was developed on a VMWare GSX based virtual PC (i386) and
successfully tested on HP DL380 PCs. BUT NO WARRANTY IS GIVEN THAT THIS
PROCEDURE REALLY WORKS FOR YOU. USE IT AT YOUR OWN RISK ONLY!

Notice: the main difference between the resulting upgraded system and a
freshly installed system is that the upgraded one is still running under
UFS1 filesystems instead of UFS2. Unfortunately UFS1 cannot be converted
to UFS2. A full dump/restore of the whole data would be required (which
is nearly impossible remotely, at least for / and /usr). But it doesn't
hurt, as the UFS2 advantages (64bit pointers, lazy inode init, extended
attributes, etc) are not necessary for existing old servers (usually
filesystems not greater than 1TB, filesystems already initialized and
extended attributes are a new feature).

PASS 1: Bootstrap into FreeBSD 5.4-RELEASE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

o switch to a reasonable run-time environment
$ cd /; exec `/usr/bin/which bash sh | head -1`
$ PATH=/bin:/usr/bin:/sbin:/usr/sbin
$ ntpdate pool.ntp.org pool.ntp.org pool.ntp.org pool.ntp.org
$ umask 022
$ unset TMOUT
$ unalias vi

o try to shutdown as much processes as possible to reduce filesystem
contention. The result should be some sort of a pseudo single-user mode
(yes: cron, syslogd, inetd, sendmail, lpd, ...)
(no: sshd, getty, dhclient, ntpd, csh, adjkerntz, ...)
$ killall cron syslogd inetd sendmail lpd
$ ps -ax
$ kill ...

o fetch and mount FreeBSD 5.4-RELEASE CDROM ISO image
$ cd /usr
$ fetch ftp://ftp.de.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/5.4/5.4-RELEASE-i386-disc1.iso
$ vnconfig -c -v /dev/vn0 5.4-RELEASE-i386-disc1.iso
$ mount -t cd9660 -o ro /dev/vn0 /mnt

o determine which /etc files were actually changed
$ mergemaster -t /tmp/mm -a
$ chflags -R noschg,nouchg /tmp/mm
$ find /tmp/mm -type d -depth -print | xargs rmdir 2>/dev/null
$ rm -rf /tmp/mm/usr /tmp/mm/var /tmp/mm/sys /tmp/mm/dev
$ find /tmp/mm -type l -print | xargs rm -f

o create a new /usr/src (for both mergemaster and later upgrade speedup)
$ kc=`hostname | sed -e 's;\..*$;;' | tr 'a-z' 'A-Z'`; echo $kc
$ cp /sys/`uname -m`/conf/$kc /tmp/$kc 2>/dev/null || true
$ rm -rf /usr/src; mkdir /usr/src
$ cd /mnt/5.4-RELEASE/src; ./install.sh all
$ cp /tmp/$kc /sys/`uname -m`/conf/$kc 2>/dev/null || true
$ sync; sync; sync

o create a new /etc from scratch
(Notice: tar intentionally used without pipe as it broke sometimes!)
$ cd /usr/src/usr.sbin/mergemaster && make all install
$ mv /etc /etc.old
$ mkdir /etc
$ cd /etc.old && tar cf /tmp/etc.tar master.passwd passwd group shells
$ cd /etc && tar xvf /tmp/etc.tar
$ pwd_mkdb -p /etc/master.passwd
$ mergemaster -v -i -a
$ cap_mkdb /etc/login.conf
$ /usr/bin/newaliases

o restore the old /etc files which were actually changed
(Notice: tar intentionally used without pipe as it broke sometimes!)
$ cd /tmp/mm/etc; for file in *; do \
if [ -f $file -a ! -h $file ]; then \
cp -p /etc.old/$file /etc/$file; \
echo /etc/$file; \
fi; \
done
$ cd /; rm -rf /tmp/mm
$ cd /etc.old && tar cf /tmp/etc.tar rc.conf crontab fstab resolv.conf termcap \
wall_cmos_clock localtime rc.d/*.sh start_if* ssh 2>/dev/null
$ cd /etc && tar xvf /tmp/etc.tar

o merge the /etc files which were actually changed with new content
$ export EDITOR=vi
$ export PAGER=less
$ vipw
:1,$s/\/sbin\/nologin/\/usr\/sbin\/nologin/g
$ chflags -R noschg /var/tmp/temproot
$ rm -rf /var/tmp/temproot
$ mergemaster -v -i -s -C
$ vi /etc/rc.conf
# REVIEW MANUALLY
<>
<>dumpdev="/dev/idad0s1b"
<>#saver="..."
<>#blanktime="..."
<>#font8x8="iso-8x8"
<>#font8x14="iso-8x14"
<>#font8x16="iso-8x16"
<>sshd_enable="YES"
firewall_enable="NO"
firewall_type="open"
#firewall_script="open"
$ vi /etc/ssh/sshd_config
Port 2222
PermitRootLogin yes
$ vi /etc/start_if*
# REVIEW MANUALLY
$ vi /etc/sysctl.conf
# REVIEW MANUALLY
<> md /tmp mfs rw,-s256m,-i2048,-Otime,-v2,async,noatime,nosuid,nodev 0 0

o further adjust system configuration files
1. force foreground fsck(1) to avoid snapshots (which are unstable on FreeBSD 5)
2. disable ACPI (which too often makes problems on older servers)
$ echo "background_fsck=\"NO\"" >>/etc/rc.conf
$ echo "hint.acpi.0.disabled=\"1\"" >>/boot/loader.conf

o allow us to finalize after the hard-core system file overwrite
$ cp -p /bin/rm /bin/sync /sbin/reboot /tmp

o hard-core overwrite FreeBSD 4.x system files with FreeBSD 5.4 ones
$ chflags -R noschg,nouchg /bin /sbin /usr/bin /usr/sbin /usr/lib /usr/libexec 2>/dev/null || true
$ for part in compat4x games dict manpages info; do \
(cd /mnt/5.4-RELEASE/$part && ./install.sh); \
done
$ mv /usr/include /usr/include.old
$ mv /usr/share /usr/share.old
$ cd /mnt/5.4-RELEASE/base
*** ATTENTION: NOW THE SYSTEM IS OVERWRITTEN IN-PLACE ***
$ cat base.?? | tar --unlink --exclude="etc/*" -xpzf - -C / 2>/dev/null
*** ATTENTION: NOW ALL OVERWRITTEN COMMANDS ARE UNUSABLE: "Bad system call" ***

o reboot into FreeBSD 5.4-RELEASE
$ /tmp/rm -rf /dev/*
$ /tmp/rm -f /usr/lib/libkvm.so.2
$ /tmp/sync; /tmp/sync; /tmp/sync
$ /tmp/reboot

PASS 2: Rebuild system in-place for FreeBSD 5.4-STABLE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

o switch to a reasonable run-time environment
$ cd /; exec `/usr/bin/which bash sh | head -1`
$ PATH=/bin:/usr/bin:/sbin:/usr/sbin
$ ntpdate pool.ntp.org pool.ntp.org pool.ntp.org pool.ntp.org
$ umask 022
$ unset TMOUT
$ unalias vi

o reduce background activity
$ /etc/rc.d/cron stop

o some cleanups from PASS 1
$ for fs in / /var /usr; do find $fs -name PaxHeader -type d -print -xdev | xargs rm -rf; done
$ rm -rf /usr/include.old /usr/share.old
$ rm -f /usr/5.4-RELEASE-i386-disc1.iso
$ rm -rf /modules
$ chflags noschg,nouchg /kernel*
$ rm -f /kernel*

o migrate the kernel configuration
$ cd /sys/`uname -m`/conf
$ kc=`hostname | sed -e 's;\..*$;;' | tr 'a-z' 'A-Z'`; echo $kc
$ test -f $kc || cp GENERIC $kc
$ vi $kc
>> options COMPAT_FREEBSD4

o upgrade /usr/adm environment
$ cd /usr
$ fetch http://people.freebsd.org/~rse/dist/freebsd-adm-1.0.14.tar.gz
$ rm -rf adm; gunzip Makefile.bsd.new && mv Makefile.bsd.new Makefile.bsd
$ rm -rf /usr/ports/*
$ sync; sync; sync
$ make upgrade
$ make etc

o filesystem cleanup by removing obsolete files
$ ( for dir in /bin /sbin /usr/bin /usr/sbin /usr/lib /usr/libexec /usr/libdata; do \
find $dir -mtime +2 -type f -xdev -print; \
find $dir -mtime +2 -type l -xdev -print; \
done ) | grep -v /usr/lib/compat >/tmp/remove
$ vi /tmp/remove
# REVIEW MANUALLY
$ cat /tmp/remove | xargs rm -f

o reboot into FreeBSD 5.4-STABLE
$ shutdown -r now

#####################################################
#####################################################
Upgrading from FreeBSD 3.X to FreeBSD 4.1-STABLE
#####################################################
#####################################################

Ralf S. Engelschall
Version: 1.2 (2005-09-27)

ATTENTION: THIS UPGRADE PROCEDURE MIGHT NOT WORK FOR YOU AS YOUR
ENVIRONMENT IS DIFFERENT. ALSO, THIS UPGRADE PROCEDURES MIGHT DESTROY
YOUR SYSTEM AND YOU POTENTIALLY MIGHT LOOSE DATA.

o boot the old FreeBSD 3.x in multi-user mode

o provide a particular build environment
$ vi /etc/make.conf
NOPERL=true # else Perl would fail to build under 3.x initially
NOPROFILE=true # to speed up building
MAKE_RSAINTL=YES # for non-US
USA_RESIDENT=NO # dito.
CFLAGS=-O -pipe # standard optimization
COPTFLAGS=-O -pipe # dito.
COMPAT1X=yes # install compatibility libraries
COMPAT20=yes # dito.
COMPAT21=yes # dito.
COMPAT22=yes # dito.
COMPAT3X=yes # dito.

o provide boot-strapping run-time environment
$ mkdir -p /usr/obj/usr/src/lib/libc
$ ldconfig -R /usr/obj/usr/src/lib/libc

o build the world initially (still under FreeBSD 3.x run-time)
$ cd /usr/obj
$ chflags -R noschg *
$ rm -rf *
$ cd /usr/src
$ make buildworld

o build and install new GENERIC kernel+modules
$ make buildkernel KERNEL=GENERIC
$ make installkernel KERNEL=GENERIC
$ chflags noschg /kernel.GENERIC /GENERIC
$ mv /kernel.GENERIC /kernel.GENERIC.3
$ mv /GENERIC /kernel.GENERIC
$ chflags schg /kernel.GENERIC

o upgrade FOO kernel config from 3.x to 4.x
$ vi /sys/i386/conf/FOO
- remove "config kernel ...", "bio", "tty", "net", "conflicts"
- remove unnecessary quotations
- remove "pnp" device
- remove "acd0" device
- remove obsolete options (check output of "config FOO")
- replace some "xxx0" with "xxx" (compare LINT for details)
- replace "controller" & "disk" with "device"
- replace "wdc0" with "ata0" plus more "ata*" from GENERIC
- replace "bpfilter" with "bpf"
- replace "isa?" with "atkbdc?" for "atkbd0" and "psm0" device

o build and install new FOO kernel+modules
$ make buildkernel KERNEL=FOO
$ make installkernel KERNEL=FOO
$ chflags noschg /kernel /FOO
$ mv /kernel /kernel.3
$ mv /FOO /kernel
$ chflags schg /kernel

o upgrade devices
$ cd /usr/src/sbin/mknod && make install
$ cp /usr/src/etc/MAKEDEV* /dev
$ cd /dev
$ sh MAKEDEV all
- make sure really all devices for disks exists:
for N in the list of disks
sh MAKEDEV N # eg ad0
for M in the list of slices
sh MAKEDEV NsMa # eg ad0s1a
- edit /etc/fstab and replace "wd0" with "ad0"

o upgrade boot blocks and loader
$ cd /sys/boot && make install

o boot FreeBSD 4.x kernel (still with 3.x user-land) in single-user mode
$ shutdown -r now
> boot -s
$ mount -a

o install the world
$ cd /usr/src/gnu/usr.bin/texinfo/install-info
$ make install
$ ldconfig -R /usr/obj/usr/src/lib/libc
$ cd /usr/src
$ make installworld
$ cd /usr/src/release/sysinstall && make all install

o upgrade /etc
$ cp -rp /etc /etc.old
$ mergemaster -v -s

o final adjustments for new FreeBSD 4.x user-land
$ touch /var/log/security
$ touch /var/log/cron
$ rm /var/cron/log*

o switch to new shipped OpenSSH [OPTIONAL!]
$ ssh-keygen -f /etc/ssh/ssh_host_key
$ ssh-keygen -d -f /etc/ssh/ssh_host_dsa_key
$ vi /etc/rc.conf
sshd_enable="YES"
$ pkg_delete ssh-1.2.27

o boot FreeBSD 4.x kernel and user-land in multi-user mode
$ shutdown -r now

o rebuild some criticial programs to avoid spurious segfaults
under the forthcoming final "buildworld/installworld" step
$ vi /etc/make.conf
#NOPERL=true
$ cd /usr/src/gnu/usr.bin/perl
$ (cd libperl && make all install)
$ (cd perl && make all install)
$ make clean all install
$ cd /usr/src/usr.bin/lex && make clean all install
$ cd /usr/src/usr.bin/yacc && make clean all install
$ cd /usr/src/gnu/usr.bin/as && make clean all install
$ cd /usr/src/gnu/usr.bin/cc && make clean all install
$ cd /usr/src/gnu/lib/libgcc && make clean all install

o build and install the world finally from scratch (under FreeBSD 4.x run-time)
$ cd /usr/obj
$ chflags -R noschg *
$ rm -rf *
$ cd /usr/src
$ make buildworld
$ make installworld

o rebuild the kernel with the final tools
$ cd /sys/i386/conf
$ config FOO
$ cd /sys/compile/FOO
$ make depend all
$ make install

o reboot to switch to the final FreeBSD 4.x system
$ shutdown -r now

quarta-feira, 24 de agosto de 2011

EGREP - Remover comentário do texto

egrep -v "^[#]" arquivo.txt > arquivo.txt-limpo

sexta-feira, 12 de agosto de 2011

FreeBSD: Resolução tela modo texto

Most servers these days are headless although with some security system setups it’s still important to have physical access to the box. After a short time of using it you’ll certainly get fed up with the low resolution, here’s a way to increase your screen resolution.

Recompiling the Kernel

You’ll first need to recompile your kernel to add support for vidcontrol, you can do this as follows:

Using sysinstall ensure you have installed the following src files: base,sys
cd /usr/src/sys/amd64/conf (you may want to replace amb64 with i386)
cp GENERIC CUSTOMKERNEL
echo “options VESA” >> CUSTOMKERNEL
echo “options SC_PIXEL_MODE” >> CUSTOMKERNEL
cd /usr/src
make buildkernel KERNCONF=CUSTOMKERNEL
make installkernel KERNCONF=CUSTOMKERNEL
reboot
You’ll then need to reboot to enable the new kernel you booted. You may encounter an error suggesting you’ve run out of disk space. If this is the case you’ll probably want to “mv /boot/kernel.old /usr” and try again.

Now you’re using your new kernel you’ll be able to see a list of all available resolutions:

vidcontrol -i mode
Find a line that shows the correct resolution and make a note of the number at the start of it, I’m using 280 which is 1024x768x32
echo allscreens_flags=”MODE_280″ >> /etc/rc.conf
reboot or vidcontrol
You should now be able to enjoy many more characters on your screen, hooray!

FONTE: http://www.elfnet.org/2010/11/28/freebsd-console-terminal-resolution/

sábado, 6 de agosto de 2011

FreeBSD: Servidor de Counter Strike

At 09:49 AM 11/7/2002, you wrote:
Para aqueles que se interessaram em montar um servidor CS no FreeBSD, acabei de faze-lo, mas não é tão direto quanto se acredita, nem ao menos é parecido com Linux.

Passos básicos:

1) Instale/atualize a árvore dos ports com o cvsup (favor consultar documentação específica)

2) Instalar a compatibilidade de Linux mais atualizada (/stand/sysinstall); Consulte documentação específica. Por volta de 24 MB.

3) Baixar o pacote http://gwforum.net/cs/ua/HL_CS_Files/halflife/hlds_l_3110_full.bin

(por volta de 118 MB)

Esse arquivo pode ser baixado de vários outros pontos na Internet. Use o Google ou similar para procurar. (esse é o SERVIDOR de Half Life propriamente dito, o "engine" que roda o MOD Counter Strike.)

Coloque-o em /usr/ports/distfiles

Neste caso esse já é o binário de Linux. É um arquivo auto-descompactável que tem a licensa de uso. Caso você concorde com ela, o arquivo irá descompactar o pacote .tar.gz completo no diretório local, que no FreeBSD TEM QUE SER o /usr/ports/distfiles .


4) Baixar o pacote de atualização para Counter Strike mais atual (1.5, hoje)
O link
http://gwforum.net/cs/ua/HL_CS_Files/cstrike/lin_server/cs_15_full.tar.gz
funciona bem, mas continua valendo o comentário anterior. Por volta de 108 MB.

Coloque-o em /usr/ports/distfiles

Esse não precisa executar. O conteúdo do arquivo vai ser usado para "patchear" o módulo de Linux hlds, e isso vai acontecer quando VC der um make.

5) tudo pronto para começar a compilar;

execute

cd /usr/ports/games/halflifeserver/

make

make install

(provavelmente este passo 5 e o seguinte são redundantes, ou, na pior das hipóteses, iguais, mas foi assim que eu fiz, e ainda não tive tempo de testar outro modo)

6) execute

cd /usr/ports/games/hlserver-cs/

make

make install

7) Edite o arquivo de configuração do servidor em

/usr/compat/linux/usr/games/hlds_l/cstrike/server.cfg

o meu está assim:

// disable autoaim
sv_aim 0

// disable clients' ability to pause the server
pausable 0

// default server name. Change to "Bob's Server", etc.
hostname "Cap_BR"

// maximum client movement speed
sv_maxspeed 320

// 20 minute timelimit
mp_timelimit 20

sv_cheats 0

rcon_password "senhadoserverCS"
mp_c4timer 30
mp_flashlight 1
mp_footsteps 1
mp_friendlyfire 1
mp_autoteambalance 1
mp_freezetime 6
mp_roundtime 3
mp_maxrounds 0
mp_mapvoteratio 0.8
mp_forcechasecam 0

Finalmente rode o servidor como USUÁRIO NÃO PRIVILEGIADO (não root, ou não pertencente ao grupo wheel). Comando:

./usr/compat/linux/usr/games/hlds_l/hlds_run -game cstrike + maxplayers 6 + exec server.cfg + map de_dust &

(tudo em uma linha só, claro. Preste atenção no "." no início do comando e o "&" no final!)

Com isso um servidor CS básico vai estar rodando em background, sem senha, para os usuários.

Lembre que assim que VC inicia o servidor ele vai:

-Baixar atualizações do site principal
-publicar-se como sendo um servidor público nas listas internacionais (portanto VC vai ser conhecido em todo o mundo) -se seu servidor estiver por trás de um firewall e/ou gateway, e com IP reservado (192.168.x.y, 10.x.y.z, 172.16.x.y) o IP do GATEWAY vai ser publicado como sendo de um servidor de jogo, e várias requisições de conexão (porta udp 27015/27005), informação (porta udp 27010) passarão a acontecer entre o servidor de jogo e a Internet, ou o GATEWAY e a internet.

Para tornar público um servidor de jogo, mantendo-o por trás do firewall/gateway, use o redirecionamento do natd ou similar da seguinte maneira:

todas as conexões chegando para o gateway para udp 27015 devem ser redirecionadas para o ip interno do servidor de jogo.

O servidor de CS é muito econômico e estimo que consuma por volta de 3 a 4% dos recursos de processamento de um Pentium 3 500 MHz com 128 MH de ram (rodando apenas isso) por jogador conectado. O único probleminha é que - pelo que eu interpretei do TOP - ele ocupa algo como 53 MB de memória ram.

Calculo uma média de 3.5 KBytes/s de saída e 2.5 Kbytes/s de entrada de dados, por cliente (jogador) conectado. Ou seja, donos de speedy 256/128, sinto muito mas não vão jogar mais do que 4 pessoas no seu server (remotamente), com boa performance. Esse consumo de banda não é estável, e varia muito durante o jogo, não atinei exatamente o porque.

Dica: Para tornar o jogo balanceado entre jogadores remotos e locais, use o pipe do ipfw para reduzir a velocidade e alterar o tempo de resposta da conexão local, e equalizar o tempo de resposta. O tempo de resposta de um cliente pode ser verificado durante o jogo apertando a tecla tab. Esse tempo de resposta é conhecido como "ping" pela comunidade CS (mas designado como "latency"), e estando entre 35 e 45 é considerado excelente. "Pings" de 100 e acima dificultam em muito o jogo para esse determinado cliente (vira presa fácil).

Clientes na rede interna deverão ter um "ping" de aproximadamente 15 a 40, com bastante flutuação.

Ainda não tenho os comandos mais avançados do servidor de CS e agradeceria se alguém os passasse para mim.

Se VC tem um servidor um pouco mais avantajado que está funcionando só como DNS ou coisas pequenas, taí uma máquina ideal para fazer uma servidor de Couter Strike.

[]s

Capriotti

FONTE: http://www.fug.com.br/historico/html/freebsd/2002-11/msg00230.html

sexta-feira, 5 de agosto de 2011

ZIMBRA: Restaurar .MSG

FONTE: http://tretasonline.blogspot.com/2011/02/para-comecar.html

Tivemos um problema em um cliente que possui o pacote de colaboração do Zimbra, aconteceu que o cliente acabou perdendo os backups existentes e o zimbra havia parado de funcionar devido a algum problema no Mysql.

Enfim, tentei varias alternativas para concertar o Mysql, porém nada adiantou, depois de muita peleia acabei convertendo a maquina para uma vm em um outro servidor, e depois instalei um zimbra do zero e bastou criar as contas dos usuários...

Mas dai tu me pergunta.. e os e-mails que estavam no outro servidor?

Dai vem a pior parte, como o zimbra não levantava, eu não conseguia efetuar backup das contas, pois o script que tenho para backup faz através de HTTP, então ficou complicado...

Depois de muita busca no google e de muitas noites perdidas devido a grandes quatidades de café, consegui uma fórmula mágica...

Bem, não tão mágica, daria um pouco de trabalho, mas iria funcionar.. Vamos a ela...


O zimbra possui uma pasta onde ele armazena todos os e-mails dos usuários, "/opt/zimbra/store/0/", nesta pasta ficam os arquivos ".msg" de todos as contas, porém, cada usuário possui uma identificação, que é guardada no Mysql do zimbra (justamente o que não tava funcionando), então não tinha como saber que Id era qual usuário..

Entrando na pasta, me deparei com várias outras pastas nomeadas com a id do usuário, e dentro de cada "id" outras pastas com os ".msg" da conta...

Criei então uma conta "teste" no meu servidor zimbra com uma pasta "restaurados", e mandei converter os ".msg" para dentro dela com o seguinte comando...

/opt/zimbra/bin/zmmailbox -z -m teste@zimbrateste01.com.br addMessage /restaurados *.msg

Foi ai que percebi que era possível restaurar as mensagens que até então estavam perdidas nas contas que eu queria...

O maior trabalho foi restaurar as .msg de cada id para descobrir de quem eram aquelas mensages...
Isso demorou quase uma manha inteira, e isso que eram somente 43 contas!! (obviamente não restaurei todas as mensagens de uma conta para saber de quem eram..)

Dai parti pro shell script...

dei um "ls" na pasta com as id's ( já alteradas para os nomes dos respectivos usuários) e concatecei em um arquivo chamado "users", nesse arquivo contia então as pastas com os arquivos ".msg" e consequentemente os usuários que receberiam as mensagens...

Criei então um script que iria ler a lista de usuarios, iria criar uma pasta na conta de cada usuario da lista e também iria restaurar as mensagens de cada usuario/msg para a pasta que eu previamente havia escolhido...

O script foi rodado através de uma "screen" no linux e ficou rodando durante a noite, ao chegar na empresa pela manhã, verifiquei que todas as mensagens haviam sido restauradas..

Sendo assim, a migração das contas foi "praticamente" um sucesso, não foi "completamente" porque não foi possível salvar os "contatos, agenda, tarefas e etc..." das contas, somente as mensagens.. Mas já é alguma coisa, e o cliente ficou com as mensagens, o que sinceramente, é o mais importante né???

Deixo aqui o meu testemunho então de que é possivel restaurar os e-mails de um servidor zimbra corrompido sem ter que fazer todos os testes que eu fiz...

Ex:
Copiar pasta "store" de um servidor pro outro... (não adiantou, pois não identifica as mensagens)
Copiar pasta inteira "/opt/zimbra" - Não adiantou (ainda tive que reconfigurar o zimbra, e serviços que antes funcionavam, haviam parado!)


Se alguem estiver com o mesmo problema, só precisa entrar em contato através do meu e-mail que envio o script que faz tal tarefa...

quinta-feira, 28 de julho de 2011

Redhat: Selinux

No Centos precisa desabilitar o selinux para que o samba consiga 'respeitar' as regras que você está colocando.
O arquivo para desabilitar o selinux é o seguinte:

#vim /etc/selinux/config

na linha

SELINUX=enforcing

mude para

SELINUX=disable

salva o arquivo de reinicia o pc, e faça o teste.


FONTE: http://www.vivaolinux.com.br/topico/Samba/Acesso-Negado

quarta-feira, 20 de julho de 2011

Wireless - Conceitos

1 - Signal Strength, SNR, Noise floor, etc :

Signal Strength : A potência radiométrica sentida em um canal, trocando em miudos a potência de sinal presente em um canal, somando ruido, sinal, qualquer coisa (Quanto mais alto melhor, mas nem sempre).

SNR : Relação sinal ruído, o que realmente importa na transmissao de dados. É a diferenca (subtração em escala logaritmica, ou divisao em escala linear) entre a potência do sinal e a potência do ruído (Quase sempre, quanto maior melhor).

Noise floor : Ruído presente no canal (quanto mais baixo melhor).

FONTE: http://under-linux.org/f105/desmistificando-alguns-conceitos-138267/

segunda-feira, 18 de julho de 2011

FreeBSD: Nat no kernel

O nat no freebsd mudou faz uns 3 anos. Antigamente, o ipdivert era utilizado em conjunto com o natd porque nao se tinha alias dentro do kernel mas como disse, mudou faz 3 anos.

Pelo fato de um daemon (natd) estar na userland, se vc estiver com um load muito grande, o processamento vai lá em cima, por causa do overhead de uma aplicação em userland.

Para resolver isso, fizeram uma biblioteca dentro do kernel (a libalias) que faz nat em kernel land.

Dê uma olhada em " man ipfw" .

kernel:
options libalias
options IPFIREWALL
options IPFIREWALL_NAT
options IPFIREWALL_FORWARD

ipfw nat 1 config if rl0 "(interface do link"
ipfw add nat 1 all from 192.168.1.0/24 to any
ipfw add nat 1 all from any to me in via rl0

Com issó aí, vc tem um nat feito através do kernel, e nao de uma aplicação userland.

FONTE: http://under-linux.org/f232/compartilhamento-de-internet-usando-freebsd-com-modem-adsl-em-bridge-149569/

FreeBSD: Modem ADSL

Pessoal muita gente procura essa informação na internet eu mesmo, tive muita dificuldade pra encontrá-la na primeira vez, então estou aqui trazendo criando esse tutorial para todos.

1º PASSO

Se o seu modem está roteado, reset nele, e configure em bridge para a operadora de sua região. Não vou fazer tópico pra isso.

2º PASSO ( PARTE FREEBSD)

Primeiramente uma dica: eu utilizava o shell bash na conta root, e toda vez que tentava configurar o pppoe, ele dava erros e não iniciava junto com o sistema, então para usar modem em bridge discando pppoe no freebsd deixa a conta root com o shell sh ou csh ok.

TOPOLOGIA DO SERVIDOR FREEBSD:

rl0 - > placa de rede ligada ao modem adsl em bridge usando dhcp

rl1 -> placa de rede ligada ao switch para compartilhar a internet com outros computadores ip: 192.168.10.1

bom vamos lá

PRIMEIRAMENTE ANTES DE TUDO, PRECISAMOS RECOMPILAR O NOSSO KERNEL PARA TERMOS ACESSO AS OPCOES DE COMPARTILHAMENTO E OPCOES DE NOSSO FIREWALL IPFW. COMO FAZEMOS ISSO, VEJA ABAIXO:

no console de comando do freebsd, vamos fazer o seguinte:

cd /sys/i386/conf [enter]

cp GENERIC NOMEDOSEUKERNELPERSONALIZADO (NO MEU CASO VOU DAR O NOME DE MYKERNEL)

incluir dentro do MYKERNEL PODE SER AO FINAL OU NO INICIO DO ARQUIVO O SEGUINTE, VOCE PODE USAR O EDITOR DE TEXTOS
ee ou o vi, como queiram

se for usar o "ee", então: ee MYKERNEL, adicione as linhas abaixo

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
options DUMMYNET
options NETGRAPH
options NETGRAPH_PPPOE
options NETGRAPH_ETHER
options NETGRAPH_ASYNC
options NETGRAPH_SOCKET
options HZ=1000

Para sair do "ee" e salvar o arquivo, é só dar um [ESC] [a] [a], fácil né..

Então continuando, depois de adicionar as linhas vamos digitar o seguinte comando no console:

config MYKERNEL

após isto, vamos entrar em outra pasta.. digitando os comandos abaixo

cd ..
cd compile/MYKERNEL

make cleandepend
make depend

make

make install

Beleza, após isso, seu kernel será instalado com todos módulos necessários, continue a fazer as configurações abaixo e
depois reinicie o sistema.

2.1 - arquivo ppp.conf ( /etc/ppp/ppp.conf )

default:
set log local phase chat lcp ipcp ccp tun command
ident user-ppp VERSION (built COMPILATIONDATE)

#( onde rl0 é placa de rede ligada ao modem, troque pela sua placa ligada ao modem, se não souber,
ifconfig no console pra ver.)


set device PPPoE:rl0

set mru 1492
set mtu 1492

set login
set dial


set timeout 0 # 0 minute idle timer (the default)
enable dns # request DNS info (for resolv.conf)

set authname 2238521111@telemar.com.br (aqui vai a conta em um provedor de autenticaçao)
set authkey 2238521111 (aqui vai a senha da conta acima)

nat disable

add default HISADDR # Add a (sticky) default route


2.2 - arquivo rc.conf (/etc/rc.conf

no arquivo rc.conf inclua as seguintes linhas ao final do arquivo

se houve uma linha default_router, comente-a com #

ifconfig_rl0="DHCP" ou coloque um ip na faixa do modem ex: (ifconfig_rl0="inet 192.168.254.1 netmask 255.255.255.0")
ifconfig_rl1="inet 192.168.10.1 netmask 255.255.255.0"
ppp_enable="YES"
ppp_profile="default"
ppp_mode="ddial"
ppp_nat="NO"

2.3 arquivo natd.conf (/etc/natd.conf

crie ou modifique o arquivo natd.conf que deverá conter o seguinte:

interface tun0 # ( onde a interface tun0 será criada quando o pppoe se conectar a internet pelo modem bridge.)
dynamic yes
same_ports yes
use_sockets yes
verbose no

2.4 arquivo inicianet.sh

vamos criar um script de inicialização do compartilhamento de internet, este arquivo deve estar na pasta /usr/local/etc/rc.d

então no prompt do freebsd vamos digitar os comandos:

cd /usr/local/etc/rc.d [enter]

echo "ipfw add 1 divert natd all from any to any via tun0" > inicianet.sh [enter]

chmod +x inicianet.sh [enter] para fazer o script ser executável


2.5 arquivo resolve.conf (/etc/resolv.conf)

dentro do resolv.conf colocaremos alguns servidores de dns, então inclua o seguinte

208.67.222.222
208.67.220.220
8.8.8.8


bom acho q é isso, lembrando que o shell do root tem que ser sh ou csh para que não haja problemas na inialização do sistema.

agora reinicie seu sistema, e bom acesso...

FONTE: http://under-linux.org/f232/compartilhamento-de-internet-usando-freebsd-com-modem-adsl-em-bridge-149569/

sábado, 9 de julho de 2011

Caneta

http://www.levatudo.com.br/produto.asp?idTipoProd=A0&Affiliate=levatudo$$BLOG_Post_Caneta_Espia_LkLT

sexta-feira, 1 de julho de 2011

FreeBSD: Instalar PostgreSQL

#cd /usr/ports/databases/postgresql83-server/
#make config

Opções:

WITH_NLS=true
WITH_OPTIMIZED_CFLAGS=true
WITH_XML=true
WITH_TZDATA=true

# make install clean

Iniciando o PostgreSQL

#echo ‘postgresql_enable=”YES”‘ >>/etc/rc.conf
#/usr/local/etc/rc.d/postgresql initdb
#/usr/local/etc/rc.d/postgresql start

#su - pgsql

$psql postgres

Welcome to psql 8.3.7, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

postgres=# CREATE USER postfix WITH PASSWORD ‘postfixadmin’;
postgres=#CREATE DATABASE postfix OWNER postfix ENCODING ‘unicode’;
postgres=#\q

$exit

FONTE: http://web.inseto.net/?p=1

quinta-feira, 30 de junho de 2011

FreeBSD: Atualização Binaria

# freebsd-update upgrade -r 8.2-RELEASE
Confirme as alterações para que a operação de merge seja feita com sucesso e depois instale:

# freebsd-update install
Reinicie o sistema:

# shutdown -r now
e agora atualize a userland do seu ambiente:

# freebsd-update install
Pronto, reinicialize novamente e seu sistema estará atualizado.

FONTE: http://blog.bibliotecaunix.org/?p=292

quarta-feira, 22 de junho de 2011

FreeBSD: MSN-Proxy erro

O MSN-Proxy do Ports e do SourceForge (zip) estão desatualizados... para
resolver problemas de queda de conexão atualizem a versão do MSN-Proxy
via SVN.

Remova a versão instalada via ports:
pkg_delete msn-proxy-0.7

Baixe a última release via SVN:
svn co https://msn-proxy.svn.sourceforge.net/svnroot/msn-proxy msn-proxy

Compile e instale:
cd /msn-proxy/msn-proxy/trunk
./configure --with-mysql --> ou --with-pgsql
make
make install

Na pasta /src/db_modules/mysql/php tem a versão atual do módulo web
(PHP)... tem alguns campos novos que precisam ser criados... pra não
perder muito tempo eu dropei o banco atual, configurei a conexão ao
mysql pelo MSN-Proxy (arquivo "conf" em /usr/local/etc/msn-proxy), abri
o MSN-Proxy e o mesmo recriou a estrutura do banco.

Eu não sei se é a forma mais correta, mas eu carrego o MSN-Proxy dessa
forma:

[root@intranet:/] # cat /etc/rc.d/msn-proxy.sh
#!/bin/csh
/usr/local/bin/msn-proxy -b

terça-feira, 14 de junho de 2011

FreeBSD - Teste SNMP

Só a título de teste, deixe seu snmpd.conf com apenas as seguintes
linhas e rode o comando novamente:

rouser public
rocommunity public

FONTE: http://www.mail-archive.com/freebsd@fug.com.br/msg40619.html

quarta-feira, 1 de junho de 2011

Cisco - Habilitar SSH

Configuração de SSH em roteadores Cisco
Posted by admin on mar 21, 2011 in cisco, Segurança na Rede
Encontrei alguns erros nesse tutorial e fiz alguns reparos para funcionar corretamente a fonte do tutorial foi : http://www.pedropereira.net/ssh-roteador-cisco-suporte/ porém testando notei que faltava muitas “coisinhas” e essas coisa é que fazem a diferença para que funcione corretamente.
Segue: primeiro lugar correto para se buscar informações http://www.cisco.com/en/US/docs/ios_xr_sw/iosxr_r3.7/security/configuration/guide/sc37ssh.html#wp1044523
Outra coisa que antes de você configurar seu SSH você precisa setar um dumain-name no router senão as configurações não vão conseguir ser feitas.
Outra coisa importante é verificar a versão do IOS se ela supora o SSH.
———————————————————————————————————–
Abaixo o how too para configurar o SSH quando eu tiver tempo eu farei um mais detalhado, no momento minha indicação é entrar no link http://www.cisco.com/en/US/docs/ios_xr_sw/iosxr_r3.7/security/configuration/guide/sc37ssh.html#wp1044523 que é 100% certo e sem erros.

————————————————————————————————————————————————
fonte: http://www.pedropereira.net/ssh-roteador-cisco-suporte/
Atualmente, acredito que ninguém administraria um roteador, servidor, switch, ou o que quer que seja acessando diretamente o console fornecido pelo dispositivo: você sempre irá utilizar alguma solução de acesso remoto para poder administrar sua rede sem precisar sair do seu computador
O problema com este tipo de solução é a segurança. Nem sempre os protocolos utilizados são os mais seguros. Por exemplo, switches e roteadores Cisco até hoje utilizam por padrão acesso remoto através de Telnet, que envia todas as informações (incluindo as de login) pela rede em texto puro. Isso, obviamente, é um grande furo na segurança da sua rede pois qualquer um que consiga sniffar o tráfego será capaz de logar no roteador.
Atualmente, assim como máquinas Linux, por exemplo, os equipamentos Cisco fornecem suporte à utilização de SSH V2. Esta é uma adição e tanto à segurança destes equipamentos, já que absolutamente todos os dados trocados entre a estação cliente e o roteador serão criptografados.
Aqui vou ensinar a você o processo de configuração do SSH em equipamentos Cisco.
Mas, quais versões do IOS suportam SSH?
O IOS 12.1(3)T foi o primeiro a oferecer suporte a SSH, porém apenas para a versão 1 do protocolo (considerada insegura). O IOS deveria oferecer DES ou 3DES IPSec para que o SSH pudesse funcionar corretamente.
As primeiras versões a oferecer suporte ao SSH2 foram 12.3(4)T, 12.2(25)S e 12.3(7)JA. O IOS ainda deve oferecer suporte a 3DES para que o SSH funcione. Isto pode ser identificado pelo “k9″ no nome da imagem sendo utilizada.
Lembre-se: quando puder escolher, escolha sempre a versão 2 do SSH pois ela oferece uma segurança muito melhor que a versão 1. Quando puder escolher apenas entre Telnet e SSH1, a melhor escolha é o SSH1.
Configuração
A configuração do SSH em roteadores Cisco é extremamente simples, portanto você não vai ter desculpas para não utilizá-lo em seus roteadores.
Lembrando que você deve ter um nome de host e um nome de domínio configurado para o equipamento (isso pode ser feito no modo de configuração global utilizando os comandos “hostname” e “ip domain-name”, respectivamente).
Primeiro, acesse o seu roteador (por Telnet ou diretamente pelo Console, tanto faz) e entre no modo de configuração global:
roteador>enable
roteador#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
roteador(config)#
Ok, agora vamos gerar as chaves que serão utilizadas na autenticação do SSH. O IOS suporta gerar certificados com criptografia de no mínimo 360 bits e no máximo 2048 bits. Eu considero 360 bits muito pouco e sempre utilizo como padrão o 2048. Recomendo que você faça o mesmo, mas a escolha é sua. O comando é o seguinte:
roteador(config)#crypto key generate rsa
How many bits in the modulus [512]:2048
% Generating 2048 bit RSA keys, keys will be non-exportable…[OK]
Depois que você executar o comando, deverá informar quantos bits deseja para o módulo do certificado. O padrão é 512 mas, como dito anteriormente, recomendo fortemente que você coloque 2048 aqui. A mensagem que aparece logo após a seleção indica sucesso ou falha na geração do certificado.
Agora, vamos configurar alguns parâmetros do serviço SSH como timeout, versão, etc. Então, ainda no modo de configuração global:
roteador(config)#ip ssh version 2
Este comando irá especificar qual versão do protocolo SSH você deseja utilizar. Para verificar quais versões estão disponíveis, execute o comando “show ip ssh” no modo “enable”. Se estiver indicando versão 2.0, você pode utilizar tanto a versão 1 quanto a versão 2. Se estiver indicando 1.X, você pode utilizar apenas a versão 1 do protocolo.
Agora, vamos configurar o timeout:
roteador(config)#ip ssh time-out 50
Isso irá configurar o timeout para 50 segundos. Você pode escolher qualquer valor no intervalo de 1 a 120 segundos. Assim, quando uma sessão de cliente ficar parada por mais tempo que o especificado aqui, o cliente será desconectado automaticamente.
Agora, vamos configurar o valor de tentativas de login. Essa opção não é muito efetiva contra ataques brute-force pois, quando você exceder o número de tentativas de conexão, o seu IP não será bloqueado e você poderá voltar a tentar se conectar imediatamente.
roteador(config)#ip ssh authentication-retries 2
Com o comando acima, serão permitidas apenas 2 tentativas erradas. Você pode especificar um valor entre 0 e 5 nesta opção.
Pronto, o SSH está configurado e funcionando.
Mas quem vai poder fazer o login?
Para poder fazer o login via SSH, você deve criar alguns usuários locais (válidos apenas no roteador) e também definir qual o nível de acesso para estes. Para criar um usuário chamado “administrador”, com permissão de fazer tudo no roteador, execute o seguinte comando:
roteador(config)#username administrador priv 15 secret senha-do-usuário
Pronto, agora você já tem um usuário chamado “administrador” com permissão de realizar qualquer tipo de configuração no roteador onde ele foi criado. O que define que ele é um administrador ou não é a opção “priv 15″. O valor 15 indica que ele tem acesso total, e varia de 0 a 15: quanto menor o valor, menor o privilégio do usuário no sistema. Por exemplo:
Modo EXEC de usuário: nível de privilégio 1
Modo EXEC de superusuário: nível de privilégio 15
Agora, falta apenas você fazer com que as linhas Telnet deixem de aceitar conexões Telnet e passem a aceitar apenas conexões SSH:
roteador(config)#line vty 0 4
roteador(config-line)#login local
roteador(config-line)#transport input ssh
Pronto! SSH configurado, agora basta testar a conexão.
Testando a conexão ao roteador
Você pode utilizar qualquer cliente SSH para se conectar ao roteador, agora. O meu cliente preferido é o PuTTY, que funciona em Windows e possui uma boa quantidade de características que o ajudarão no dia-a-dia. Você também poderá utilizar o cliente disponível em roteadores Cisco.
Este cliente obviamente funciona apenas em linha de comando e não possui nem metade das opções oferecidas pelo PuTTY. Para usá-lo, faça o seguinte:
roteador>ssh -l administrador -v 2 192.168.1.1
Você não precisa estar em modo privilegiado para utilizá-lo. A opção “-l” (não é o número sim, mas sim a letra “L” minúscula) indica qual o nome de usuário será utilizado; a opção “-v” indica qual a versão do protocolo o cliente deverá utilizar (o valor pode ser 1 ou 2, como já foi dito anteriormente) e, finalmente, o IP do roteador ao qual você irá se conectar.

FONTE: http://www.gustavofranco.com/wp/?paged=4

sexta-feira, 27 de maio de 2011

FreeBSD - PPPoE Discador

Script1
#!/usr/bin/perl
#
# ---------------------------------------------------------------------------
# ID-Velox v2.00 [01/11/2003] - http://www.isec.com.br/velox
# Por Fabio Vilan aka/nick Duwde, fabio -arroba- isec -ponto- com -ponto- br
# ---------------------------------------------------------------------------
#
# [-=> Alteracoes <=-] # # v2.00 - [01/11/2003] # # - Versao totalmente rescrita do script, agora em perl, totalmente # independentenao do sh, fetch, lynx ou ping !! # # - Suporta o novo esquema de autenticacao do Velox da Telemar # tanto no modo comercial, como residencial, via o metodo CGI POST, # e permite mais flexibilidade nas futuras *inesperadas* mudancas # # - Lista dos provedores residenciais atualizada. # # ------------- # Configuracao # ------------- # Define se seu velox e' residencial ou comercial, se for residencial, # voce precisa de um login/senha em um provedor, se for comercial, # acessa diretamente pela telemar. # # Valores : 'RES' = Residencial # 'COM' = Comercial $VELOX = 'COM'; # Caso use o sistema comercial, pode ser necessario alterar a string # abaixo de acordo com a sua regiao (esta e' a string de conexao # para a regiao da Bahia, outras opcoes comentadas abaixo, veja no codigo # fonte html da autenticacao velox de sua regiao, caso tenha duvidas) # # Somente uma das opcoes deve estar descomentada ! Essa opcao so eh # util se voce estiver usando o modo COMERCIAL, caso esteja no modo # residencial, nao surtira qualquer efeito, pode ignorar esta opcao. # $COMERCIAL='AABA'; # $COMERCIAL='AARJ'; # $COMERCIAL='AAMG'; # $COMERCIAL='AABA'; # $COMERCIAL='AARJ'; # Caso use o sistema residencial, voce precisa definir # o nome do seu provedor, o nome tem que ser EXATAMENTE como # esta na pagina de autenticacao no velox, aqui estao alguns # exemplos, (aparentemente agora varia o final, por regiao, # em alguns provedores com o TERRA) # # Somente uma das opcoes deve estar descomentada ! Essa opcao so eh # util se vc estiver usando o modo RESIDENCIAL, caso esteja no modo # comercial, nao surtira qualquer efeito, pode ignorar esta opcao. # $PROVEDOR='TELEMAR'; # $PROVEDOR='TERRAMG2'; # $PROVEDOR='AOL'; # $PROVEDOR='ATARDE'; # $PROVEDOR='ATT'; # $PROVEDOR='BIOHARD'; # $PROVEDOR='BITNET'; # $PROVEDOR='BRFAST'; # $PROVEDOR='BRIDGE'; # $PROVEDOR='BRTURBO'; # $PROVEDOR='CPUNET'; # $PROVEDOR='DDN'; # $PROVEDOR='DH'; # $PROVEDOR='DIGIZAP'; # $PROVEDOR='FACILINTERNET'; # $PROVEDOR='GD'; # $PROVEDOR='GLOBO'; # $PROVEDOR='HOTLINK'; # $PROVEDOR='INTERCALL'; # $PROVEDOR='INTERDOTNET'; # $PROVEDOR='INTERNETRJ'; # $PROVEDOR='INTERNETT'; # $PROVEDOR='MICROECIANET'; # $PROVEDOR='NUXNET'; # $PROVEDOR='OLIMPO'; # $PROVEDOR='OXENTENET'; # $PROVEDOR='POWERTRIX'; # $PROVEDOR='PRODASAL'; # $PROVEDOR='SEVEN'; # $PROVEDOR='SKNET'; # $PROVEDOR='STL'; # $PROVEDOR='SUPERIG'; # $PROVEDOR='SUPRANET'; # $PROVEDOR='TERRAMG2'; # $PROVEDOR='TERRAMG4'; # $PROVEDOR='WAVENET'; # Seu Login no Provedor (!! somente se for residencial !!) # $LOGIN = '792466097'; $LOGIN = 'seulogin'; # Sua Senha no Provedor (!! somente se for residencial !!) # $SENHA = '792466097'; $SENHA = 'suasenha'; # ---------------------------------------- # -=*=- FIM DA SECAO DE CONFIGURACAO -=*=- # ---------------------------------------- # Nao altere mais nada abaixo, toda configuracao pode ser feita, # alterando as variaveis acima, qualquer alteracao abaixo pode # tornar seu script nao funcional. $HOST = 'www.veloxzone.com.br'; $PORTA = 80; @HOSTS =('mx.uol.com.br','mx.terra.com.br','mail.telemar.net.br'); $HOSTPORTA = 25; $HOSTTIMEOUT = 2; $RES_URL="/serviceLogon"; $RES_POST="service=internet_$PROVEDOR&fcn=serviceLogon&ac=home&usr=&username=$LOGIN&password=$SENHA&OK=OK"; $COM_URL="/serviceStart?service=internet_$COMERCIAL"; $COM_POST="confirmed=true"; print "-----------------------------------------------------------------------------\n"; print " ID-Velox v2.00 [01/11/2003] - http://www.isec.com.br/velox\n"; print " Por Fabio Vilan aka/nick Duwde, fabio -arroba- isec -ponto- com -ponto- br\n"; print "-----------------------------------------------------------------------------\n"; if ($VELOX eq 'RES') { print "!CONFIG! Modo Residencial\n"; print "!CONFIG! Provedor : $PROVEDOR\n"; print "!CONFIG! Login : $LOGIN\n"; $URL=$RES_URL; $POST=$RES_POST; } elsif ($VELOX eq 'COM') { print "!CONFIG! Modo Comercial\n"; print "!CONFIG! Regiao : $COMERCIAL\n"; $URL=$COM_URL; $POST=$COM_POST; } else { print "!ERRO! Tipo do velox mal configurado, edite o script !!\n"; print "!ERRO! Somente as opcoes \"RES\" ou \"COM\" sao possiveis!!\n"; exit 2; } use IO::Socket; sub autentica() { $sock = new IO::Socket::INET ( PeerAddr => $HOST, PeerPort => $PORTA, Proto => 'tcp');
die("!ERRO! Nao e' possivel conectar em $HOST !!\n") unless $sock;

print "!OK! Conexao estabelecida com $HOST.\n";
$sock->print("POST $URL HTTP/1.0\r\n");
$sock->print("Content-Type: application/x-www-form-urlencoded\r\n");
$sock->print("Host: $HOST\r\n");
$sock->print("Content-Length: " . length($POST) . "\r\n");
$sock->print("\r\n$POST\r\n\r\n\r\n");
print "!OK! Aguardando resposta do servidor....\n";
while ($sock->getline()) {}
$sock->close();
}

sub ping($)
{
$x=0;
foreach (@HOSTS)
{
if (($_[0] eq 'rapido') && ($x>0))
{ return 0; }

$c = new IO::Socket::INET ( PeerAddr => "$_" , PeerPort => $HOSTPORTA, Proto => 'tcp', Timeout => $HOSTTIMEOUT);
if ($c)
{
$c->close();
return 1;
}
$x++;
}
}

print "-----------------------------------------------------------------------------\n";

print "!OK! Verificando se voce ja esta autenticado...\n";
if ( ping('rapido') )
{
print "!OK! Voce JA esta autenticado !\n";
exit 0;
}

print "!OK! Voce ainda nao esta autenticado.\n";

autentica();
while ( not ping('completo') )
{
print "!ERRO! Servidor nao liberou acesso, possivel senha ou configuracao incorreta...\n";
print "!OK! Tentando novamente...\n";
autentica();
}

print "!OK! Autenticado com sucesso !!\n";

# EOF
Script2
#!/usr/local/bin/python

import os,sys,string

t=os.system("/usr/local/sbin/fping 200.187.144.26")
u=os.system("/usr/local/sbin/fping 200.165.164.250")

if t == 0 and u == 0:
pass
print "ADSL esta ativo para endereco 200.187.144.26"
if t == 256 and u == 0:
pass
print "ADSL esta ativo para endereco 200.165.164.250"
if t == 0 and u == 256:
pass
print "ADSL esta ativo para endereco 200.165.164.250"
if t == 256 and u == 256:
os.system("/usr/bin/killall -9 ppp")
os.system("/sbin/ifconfig tun0 delete")
os.system("/sbin/ifconfig tun0 down")
os.system("/sbin/ifconfig tun1 delete")
os.system("/sbin/ifconfig tun1 down")
os.system("/usr/sbin/ppp -ddial pppoe")
os.system("/bin/sleep 20")
os.system("/etc/ppp/id-velox.sh")
os.system("/bin/echo 'Link Parou as ' `date` >> /etc/ppp/conexao.log")
print "ADSL esta parado"

quarta-feira, 25 de maio de 2011

FreeBSD - Proxy paralelo

### Proxy em paralelo com FreeBSD+IPFW

### No firewall

- ipfw add 10 skipto 100 tcp from any to any 80 # Nao deixa que a porta 80 passe pelo NAT
- ipfw add 30 divert 8668 ip from 192.168.0.0/24 to any via le0 # NAT na porta externa le0
- ipfw add 500 fwd 10.1.0.111 tcp from any to any dst-port 80 via le1 # Port Forwardind porta interna le1

### No Proxy

- ipfw add 600 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80 via le0

PS: Tentar fazer um port forwarding no firewall antes de chegar no proxy, não da certo.
Faça somente no proxy a mudança da porta 80 para 3128.

segunda-feira, 23 de maio de 2011

PHP: Fatal error: Unknown: apc_fcntl_unlock failed

Fatal error: Unknown: apc_fcntl_unlock failed

------------------------------

Ive confirm this problem. As workaround you can switch on this version
APC to alternative lock method (make config in
/usr/ports/www/pecl-APC)

------------------------------

It works with SPINLOCKS=on.

quinta-feira, 19 de maio de 2011

Mikrotik - Walled Garden

/ip hotspot walled-garden
add action=allow comment="" disabled=no dst-host=*pagseguro* dst-port=443
add action=allow comment="" disabled=no dst-host=*pagseguro* dst-port=80
add action=allow comment="" disabled=no dst-host=*seusite* dst-port=80

quarta-feira, 11 de maio de 2011

FreeBSD - rate - Swiss-Army-knife traffic analyzer

/usr/ports/net-mgmt/rate

EXAMPLES
To determine overall traffic on eth3:

# rate -i eth3 -R


To estimate bandwidth consumed by WWW traffic on ppp0, bit units:

# rate -i ppp0 -f 'port 80' -Rb


To print top 20 nodes from 10.0.0.0/8 that are receiving the highest
number of bytes (including transfers between hosts inside the
10.0.0.0/8 network) every 5 seconds:

# rate -i eth0 -r 5 -Aa 20 -lc 10.0.0.0/8


Same as above, but w/color output and screen clearing:

# rate -i eth0 -r 5 -w -c -Aa 20 -lc 10.0.0.0/8


Show 10 nodes from 10.0.0.0/8 and 192.168.0.0/16 that generated the
largest overall number of packets, generate reports on a keypress
(RETURN), ANSI color output:

# rate -i eth0 -ck -Ac 10.0.0.0/8 -c 192.168.0.0/16 -a 10 -OPT


Estimate ICMP traffic exchanged with the 10.0.0.0/8 subnet, wait for
SIGUSR1, then dump the counters for each host in 192.168.0.0/24 to a
file named FILE, then quit.

# rate -i eth1 -f 'icmp and net 10.0.0.0/8' -q 1 -gl -A -c
192.168.0.0/24 -d > FILE


Show most active (considering transferred bytes) conversations detected
on eth3, color output on keypress; save the option set under the name
'streams':

# rate -S streams -i eth3 -ckTrs 25 -MB


Recall the 'streams' operation mode:

# rate -L streams



On a keypress, show a list of 3 nodes that have sent the highest amount
of packets since the application started; color output:

# rate -i eth3 -ckTrvn 3 -SOP


Show currently visited web pages:

# rate -f 'dst port 80' -E -o 'Host: \2 Browser: \1' -ie 'User-Agent:
\([^\r\n]+\)\r\n.*Host: \([^\r\n]+\)\r\n'


View addresses e-mails are being sent from:

# rate -i eth1 -f 'dst port 25' -E -ie 'MAIL FROM: \([^\r\n]+\)'