해킹당한 명령어들 rpm 명령으로 (강제) 재설치하기



해킹을 당하게 되면 주로 root가 시스템관리를 위해서 자주사용하는 아래와 같은 명령어들이 동일한 이름의 다른 명령어로 대체되는 경우가 허다하다.

"/usr/bin"
"/usr/bin/find"
"/usr/bin/last"
"/usr/bin/top"
"/usr/bin/uptime"
"/usr/bin/w"
"/usr/bin/who"

따라서 이런 경우에 이런 명령어들을 재설치해야하는데, 가장 쉬운 방법이 신뢰성있는 ftp등의 사이트에서 rpm 패키지소스를 다시 가져와서 재설치해야 할 것이다.

그런데, rpm -Uvh등으로 재설치를 하려면 패키지의존성 때문에 재설치가 불가한 경우가 많다.

물론, 의존성있는 모든 패키지들을 하나씩 찾아서 재설치해주면 되지만, 보통작업이 아니므로 여기서는 필요한 패키지만을 강제적으로 재설치하는 방법(옵션)을 알아보도록 하겠다.



아래의 예를 보자.

[root@kebia_1 sspark]# rpm -Uvh procps-2.0.7-3.i386.rpm
package procps-2.0.7-3 is already installed
[root@kebia_1 sspark]#

위의 예처럼, ps라는 명령어를 재설치하기 위해서 Uvh라는 옵션으로 재설치하려했더니 이미 설치되어 있다고 나왔다.

그래서 rpm -qa라는 명령어로 ps와 관련된 패키지를 찾아서 패키지를 삭제하려 하였다.

[root@kebia_1 sspark]#
[root@kebia_1 sspark]# rpm -qa | grep ps
pspell-0.11.2-1
tetex-dvips-1.0.7-7
ypserv-1.3.11-9
procps-2.0.7-3
psmisc-19-4
psgml-1.2.1-8
[root@kebia_1 sspark]#
[root@kebia_1 sspark]# rpm -e procps-2.0.7-3
error: removing these packages would break dependencies:
procps >= 2.0.6-5 is needed by initscripts-5.49-1
libproc.so.2.0.7 is needed by rusers-server-0.17-6
[root@kebia_1 sspark]#


그랬더니, 위와 같이 패키지 의존성에러가 발생한다.

물론, 이 패키지들을 모두 찾아서 재설치할 수도 있으나, 너무 번거로운 작업이다.



이런 경우에 다음의 예와 같이 --force라는 옵션으로 원하는 패키지를 강제적으로 재설치할 수 있다.

[root@kebia_2 /root]# rpm -Uvh --force procps-2.0.7-3.i386.rpm
procps ##################################################
[root@kebia_2 /root]#



참고로 해당 명령어와 관련된 패키지를 찾는 rpm명령어는 다음과 같습니다.

예를 들어 ps라는 명령어와 관련된 패키지를 찾으려면 다음과 같습니다.

[root@kebia_1 sspark]# rpm -qf /bin/ps
procps-2.0.7-3
[root@kebia_1 sspark]#

이를 점검했다면 이 패키지가 설치했던 파일들을 알아볼 필요가 있겠지요..

다음과 같은 옵션을 사용하면 간단히 볼 수 있죠..

[root@kebia_2 report]# rpm -ql procps-2.0.7-3
/bin/ps
/etc/X11/applnk/Utilities/top.desktop
/lib/libproc.so.2.0.7
/sbin/sysctl
/usr/bin/free
/usr/bin/oldps
/usr/bin/pgrep
/usr/bin/pkill
/usr/bin/skill
/usr/bin/snice
/usr/bin/tload
/usr/bin/top
/usr/bin/uptime
/usr/bin/vmstat
/usr/bin/w
/usr/bin/watch
/usr/share/doc/procps-2.0.7
/usr/share/doc/procps-2.0.7/BUGS
/usr/share/doc/procps-2.0.7/NEWS
/usr/share/doc/procps-2.0.7/TODO
/usr/share/man/man1/free.1.gz
/usr/share/man/man1/oldps.1.gz
/usr/share/man/man1/pgrep.1.gz
/usr/share/man/man1/pkill.1.gz
/usr/share/man/man1/ps.1.gz
/usr/share/man/man1/skill.1.gz
/usr/share/man/man1/snice.1.gz
/usr/share/man/man1/tload.1.gz
/usr/share/man/man1/top.1.gz
/usr/share/man/man1/uptime.1.gz
/usr/share/man/man1/w.1.gz
/usr/share/man/man1/watch.1.gz
/usr/share/man/man5/sysctl.conf.5.gz
/usr/share/man/man8/sysctl.8.gz
/usr/share/man/man8/vmstat.8.gz
[root@kebia_2 report]#

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/03/21 06:00 2004/03/21 06:00
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/182

mail , 메일 받는거 안될때~!

mail 이 전송은 되구 안받아질때.

/mail/sendmail.cf

Fw 와 Cw , Alias 를 참조해라... ( 경로 참조 )
alias 경로가 않맞을 수 있다.

sendmail.cw 에 도메인이 들어잇는가?

alias 파일은 /etc/ 에 있다.

샌드메일 리스타트는 각 설정수정할때마다 하구 테스트 해라~!

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/03/19 16:59 2004/03/19 16:59
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/181

ln -> 심볼릭 링크 만들기

심볼릭 링크
심볼릭 링크는 주로 디렉토리를 링크할 때 사용한다.

심볼릭 링크는 하나의 파티션을 넘어 다른 영역의 파일까지 링크시킬 수 있다.

n -s 명령으로 링크시키며 생성된 링크 파일은 원래의 파일명을 참조하게 된다. 그래서 원 파일이 삭제되면 실제 데이터 블럭을 참조하던 inode도 삭제되어, 심볼릭 링크된 파일은 의미가 없어진다. 따라서, 심볼릭 링크를 시켰을 때는 원래의 파일이 삭제되지 않도록 주의해야 한다.

아래의 예를 보자.
$ cd
$ ln -s /usr/include include
$ ls -l include
 lrwxrwxrwx  1  unix01 unix  12 mar 11:19 include-> /usr/include
$ cd include
$ pwd
 /usr/include
$ cd
$ who > who.list
$ ln -s who.list who.list.link
$ rm who.list.link
cat : 열 수 없습니다.
$ rm who.list.link

"cat : 열 수 없습니다."라는 error 발생하였다.
cp 명령은 별도의 데이터 블럭을 생성하지만,
n으로 생성된 링크 파일은 원래 파일의 inode를 참조하거나 파일명을 참조할 뿐이며 별도의 데이터 블럭을 생성하는 것은 아니다. 그래서, 공유할 필요가 있는 파일들을 링크하거나 절대경로가 긴 디렉토리를 간편한 이름으로 참조할 경우, 링크를 사용하게 된다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/03/16 10:17 2004/03/16 10:17
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/180

일본어 폰트 설정.

일본어 폰트 설정.

아파치에서 디폴트 캐릭터셋을 없애면,

캐릭터 셋을 지정한 데로 나온다.

#
# Specify a default charset for all pages sent out. This is
# always a good idea and opens the door for future internationalisation
# of your web site, should you ever want it. Specifying it as
# a default does little harm; as the standard dictates that a page
# is in iso-8859-1 (latin1) unless specified otherwise i.e. you
# are merely stating the obvious. There are also some security
# reasons in browsers, related to javascript and URL parsing
# which encourage you to always set a default char set.
#
#AddDefaultCharset EUC-KR //--- 주석처리
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/03/11 17:35 2004/03/11 17:35
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/179

touch (파일의 날짜시간정보를 변경)

touch

touch는 파일의 날짜시간정보를 변경하는 명령어이다.
즉 아무런 옵션이 없다면 파일의 최근에 사용한 시간과 최근에 변경된 시간을 서버의 현재시간으로 변경한다.
만약 지정된 명령어가 존재하지 않는다면 파일의 크기가 0인 빈 파일을 생성한다.

-t라는 옵션을 사용하면 서버의 현재시간이 아닌 지정된 시간으로 파일의 날짜시간정보를 변경한다.


명령어 사용형식

touch [-acfm] [-r file] [-t MMDDhhmm[[CC]YY][.ss]] [-d time]
[--time={atime,access,use,mtime,modify}] [--date=time] [--reference=file] [--no-create]
[--help] [--version] file...


사용예 #1

먼저 첫번째 예로서 아무런 옵션없이 파일이름만 지정하면 서버의 현재시간을 가진 비어있는 파일을 생성한다.

[root@host1 commmand]# touch file1
[root@host1 commmand]# ls -l
합계 0
-rw-r--r-- 1 root root 0 9월 10 13:05 file1
[root@host1 commmand]#

위의 예에서 file1이라는 파일이 서버의 현재 날짜시간으로 크기가 0인 파일이 생성이 되었다.

그러나 -c 옵션을 사용한다면 존재하지 않은 파일일 경우에는 파일을 생성하지 않는다.

[root@host1 commmand]# ls -l
합계 0
-rw-r--r-- 1 root root 0 9월 10 13:05 file1
[root@host1 commmand]#
[root@host1 commmand]# touch -c file2
[root@host1 commmand]#
[root@host1 commmand]# ls -l
합계 0
-rw-r--r-- 1 root root 0 9월 10 13:05 file1
[root@host1 commmand]#

위와 같이 -c옵션을 사용하였을 경우에는 지정된 파일(file2)가 존재하지 않는다면 새로 생성하지 않는다.




사용예 #2

다음은 특정 파일의 날짜시간을 지정된 날짜시간정보로 변경하는 예이다.

[root@host1 commmand]# ls -l
합계 0
-rw-r--r-- 1 root root 0 9월 10 13:05 file1
[root@host1 commmand]#
[root@host1 commmand]# touch -t 09100111 file1
[root@host1 commmand]#
[root@host1 commmand]# ls -l
합계 0
-rw-r--r-- 1 root root 0 9월 10 01:11 file1
[root@host1 commmand]#

file1이라는 파일의 시간정보는 처음 생성되었던 정보인 "9월 10일 13시 5분"이였다.
그런데 "touch -t 09100111 file1"라는 명령어로 시간정보를 "9월 10일 01시 11분"으로 변경하였다.
위와 같이 -t옵션을 사용하여 특정한 날짜시간으로 파일의 정보를 변경할때에는 "MMDDhhmm[[CC]YY][.ss]"의 형식을 사용한다.


다음은 현재 날짜보다 이전날짜로 file1의 날짜를 변경하였을때의 예이다.

[root@host1 commmand]# touch -t 03050111 file1
[root@host1 commmand]# ls -l
합계 0
-rw-r--r-- 1 root root 0 3월 5 2003 file1
[root@host1 commmand]#

file1의 날짜시간정보를 "3월5일 01시 11분"으로 변경한 것이다.

만약 아무런 이유없이 특정파일(특히 관리자용 명령어)의 시간정보가 변경이 되었다면 해킹을 의심해 보아야한다.
따라서 서버관리자는 파일의 시간정보및 퍼미션정보등이 변경되었는가를 주기적으로 점검하여 해야한다.


사용예 #3

이번에는 특정파일의 날짜시간정보를 이용하여 지정된 파일의 날짜시간정보를 변경하는 예이다.

[root@host1 commmand]# ls -l
합계 0
-rw-r--r-- 1 root root 0 3월 5 2003 file1
-rw-r--r-- 1 root root 0 9월 10 13:05 file2
[root@host1 commmand]#
[root@host1 commmand]# touch -r file1 file2
[root@host1 commmand]# ls -l
합계 0
-rw-r--r-- 1 root root 0 3월 5 2003 file1
-rw-r--r-- 1 root root 0 3월 5 2003 file2
[root@host1 commmand]#

위에서 -r 옵션을 사용하여 file2의 날짜시간정보를 file1과 동일하게 변경하였다.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/03/05 09:57 2004/03/05 09:57
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/178

서버 에러 페이지 핸들링

@ 403(Forbidden)
- 의미 : 액세스하고자 하는 파일의 사용이 금지되었음을 말함
- 원인 : 파일에 엑세스 할 수 있는 권한 문제로 사용하고자 하는 CGI 프로그램이 들어있는 디렉토리에 대한 사용 권한이 없거나 스크립트 자체의 권한이 없는 경우에 발생
- 수정 : 사용하고자 하는 스크립트가 있는 디렉토리를 읽을수 있도록 chmod 751로 설정 스크립트 자체가 실행할 수 있도록 chmod 751로 설정

@ 404(Not Found)
- 의미 : 파일이 발견되지 않았음. 즉, 사용자가 요청한 HTML 파일이나 CGI 스크립트가 없음.
- 원인 : 대부분의 경우 URL을 잘못 입력했거나 링크를 잘못 걸었을 때
- 수정 : URL 이나 링크가 제대로 되었는지 확인

@ 500(Internal Error)
- 의미 : 일반적으로 정의되지 않은 에러가 발생.
웹서버는 "무언가 잘못되어 문제는 있는데 그것이 무엇인지 모르겠다"라고 말하는 것
CGI 스크립트와의 대화에 실패한 것을 말함.
- 원인 : 사용자가 CGI 스크립트를 수정하다가 코드를 잘못 건드렸을 때 혹은 퍼미션 문제
- 수정 : 코드 수정, CGI관련 디렉토리와 파일 퍼미션을 751이나 755로 설정

//-----------------------------------------------------
httpd.conf 파일에서 Error Document 404 http://ibplan.net/error/intro.htm
이런 식으로 설정해주면 된다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/03/03 14:51 2004/03/03 14:51
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/177

특정 도메인의 메일 서버 알아내기

특정 도메인의 메일 서버 알아내기

가끔씩 궁금했던 내용인데, Kltp에 재미있는 글이 올라왔네요...

"""

어떤 도메인이 있을때 그 도메인으로 가는 메일을 받는 서버,
즉 메일 서버의 FQDN을 알아야 할 일이 있을 겁니다.

MTA를 제작한다거나, 아니면 메일의 목적지 메일 서버로 직접
SMTP를 이용해서 메일을 보내고 싶을 수도 있고요.

Linux 7.0인가부터 새로 들어있는 host 프로그램을 이용하는
방법입니다. 물론 nslookup도 됩니다. 자세한건 man page 참고.

DNS 설정해 보신 분은 아시겠지만, 메일 서버는 MX 레코드에 의해
지정됩니다.

다음과 같은 명령을 이용하면 hanmail.net 도메인의 메일 서버를
검색할 수 있습니다.

host -t mx hanmail.net

결과는 다음과 같네요.

[chaos@chaos ~]$ host -t mx daum.net
daum.net. mail is handled by 10 mx1.hanmail.net.
daum.net. mail is handled by 10 mx2.hanmail.net.
daum.net. mail is handled by 10 mx3.hanmail.net.
daum.net. mail is handled by 10 mx4.hanmail.net.
daum.net. mail is handled by 10 mx5.hanmail.net.
daum.net. mail is handled by 10 mx6.hanmail.net.
daum.net. mail is handled by 10 mx7.hanmail.net.
daum.net. mail is handled by 10 mx8.hanmail.net.
daum.net. mail is handled by 10 mx9.hanmail.net.
daum.net. mail is handled by 10 mx10.hanmail.net.
[chaos@chaos ~]$

메일 서버가 상당히 많군요. 참고로 라이코스 코리아는
한대의 메일 서버를 운영중이더군요.

감사합니다.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/02/27 14:26 2004/02/27 14:26
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/176

named 죽는 문제 - BIND 체크

윤현철-道德經營 님의 말:
크래킹이라네 네임서버 죽는문제 누가 exploit 을 사용해서 그렇타하네요
윤현철-道德經營 님의 말:
아무래도 빨리 업그레이드를 해야겟어여
윤현철-道德經營 님의 말:
http://www.oops.org/SERVICE/jsboard/read.php?table=jsboard_oopsQnA&no=33014&page=4&o[sc]=a&o[ss]=named&o[st]=a&o[at]=s&o[sct]=s&o[stt]=s

//---
bind package 들의 상호 의존성 때문에 그렇습니다.
rpm -qa | grep ^bind 명령으로 나오는 패키지들을 한꺼번에 업데이트
해 주시면 됩니다. 간단하게 rpm -Uhv bind-* 해 주셔도 무방할 겁니다.


//--- 04.03.26
기본적으로 레드햇 bind 시리즈를 설치하면 잘 된다.
개별설치가 않되면
rpm -Uhv bind-9~~ bind-util~~ 이런식으로 연결해서 한번에 설치하자~!

설치하기전 named 관련 파일들은 전부 백업하는건 잊지말구~!




크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/02/13 18:47 2004/02/13 18:47
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/175

백업 전략 - /backup/

@@@ 백업 전략 @@@

1. 어떤 파일을 백업해야하나?
- 모든 파일. 시스템 관리를 백업할 필요는 없다.
scratch file과 디렉토리를 제외한 모든 파일.

2. 이런 파일들은 어디에 있는가?
- 중요한 파일이 어떤 특정시스템의 파일 시스템안에 있는가?
어떤 시스템이 가장 중요한 자료를 담고 있는가?

3. 누가 파일을 백업할 것인가?

4. 어디에서, 언제, 어떤 조건하에서 백업이 수행되어야하는가?

5. 파일이 얼마나 자주 변경되어야하는가?
- 백업을 언제, 얼마나 자주 수행하여야 하는지,
그리고 백업 형태는 무엇이 좋은지를 결정하게 해준다.

6. 중요한 파일이 없어지거나 손상을 입었을때 얼마나 빠르게 복구되어야 하는가?
- 백업은 널리 쓰이고 있는 파일과 하나밖에 없는 파일이 없어지는 사태를 막아준다.
키파일을 다시 사용할수 있을 때까지 걸리는 시간이 중요하다.
키 파일의 개수, 파일시스템이나 네트워크를 통해서 얼마나 널리 사용되고 있는지, 얼마나 큰 파일인지도 중요하다.

7. 어디에 자료를 복구할 것인가?
- 백업은 원래 만들어졌던 시스템에서만 사용되기도 하고,
비상시에는 다른 시스템에 복구될 수도 있다.
다중시스템 호환성이 중요한 문제일수도 있는데,
이런 때에는 백업과 복구 계획을 세울때 주의가 필요하다.

### 순서 ###
1. 다중단계를 사용하는 전형적인 백업 전략.
월요일
단계 0 (풀) 백업
화요일
단계 1 (증분) 백업
수요일
단계 1 (증분) 백업
목요일
단계 1 (증분) 백업
금요일
단계 1 (증분) 백업

$$$ 백업 저장 $$$
⊙ 어디에 두었는지 알아두어라.
⊙ 복구작업 간단하게 하기.
⊙ 쓰기 방지 백업 매체.
⊙ 환경적 요인.
⊙ 매체를 바르게 다뤄라.
⊙ 보안을 중요하게 생각해라.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/02/05 11:48 2004/02/05 11:48
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/174

/etc/profile/ - path 설정

/etc/profile/ - path 설정

수정한 후에

" source /etc/profile " 을 해야

설정완료된다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/02/04 16:06 2004/02/04 16:06
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/173

« Previous : 1 : ... 7 : 8 : 9 : 10 : 11 : 12 : 13 : 14 : 15 : ... 22 : Next »

블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2024/05   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Statistics Graph

Site Stats

Total hits:
196819
Today:
564
Yesterday:
673