(10101101)173/Security2008. 11. 10. 03:16

1. TCP connect() port scan
connect() 시스템 콜을 이용하여 열려 있거나 닫힌 포트를 알아내느 방식으로 connect() call 반환값이 true면 열린 포트로 간주합니다.
이 방법은 완전한 Three-way Handshadke[각주:1]를 하기 때문에 목적 호스팅에 공격자가 스캔하고 있다는 로그를 남기게 되어 쉽게 발각되지만, 빠르고 정확한 스캔 결과를 가져 옵니다.

C:\> nmap -sT 192.168.1.2

Starting Nmap 4.76 ( http://nmap.org ) at 2008-11-10 02:37 대한민국 표준시
Interesting ports on 192.168.1.2:
Not shown: 979 filtered ports
PORT      STATE SERVICE
5001/tcp  open  commplex-link
6001/tcp  open  X11:1
9000/tcp  open  unknown
9900/tcp  open  unknown
MAC Address: 00:30:6E:FF:FF:FF (Hewlett Packard)

Nmap done: 1 IP address (1 host up) scanned in 87.89 seconds

C:\>


2. TCP SYN stealth port scan
호스트에 포크가 열려 있으면 SYN-ACK flag를 보내고, 닫힌 포트는 RST-ACK를 보내는 것으로 완전한 Three-way Handshake를 이루지 못한 표적 호스트가 스캔을 눈치채지 못한다는 장점이 있습니다.

C:\> nmap -sS 192.168.1.2

Starting Nmap 4.76 ( http://nmap.org ) at 2008-11-10 02:45 대한민국 표준시
Interesting ports on 192.168.1.2:
Not shown: 979 closed ports
PORT      STATE    SERVICE
5001/tcp  open     commplex-link
6001/tcp  open     X11:1
9000/tcp  open     unknown
9900/tcp  open     unknown
MAC Address: 00:30:6E:FF:FF:FF (Hewlett Packard)

Nmap done: 1 IP address (1 host up) scanned in 4.76 seconds

C:\>


3. FIN scan
Inverse mapping을 이용하는 기법으로 BSD[각주:2] 기반의 운영체계에서 사용하는 네트워크 코드를 기반으로 합니다. 장점으로 IDS[각주:3]와 Three-way Handshake를 피할 수 있지만, False positive[각주:4]가 많습니다.

C:\> nmap -sF 192.168.1.2

Starting Nmap 4.76 ( http://nmap.org ) at 2008-11-10 02:48 대한민국 표준시
All 1000 scanned ports on 192.168.1.2 are closed
MAC Address: 00:30:6E:FF:FF:FF (Hewlett Packard)

Nmap done: 1 IP address (1 host up) scanned in 0.58 seconds

C:\>


4. ACK scan
ACK 패킷을 보내고 돌아오는 RST 패킷의 TTL 필드와 Windows 필드로 판단하는 것으로 몇몇 운영체제의 IP 계층 버그를 이용한 기법입니다. 침입 탐지를 우회할 수 있는 장점을 가지고 있으며, 방화벽 보안 정책을 검사할 때 주로 사용되고 단순히 SYN 패킷만 차단하는 방화벽은 ACK scan을 차단할 수 없습니다.

C:\> nmap -sA 192.168.1.2

Starting Nmap 4.76 ( http://nmap.org ) at 2008-11-10 02:50 대한민국 표준시
All 1000 scanned ports on 192.168.1.2 are unfiltered
MAC Address: 00:30:6E:FF:FF:FF (Hewlett Packard)

Nmap done: 1 IP address (1 host up) scanned in 0.64 seconds

C:\>


5. Windows scan
Windows 필드에서 값이 0이 아닌 패킷을 가진 값을 열린 포트로 간주하는 방식입니다.

C:\> nmap -sW 192.168.1.2

Starting Nmap 4.76 ( http://nmap.org ) at 2008-11-10 02:53 대한민국 표준시
All 1000 scanned ports on 192.168.1.2 are closed
MAC Address: 00:13:77:FF:FF:FF (Samsung Electronics CO.)

Nmap done: 1 IP address (1 host up) scanned in 1.70 seconds

C:\>


6. NULL scan
TCP 헤더에 ACK, FIN, RST, SYN, URG, PSH를 설정하지 않은 즉, TCP 헤더에 모든 Flag를 설정하지 않은 것으로  RFC에서는 이런 종류의 패킷 응답에 대해 정의하지 않고 있어 운영 체제마다 패킷에 대한 반응이 다르지만 대부분 닫힌 포트는 이런 패킷에 대해 RST패킷을 보내고, LISTEN(청취)중인 포트는 패킷을 소멸시켜 버립니다.

C:\> nmap -sN 192.168.1.2

Starting Nmap 4.76 ( http://nmap.org ) at 2008-11-10 02:55 대한민국 표준시
All 1000 scanned ports on 192.168.1.2 are closed
MAC Address: 00:30:6E:FF:FF:FF (Hewlett Packard)

Nmap done: 1 IP address (1 host up) scanned in 0.58 seconds

C:\>


7. XMAS scan
NULL 스캔의 반대되는 기법으로 TCP 헤더에 모든 Flag를 설정하는 것으로 XMAS, 또는 크리스마스 트리 스캔이라 부릅니다.

C:\> nmap -sX 192.168.1.2

Starting Nmap 4.76 ( http://nmap.org ) at 2008-11-10 02:58 대한민국 표준시
All 1000 scanned ports on 192.168.1.2 are closed
MAC Address: 00:30:6E:FF:FF:FF (Hewlett Packard)

Nmap done: 1 IP address (1 host up) scanned in 0.56 seconds

C:\>


8. UDP scan
ICMP_PORT_UNREACH를 이용하고 스캔 시간이 오래 걸림으로 특정 포트가 UDP를 청취 중인지 확인해 볼 때 사용된다.

C:\> nmap -sU 192.168.1.2

Starting Nmap 4.76 ( http://nmap.org ) at 2008-11-10 03:01 대한민국 표준시
Interesting ports on 192.168.1.2:
Not shown: 986 closed ports
PORT      STATE         SERVICE
111/udp   open|filtered rpcbind
161/udp   open|filtered snmp
1022/udp  open|filtered unknown
4045/udp  open|filtered lockd
MAC Address: 00:30:6E:FF:FF:FF (Hewlett Packard)

Nmap done: 1 IP address (1 host up) scanned in 2.05 seconds

C:\>



참고서적 : 웹 해킹 패턴과 대응 / 사이텍 미디어

각주 ▽

  1. Three-way Handshake TCP상에서 Server와 Client간의 연결 과정을 의미한다. 클라이언트가 먼저 서버에게 SYN플래그를 보내면 서버는 다시 클라이언트에게 SYN-ACK플래그를 보내게 된다. SYN-ACK를 받은 클라이언트는 잘 받았다는 의미로 ACK를 서버에게 보내게 되면 서버와 클라이언트간 TCP 연결이 완성된다. [본문으로]
  2. BSD(Berkeley Software Distribution) BSD는 1970년대 미국 캘리포니아 대학교 버클리(UC Berkeley)에서 개발한 유닉스 계열의 컴퓨터 운영체제이다. 유명한 BSD는 FreeBSD가 있다. [본문으로]
  3. IDS(Intrusion Detection System) "침입탐지시스템"으로 방화벽 밖이나 안쪽에서 내부로 들어오는 패킷중 침입시도를 감시해 방어(차단)하는 기능을 가진 장비이다. [본문으로]
  4. False positive 네트워크적 기반으로 볼때는 "오탐"이란 의미이다. [본문으로]
Posted by Special Alex
(10101101)173/Security2008. 11. 9. 21:43

Port scanning에 가장 대표적인 유틸리티는 www.insecure.org에서 무료로 배포하는 nmap이란 tool을 말할 수 있다. 이 nmap은 positive scan(pos_scan)과 negative scan(super_scan)으로 나뉩니다.다.
pos_scan이란 Host에 특정 패킷을 보내면 특정 Timeout 내에 시스템의 열린 포트에서만 패킷에 반응하는 원리를 이용하고, super_scan은 System에 특정 패킷을 보내면 닫힌 포트에서만 패킷에 반응하는 원리를 이용합니다.

nmap은 다양한 Scan type과 options을 제공하는대 이를 사용해 원활한 정보 수집을 할 수 있습니다. DOS나 UNIX 시스템에서 목적지 Host(서버)나 Client에 네트워크 기능이 정상적인지 확인하는 툴은 유명하고도 유명한 "ping"툴이다. DOS나 UNIX나 같은 방식으로 사용 됩니다.
DOS : C:\> ping www.tistory.com
UNIX : [root:/] ping www.tistory.com

DOS에서 ping을 하면 다음과 같은 메시지가 나오게 됩니다.
C:\> ping 192.168.1.2

Pinging 192.168.1.2 with 32 bytes of data:

Reply from 192.168.1.2: bytes=32 time<1ms TTL=255
Reply from 192.168.1.2: bytes=32 time<1ms TTL=255
Reply from 192.168.1.2: bytes=32 time<1ms TTL=255
Reply from 192.168.1.2: bytes=32 time<1ms TTL=255

Ping statistics for 192.168.1.2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\>

그렇다면 nmap에서 단순히 서버가 살아있는지를 알아보기 위해서 옵션 -sP(Ping Scanning Method)를 사용할 수 있습니다. 이는 nmap이 스캐닝을 실시할 때 기본적으로 수생되는 것으로 서버가 ICMP[각주:1] 패킷에 대해서 제한을 하고 있다면 오탐될 수도 있습니다. 위와 같은 IP로 nmap을 하면 다음과 같은 결과물이 나옵니다다.
C:\> nmap -v -sP 192.168.1.2

Starting Nmap 4.76 ( http://nmap.org ) at 2008-11-09 20:00 대한민국 표준시
Initiating ARP Ping Scan at 20:00
Scanning 192.168.1.2 [1 port]
Completed ARP Ping Scan at 20:00, 0.45s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 20:00
Completed Parallel DNS resolution of 1 host. at 20:00, 0.00s elapsed
Host 192.168.1.2 appears to be up.
MAC Address: 00:30:6E:FF:FF:FF (Hewlett Packard)
Read data files from: C:\Program Files\Nmap
Nmap done: 1 IP address (1 host up) scanned in 4.53 seconds
           Raw packets sent: 1 (42B) | Rcvd: 1 (42B)

C:\>

192.168.1.2는 실제로 사용중인 서버임으로 IP와 MAC Address[각주:2]부분을 수정했습니다. 처음 nmap을 쓸때 놀라웠던것은 MAC Address부분에 "00:30:6E:FF:FF:FF (Hewlett Packard)"라고 벤더 이름이 나올때 였습니다. 혹시나 해서 검색을 해보았는대 일치 하였습니다.
MAC Address search : http://www.coffer.com/mac_find/?string=00306E

참고로 이 기능은 대역으로도 스캐닝이 가능 합니다. 방법은 IP Class를 입력하는 방식입니다.
C:\> nmap -v -sP 192.168.1.0/24


일반적인 TCP Protocol에 대해서 스캐닝을 하고자 한다면 "-sT" 옵션을 사용할 수 있습니다.
C:\> nmap -v -sT 192.168.1.2

Starting Nmap 4.76 ( http://nmap.org ) at 2008-11-09 20:24 대한민국 표준시
Initiating ARP Ping Scan at 20:24
Scanning 192.168.1.2 [1 port]
Completed ARP Ping Scan at 20:24, 0.13s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 20:24
Completed Parallel DNS resolution of 1 host. at 20:24, 0.01s elapsed
Initiating Connect Scan at 20:24
Scanning 192.168.1.2 [1000 ports]
Discovered open port 9000/tcp on 192.168.1.2
Discovered open port 9900/tcp on 192.168.1.2
Increasing send delay for 192.168.1.2 from 0 to 5 due to 11 out of 22 dropped
robes since last increase.
Connect Scan Timing: About 32.00% done; ETC: 20:25 (0:01:03 remaining)
Increasing send delay for 192.168.1.2 from 5 to 10 due to 11 out of 16 dropped
probes since last increase.
Increasing send delay for 192.168.1.2 from 10 to 20 due to 11 out of 13 droppe
 probes since last increase.
Discovered open port 4045/tcp on 192.168.1.2
Discovered open port 6001/tcp on 192.168.1.2
Discovered open port 5001/tcp on 192.168.1.2
Completed Connect Scan at 20:25, 92.16s elapsed (1000 total ports)
Host 192.168.1.2 appears to be up ... good.

Interesting ports on 192.168.1.2:
Not shown: 983 filtered ports
PORT      STATE SERVICE
4045/tcp  open  lockd
5001/tcp  open  commplex-link
6001/tcp  open  X11:1
9000/tcp  open  unknown
9900/tcp  open  unknown
MAC Address: 00:30:6E:FF:FF:FF (Hewlett Packard)

Read data files from: C:\Program Files\Nmap
Nmap done: 1 IP address (1 host up) scanned in 92.80 seconds
           Raw packets sent: 1 (42B) | Rcvd: 1 (42B)

C:\>

초록색으로 표시된 "-v" 옵션을 주지 않을 경우 결과값에 초록색 부분이 나오지 않습니다. 마찬가지로 실제로 사용중인 서버임으로 IP, MAC Address 및 특정 포트들은 삭제하여 실제 결과값과 틀립니다.

이런 단순한 TCP 스캐닝은 침입탐지 시스템에 의해서 탐지될 수 있는데, nmap은 이에 탐지되지 않고 우회하는 다양한 방법들을 제공합니다. 이에 대한 여러 옵션들이 존제 하는대 이 옵션은 아래를 참고하시기 바랍니다.


:: nmap 옵션들
-sS : 완전한 TCP 연결을 하지 않고 실제로 연결을 요청하는 것처럼 SYN 패킷을 보내고 나서 상대 호스트로부터 SYN/ACK 패킷이 오면 즉시 RST를 보내 연결을 끊는다. TCP SYN 스캐닝을 하기 위해선 루트 권한을 가지고 있어야 합니다.

-sT : 가장 기본적인 TCP 스캐닝으로 열려 있는 TCP 포트를 스캐닝 하지만 방화벽이나 라우터에 의해 쉽게 체크되어 필터링 될 수 있습니다.

-sU : UDP[각주:3]를 쓴다는 점에서 TCP 스캔 방법과는 대조됩니다. 앞서 스캐닝 기법에서 알아본 바와 같이 closed UDP port로 패킷을 보내면 ICMP_PORT_UNREACH error로 응답하는 것으로 닫힌 포트를 추측합니다. 그러나 UDP packet이나, ICMP error 메시지가 반드시 도착한다고 보장을 하지 못하므로 UDP scanner들은 패킷 전달 과정에서 누락된 패킷의 재전송 부분을 구현해야 합니다. 또한 문제가 되는 것은 스캔 속도입니다. 많은 OS들이 RFC[각주:4]1812 section 4.3.2.8을 참조하여, ICMP error message rate들을 제거하기 때문에 느린 스캔 결과를 가져오게 됩니다.

-sP 일반적인 Ping을 이용한 스캔입니다.

-sF, -sX, -sN : Stealth FIN, Xmas Tree, Null scan modes

-sN : 패킷을 받은 호스트는 닫힌 포트에 대해서는 RST로 응답하고, 열린 포트이면 패킷을 버립니다. 단점으로는 패킷이 네트워크상의 문제로 유실되었을 때 NMAP은 패킷을 받을 수 없으므로 열린 포트로 오인할 수 있습니다.

-b<ftp relay host> : FTP 명령을 이용하는 방법으로 매개체가 될 호스트의 FTP로 접속해서 PORT 명령을 이용해 포트가 열려 있는지 확인합니다. 이 기법은 표적 호스트에서 추적하기가 어렵고 방화벽이나 packet filter 등을 통과할 수도 있지만, 스캔이 느리고 어떤 FTP에서는 아예 포트 기능을 무능력하게 할 수도 있습니다.

-PO : 호스트가 살아 있는지 Ping을 하지 않음으로써 log 파일에 기록될 가능성을 줄여 필터링을 피할 수도 있습니다.

-PT : 일반적인 ICMP Ping은 방화벽이나 packet filter에 의해 걸러지므로 Ping을 할 때 TCP port 80에 ACK 패킷을 보내 RST 응답이 오면 대상 호스트가 살아 있는 것으로 간주합니다.

-PT 00. : 사용자가 정한 포트에 ACK 패킷을 보내 확인합니다. 일반적인 높은 숫자(예: 32123)의 포트는 필터링을 하지 않기 때문에 이를 이용할 수 있지만, 어떤 호스트는 서비스되고 있는 포트 외에는 막아놓기도 합니다.

-PI(아이) : 일반적인 ICMP Ping입니다. 이 방법은 방화벽이나 packet filter에 의해 쉽게 걸러질 수 있지만, 대부분 시스템 관리자는 ICMP Ping에 대한 로그를 신경 쓰지 않음으로 ICMP로 Ping을 할 수 있는 호스트는 이 방법을 쓰는 것이 좋습니다.

-PB : Ping을 할 때 ICMP Ping과 TCP Ping을 동시에 사용합니다.

-PS : Ping을 할 때 ACK 패킷 대신 SYN 패킷을 보낸다. 어떤 방화벽은 스캔을 위해 보낸 ACK 패킷이 현재 진행 중인 TCP connection 과정의 일부가 아님을 판한하고 이 패킷을 차단할 수 있습니다. 이런 방화벽을 통과하기 위해서는 SYN 패킷을 이용하므로 높은 포트 번호는 사용할 수 없습니다.

-O : OS를 판별하기 위해서는 열린 포트와 닫힌 포트가 필요합니다. 닫힌 포트는 높은 포트 번호 중 랜덤하게 선택됩니다. 그러나 높은 포트를 필터링하는 호스트는 OS를 판별할 수 없고 유실된 패킷이 생기면 잘못된 판별이 생길 수 있습니다.

-p : 특정 포트를 스캔하거나 스캔할 포트의 범위를 지정해 줄 수 있다. "-p 23"은 호스트의 23번 포트만 스캔하고, "-p 20-30, 63000-"은 20 ~ 30번 포트와 63000 포트를 검색합니다.

-D : 스캔을 수행한 컴퓨터의 IP를 속이기 위해 임의의 다른 IP 속에 자신의 IP를 숨겨 놓습니다. 스캔의 대상이 된 호스트의 관리자는 decoy 호스트에 나열된 모든 IP 주소에서 스캔이 온 것으로 오인합니다. 따라서 관리자는 모든 decoy 호스트를 검색할 수 없으므로 추적을 포기하게 됩니다.

-F : 잘 알려진 포트인 /etc/service에 있는 포트만을 검색하기 때문에 속도가 빠릅니다. -I Get identd (rfc 1413) info on listening tcp processes. TCP 프로세스의 identd 정보를 가지고 옵니다.

-n : 숫자로 된 IP 주소를 DNS 서버에 있는 호스트명으로 바꾸지 않기 때문에 속도가 빨라집니다.

-R : 모든 숫자 IP 주소를 호스트명으로 바꿉니다. 속도가 느려집니다.

-o : 스캔한 결과를 텍스트 형식의 파일 이름으로 저장합니다.

-m : 스캔한 결과를 다른 프로그램이나 스크립트에서 읽기 쉬운 형식의 파일로 저장한다.

-i : 스캔의 대상이 되는 IP 주소나 호스트 네임을 파일에서 읽어 온다. 파일 이름대신 "-"를 적으면 표준 입력이 stdin에서 읽어 온다.

-g : 스캔할 포트 번호를 적는다.

-S : 스캔할 때 사용하는 패킷의 출발지 IP 주소를 바꾸고 싶을 때 사용한다.

-v : 스캔할 때 옵션을 하나씩 물어보는 질문형 모드로 전환한다.

-h : 도움말

-V : 실행 중인 nmap의 버전을 표시한다.

-e : 원하는 장치로 패킷을 보낸다. <devicename>에 원하는 장치명을 가입한다.

-q : 결과 값을 원하는 프로그램으로 보낸다. 기본은 "pine"이지만 현재 사용이 안된다.



참고서적 : 웹 해킹 패턴과 대응 / 사이텍 미디어

각주 ▽

  1. ICMP (Internet Control Message Protocol) ICMP는 호스트 서버와 인터넷 게이트웨이 사이에서 메시지를 제어하고 에러를 알려주는 프로토콜로서 RFC 792에 정의되어있다. ICMP는 IP 데이터그램을 사용하지만, 메시지는 TCP/IP 소프트웨어에 의해 처리되며, 응용프로그램 사용자에게 직접 분명하게 보이지는 않는다. 일례로서, ping 명령어는 인터넷 접속을 테스트하기 위해 ICMP를 사용한다. [본문으로]
  2. MAC Address(Media Access Control Address) 통신을 하기 위해 필요한 각 장비에 부여된 48Bit로 이루어진 물리적인 주소다. 이 주소는 알아볼 수 있도록 16진수로 전환해서 표시되며 8Bit마다 하이픈(-) 이나 콜론(:), 점(.)으로 구분지어 쓰게 된다. 이때 MAC Address에 앞 24Bit는 Vendor 즉 생산자에 부여된 고유번호 이고, 뒤에 24Bit는 벤더에서 각 장비에 부여하는 인련번호이다. 예) 12:34:56:AB:CD:EF 12:34:56 : 벤더 고유번호 AB:CD:EF : 장비 인련번호 [본문으로]
  3. UDP(User Datagram Protocol) UDP는 IP를 사용하는 네트웍 내에서 컴퓨터들 간에 메시지들이 교환될 때 제한된 서비스만을 제공하는 통신 프로토콜이다. UDP는 TCP의 대안(代案)이며, IP와 함께 쓰일 때에는 UDP/IP라고 표현하기도 한다. TCP와 마찬가지로 UDP도 한 컴퓨터에서 다른 컴퓨터로 데이터그램이라고 불리는 실제 데이터 단위를 받기 위해 IP를 사용한다. 그러나 UDP는 TCP와는 달리, 메시지를 패킷(데이터그램)으로 나누고, 반대편에서 재조립하는 등의 서비스는 제공하지 않으며, 특히 도착하는 데이터 패킷들의 순서를 제공하지 않는다. 이 말은 UDP를 사용하는 응용프로그램은, 전체 메시지가 올바른 순서로 도착했는지에 대해 확인할 수 있어야한다는 것을 의미한다. 교환해야할 데이터가 매우 적은(그러므로 재조립해야할 메시지도 매우 적은) 네트웍 응용 프로그램들은 처리시간 단축을 위해 TCP 보다 UDP를 더 좋아할 수 있다. 일례로 TFTP는 TCP 대신에 UDP를 사용한다. UDP는 IP 계층에서 제공되지 않는 두 개의 서비스를 제공하는데, 하나는 다른 사용자 요청을 구분하기 위한 포트 번호와, 도착한 데이터의 손상여부를 확인하기 위한 체크섬 기능이다. OSI 통신 모델에서, UDP는 TCP와 마찬가지로 4계층인 트랜스포트 계층에 속한다. [본문으로]
  4. RFC(Request For Comments) IETF(Internet Engineering Task Force)에서, 인터넷에서 기술을 구현하는데에 필요한 절차 등을 제공하는 공문서 간행물이다. 참조 : http://100.naver.com/100.nhn?docid=718255 [본문으로]
Posted by Special Alex
(10101101)173/UNIX2008. 11. 8. 01:01

1. 솔라리스 버전 및 업데이트 번호
[SOLARIS:/]cat /etc/release
                     Solaris 8 HW 7/03 s28s_hw3wos_05a SPARC
           Copyright 2003 Sun Microsystems, Inc.  All Rights Reserved.
                             Assembled 11 June 2003


2. 서버의 모델 출력
[SOLARIS:/]prtconf -vp | grep banner-name
    banner-name:  'Sun Fire V240'


3. 서버 정보
[SOLARIS:/]uname -a
SunOS SOLARIS 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240
   ⓐ          ⓑ      ⓒ             ⓓ               ⓔ       ⓕ      ⓖ            ⓗ
ⓐ System(OS)
ⓑ Hostname
ⓒ Release
ⓓ Kernel Version(ID)
ⓔ Kernel architecture(그외 i86pc, sun4m, sun4c 등)
ⓕ Application architecture(그외 sparc, i386, i686등)
ⓖ Platform
ⓗ Banner

-a 옵션이 아닌 -X 옵션으로 좀더 쉽게 볼 수 있으며 비슷한 명령어로는 showrev명령어가 있습니다.

[SOLARIS:/]showrev
Hostname: SOLARIS
Hostid: 838e1e19
Release: 5.8
Kernel architecture: sun4u
Application architecture: sparc
Hardware provider: Sun_Microsystems
Domain:
Kernel version: SunOS 5.8 Generic 108528-22 May 2003

일반적으로 uname -v 명령어를 통해 설치된 Kernel에 적용된 최신 패치를 보여 주며
uname -srv 명령어를 통해 OS와 Kernel을 같이 본다. 하지만 좀더 자세한 정보를 원한다면
showrev -p 명영어를 통해 좀더 자세한 정보를 확인할 수 있습니다.

[SOLARIS:/]showrev -p | more
Patch: 109879-02 Obsoletes: 109654-02 Requires: 109877-01 Incompatibles:  Packages: SUNWcarx, SUNWcsr

패치가 많이 이루어 졌다면 상당량의 라인이 지나갈 것입니다. 때문에 more명령을 같이 넣어주면 확인하는대 불편함이 없을 것입니다.
Patch: 109879-02는 이 패치로 인해 109654-02 패치가 쓸모없어 제거 됬으며, 이 패치를 설치하기 위한 선행 패치로 109877-01이 설치되어야 하며, 관련 패키지는 SUNWcarx와 SUNWcsr이 있다는 것을 의미 한다.


4. 장착(monut)된 Disk(갯수) 확인
[SOLARIS:/]iostat -nE
c1t0d0          Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Vendor: FUJITSU  Product: MAP3367N SUN36G  Revision: 0401 Serial No: 00N0BPPN    
Size: 36.42GB <36418595328 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0 Predictive Failure Analysis: 0
>>
c1t1d0          Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Vendor: SEAGATE  Product: ST336607LSUN36G  Revision: 0307 Serial No: 3JA65ZTV00007349
Size: 36.42GB <36418595328 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0 Predictive Failure Analysis: 0

보기 쉽게 중간에 공백을 넣어 놓았습니다. 실제로 명령어를 입력했을때
는 공백이 존재하지 않습니다.

c1t0d0(FUJITSU)와 c1t1d0(SEAGATE) Disk, 이렇게 두게의 Disk가 보입니다.
df -k 명령어로 용량을 확인해 봐도 Filesystem부분에

[SOLARIS:/]df -k
Filesystem                  kbytes      used      avail capacity  Mounted on
/dev/dsk/c1t0d0s0      1016122    222789    732366    24%    /
/dev/dsk/c1t0d0s4      1016122    719173   235982    76%     /usr
/dev/dsk/c1t0d0s1       492872    173737    269848    40%    /var
/dev/dsk/c1t0d0s6    30879855     91478 30479579      1%    /backup
/dev/dsk/c1t0d0s5       492872    175590    267995    40%    /tmp
/dev/dsk/c1t1d0s6    35009161 30749312  3909758     89%    /home1

총 6개의 파티션으로 나뉜 두게의 Disk가 보입니다.
/dev/dsk/c1t0d0s[04165], /dev/dsk/c1t1d0s6

※ 참고
솔라리스는 장착된 디스크에 대한 물리적인 정보를 ‘devices.....’라는 디렉토리에 보관한 후 솔라리스가 실제 사용하는 이름으로 링크하는데 앞의 예제가 바로 그것이다. 이때 솔라리스는 물리적인 디스크에 대한 사용 방식을 두가지로 정의한다. 디스크를 있는 그대로 사용하기 위한(raw device) 방법으로 ‘/dev/rdsk/...’에 링크를 저장하는 방법과, 디스크를 솔라리스의 파일 시스템용으로 사용하기 위해 별도의 링크를 ‘/dev/dsk/...’ 디렉토리에 저장하는 방법이 있다.

일반적으로 오라클과 같은 데이터베이스나 특정 애플리케이션은 파일 시스템과 관련없이 로 디바이스(raw device)를 사용하기 때문에 ‘/dev/rdsk/....’ 밑의 파일을 사용한다. 한편 솔라리스가 직접 제어하는 파일 시스템은 블럭 디바이스(block device)를 사용하며 ‘/dev/dsk/....’ 밑의 디스크 링크를 사용한다.

따라서 어느 쪽이나 사용자가 앞의 예제와 같이 ls 명령을 실행하면 솔라리스가 인지한 디스크의 정보를 얻을 수 있다. 앞의 예제에서 표시된 내용을 해석해보면 세개의 디스크 컨트롤러(c0,c1,c2)가 장착돼 있으며, 0번 컨트롤러에는 t1 디스크 하나, 1번 컨트롤러에는 t6 디스크 하나, 2번 컨트롤러에는 t10과 t11이라는 두개의 디스크가 연결돼, 총 4개의 디스크가 시스템에 장착돼 있다는 것을 알 수 있다.

참고 사이트 : http://blog.naver.com/wooya510?Redirect=Log&logNo=60008927738


5. CPU 구성 확인
[SOLARIS:/]psrinfo -v 또는
[SOLARIS:/]/usr/sbin/psrinfo -v
Status of processor 0 as of: 11/07/08 14:46:54
  Processor has been on-line since 10/15/08 21:30:42.
  The sparcv9 processor operates at 1002 MHz,
        and has a sparcv9 floating point processor.

한개의 SPARCV9 1002MHz짜리 CPU가 있음을 보여주고 있습니다.
만약 여러게 였다면 위와 같은 정보가 여러번 나오게 됩니다.
때문에 한번에 갯수만 출력하는 명령어를 친다면 다음과 같이 입력하면 됩니다.

[SOLARIS:/]psrinfo -v | grep "Status of processor" | wc -l      
       1


6. Memory Size보기
[SOLARIS:/]prtconf | grep "Memory"
Memory size: 512 Megabytes


7. CPU점유율 확인
[SOLARIS:/]prstat
   PID USERNAME    SIZE   RSS STATE  PRI NICE   TIME CPU  PROCESS/NLWP
   296            root    443M  258M   sleep   59  -20   3:00.02   5.4%        SOLARIS/17
   311            root   3464K 1600K    sleep  58    0    0:22.13   0.1%        SOLARIS/1
    70            root    3920K 2440K   sleep   31    0   0:00.00   0.1%         picld/6
  3227    SOLARIS   1584K 1216K    cpu0   58    0   0:00.00   0.0%          prstat/1
 19074   SOLARIS   6688K 2016K       run   58    0   0:00.00   0.0%         sshd/1
 27216   SOLARIS   2560K 1784K   sleep    48    0   0:00.00   0.0%         bash/1
 27211          root    6696K 2712K   sleep   38    0   0:00.00   0.0%          sshd/1
 27245          root    2560K 1784K   sleep   58    0   0:00.00   0.0%          bash/1
 19072          root    6696K 2760K   sleep   22    0   0:00.00   0.0%          sshd/1
   272           root    5272K 1328K   sleep   20    0   0:00.00   0.0%          dtlogin/4
   310           root    1840K  632K   sleep   58    0   0:00.00   0.0%          ttymon/1
   210           root    3680K 1112K   sleep   58    0   0:00.00   0.0%         vold/5
   186           root    1048K  512K   sleep   58    0   0:00.03   0.0%          utmpd/1
   163           root    2064K  968K   sleep   48    0   0:01.35   0.0%          cron/1
   159           root    4088K 1592K   sleep  59    0   0:00.00   0.0%           syslogd/11
   152           root    1824K  440K   sleep   50    0   0:00.00   0.0%          inetd/1
 19076   SOLARIS   2560K 1792K      run   48    0   0:00.00   0.0%          bash/1
   130           root    2240K  272K   sleep    5    0   0:00.00   0.0%          rpcbind/1
   178           root    4056K 1280K   sleep    0    0   0:00.06   0.0%          sshd/1
    59            root   1752K  712K   sleep   30    0   0:00.00   0.0%          syseventd/12
 27214   SOLARIS   6688K 2008K   sleep   58    0   0:00.00   0.0%         sshd/1
    68            root   2760K  920K   sleep   53    0   0:00.00   0.0%         devfsadm/7
  2790           root   9776K 8240K   sleep    0    0   0:00.06   0.0%          nvfs/1
   308           root    1864K  520K   sleep   38    0   0:00.00   0.0%         ttymon/1
   307           root    1832K  528K   sleep   59    0   0:00.00   0.0%         sac/1
     1            root     840K  264K   sleep   58    0   0:00.43   0.0%         init/1

 


Total: 26 processes, 108 lwps, load averages: 0.06, 0.10, 0.12

하지만 이렇게 입력하면 한번 출력하고 끝이기 때문에 다음과 같이 입력 합니다.

[SOLARIS:/]prstat 5 5

이렇게 입력하면 prstat 명령여를 5초에 한번씩 5번 친 효과가 나타 납니다.
즉, 5초 간격으로 총 5번 자동적으로 prstat값이 reflash됩니다.


8. 시스템 장치의 정보 확인
[SOLARIS:/]uname -i
SUNW,Sun-Fire-V240
   ⓐ             ⓑ
Maker       Banner
이를 이용해 시스템 장치의 정보를 확인 할 수 있다.

[SOLARIS:/]/usr/platform/`uname -i`/sbin/prtdiag | more
System Configuration: Sun Microsystems  sun4u Sun Fire V240
System clock frequency: 167 MHZ
Memory size: 512MB     

==================================== CPUs ====================================
                      E$          CPU     CPU       Temperature         Fan
       CPU  Freq      Size        Impl.   Mask     Die    Ambient   Speed   Unit
       ---  --------  ----------  ------  ----  --------  --------  -----   ----
     MB/P0  1002 MHz  1MB         US-IIIi  2.4       -        -   

================================= IO Devices =================================
     Bus   Freq
Brd  Type  MHz   Slot        Name                          Model
---  ----  ----  ----------  ----------------------------  --------------------
 0   pci    66           MB  pci108e,1648 (network)                          
 0   pci    66           MB  pci108e,1648 (network)                          
 0   pci    33           MB  isa/su (serial)                                 
 0   pci    33           MB  isa/su (serial)                                 
 0   pci    33           MB  pci10b9,5229 (ide)                              
 0   pci    66           MB  scsi-pci1000,21 (scsi-2)                        
 0   pci    66           MB  scsi-pci1000,21 (scsi-2)                        
 0   pci    66           MB  pci108e,1648 (network)                          
 0   pci    66           MB  pci108e,1648 (network)                          
 0   pci    33            7  isa/rmc-comm-rmc_comm (seria+                   

============================ Memory Configuration ============================
Segment Table:
-----------------------------------------------------------------------
Base Address       Size       Interleave Factor  Contains
-----------------------------------------------------------------------
0x0                512MB             1           BankIDs 0

Bank Table:
-----------------------------------------------------------
           Physical Location
ID       ControllerID  GroupID   Size       Interleave Way
-----------------------------------------------------------
0        0             0         512MB           0

Memory Module Groups:
--------------------------------------------------
ControllerID   GroupID  Labels
--------------------------------------------------
0              0        MB/P0/B0/D0,MB/P0/B0/D1

=============================== usb Devices ===============================

Name          Port#
------------  -----
keyboard        2

======== FRU Status =========
-------------------------
Fru Operational Status:
-------------------------
Location        Status  
-------------------------
MB/SC           okay
PS0             okay
HDD0            present
HDD1            present



테스트 환경 : Solaris 8 7/03, Sun-Fire-V240
테스트 환경과 다른 환경에서 다른 메시지가 출력될 수 있습니다.
틀린부분은 알려주시면 수정하도록 하겠습니다.

수정 내역
3. 서버정보 : ⓖ Maker? → ⓖ Platform : 2008. 12. 03. 0321
맨끝에 테스트 환경 추가 : 2008. 12. 03. 0921

Posted by Special Alex