Archive for the 'solaris' Category

Published by carla on 04 Mar 2008

Solaris - Como checar pacotes pacialmente instalados

Para checar se há pacotes parcialmente instalados, você deve executar o comando pkginfo com a opção “-p”.

O sistema irá mostrar os pacotes parcialmente instalados. Caso a saída do comando não retorne nada é porque a instalação de todos os seus pacotes está ok.

#pkginfo -p

English version:

Solaris - How to check partially installed packages

To check if a Solaris package is partially installed, you should run the command pkginfo, with the option “-p”.

The system will show only the packages that are partially installed. If there is no partially installed package, nothing will be showed.

#pkginfo -p

Published by carla on 22 Feb 2008

Como criar um arquivo de um tamanho específico

Abaixo, seguem os comandos utilizados em AIX e Solaris para criar um arquivo de um tamanho específico. A criação de um arquivo com um determinado tamanho é útil para algumas coisas como:

  • criar-se arquivos para testes, por exemplo, para transferir o arquivo via rede e avaliar a taxa de transferência da rede.
  • criar arquivos para serem usados como swap no Solaris.
  • etc.

AIX:

Comando lmktemp:

# /usr/sbin/lmktemp <nome do arquivo> <tamanho>

Exemplo:

# /usr/sbin/lmktemp teste.txt 100m

Solaris:

Comando mkfile:

# mkfile <tamanho> <nome do arquivo>

Exemplo:

# mkfile 100m teste.txt

Nos dois exemplos acima, um arquivo chamado teste.txt é criado com 100 MB.

Referência:

http://www.coolcommands.com/index.php?option=com_cccat&task=display&id=154

http://docs.sun.com/app/docs/doc/819-2240/6n4htdnct?l=en&a=view&q=mkfile

Published by carla on 01 Jun 2007

Solaris - Verificando a versão de um pacote instalado

Anotação simples. Para ver a versão de um pacote instalado no Solaris, use a opção “-x” do comando pkginfo:

Para identificar o pacote (exemplo: FTP server Proftp):

foo>pkginfo |grep proft
application SMCpftpd proftpd

Uma vez identificado o pacote, verifica-se a versão:

foo>pkginfo -x SMCpftpd
SMCpftpd proftpd
(sparc) 1.3.1rc2

Published by carla on 18 May 2007

Solaris: Gerenciamento dispositivos (cd-rom, floppy, dvd-rom, zip) - daemon vold

O Solaris tem um sistema de gerenciamento de dispositivos que permite a montagem automática destes dispositivos pelo sistema. Assim, ao inserir um CD no drive por exemplo, ele será automaticamente montado.

O daemon responsável por esse gerenciamento é o vold.

Pode-se ativá-lo e desativá-lo facilmente, fazendo uso ou não desta funcionalidade.

Para iniciá-lo:

foo:/etc/init.d>./volmgt start
volume management starting.

Verificando o processo:

foo:/etc/init.d>ps -ef |grep -i vold
root 10415 1 0 17:15:16 ? 0:02 /usr/sbin/vold
foo:/etc/init.d>

Parando o serviço:

foo:/etc/init.d>./volmgt stop

foo:/etc/init.d>ps -ef |grep vold
root 12270 2967 0 17:28:50 pts/7 0:00 grep vold
foo:/etc/init.d>

Referências:

vold - man page

http://docs.sun.com/app/docs/doc/817-0690/6mgflntq1?q=vold&a=view

Solaris 9 - System Administration Guide: Basic Administration (veja “Guidelines for Accessing Removable Media Data” na página 232)

http://docs-pdf.sun.com/817-3814/817-3814.pdf

Published by carla on 09 Apr 2007

Solaris: Como desativar o serviço SNMP

Um princípio básico em segurança de sistemas, é que todos os serviços que não são utilizados por um servidor sejam desativados.

Um serviço que frequentemente está ativo e muitas vezes não é utilizado, sendo comumente alvo de softwares de scan de segurança nas empresas, é o SNMP.

O SNMP pode ser explorado para se conseguir informações e/ou acesso indevido ao seu sistema.

Abaixo, vou descrever os passos para desativar o serviço SNMP em um servidor rodando o sistema operacional unix Solaris.

Antes de desativar o serviço SNMP, podemos aumentar o nível de log do sistema operacional, editando e configurando o /etc/syslog.conf:

Conforme recomendação no link http://ist.uwaterloo.ca/security/howto/2000-10-04/recommend.html, o log do S.O. pode ser expandido:

#mail.debug ifdef(`LOGHOST’, /var/log/syslog, @loghost)
*.debug ifdef(`LOGHOST’, /var/log/syslog, @loghost)

Agora, para desativar o SNMP, seguir os passos:

1- Parar o serviço:

Devemos parar os 2 daemons ativos através dos scripts init.snmpdx e init.dmi, localizados em /etc/init.d.

foobar:/etc/init.d>ps -ef |grep snmp
root 5565 1 0 Dec 18 ? 0:00 /usr/lib/dmi/snmpXdmid -s foobar
root 5372 1 0 Dec 18 ? 0:02 /usr/lib/snmp/snmpdx -y -c /etc/snmp/conf
root 8761 19661 0 18:24:34 pts/4 0:00 grep snmp

foobar:/etc/init.d>./init.snmpdx stop

foobar:/etc/init.d>ps -ef |grep snmp
root 5565 1 0 Dec 18 ? 0:00 /usr/lib/dmi/snmpXdmid -s foobar
root 11255 19661 0 18:24:43 pts/4 0:00 grep snmp

foobar:/etc/init.d>./init.dmi stop

foobar:/etc/init.d>ps -ef |grep snmp
root 29062 19661 0 18:25:41 pts/4 0:00 grep snmp
foobar:/etc/init.d>

2 - Renomear os scripts de inicialização do SNMP:

Após parar os daemons, deve-se renomear os scripts que iniciam os daemons no processo de boot, para que eles não sejam ativados novamente quando o servidor sofrer um boot. Os scripts ficam localizados normalmente no diretório /etc/rc3.d:

foobar:/etc/rc3.d>ls -l |grep snmp
-rwxr–r– 6 root sys 616 Apr 6 2002 S76snmpdx

foobar:/etc/rc3.d>ls -l |grep dmi
-rwxr–r– 6 root sys 1056 Apr 6 2002 S77dmi

foobar:/etc/rc3.d>mv S76snmpdx DISABLE_S76snmpdx

foobar:/etc/rc3.d>mv S77dmi DISABLE_S77dmi

foobar:/etc/rc3.d>ls -l |grep snmp
-rwxr–r– 6 root sys 616 Apr 6 2002 DISABLE_S76snmpdx
foobar:/etc/rc3.d>ls -l |grep dmi
-rwxr–r– 6 root sys 1056 Apr 6 2002 DISABLE_S77dmi
foobar:/etc/rc3.d>

Feito isso, o serviço SNMP está desativado do seu servidor.

Links:

Security Review: Securing SNMP on Solaris - Information Systems and Technology - University of Waterloo
http://ist.uwaterloo.ca/security/howto/2000-10-04/recommend.html

Published by carla on 03 Apr 2007

Solaris - Identificar à qual pacote de instalação pertence um arquivo

Eu já escrevi o procedimento para identificar à qual pacote (fileset) pertence um arquivo no Aix. Segue agora o procedimento equivalente para Solaris.

Como faço, por exemplo, para saber qual o pacote de instalação da biblioteca libgcc_s.so.1?

Tendo o arquivo instalado em uma máquina:

1 - Com o find eu localizo o arquivo:

# find / -name libgcc_s.so.1
/usr/local/lib/libgcc_s.so.1
/usr/local/lib/sparcv9/libgcc_s.so.1
/opt/sfw/gcc-3.2/lib/sparcv9/libgcc_s.so.1
/opt/sfw/gcc- 3.2/lib/libgcc_s.so.1

2 - Com o comando pkgchk eu identifico qual o pacote de instalação de um determinado arquivo.

Assim para saber o pacote correspondente ao arquivo /usr/local/lib/libgcc_s.so.1:

# pkgchk -l -p /usr/local/lib/libgcc_s.so.1
Pathname: /usr/local/lib/libgcc_s.so.1
Type: regular file
Expected mode: 0644
Expected owner: root
Expected group: bin
Expected file size (bytes): 169356
Expected sum(1) of contents: 21886
Expected last modification: Sep 12 06:48:00 2004
Referenced by the following packages:
SMCgcc342
Current status: installed

Da man page do comando, as opções utilizadas no exemplo acima:

-l
List information on the selected files that make up a
package. This option is not compatible with the -a,
-c, -f, -g, and -v options.

-p
path
Only check the accuracy of the path name or path
names listed.
path can be one or more path names separated
by commas (or by white space, if the list is quoted).

Para mais informações:

# man pkgchk

Published by carla on 03 Apr 2007

Solaris - Como excluir um usuário da política de senhas

Para configurar uma política de senhas no Solaris, edita-se o arquivo /etc/default/passwd.

Neste arquivo podemos definir opções como no exemplo a seguir:

MAXWEEKS=4
MINWEEKS=2
PASSLENGTH=6
WARNWEEKS=1

OBS: Os valores exemplificados acima não são nenhuma recomendação de configuração.

MAXWEEKS: Número máximo em semanas que a senha é válida
MINWEEKS: Número minimo em semanas em que a senha deve permancer sem que possa ser trocada.
PASSLENGTH: Número mínimo de caracteres exigidos na senha
WARNWEEKS: Número de semanas antes da expiração da senha, que o sistema alerta o usuário que sua senha irá expirar.

No entanto, no Solaris, a política de senhas definida neste arquivo se aplica para todos os usuários do sistema.

Agora, e se você precisar que algum usuário não tenha sua senha expirada?

A alteração de um usuário para que ele não esteja mais sujeito as regras de expiração de senha é feita através do arquivo /etc/shadow.

Basta editar o arquivo (vi /etc/shadow) e alterar algum dos campos; min, max, ou warn; para o valor “-1“.

Feito isso, salve o arquivo e execute o comando “pwconv“.

Após o pwconv, o campo que foi alterado para “-1″ ficará vazio.

Este procedimento está documentado na man page do shadow:

http://docs.sun.com/app/docs/doc/816-5174/6mbb98uju?a=view#indexterm-267

A value of –1 for min, max, or warn disables password aging.

Estes são os campos do arquivo shadow:

username:password:lastchg:min:max:warn:inactive:expire:flag

Published by carla on 19 Jan 2007

Como verificar informação da placa de rede - Aix, Solaris e Linux

Muitas vezes precisamos verificar como está a configuração da placa de rede no servidor Unix, como por exemplo, conferir se está de acordo com a configuração do switch, uma vez que problemas de conexão podem estar relacionados a estas configurações.

Precisamos saber se está como 100 Full Duplex, 10 Half Duplex, etc.

O modo de obter estas informações é diferente em cada Unix.

A seguir, os comandos para checar estas informações no Aix, Solaris e Linux:

AIX

Neste é bem simples:

# netstat -v

OU

# netstat -v [nome da interface de rede]

Para saber mais:
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/nestat_v.htm

Solaris

No Solaris é um pouco mais complexo de se verificar a informação.

Podemos usar o comando ndd. Primeiramente usa-se a opção “-set” para definir qual o device a ser consultado. Após feito isso, utiliza-se a opção “-get”para se obter as informações referentes à configuração.

Exemplo: device qfe0

$ sudo /usr/sbin/ndd -set /dev/qfe instance 0
$

$ sudo /usr/sbin/ndd -get /dev/qfe link_status
1

$ sudo /usr/sbin/ndd -get /dev/qfe link_speed
1

$ sudo /usr/sbin/ndd -get /dev/qfe link_mode
1

$ sudo /usr/sbin/ndd -get /dev/qfe adv_autoneg_cap
0

Interpretação:

link_status:

0- down

1 - up

link_speed:

0 - 10 mbit

1 - 100 mbit

2 - 1 gbit

link_mode:

0 - halp-duplex

1 - full-duplex

adv_autoneg_cap:

0 - no auto-negotiation

1 - auto-negotiation

Conclusão:

qfe0:
link up
speed: 100 full_duplex
Não está em modo auto-negotiation.

É preciso ter permissão de root para executar os comandos acima.

Segundo informação em http://www.brandonhutchinson.com/Solaris_NIC_speed_and_duplex_settings.html, para alguns devices de rede ce, o ndd não funciona e o melhor modo de vizualizar é através do comando kstat ou netstat.

$ kstat ce ce_device

$ netstat -k ce | egrep ‘link_speed|link_status|link_duplex’

Exemplo:

# netstat -k ce0 |grep link_speed
lp_cap_asmpause 0 lp_cap_pause 0 link_T4 0 link_speed 100

# netstat -k ce0 |grep link_up
link_duplex 2 link_asmpause 0 link_pause 0 link_up 1 mac_mtu 1522

# netstat -k ce0 |grep link_duplex
link_duplex 2 link_asmpause 0 link_pause 0 link_up 1 mac_mtu 1522

Interpretação:

link_up - 0 down, 1 up
link_speed - speed in Mbit/s
link_duplex - 1 half duplex, 2 full duplex, 0 down

Conclusão:

ce0:
Speed: 100
Link up
Full duplex

Uma solução que pode ajudar para identificar a configuração da placa de rede é utilizar um script desenvolvido por Brandon Hutchinson e disponibilizado em seu website no link abaixo:

http://www.brandonhutchinson.com/Solaris_NIC_speed_and_duplex_settings.html

Segue o link, com uma cópia do script aqui no Unix Notes:

verifica_rede

No Solaris 10 existe um comando que permite vizualizar a onfiguração das placas de rede de modo bem mais simples:

# dladm show-dev

Para verificar a configuração doo device de rede e saber se se trata de uma placa Gigabit por exemplo, utilizar o comando prtdiag:

/usr/platform/sun4u/sbin/prtdiag –v

=================== IO Devices=======================
Bus Freq
Brd Type MHz Slot Name Model
— —- —- ———- —————————- ——————–
0 pci 66 PCI5 SUNW,qlc-pci1077,2300 (scsi-+
0 pci 66 MB pci108e,abba (network) SUNW,pci-ce
0 pci 33 MB isa/su (serial)
0 pci 33 MB isa/su (serial)
0 pci 33 MB isa/rmc-comm-rmc_comm (seria+
0 pci 33 MB pci10b9,5229 (ide)
0 pci 33 PCI0 pci108e,1000
0 pci 33 PCI0 SUNW,qfe (network) SUNW,pci-qfe
0 pci 33 PCI0 pci108e,1000
0 pci 33 PCI0 SUNW,qfe (network) SUNW,pci-qfe
0 pci 33 PCI0 pci108e,1000
0 pci 33 PCI0 SUNW,qfe (network) SUNW,pci-qfe
0 pci 33 PCI0 pci108e,1000
0 pci 33 PCI0 SUNW,qfe (network) SUNW,pci-qfe
0 pci 33 PCI1 pci108e,1000
0 pci 33 PCI1 SUNW,qfe (network) SUNW,pci-qfe
0 pci 33 PCI1 pci108e,1000
0 pci 33 PCI1 SUNW,qfe (network) SUNW,pci-qfe
0 pci 33 PCI1 pci108e,1000
0 pci 33 PCI1 SUNW,qfe (network) SUNW,pci-qfe
0 pci 33 PCI1 pci108e,1000
0 pci 33 PCI1 SUNW,qfe (network) SUNW,pci-qfe
0 pci 66 MB pci108e,abba (network) SUNW,pci-ce

As placas de rede mostradas acima são Gigabit.

Referência:

Solaris 8:

http://www.brandonhutchinson.com/Solaris_NIC_speed_and_duplex_settings.html

http://www.samag.com/documents/s=9142/sam0405l/0405l.htm

Solaris 10:

http://forum.java.sun.com/thread.jspa?threadID=5238989&tstart=345

Linux

No Linux podemos usar o aplicativo mii-tool.

# mii-tool

Para um display mais completo:

# mii-tool -v

Referência:

http://linux-ip.net/html/tools-mii-tool.html