vista 설치

Windows Vista를 이제야 설치해 봤네요.
4년전에 장만한 컴퓨터라 사양이 안될까봐 미루다가..
결국엔 별도 파티션을 만들고 설치를 했습니다.

생각만큼 버벅되지 않네요.
오히려 깔끔하고 맘에 듭니다.

펜포 2.4,
램 1G,
80G 하드에 설치 했습니다.
RADEON 9550 드라이버는 자동으로 잡고
MAYA 5.1 사운드 카드 드라이버도 있네요.
못잡는 드라이버가 하나 있는데,
SIGMA FOMU라는 USB 무선 리모콘인데, 홈페이지에는
(윈도우 비스타 32bit,64bit에서 리모콘 설치문제) -현재 지원예정이던 리모콘 드라이버 프로그램에서 윈도우 비스타 32bit/64bit 모두에서 인식 못하는 문제를 확인하였습니다.-
 
*현재 64비트용은 추가 개발이 필요한 상태이며 32비트는 추가 수정을 해야할 것으로 보입니다.

*사용에 불편을 드려 죄송하며 빠른 시일내로 32비트용은 수정하여 배포 하도록 노력하겠습니다.

이런 말만 있네요.

설치한 버전은 Ultimate K 버전이고
OEM 인증 방식으로 영구 인증도 받았습니다.

사용자 삽입 이미지


마음에 드는 몇가지를 말하자면..

웹서핑 속도가 빨라졌습니다.
XP에서 IE7는 엄청 버벅되었는데..
Vista에서는 쌩쌩 날라다닙니다. FF보다 빠르네요.

트레이 아이콘에 시간을 클릭하면
사용자 삽입 이미지
요런 넘이 나옵니다.
이거 정말맘에 드네요.
항상 달력을 보기 위해 LClock을 설치할 필요가 없어졌습니다.
한가지 아쉬운 점은 Vista에는 Office를 설치하지 않아도 기본으로 제공하는
일정관리 툴이 있는데, 여기에 일정을 추가해도 달력엔 표시가 되지 않는군요.

서든 어택 랙이 줄었습니다.
아무것도 설치한 것이 없어서 인지는 몰라도 XP에서보다 랙이 눈에 띄게 없네요.

그런데, 3D로 작업전환을 한다든지 하는등의 다른 Vista 리뷰에서 볼 수 있는 걸
어떻게 하는지 모르겠네요. 체스 게임 말고는 3D가 보이지 않습니다. ^^;

당분간 불필요한 프로그램은 일절 설치하지 않고 사용해 볼랍니다.
아직까진 맘에 듭니다. ^^

로그파일에서 문자열 검색 쉘스크립트


*.20070315*
같은 형식의 로그 파일들이 많이 있다고 하면,
어제 로그들 중에서 특정 문자열을 검색해 갯수를 카운트 하는
스크립트 입니다.

#!/bin/ksh
 
TZ=KST+15
sDATE="`date +%Y%m%d`"
 
if [ "$1" = "" ]; then
    echo " ";
    echo "   View Counter";
    echo " ";
    echo "   usage> vc.sh [PageString]";
    echo " ";
else
        grep $1 *.${sDATE}* | wc -l
fi

간단히 설명하자면

1. 타임존 설정에서 울나라가 -9니까   +24 해서 +15로 설정하여 어제 날짜를 계산합니다.
2. 날짜 문자열 구합니다.
3. 파라미터 검사해서 검색할 문자열이 없으면 에러
4. grep으로 문자열 찾고, wc -l로 line을 count 합니다.

이상입니다.

Google 워드프로세서 & 스프레드쉬트

사용자 삽입 이미지

얼마전 집 PC에 OS를 새로 설치 했습니다.
가볍고 쾌적한 윈도우를 경험 하며 다짐한 것이 있습니다.
최대한 불필요한 S/W는 설치하지 않겠다는 것이죠.

구글에서 제공하는 웹서비스 중에
Google 워드프로세서 & 스프레드쉬트가 한글화 되었군요 +_+

엑셀과 워드 파일을 지원하고,
작업 내용을 웹에 저장해 놓을 수가 있습니다.
작성한 문서를 PDF로 변환도 할 수 있네요.

제법 데스크탑 S/W 흉내를 냈습니다.
마우스 오른 버튼을 누르니 자체 팝업 메뉴가 뜨네요 ㅎㅎ

당분간은 오피스도 설치 하지 않으렵니다.

부팅시 자동 실행 하기

부팅시 자동 실행 하기




테스트 장비 : HP-UX B.11.11 U 9000/800 (tm)

root 권한으로

1. 실행할 데몬 이나 스크립트를 만든다.

/sbin/init.d 디렉토리 밑에
실행할 데몬이나 스크립트를 넣어둔다.
스크립트인 경우 내용은 아래와 같다.

case "$1" in
start_msg)
        export dname; ewritemsg -M vras.mesg:2409 "VVR - Starting $dname daemon"
        ;;
'start')
        # start 할때 실행할 것
        su - tesuser -c /disk4/home/tesuser/test.sh
    ;;
'stop')
        # kill 할때 실행할 것
    ;;
*)
        export progname; ewritemsg -M vras.mesg:2408 \
                "Usage: $progname { start | stop }"
    exit 1
    ;;
esac
 
exit 0

쉘의 경우 이때 실행 owner는 root이다.
이 경우 환경 변수를 제대로 읽지 못할 수 있다.

실행할때 특정 권한으로 실행하므로 문제를 해결 할 수 있다.
su - 사용자계정 -c 실행명령
su - oracle -c /user/oracle/app/product805/bin/dbstart

아니면 쉘 안에 환경 변수를 지정해 줄 수 도 있다.
export 적용할 환경변수
export TEST_HOME=/disk4/home/test/temp
export CONFIG_HOME=/disk4/home/test/config
export LOGHOME=/disk4/home/test/log




2. 링크 파일을 생성한다.

/sbin/rc2.d 디렉트로 밑에
위에서 만든 실행할 파일의 링크를 만들어 넣어둔다.
ln -s /sbin/init.d/test.sh S999test

링크 파일명은 [S + 고유ID + 이름] 으로 한다.
S는 Start를 의미 K는 Kill을 의미 한다.

VC 프로텍트를 이용해 Rational Rose에 Class 추가 하기

- VC++을 열고 Win32 Console Application 으로 project 생성

- project -> Add to project -> Files -> 모든 파일들을 첨부

- save



- Rational rose enterprise edition 열고 cancel한다.

- Tools -> options의 General tab에서 Miscellaneous tab에서 'save settings on exit'체크제거

- Tools -> Visual C++ -> Properties -> Code Update tab의 모든 체크제거, Model Update tab의 가운데거 제외한 나머지 체크제거

- Tools -> Visual C++ -> Update model from code -> Add Component -> Existing에서 dsw선택

FireFox 팁 하나..

사용자 삽입 이미지


회사에서 사용하는 PC가 한대 있고, 집에서 사용하는 PC가 한대 있습니다.
둘다 FireFox를 사용하고 있는데.
회사에서 이것저것 설정을 바꾸거나, 플러그인을 설치하게 되면
FireFox환경이 집과 틀려서 혼란 스럽네요.
플러그인이 한두개 일때는 각각 따로 설치를 했는데, 설치하는 플러그인이 많아지다 보니
이것도 보통 작업이 아니더군요.

그래서 방법을 찾아봤는데.. 방법이 있군요. ^^

C:\Program Files\Mozilla Firefox
C:\Documents and Settings\사용자계정\Application Data\Mozilla\Firefox

이렇게 두개의 디렉토리를 복사해 넣으니 되네요.
간단 하군요.

-=-=--=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-

2007년 2월 9일 덧붙입니다.

이번에 OS를 새로 설치하면서 테스트 해보았습니다.
밑에 종비스님 덧글 대로
C:\Documents and Settings\사용자계정\Application Data\Mozilla\Firefox
내용만 복사해 주니 환경이 잡히네요.
종비스님 좋은 정보 감사합니다. ^^

TCP 패킷 캡쳐 프로그램..

TCP 패킷을 캡쳐하는 프로그램은 여러가지가 있는데..
windows에서는 winpcap 설치가 필요없는 SmartSniff을 써왔습니다.

그런데, unix 계열로 넘어 오면서 다양한 플랫폼을 지원하는 ethereal을 쓰게 되네요.
windows용도 있는데, winpcap를 사용한다는 단점이 있지만, SmartSniff와는 비교할 수 없을 정도로 기능이 막강하네요.

제일 마음에 드는 기능은 unix에서 패킷을 캡쳐해서 파일로 저장하고,
그 파일을 windows용 ehtereal에서 열어 보면 TCP패킷에 대한 기본적인 분석까지 됩니다.



unix에서 tcpdump를 이용해 파일을 만드는 예제

tcpdump -nns 1514 -w weird_traffic.cap 'dst host 192.168.10.25 and tcp and port 42'

/usr/local/sbin/tcpdump -nns 1514 -w packet_err.cap 'host 192.168.10.25 and tcp and port 80'

/usr/local/sbin/tcpdump -nns 1514 -w packet_perr.cap 'host 192.168.10.25 and tcp'

TCP 기본 연결, 종료 과정


netstat의 State 필드에 표시되는 TCP 상태표시가 갖는 의미를 알아봅시다.
RFC 793 문서에 있는 TCP 기본 연결, 종료 과정을 보면 이해가 더 빠를 거라 생각한다.
 
-----------------------------------------------------------
# netstat -atn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address     Foreign Address    State
... 생략 ...
tcp    0   0 0.0.0.0:25       0.0.0.0:*       LISTEN   <-- 포트가 열렸음
tcp    0   0 192.168.123.10:32799  207.46.106.141:1863  ESTABLISHED <-- 서로 연결중
tcp    0   0 192.168.123.10:32794  218.xxx.xx.xx:22   ESTABLISHED
tcp    0   0 192.168.123.10:32802  207.46.108.46:1863  CLOSE_WAIT <-- 종료 대기중
tcp    0   0 192.168.123.10:33244  211.xxx.xx.x:80    ESTABLISHED
... 생략 ...
-----------------------------------------------------------
 
1) TCP 연결관련 상태
 
* RFC 793문서에 나온 기본적인 TCP 연결 과정

   TCP A                           TCP B

 1. CLOSED                           LISTEN
 2. SYN-SENT  --> < SEQ=100>< CTL=SYN>          --> SYN-RECEIVED
 3. ESTABLISHED <-- < SEQ=300>< ACK=101>< CTL=SYN,ACK>   <-- SYN-RECEIVED
 4. ESTABLISHED --> < SEQ=101>< ACK=301>< CTL=ACK>     --> ESTABLISHED
 5. ESTABLISHED --> < SEQ=101>< ACK=301>< CTL=ACK>< DATA> --> ESTABLISHED

LISTEN   : 데몬이 요청을 발을 수 있도록 연결 요구를 기다리는 상태.
            즉, 포트가 열려있음을 의미. http(80), mail(25), ftp(21), telnet(23) 등 위에서 포트 25(mail)이 메일을 받을 수 있도록 열려 있는 상태.
            윈도우즈에서는 LISTENING으로 표시
SYN_SENT  : 로컬에서 원격으로 연결 요청(SYN 신호를 보냄)을 시도한 상태
SYN_RECV  : 원격으로 부터 연결 요청을 받은 상태.
            요청을 받아 SYN+ACK 신호로 응답은 한 상태이지만 ACK는 받지 못했다.
           netstat로 확인할 때 SYN_RECV가 상당히 많다면 TCP SYN 플러딩(Flooding) 공격일 가능성이 있다.
           윈도우즈와 솔라리스에서는 SYN_RECEIVED으로, FreeBSD는 SYN_RCVD으로 표시
ESTABLISHED : 서로 연결이 되어 있는 상태
            위에서 192.168.123.10의 포트 32794과 218.xxx.xx.xx의 포트 22(ssh)이 서로 연결되어 있는 상태

2) TCP 종료관련 상태

* 정상적인 연결 종료 과정

   TCP A                          TCP B

 1. ESTABLISHED                       ESTABLISHED
 2. (Close)
   FIN-WAIT-1 --> < SEQ=100>< ACK=300>< CTL=FIN,ACK> --> CLOSE-WAIT
 3. FIN-WAIT-2 <-- < SEQ=300>< ACK=101>< CTL=ACK>   <-- CLOSE-WAIT
 4.                             (Close)
   TIME-WAIT  <-- < SEQ=300>< ACK=101>< CTL=FIN,ACK> <-- LAST-ACK
 5. TIME-WAIT  --> < SEQ=101>< ACK=301>< CTL=ACK>   --> CLOSED
 6. (2 MSL)
   CLOSED                           

FIN_WAIT1  : 소켓이 닫히고 연결이 종료되고 있는 상태. 원격의 응답은 받을 수 있다.
            솔라리스에서는 FIN_WAIT_1로 표시
FIN_WAIT2  : 로컬이 원격으로 부터 연결 종료 요구를 기다리는 상태.
           솔라리스에서는 FIN_WAIT_2로 표시
CLOSE_WAIT : 원격의 연결 요청을 받고 연결이 종료되기를 기다리는 상태.
            원격으로 부터 FIN+ACK 신호를 받고 ACK 신호를 원격에 보냈다.
TIME_WAIT  : 연결은 종료되었으나 원격의 수신 보장을 위해 기다리고 있는 상태.
           이 상태를 특히 자주 보게되는 Apache에서 KeepAlive를 OFF로 해둔 경우,  Tomcat 서버를 쓰는 경우 등
LAST_ACK  : 연결은 종료되었고 승인을 기다리는 상태
CLOSED   : 완전히 연결이 종료된 상태

※ 위의 FIN_WAIT1, FIN_WAIT2, CLOSE_WAIT 3개 상태는 연결 종료를 위해 서로간에 신호를 주고받는 과정에 나타나는 상태로 이해하면 된다.
  종료 요청을 한 곳에서는 FIN_WAIT1, FIN_WAIT2, TIME_WAIT 상태가 종료 요청을 받는 곳에서는 CLOSE_WAIT, LAST_ACK 상태가 표시된다.

3) 기타

CLOSING   : 연결은 종료되었으나 전송도중 데이타가 분실된 상태
UNKNOWN   : 소켓의 상태를 알 수 없음

솔라리스의 netstat 명령에서는 다음 2개의 상태를 더 표시한다.

IDLE    : 소켓이 열렸지만 binding 되지 않은 상태
BOUND    : listen이나 연결을 위한 준비 상태

※ 참고 문서 
- netstat 맨페이지(linux, solaris)
- RFC 793 ( http://www.ietf.org/rfc/rfc0793.txt )

출처 : 커피닉스( http://coffeenix.net/ )
작성 : 좋은진호
출처 : http://sinilyu.linuxstudy.pe.kr/qaboard/QaBoardContentProcess.php3?page=6&no=780&s_name=&s_value=




자신의 컴퓨터와 연결되었거나 연결될 목록을 프로토콜과 함께 보여주는 명령어

유닉스나 윈도우에는 사용자 컴퓨터의 네트워크의 상태를 알려주는 netstat라는 명령어가 있다. 즉 어떤 포트가 열려 있고 어떻게  사용되고 있는지 모두 알 수가 있고 이 명령어를 잘 활용하면 맨손으로도 해킹을 감지해 낼 수 있습니다. 그러나 사용자의 대부분은  netstat란 명령어를 모르고 있는것 같아 이번에는 netstat명령어의 사용법을 익힘으로써 다른 소프트웨어 도움을 받지 않고  해킹을 감지해 내는 능력을 길러봅니다.

1. netstat로 알아보는 내 컴퓨터의 포트상태
c:>netstat
Proto    Local Address    Foreign Address    State
TCP     acy7807:1023       211.233.45.89:80     ESTABLISHED

- Proto : 현재 사용한 프로토콜
- Local Address : 현재 열려 있는 사용자 컴퓨터의 IP/호스트 네임과 사용중인 포트
- Foreign Address : 현재 사용자의 컴퓨터에 접속되어 있는 IP/호스트 네임과 사용중인 포트
- State : 연결 상태를 나타내는 것
  - ESTABLISHED : 현재 연결되어 있다는 뜻
  - LISTENING : 연결을 위하여 접속을 기다리는 상태
  - TIME_WAIT : 이미 해당 사이트와 연결이 종료되었거나 다음 연결을 위해 기다리는 상태
  - SYN_SENT : 접속하기 위해 패킷을 보냈다는 뜻



2. netstat옵션 배우기
c:>netstat ?

netstat -a : 연결된 혹은 연결을 기다리고 있는 모든 포트를 보여줍니다. -a 옵션이 없으면 연결된 목록만 보여주는데, -a 옵션을 주면 연결되었거나 연결을 기다리는 목록을 모두 보여줍니다.

netstat -n : 통상 연결 목록이 컴퓨터 이름이 나오는데, -n 옵션을 주면 컴퓨터 이름 대신 ip 주소가 뜹니다.

netstats -an or -na : 컴퓨터와 연결되었던 혹은 연결을 기다리는 목록을 ip 주소로 바꾸어서 보여줍니다.

이제 netstat 명령을 알았으니 가끔씩 실행시켜주면 됩니다. netstat 명령으로 검색했을 때 알 수 없는 포트가 있거나,  포트중에 31337, 12345, 54321과 같이 트로이 목마가 사용하는 포트가 하나 열려 있거나 열려진 포트로 특정 IP가 접 속해 있다면 이는 십중팔구 해킹인 것입니다.


///// 응용 /////
#netstat -nap (열려 있는 모든 포트)
#netstat -l 또는 netstat -nap | grep LISTEN (LISTEN 되는 모든 포트)
#netstat -nap | grep ESTABLISHED | wc -l ( 모든 서비스 동시 접속자 수)
#netstat -nap | grep :80 | grep ESTABLISHED | wc -l ( 웹 동시 접속자 수)

shell 명령어 && 유틸

df -k  빈공간 보기

du -sk *   목록으로 차지하는 용량 보기

rm -fr *    서브Dir도 지우고, 지우면서 묻지 않기

. .profile    수정한 .profile 적용하기

swinstall -s /설치할_depot_ 파일_경로  depot 파일을 설치 합니다.

history     입력한 shell명령 보기
              ( [ESC] + J, K 로 입력 가능합니다 )

uname -a    OS 버전 정보 보기

ipcs               메시지큐, 공유메모리 정보 등을 확인한다.

ipcrm -m  ID   ipcs를 통해 조회한 내용을 삭제한다.
                  (-m 옵션은 공유 메모리)

lsof -i | grep 포트 번호     특정 포트를 사용하고 있는 Process정보를 본다.

truss -p PID   해당 PID 해당하는 프로세스의 동작을 모니터링 한다.
                   (CPU점유율이 높아진 경우, 무한 루프등의 원인 규명에 큰 도움)

file 실행 파일명   컴파일 정보(32, 64비트 정보 등..)

route add -host xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx    라우트 테이블에 추가

netstat -rn     랜카드 목록 보기

tar 묶기 & 풀기

경로 포함 서브 디렉토리 포함 묶기
   tar cvf 20060620.tar .

풀기
  tar xvf 20060620.tar