domingo, 30 de março de 2008

Sincronizando o horário das estações com o servidor Linux

Instalar o NTP no servidor Linux:

apt-get install ntp

Editar o arquivo "/etc/ntp.conf" e acrescentar a linha:

restrict 192.168.1.0 mask 255.255.255.0 nomodify

Salvar e reiniciar o serviço.

Nas estações Windows configurar a atualização automática da hora para o IP de servidor da rede.

quarta-feira, 19 de março de 2008

Como criar o recurso de Lixeira no Samba

Acrescentar na sessão "global" as seguintes linhas:

vfs objects = recycle
recycle:keeptree = yes # mantem a árvore de diretório do arquivo.
recycle:versions = yes # mantem versões do arquivo.
recycle:repository = /var/samba/trash/%U # não cria a pasta ".recycle" em cada compartilhamento e sim uma pasta para cada usuário em um local definido.
recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.iso # arquivos que não serão guardados na lixeira.
recycle:exclude_dir = tmp, cache # pastas que não serão guardadas na lixeira.

Isso cria uma pasta chamada ".recycle" em todos os compartilhamentos.
Caso não queira o recurso em todos os compartilhamentos, retire a linha "vfs objects = recycle" e coloque no compartilhamento que deseja o recurso.

sexta-feira, 14 de março de 2008

Backup de servidor Linux

O programa Mondo (http://www.mondorescue.org) faz um backup completo da instalação para restaurar caso ocorra algum desastre.
Ele pode ser instalado pelo
apt-get install mondo

quinta-feira, 13 de março de 2008

Instalação do Imsniff para monitorar conversas do Messenger

Obtendo os pacotes:

wget http://ufpr.dl.sourceforge.net/sourceforge/im-snif/imsniff_0.04.tgz
apt-get install libpcap-dev
apt-get install g++


Instalando:
- Descompactar o imsniff_0.04.tgz;
- Serão criadas as pastas doc, linux, src, windows;
- Executar:
linux/build

- Copiar o arquivo doc\imsniff.conf.sample para /etc/imsniff.conf;
- Alterar o arquivo /etc/imsniff.conf:

daemonize = 0 # alterar para 1, execução como serviço
promisc = 0
verbose = 2
chatdir = /tmp/chats # pasta aonde serão gravados os chats
debugdir = /tmp/debug
interface eth0 # interface aonde ele vai escutar


Corrigindo bug (versão 0.04):
- O bug faz o serviço cair toda hora;
- Editar o arquivo src/msn_conntrack.cpp e acrescentar as linhas com + na frente:

void add_user_to_sb (struct msn_connection *conn, u_char *user)
{
if (conn!=NULL && conn->users!=NULL)
{
int i=0;
while (inum_users)
{
if (strcmp ((char *) conn->users[i], (char *) user)==0)
return; // Don't duplicate
i++;
}
}

log_debug (5, "Adding user [%s] to SB",user);
+ if (!conn) {
+ conn = (struct msn_connection *) malloc (sizeof (struct msn_connection));
+ if (!conn)
+ return;
+ if (msn_conns_first==NULL)
+ msn_conns_first=conn;

+ memset (conn,0,sizeof (struct msn_connection)); // All zeros is fine
+ if (msn_conns_last != NULL)
+ {
+ msn_conns_last->next=conn;
+ conn->previous=msn_conns_last;
+ }
+ msn_conns_last=conn;

+ conn->users=NULL;
+ conn->num_users=0;
+ conn->log_full_path=NULL;

+ }

conn->users=(u_char **) realloc (conn->users, sizeof (u_char *) * (conn->num_users+1));
log_debug (5, "Done realloc");
if (conn->users!=NULL)
{
conn->users[conn->num_users]=(u_char *) malloc (strlen ((char *) user) +1 );
log_debug (5, "Done malloc");
strcpy ((char *) conn->users[conn->num_users],(char *) user);
log_debug (5, "Done strcpy");
conn->num_users++;
}
log_debug (5, "Done, number of users now = %d",conn->num_users);
}

- Editar o arquivo src/util.cpp e acrescentar as linhas com + e retirar as linhas com - na frente:

int get_tokens (u_char *line, u_char ***tokens, int max_tokens)
{
log_debug (5, "entry in get_tokens");
int capacity = (max_tokens==0)?50:max_tokens;
/* First, delete the tokens if there are any ... */
free_array(tokens);
*tokens=(u_char **) malloc (sizeof (u_char *) * (capacity +1)); // Final one is NULL
if (*tokens==NULL)
return OUT_OF_MEMORY;
int num=0; /* Number of tokens added so far */
u_char *now = line;
u_char *newtoken;

char tmp[255];

for (;;)
{
size_t i;
/* Skip spaces and control stuff */
while (*now<=' ' && *now!=0)
{
now++;
}

if (*now==0) /* End of line */
break;

i=0;
if (max_tokens==num+1 && max_tokens!=0)
i=strlen ((char *) now);
else
{
while (now[i]>' ') /* Look ahead, how long is the next token? */
i++;
}
newtoken=(u_char *) malloc (i+1);
memcpy (newtoken, now, i);
now = now + i;
newtoken[i]=0;

if (num==capacity)
{
capacity += 10;
*tokens = (u_char **) realloc (*tokens, sizeof (u_char *) * (capacity +1));
if (*tokens==NULL) /* A bit unstable now I'm afraid */
return OUT_OF_MEMORY;
}

(*tokens)[num]=newtoken;

if (num==7)
{
+ break;
- exit (7);
}
num++;
}

(*tokens)[num]=NULL;
return num;
}

- Entrar na pasta linux e compilar com ./build;

Execução:
- Usar o Webmin para iniciar o serviço automaticamente.

quarta-feira, 5 de março de 2008

Configuração para programas DOS no Windows XP

Alterar o arquivo "\windows\system32\config.nt" e acrescentar:
FILES=200
BUFFERS=56,0

segunda-feira, 3 de março de 2008

Iniciar o Windows XP mais rápido

Entre no registro do Windows e abra a seguinte chave:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\EnablePrefetcher

O valor desta chave é 3. Mude para 0 se quiser desligar o recurso de pré-carregamento do Windows.
Isso irá fazer com que o Windows inicie mais rápido, mas deixa a abertura de alguns programas mais lenta por não serem pré carregados na inicialização.