'2012/03'에 해당되는 글 11건
- 2012/03/29 또비 Zend-3.3.9 설치
- 2012/03/28 또비 php 재설치 없이 확장모듈 추가하는 방법
- 2012/03/28 또비 윈도우2000 대용량 디스크 인식
- 2012/03/28 또비 랜카드 교체후 ip충돌시
- 2012/03/27 또비 리눅스 모듈관련 명령어
- 2012/03/27 또비 문자열 치환하기
- 2012/03/27 또비 bad owner name (check-names) - named 에러
- 2012/03/27 또비 시스템 이상시 기본적인 점검 사항 및 명령어
- 2012/03/27 또비 .bash_history 파일에 명령어실행 시간기록
- 2012/03/27 또비 리눅스바이러스 체크 (f-prot) (88)
1) 압축 해제 및 디렉토리 이동
tar xvfpz ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.9-linux-glibc23-i386
2) 프로그램 설치
3.3.3 이전 버전은 install 명령어를 통해서 설치했지만, 3.3.9버전부터는 다른방식으로 설치.
(1) php 버전 확인
[root@localhost ZendOptimizer-3.3.9-linux-glibc23-i386]# php -v
PHP 5.2.10 (cli) (built: Sep 11 2009 10:24:12)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
* 위 내용에서 PHP 버전은 5.2.10 인 것을 확인 할 수 있습니다.
(2) PHP 버전에 따른 Zend모듈 복사
[root@localhost ZendOptimizer-3.3.9-linux-glibc23-i386]# ll
합계 44
-rw-r--r-- 1 root root 10342 5월 19 2006 EULA-ZendOptimizer
-rw-r--r-- 1 root root 7884 8월 24 20:57 Inventory.xml
-rw-r--r-- 1 root root 10342 5월 19 2006 LICENSE
-rw-r--r-- 1 root root 1264 8월 24 20:54 README-ZendOptimizer
drwxr-xr-x 9 root root 4096 8월 24 20:57 data
-rw-r--r-- 1 root root 469 8월 24 20:57 md5
[root@localhost ZendOptimizer-3.3.9-linux-glibc23-i386]# cd data
[root@localhost data]# ls
4_2_0_comp 4_2_x_comp 4_3_x_comp 4_4_x_comp 5_0_x_comp 5_1_x_comp 5_2_x_comp poweredbyoptimizer.gif
[root@localhost data]# cp 5_2_x_comp/ZendOptimizer.so /usr/local/php/lib/
* (1)에서 조사한 PHP버전이 5.2.10이므로 5_2_x_comp디렉토리에서 모듈을 복사.
(현재 버전은 PHP 5.3.0은 제공하지 않습니다. )
(3) php.ini 파일에 Zend관련 설정
/usr/local/lib/php.ini 파일에 다음 줄 추가 합니다
[Zend]
zend_optimizer.version=3.3.9
zend_extension=/usr/local/php/lib/ZendOptimizer.so
(4) apachectl restart
php 확장모듈 설치
php 설치 시 누락된 모듈을 추가 적용 하기 위해서는 php를 재설치 하는 방법도 있지만 확장모듈의 경우 개별적으로 추가 등록을 할 수도 있습니다.
설치 된 php에 확장모듈을 추가하기 위해서는 아파치가 동적으로 설치가 되어 있어야 하며 동적설치 유무를 확인하기 위해서는 httpd -l 또는 phpinfo 페이지 apachehandler 의 Loaded Modules 부분에 mod_so 가 적용되어 있는지를 확인 하시면 됩니다.
아파치 모듈의 동적운용(DSO)와 정적운용(Static)의
차이점은 DSO 방식의 경우 필요한 경우에만 모듈을 메모리에 적재하고 Static의 경우 설치된 모든 모듈을 메모리에
적재하는 방식의 차이 이며 DSO 방식의 경우에만 재설치 없이 php에 확장모듈을 추가할 수
있습니다.
(DSO(Dynamic Shared Object)는 아파치 1.3버전부터 지원하며 최근 하드웨어
성능의 향상으로 대부분의 경우DSO 방식으로 아파치를 설치합니다.)
(참고 :http://www.worldwalker.co.kr/entry/%BE%C6%C6%C4%C4%A1-%BC%B3%C4%A1%BD%C3-DSO%BF%CD-Static%BC%B3%C4%A1%C0%C7-%C2%F7%C0%CC%C1%A1?category=1)
공통
기본적으로 현재 설치되어 있는 php와 동일한 버전의 php 소스를 이용하며 다른 버전 사용시 실패할 확률이 높습니다.
해당 php
버전의 기본적으로 제공하는 확장 모듈은 {php_source_path}/ext/ 경로 안에 있는 디렉토리 명으로 확인 할 수 있습니다.
모듈명.so 파일
생성 후 다음과 같은 방법으로 적용 합니다.
설치된 php 경로에 추가모듈을 위한 임의의 디렉토리를 만듭니다. (주의: 기존에 확장모듈을 별도로 추가하여 사용할 경우 해당 추가모듈 디렉토리를 그대로 사용합니다.)
ex)
#mkdir /usr/local/php_5.1.6/extension
생성된 "모듈명.so" 파일을 생성한 임의의 디렉토리로 복사한 후 php.ini 파일에 다음과 같이 변경&설정한 후 아파치를 재가동 하여 적용 합니다.
extension_dir = "/usr/local/php_5.1.6/extension"
extension=모듈명.so
1.
기본 php configure를 이용하여 확장 모듈을 생성하는 방법
(4.2.1 버전에서는
정상적으로 설치 되는 것을 확인하였으나 5.1.6등의 버전에서는 설치되지 않았으며 php 버전에따라 적용되지 않습니다.)
현재 설치되어 있는 php 버전과 동일한 버전의 php 소스를 다운받아 압축을 해제 합니다.
#tar zxvf php-버전.tar.gz
해제된 소스의 경로로 이동 후 ./configure
--enable-모듈명=shared 과 같은 형식으로 설정을 합니다.
(./configure
--help|grep 모듈명 등의 명령어를 이용하여
설치시 --enable-모듈명 인지 --with-모듈명 인지 확인하여 적용 하여야 합니다.)
#./configure --enable-모듈명=shared
또는
#./configure --with-모듈명=shared
해당 모둘의 디렉토리로 이동하면 Makefile이 생성된 것을 확인할 수 있으며 make 명령어로 컴파일 합니다.
#cd ./ext/모듈명
#make
컴파일을 하면 .libs/모듈명.so 또는 modules/모듈명.so 파일이 생성이 됩니다.
2.
phpize를 이용하여 확장 모듈을 생성하는 방법
현재 설치되어 있는 php 버전과 동일한 버전의 php 소스를 다운받아 압축을 해제 합니다.
#tar zxvf php-버전.tar.gz
해제된 소드 경로의 ext 디렉토리 내에 기본 확장 모듈이 디렉토리 명으로 되어 있으며 확장을 원하는 디렉토리 내에서 phpize를 실행 합니다.
#cd ./ext/모듈명
#{php_path}/bin/phpize
phpize를 실행 후 configure 등의 파일이 생성되며 다음과 같은 방법으로 configure와 make 실행 하여 컴파일 합니다.
#./configure --with-php-config={php_path}/bin/php-config --enable-모듈명
#make
컴파일을 하면 ./.libs/모듈명.so 또는 ./modules/모듈명.so 파일이 생성 됩니다.
3.
php를 새로 컴파일 하여 아파치에 직접 모듈을 교체하는 방법
(새로 설치하는 것과 큰
차이는 없으나 서비스 중단을 최소화 할 수 있는 장점이 있으며 알려지지 않은 문제점이 발생할 수 있습니다.)
(주의 : rpm 으로 설치된
apm은 해당되지 않습니다.)
현재 설치되어 있는 php 버전과 동일한 버전의 php 소스를 다운받아 압축을 해제 합니다.
#tar zxvf php-버전.tar.gz
해제된 소스 경로로 이동 후 phpinfo 등을 참고하여 기존 configure 옵션을 수정한 후 make로 컴파일 합니다. (make install은 진행하지 않습니다.)
#./configure {수정 된 옵션}
#make
아파치 데몬을 중단 한 후 아파치 모듈 디렉토리 (apache 1.x 의 경우 {apache_path}/libexec , apache 2.x 의 경우 {apache_path}/modules ) 내의 libphp5.php (또는 libphp4.php) 파일을 libphp5.php_bak 등의 형식으로 백업 합니다.
#{apache_path}/bin/apachectl
stop
#mv {apache_path}/modules/libphp5.so {apache_path}/modules/libphp5.so_bak
php 실행 데몬 또한 백업 합니다.
#mv {php_path}/bin/php {php_path}/bin/php_bak
새로 컴파일한 libphp5.so 모듈과 php 실행 데몬은 각각 새로 컴파일한 소스 디렉토리 내의 libs/libphp5.so 과sapi/cli/php 로 생성되어 있으며 이를 복사하여 대체 합니다.
(해당 경로에 없을 경우
소스 디렉토리 내에서 find . -name php,
find . -name libphp5.so 등의
명령어로 위치를 확인 합니다.)
#cp -a {php_source_path}/libs/libphp5.so {apache_path}/modules/
#cp -a {php_source_path}/sapi/cli/php {php_path}/bin/
아파치를 재가동 하여 확인합니다.
#{apache_path}/bin/apachectl start
윈도우서버 2000 의 경우 대용량디스크장착시 모두인식하지 못하고 120G정도밖에
인식을 못하는데, 서비스팩을 설치하더라도 인식못하는
경우가 있다.
이때는 아래와 같이 레지스트리 수정.
1. 시작 --> regedit 실행 (시작메뉴에서 실행들어가셔서 regedit 라고 치면 된다 )
2. 아래의 위치로 이동
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Atapi\Parameters
3. 우측창에서 마우스 오른쪽 버튼을 클릭하여 새로만들기 선택후 DWORD 값을 선택
이 름 : EnableBigLba
이름을 위와 같이 입력한 후 이름을 더블클릭하여 아래의 값을 수정
종 류 : REG_DWORD
값 : 1
4. 레지스트리 편집기 종료
5. 재부팅
댓글+트랙백 RSS :: http://simfarm.kr/bohem/rss/response/10
댓글+트랙백 ATOM :: http://simfarm.kr/bohem/atom/response/10
랜카드를 교체하거나 디스크만 새서버에 장착할경우 ip충돌이 나는경우
(랜카드 제거후 새로 인식시켜도, 드라이버 재설치해봐도 안된경우)
기존랜카드에 입력한 ip정보가 레지스트리에 등록되어 있기 때문인데..
동일한 ip를 랜카드에 입력할경우 충돌로 인하여
오류발생.
<기존ip삭제법>
실행 - regedit
레지스트리편집기 - 편집 -찾기 에서 ip로 검색.
검색된 내용중에 아래경로에 있는 IPADDRESS 를 삭제한다.
(윈도우 버전마다 좀 다를것으로 보이나, 대략 ip검색하여
기존ip로 보이는 부분을 삭제해주면 된다.)
LOCALMACHINE -> SYSTEM -> CURRENT CONTROLSET -> SERVICE
->TCPIP->
PARAMETERS -> INTERFACES
끝!
★lsmod
- 적재된 모듈 출력.(/proc/modules 파일)
★modinfo
- 모듈정보확인
#modinfo 8139too
★insmod (modprobe를 우선사용하는것이 바람직)
- 모듈적재,커널 디렉토리를 뒤져서 해당모듈을
적재한다.
#insmod
/lib/modules/2.6.18-164.6.1.e15/kernel/drivers/net/mii.ko
#insmod
/lib/modules/2.6.18-164.6.1.e15/kernel/drivers/net/8139too.ko
<옵션>
-k
: autoclean 을 사용하여 적재
★rmmod
- 모듈 삭제
<옵션>
-r : 의존관계에 있는 모듈을 한번에 삭제
★modprobe
- 모듈적재,depmod에 의해 갱신된
modules.dep(/lib/modules/2.6.18-164.6.1.el5/modules.dep)에서 찾아 적재한다.
insmod
와 달리 해당 디렉토리로 갈 필요없이 아무위치에서나 모듈을 적재할수 있다.
또한 의존성이 필요한 모듈이나 먼저 실행되어야 할 모듈이
있다면 그 모듈부터 적재하고 해당모듈을 적재한다.
#modprobe 8139too
<옵션>
-k : autoclean
을 사용하여 적재.
-r : 모듈삭제.
※modprobe설정파일
/etc/module.conf
혹은 /etc/modprobe.conf
modprobe 는
/etc/modules.conf 또는 /etc/modprobe.conf 를 참조하여 동작하는 환경과 모듈에 대한 정보를 얻어 커널에 포함할
모듈을 /lib/modules 에서 찾는다.
/etc/modprobe.conf 에서 모듈 정보를 얻어 차례대로 실행 하므로 등록 순서가
중요.
추가한 디스크에 순서가 원하는 대로 올라오지 않을 경우 모듈 순서를 변경해야할 필요가 있을수 있음.
★depmod
- 의존성검사를 하여 의존성을 업데이트한다.(modules.dep파일을 갱신)
- modprobe를 실행하기
전엔 꼭 depmod -a 를 사용하는 습관을 들인다.
※autoclean : autoclean 을 사용하면 커널데몬에 의해 일정시간 사용하지 않는 모듈을 삭제한다.
단, 커널 컴파일시
kerneld 지원여부를 물을때 Y 를 해야 사용가능.
★lspci (/sbin/lspci)
- pci 장치의 목록 확인
#lspci -v : 더 많은 정보
#lspci -vv
: 더더욱 많은 정보(제조사,모델등)
★kudzu 툴(자동으로 장치잡아주는 툴)
댓글+트랙백 RSS :: http://simfarm.kr/bohem/rss/response/8
댓글+트랙백 ATOM :: http://simfarm.kr/bohem/atom/response/8
find . -type f -name "*.*" -exec perl -i -p -e 's/치환될문자열/치환할문자열/g' {} \;
설명 :
->찾아라.
->파일타입은 f(파일) ※d는 디렉토리, b는 블록 , c
->이름은
확장자형식으로 된 모든파일 중에서
->실행하라 perl을
->' ' 내부
★'s/121.78.230.161/211.115.213.114/g' 는 -e옵션에 종속
★' ' 와 " " 는 동일 즉,
's/치환될문자열/치환할문자열/g' = "'s/치환될문자열/치환할문자열/g"
★perl옵션 순서는 -i -p -e , -p -i -e , -pi -e 는 동일하나 -ip -e등 나머지는 모두안됨.
[perl 옵션]
e 주어진 Perl 명령 실행
p 지정한 파일을 대상으로 작업
i 원본파일을 결과파일로
대체
c 구문검사(문법에러 점검)
v Perl 버전정보
V Perl 버전정보(상세)
w 경고
출력(개발과정에 주로 사용)
U 비안전모드, SUID 적용시 사용
아래와 같이 해도 된다. (-type 나 -name는 대상을 한정해줄때만 쓰면됨.)
find . -exec perl -i -p -e
"s/치환될문자열/치환할문자열/g" {} \;
※응용 : 파일 내부에 삽입된 악성 스크립트등을 삭제할때는
's/악성스크립트//g' <= 이런 형식으로..
댓글+트랙백 RSS :: http://simfarm.kr/bohem/rss/response/7
댓글+트랙백 ATOM :: http://simfarm.kr/bohem/atom/response/7
zone nene.pe.kr/IN: loading master file master/nene.pe.kr-zone: bad owner name (check-names)
named restart 나 start 를 하면
zone 파일설정이 되어있는 모든 도메인의 존파일에서 위와같이 에러가 난다.
검색으로 알아낸바지만
check-names master ignore; <= 요놈을 아래와같이 named.conf 에 삽입해주니 해결되었음.
<named.conf>
-----------------------------------------------------------------------
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
check-names master ignore;
};
------------------------------------------------------------------
댓글+트랙백 RSS :: http://simfarm.kr/bohem/rss/response/6
댓글+트랙백 ATOM :: http://simfarm.kr/bohem/atom/response/6
Last
각 계정 사용들의 서버로그인 정보를 확인하는 명령어 입니다.
Last는 다양한 방법으로 사용자들의 로그인 정보를 조사하며
재부팅한
정보를 확인하는데 사용되기도 합니다.
* Last 로 확인할 수 있는 시스템관련 정보들은 다음과 같은 것들이 있습니다.
-
접속 계정명
- 접속 장치명
- 접속한 IP 주소 정보 : 접속한 IP 주소
- 접속시간 정보 : 접속한 시간의 요일, 월,
일, 시간 – 기타
- 접속시간 정보 : 접속하여 서버에 머문시간
위와 같은 정보를 확인하기 위하여 last
명령어를 사용합니다.
/var/log/wtmp 파일에 모든 계정사용자들의 접속정보를 기록하고 있으며
last 명령어는 모든
계정들의 접속정보가 기록되어 있는 /var/log/wtmp 파일을 이용하여
출력결과를 보여줍니다.
리눅스는 /var/log/wtmp
파일이 존재할 경우에만 접속정보를 기록하기 때문에 /var/log/wtmp 파일이 존재하지 않는다면 “touch /var/log/wtmp” 라는
명령어로 만들어 주시면 됩니다.(last 명령어 위치 : /usr/bin/last)
* 사용형식
- last [-R]
[-num] [-n num] [-adiox] [-f file] [-t YYYYMMDDHHSS] [name…] [tty…]
*
시스템 계정사용자의 로그인정보를 확인하는 기본적인 방법
아래와 같이 아무런 옵션없이 “last” 라고만 하면 모든 계정들의 접속정보를
보여줍니다.
위의 결과를 보시면 시스템이 재부팅되었던 정보(reboot 행), 즉 시스템재부팅 횟수와
시각등을 확인할 수 있으며 시스템에 한번이상 로그인했던 모든 계정사용자들의 로그인정보를
확인 할 수 있습니다.
이 정보들은
서버 해킹등의 심각한 상황에서 계정 사용자들이 어디에서, 언제 서버로 로그인하여, 얼마나 머물렀는가를 확인하기 위한 매우 중요한 정보들을 담고
있습니다.
* 특정 계정사용자의 시스템로그인 정보확인
특정계정의 접속정보만을 확인하고자 한다면 아래와 같이
“last 계정명” 이라고 하시면 됩니다.
다음은 nextline 이라는 계정의 접속정보만을 확인한 예입니다.
위의 결과를 보시면 nextline 이라는 사용자는 총 9번에
걸쳐서 시스템에 로그인 했음을
알수 있습니다.
* Last 결과중 일부만 확인하기
last 결과중에서
몇행까지만을 확인하고자 한다면 “last –원하는행의수”와 같이 하면 됩니다.
또한 “last –n 원하는행의수”와 같이 사용해도 동일한
결과를 얻을수 있습니다.
아래의 예제는 5행의 결과만을 확인한 예입니다.
다음은 root의 접속정보를 5행까지만
확인한 결과 입니다.
위의 결과를 보시면 root 가 이 서버로 원격로그인 한 5행의 결과를 확인하실 수
있습니다.
* 서버로그인 정보중 IP 주소기록이 있는 정보를 제외한 나머지 정보만 확인하기
다음과 같이 last
명령어에서 –R 옵션을 사용한 것으로서 last 의 결과에서 호스트(ip 주소)
접속기록을 제외한 결과만을 보여준 예입니다.
위의 결과에서 보면 IP 정보가 출력이 이루어지지 않았음을 알
수 있습니다.
* last로 로그인 정보 확인시 IP주소를 행의 마지막 열에 표시하기
다음은 –a 옵션을
사용하여 last 결과중 IP 정보를 맨 마지막에 보여주 예입니다.
이 방법은 로그인정보중 접속했던 IP 주소를 알아보시 쉽게 출력하기
위해 사용합니다.
last 명령어는 위와 같은 방식들로 사용하여 접속계정 유무를 확인하시면 됩니다.
Ps (process status)
ps 는 현재 시스템에서 구동 중인 프로세스 상태를 확인하는
명령어 입니다. 이 명령어를 통해 어떤 프로세스가 어떤 형태로 구동되는 지에 대한 정보를 얻을 수 있습니다.
ps 옵션 및
의미
-a : 전체 사용자의 모든 프로세스를 출력합니다.
- l : 자세히(long format) 출력합니다.
- x : 제어
터미널이 없는 프로세스(커널 프로세스)를 출력합니다.
- f : pstree 명령어와 같은 트리 구조를 출력합니다.
ps
명령어를 수행할 때 프로세스의 구동 상태는 stat 영역에 다양한 코드로 나타나며, 해당 코드는 다음과 같은 의미가
있습니다.
ps 명령어 수행시 stat 영역에 프로세스의 상태를 나타내며 다음과 같은 의미가 있습니다.
*
상태 및 의미
- D(Disk wait) : 구동을 일시 중지하고 있는 상태로 인터럽트에 의해 재실행될 수 있습니다.
-
R(Running) : 구동되고 있는 상태입니다.
- S(Seeping) : 구동을 쉬고 있는 상태입니다.
- T(Traced 혹은
stoped) : 구동이 정지되어 있는 상태입니다.
- Z(Zombie) : 좀비 프로세스 입니다.
- W(swapped out) :
메모리를 사용하지 않는 스와핑 상태입니다.
* ps 명령어 활용
- ps –ewwf 는 현재 구동중은 프로세스를 자세하게
출력합니다.
ps –ewwf 프로세스 확인결과 입니다.
- ps
–ewwf |grep [프로세스명]은 확인
하고싶은 프로세스만 출력하여 보여주는데 보통 프로세스 개수 확인이나 전체 프로세스를 확인후, 이상이 있는 프로세스를 확인하여 해당 프로세스정보만
파악할 때 사용됩니다.
nobody 권한으로 실행되고 있는 프로세스를 출력한 값 입니다.
요즘
게시판이나 권한이 취약한 폴더를 통하여 UDP공격 소스를 업로드하여 외부로 공격을 하는경우가 있는데 이런경우 nobody권한으로 프로세스가
돌아가게 됩니다.
예를 들어 위의 그림처럼 nobody권한으로 httpd의 프로세스 이외에 perl프로세스가 사용된다면 이상 프로세스로
의심을 해볼필요가 있습니다.
lsof –p [해당 프로세스PID]으로 검색하여 어느 폴더에서 실행이 되고 있는지 확인후 해당 폴더로
들어가시어 파일을 확인하신후 모르는 폴더나 만들지 않았는데 생성이 되어 있는것이라면 필히 삭제를 하셔야 하며 kill이란 명령어(아래의 kill
명령어 사용법 참고)로 프로세스를 종료 시켜야 합니다.
이 같은 경우는 같은 방법으로 다시 생성이 될수 있기 때문에 권한 조정 및 해당
게시판 패치를 해주셔야 합니다.
Kill 명령어
현재 시스템 내에는 많은 프로그램이 구동되고 있으며
작업 중인 프로세스를 확인하려면 위에서 설명한 ps라는 명령어를 통해서 확인할 수 있습니다. 다시 말해 하나의 명령어나 프로그램을 구동하면
하나의 프로세스를 형성하고 그 프로세스는 고유한 번호를 할당 받게 되는데 이것을 PID라고 합니다.
하나의 프로그램을 종료할 때
실제로 해당 프로세스의 PID를 찾아내서 종료하는 방법을 사용합니다. 예를 들어 apache를 종료 시켰을 때 정상적으로 종료가 이루어지지
않을경우가 있습니다. 이러한경우 kill명령어를 사용하여 해당 프로세스를 강제 종료합니다.
- ps 의 명령어로 해당 프로세스의
PID번호를 확인하여 아래와 같이 명령으로 강제종료 할수 있습니다.
è kill –9 [PID번호] or kill –KILL
[PID번호]
이때 –9는 해당 프로세스에 시그널 9를 전송하는 것인데, 9는 강제 종료를 의미 합니다
è killall
–9 [해당 프로세스 데몬명]
apache와 mysql과 같은 프로세스는 프로세스가 없어지거나 새로운 프로세스가 생기며 접속자가 많으면
프로세스의 개수가 엄청 늘어 나게 됩니다.
이러한 프로세스를 전부 강제로 종료할경우 위와 같이 killall 명령어를 사용합니다.
이
명령어는 PID를 이용하지 않고 데몬명을 직접 입력하여 사용합니다.
Pstree 명령어
pstree는 현재
실행중인 프로세스들의 트리 구조로 보여줍니다. 프로세스의 상호관계를 파악하기 위해 필수적인 명령어 입니다. 모든 프로세스의 부모프로세스라고 하는
PID 가 1 인 init 프로세스로부터 개별프로세스들이 어떤 관계로 실행이 되었는가를 파악하기 위해 사용합니다.
다음과 같이
pstree 라고만 하면 현재 실행중인 프로세스들을 tree 구조형태로 보여 줍니다.
- pstree에서 –a 옵션을 사용하면 프로세스들이 실행이
될 때의 인자나 옵션들 모두 함께 표시해 줍니다. 즉, 아래의 예를 보시면 각 프로세스들이 실행이 될 때 사용하였던 옵션들까지 상세하게 보여주고
있습니다.
대표적으로 위의 두 명령어를 사용하여 프로세스를 확인합니다.
top
명령어
top 명령어는 리눅스 시스템의 운용상황을 실시간으로 전반적인 상황을 모니터링하거나 프로세스 관리를 할 수 있는
유틸리티입니다.
실행 방법은 쉘상에서 “top”라고 하시면 되며 종료시에는 q or CTRL+C 키를 눌러 종료를하시면
됩니다.
위의 결과로 제공되는 시스템운영에 관한 여러가지 정보들의 의미를 하나씩 설명드리도록
하겠습니다.
첫번째 행
top - 17:18:28 up 97 days, 14:59, 3
users, load average: 0.07, 0.10, 0.00
- 17:17:00 : 시스템의 현재
시간 입니다.
- up 97 days , 14:57 : 종료없이 운영된 시간입니다.
- 3 users : 접속된 사용자 수를 나타내고
있습니다.
- load average 0.70, 0.10, 0.00: 시스템 부하율를 나타 냅니다.(0.00, 0.00,
0.00=>각각 1분 5분 15분)
두번째 행
Tasks: 106 total, 1 running, 102
sleeping, 0 stopped, 3 zombie, 0 stopped
Tasks: 106 total : 실행된 프로세스 수를
나타냅니다.
1 running : 현재 실행되고 있는 프로세스의 수입니다.
102 sleepin : sleeping 된 프로세스의 수
입니다.
3 zombie : 좀비 프로세스 수 입니다.
0 stopped : stopped된 프로세스의 수를 각각
보여줍니다.
세번째 행
세번째 행은 cpu의 전반적인 운용상황을 알려줍니다. 즉 사용자 사용율과 시스템 자체 사용율,
nice 정책에 의해 사용되고 있는 cpu 사용율, 입출력 대기 사용율 , 사용되지 않고 남아있는 cpu사용율을
나타냅니다.
네번째 행
네번째 행에서는 시스템의 전반적인 메모리 운용상황을 보여줍니다. 즉 전체메모리 용량, 프로세스에 의해
사용되고 있는 메모리 사용량, 사용되지 않고 남아있는 메모리량, 고유메모리량, 버퍼링된 메모리량 등의 정보를 보여줍니다.
다섯번째
행
다섯번째 행에서는 스왑메모리 사용현황을 알려줍니다. 즉 전체 스왑 메모리량, 프로세스에 의해 사용된 스왑메모리량, 남아있는 스왑
메모리량, 프로세스에 의해 사용된 메모리량을 나타냅니다.
find 의 백도어검색 명령어
- find /dev
–type f
위의 명령어시 올라오는 메시지가 /dev/MAKEDEV, MAKEDEV.ibc,
/dev/cpu/mtrr,
/dev/cpu/microcode, /dev/.udev/db/* 이외에 다른 파일명이 올라온다면 백도어를
의심해볼 필요가 있습니다.
- find / -ctime –1
위의 명령어는 하루동안 만들어진 파일을
보여줍니다.
직접생성한 파일이 아니라면 필히 확인을 해보셔야 보안상 좋습니다.
- find / -perm
-4000
위의 명령어는 setuid 걸린 파일을 찾아줍니다.
위의 매뉴얼 내용은 기본적으로 서버에 이상이 있을경우 먼저
점검을 하는 내용입니다.
서버 사용시 이상이 있으신경우 위의 매뉴얼내용을 참고하시어 점검하여 보시기
바랍니다.
출처
http://www.nextline.net/?inc=support&html=pds_view&no=190&name=%C0%A9%B5%B5%BF%EC%C1%EE&home=
댓글+트랙백 RSS :: http://simfarm.kr/bohem/rss/response/5
댓글+트랙백 ATOM :: http://simfarm.kr/bohem/atom/response/5
환경설정파일인 profile수정을 통해서 간단하게 설정이 가능합니다.
먼저 타임서버하고의 정확한 시간을 동기화해줍니다.
### 현재시간 확인
[root@loalhost]# date
2007. 05. 17. (목)
15:05:40 KST
### 타임서버하고의 시간동기화
[root@localhost]# rdate -s
time.bora.net
### 동기화 된 시간확인
[root@localhost]# date
2007. 05. 17.
(목) 15:09:16 KST
이제 profile 수정을 통해 시스템에 환경설정값들을 설정합니다.
[root@localhost]# vi /etc/profile
### 적당한 위치에 아래라인 추가
HISTTIMEFORMAT="%Y-%m-%d
[%H:%M:%S] "
export HISTTIMEFORMAT
### 저장하고 나와서 적용을 위한 로그아웃후 재접속해서 확인
[root@localhost]#
history
996 2007-05-17_15:18:22\ vi /etc/profile
997
2007-05-17_15:18:22\ history
998 2007-05-17_15:18:22\ exit
999
2007-05-17_15:18:23\ history
f-prot 리눅스용 백신다운.
http://www.f-prot.com/
fp-Linux-i686-ws.tar.gz
*설치
방법
cd /usr/local
tar xvfz fp-Linux-i686-ws.tar.gz
cd f-prot
./install-f-prot.pl 으로 인스톨.
설치시 옵션선택은 default , 마지막에 crontab 등록은 원하는대로
설정.
업데이트는
/usr/local/f-prot/tools/fpupdate
*바이러스 체크 실행
/usr/local/f-prot/fpscan -a (-a 는 all옵션)
혹은
/usr/local/f-prot/fpscan /home (/home 검사)