Burp Suite

 

 1. Paros 와 더불어 널리 알려지고 강력한 기능을 제공하는 Web Proxy Tools.

 


 
 2. 다운로드 및 설치
 http://portswigger.net/burp/ 에서 다운로드 받을 수 있다.
 마찬가지로 자바 JDK 사전 설치가 되어 있어야, 정상 실행이 가능하다.
 실행 배치파일을 열어보면


 
 java -jar -Xmx2g burpsuite_v1.4.01.jar
 
 로 .jar 실행구문임을 알 수 있는데, 가끔 메모리 대역 에러가 나기도 하니
 jdk 설치 후에도 정상 실행이 되지 않는다면 -Xmx2g 를 512m 등으로 바꿔 보자.


 
 


 
 동의
 
 

 

 

 

옵션 클릭 후 프록시 서버 확인
 
 
 

 Proxy 탭의 Intersect on 을 필히 체크 ( Paros 의 trap 체크와 동일하다 )
 클라이언트(브라우저)도 프록시 사용 체크는 필수. ( 전 툴이 동일 ) 
 
 
 
 
 


 
 여타 웹 프록시 툴과 마찬가지로, 경유하는 패킷 정보를 가져온다. 경유로 넘겨주려면 Forward 버튼을 클릭해주면 된다.

 더블클릭하여 메시지의 정보를 고칠 수 있다. 
 
 
 
 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

 Achilles ( 아킬레스 )

 

1. 다운로드


 - http://www.mavensecurity.com/Achilles/


 - 압축파일을 풀면 PDF , 실행파일 및 데이터파일이 있으며 별도의 설치는 필요없다.
 - 현재는 Paros 등에게 약간 밀리는 추세의 프로그램이라고 할 수 있겠다.
 - 아주 간결한 기본기능만 들어있고, 간단한 옵션이 장점이자 단점일 것이다.

 

 


 


 
 2. 사용법
 - 다른 웹 프록시 툴과 유사하고, 간단한 편이다.
 

 

 


기본 화면. Play 버튼을 누르기 전에, 클라이언트(브라우저) 의 프록시를 켜야 한다.
포트는 보이는 대로 5000번을 설정해 주던지, 변경할 수 있다.

별도의 설명이 필요없을 정도로 간단하다.

 

 - 포트
 - 저장될 로그파일 경로
 - 서버/클라이언트의 타임아웃 딜레이 시간 지정
 
 - 인터셉트 모드 ( Paros 의 Trap , Burp Suite 의 인터셉트와 동일하다 )
 ( 일단 진행중인 캡쳐를 끄고 체크해야 한다 )

 

 


 [ Intercept Modes ]

 - ON/OFF

 - 인터셉트 Client Data 는 다른 웹 프록시의 Request 메시지.
 - 인터셉트 Server Data 는 다른 웹 프록시의 Response 메시지가 되는 것 같다. 즉 셋 다 체크가 기본.
 
 - Send 를 눌러, 다음으로 넘어갈 수 있고 ( Paros 의 Trap Continue ) , Find/Rep 로 특정 문자열을 찾아, 값을 바꿀 수 있다.

 써 본 결과 확실히 Paros 에 비해 좋진 않다.

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

Nessus ( Ubuntu )

 

1. 다운로드


 - http://www.tenable.com/products/nessus/select-your-operating-system
 


 다양한 플랫폼을 지원한다.
 설치후 이메일을 등록하면 레지스터 정보가 송신된다.
 회사는 유료/ 개인은 무료.

 

 

 

 


 


 
 2. 다운로드 및 설치


 - 우분투에서는 Apt-get 으로 설치가능하다.


  
 


데몬을 시작하면 등록을 하여야 플러그인 설치할 수 있다는 메시지가 뜨며 당장 사용할 수 없다.
http://www.tenable.com/products/nessus/nessus-homefeed 에 등록하고 이메일로 엑티브 코드를 받는다.

 

 

등록 메시지와 함께 플러그인이 다운로드되고 있다. ( 시간이 좀 걸린다 )

 

 

완료

 

 


설치 후 사용 어드민을 추가해야 한다.

 


Nessus user add 를 선택.
새 사용자 추가

 

 

 


http://127.0.0.1:8834 에 접속한다.

흔히보는 무슨 SSL 인증공격 당할 때나 볼 법한, 잘못된 요청 / 만료된 페이지 같은 문구가 뜬다.

이는 스캐닝 툴을 안전한 인증 체계로 만들기 위한 절차로써, 해당 링크를 클릭해야 설치가능하다.

 


흔히 SSL MITM 당할 때 마냥 , 신뢰할수 없는 접속 경고문이 뜨는데, 무시.  I Understand the Risks - Add Exception 를 클릭.

 

해당 기관(자신의) 서버로부터 인증을 발급받는 과정.
하단의 보안접속 클릭.

 

 

스타트 ( 다소 로딩이 있음 )

 

 


로그인 후 기본 사용법은 간단하다.

Scan - ADD

 

 

취약점 스캔 및 더블 클릭 상세 내역

 


블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

 

Acunetix

 

1. 웹 스캐너 다운로드


 - http://www.acunetix.com/vulnerability-scanner/download/


 유료로써 등록하여야 정식 버전을 사용할 수 있다.
 해당 사이트에선 간단한 웹 공격 설명 페이지가 있으므로, 연습해보아도 좋을 것이다.

 


 
 2. 사용법


 - 매우 간편한 편이다.
 
 상단의 [ New SCAN ] 을 클릭하면, 웹 스캐닝할 사이트를 선택할 수 있다.
 웹 스캐너는 항상 조심히 사용하여야 하며, 디폴트로 설정되어 있는, 스캔용 테스트 사이트를 선택한다.
 


 
 
 
 


 
 스캔 방식 : 여러가지 스캔 방식을 개별적으로 설정할 수 있는데, 디폴트로 하면 전체를 검사한다.
 
 
 
 

 

 

 [ Scan Setting ] 을 선택하면, 커스텀을 선택할 수 있다.


 
 
 

각 헤더, 구글해킹, POST Header 등의 옵션 상세 체크가 가능하다.
 
 다음을 선택하면 마지막으로 웹 사이트(타겟)의 최종 스캔 경로와 스캔 파일 형식을 지정할 수 있다.
 

 


 
 

 

 그 다음으론 HTTP 해당 웹 사이트의 인증/로그인 페이지가 있을 경우, 세션을 통한 로그인 액션을 설정할 수 있다.
 
 
 
 
 
 스캔하면서, 붉은색 - 주황색 - 파란색  위험 세기 순으로 위험한 취약점을 보기 편하게 나열해준다.
 

 

개인적인 평가로는 꽤 만족스러운 스캐닝 툴이었다. 
 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

 1. 개요


 - 기본적으로 앞선 NIKTO 의 GUI 형에 가까운 HTTP 웹 사이트의 스캐닝 툴.
 - 침입자들은 웹서버에 침투하기 전 손쉽게 취약점을 알아내기 위해 스캐닝 툴을 사용하지만, 반대로 그것을 방어하기 위해서, 해당 웹 서버의 취약점을 스캐닝한 후 보안 대책을 수립할 필요가 있다.  남미에 본사를 둔 보안업체 센스포스트(www.sensepost.com)에서 개발한 스캐닝 툴.
 - 1000개 이상의 구글 검색 결과로 구성된 GHDB(Google Hacking Database) 목록을 보유하고 있으며, 해당 구글 해킹 기법에서의 취약점도 찾아낼 수 있다

 

 


 
 2. 다운로드 및 기본 가이드


 - http://research.sensepost.com/tools/web/wikto

 

 


 
 
 3. 메인 화면
 

 


 

사용법은 GUI 구성으로,  앞의 NIKTO 에 비해 수월한 편이다.

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

- Linux 버젼(Backtrack - Ubuntu - ) 로 설명.

 

 

NIKTO( Ubuntu )

 1. 다운로드 및 설치
 - http://www.cirt.net/nikto2


 처음 설치했다면, 다운로드 후 수동 설치 기준 : chmod 로 nikto.pl 파일에 대한 권한설정 요망.

 

 2. 간략 소개
 
 - Nikto는 6500개 이상의 잠재적으로 위험한 파일(CGI)을 포함한 여러 항목을 웹서버에 대한 포괄적 테스트를 수행. 다양한 서버에서 특정 문제, 취약점이 있는지 확인하는 오픈 소스(GPL)의 웹 서버 스캐너. 여러 인덱스 파일 형식, HTTP 서버 옵션 및, 관리자에 의해 설치된 서버의 프로그램들을 확인하여 서버 구성을 볼 수 있다. 이 프로그램은 은닉성을 고려하여 설계되지 않았으며, 최소한의 시간에 웹서버를 테스트하는 만큼, 로그 내역에 명백하게 남게 된다.


 
 
 3. 설치 버전 확인
 - 백트랙 R5 에는 이미 2.1.4 버전이 기본 설치 되어 있으나, 최신 버전은 현재 2.1.5 이다.
 
 
 

 

 

 

 4. 옵션 화면
 
 
 

 

 


 5. 사용법
 - 중요한 옵션은 몇 가지 정의가 되어 있으므로, 편하게 사용하면 된다.


 ※ 테스트는 반드시 자신의 가상서버에 하길 바란다. 

공인 호스트에 이곳저곳 날려대면, 조만간 ISP 업체에게 전화 올 것이다.
 

nicto.pl -h [ 대상 타겟 ] - Display [ Number ]


해당 웹 서버의 다양한 분석점과, 취약점을 알 수 있는 정보가 나열된다.

기본적으로, 이런 정보를 보고, 파악 및 이해를 할 수 있을 지식은 갖추어야, 원활한 툴 사용이 가능하다.

한 지면에서 다루기에는 너무 방대하므로, 스스로, 꾸준히 익혀나가기 바란다.  

 

 

[ 그 외 옵션 ]

 -config(c)
config파일을 지정, 기본 설정 값을 포함한 nikto.conf 라는 파일에서 각종 옵션과 호스트를 참조한다.


 -host(h)
 스캔을 수행할 웹 서버주소


 -Cgdirs(C)
스캔할 CGI 디렉토리를 설정 none, all, /cgi처럼 특청폴더를 지정도 가능. all을 권장


 -output(o)
결과를 출력할 파일 지정


 -Single(s)
스캔을 한개씩 옵션을 지정해주면서 수행


 -cookies
쿠키가 있으면 보여준다.


 -evasion
 IDS를 우회하기위해 URL을 인코딩


 -Format
결과파일의 포맷 지정. txt, html, csv가능. -output이랑 같이 사용


 -id
호스트 인증이 필요한 경우 id:password 형식으로 지정


 -port(p)
대상 포트지정


 -ssl
SSL(Https) 를 이용하는 홈페이지에 사용하는 옵션.


 -vhot
가상 호스트를 사용


 -update nikto
업데이트 체크


 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

 

[ Apache ]

- 공개형 웹 서버 프로그램이지만, 매우 강력하고, 다양한 대부분의 플랫폼을 지원.
- 모듈 추가로, 확장기능 추가가 용이하다.


웹 서버의 동작 방식

정적 ( html 등... )
- 웹 브라우저(클라이언트)가 http ( 80번 포트. 디폴트 ) 로 연결하여 사용자 index.html 을 요청
해당 웹서버는 클라이언트(브라우저)가 요청한 파일을, 자기 시스템에서 검색하여 읽고, 브라우저에게 제공.
즉, 단순 송수신. 단순 출력

 

동적 ( php, jsp, asp 등.. )
- 웹 브라우저(클라이언트)가 http ( 80번 포트, 디폴트) 로 연결하여 동적인 페이지 index.php 를 요청
해당 웹서버는 php 를 자체 실행 후, 클라이언트가 요청한 변수(매개변수)를 넘겨준다.
그리고 , 그 생성된 변수의 결과를 읽고, 클라이언트의 브라우저에 전송한다.

 

 

[ 아파치 패키지 ]

아파치는 리눅스 서버의 기본 프로그램이다. httpd 데몬으로 동작한다.
실행되지 않을시 기본프로그램에 포함되어 있는지, 설정을 확인한다.

 

ex) /etc/rc.d/init.d/httpd [start/stop/restart/status]

 

 


[ 환경설정 ] - /etc/httpd/conf/httpd.conf

 

- 시작전에 설치cd 의 패키지 디렉토리에서 httpd 관련 모든 패키지를 설치한다.

 


환경설정파일의 기준은 CentOS 6.3(Final) 을 기준으로 설명.

 

1. ServerTokens

 

41 # Don't give away too much information about all the subcomponents
42 # we are running.  Comment out this line if you don't mind remote sites
43 # finding out what major optional modules you are running
44 ServerTokens OS

웹 브라우저에 에러구문, 또는 표기구문에 출력되는 내용이다.
값은 Full / OS / Minor / Min / Major / Prod 를 줄 수 있다. 보통 일반적인 웹 서버는 Full을 사용한다.

Full - 아파치 서버버젼, 운영체제, 모듈 정보 등을 모두 출력.
OS - 운영중인 아파치와 리눅스 서버버젼만을 출력.

 

 

2. Listen

 

128 # Listen: Allows you to bind Apache to specific IP addresses and/or
129 # ports, in addition to the default. See also the <VirtualHost>
130 # directive.
131 #
132 # Change this to Listen on specific IP addresses as shown below to
133 # prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
134 #
135 #Listen 12.34.56.78:80
136 Listen 80

Listen 80 -> 80번 포트로 들어오는 모든 소리에 귀를 기울인다.
포트 포워딩의 개념이다.

웹 사이트를 리뉴얼 하거나, 공사중에 테스트로 가동시키고, 일반인은 접근하지 못하게 하고 싶을 때,
해당 포트만 열어두면 된다. ( 둘 중 하나는 주석처리하고 하나만 열어야 한다 )

ex)기본 접속( 80포트로 접속이 불가하고 8080 포트만 테스트용으로 열기 )

Listen 192.168.132.129:8080
#Listen 80

 

 


3. DocumentRoot

 

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/var/www/html"


아주 중요한 , 해당 사이트의 index.html 가 위치하는 장소. 즉 해당 유저의 웹 서비스 개시 홈디렉토리 경로.
root의 웹서버 기본 경로는 /var/www/html 로 지정되어 있다. 추가 사용자를 주기 전에 해당 메인(서버)도 웹설정된
경로가 지정되어 있어야 한다.

웹 서비스는 홈디렉토리 내부에 반드시 기본설정으로 public_html 디렉토리가 있어야 한다. ( 그 안에 index.html )

 

 


4. UserDir ( co.kr/~user1/ )

 

<IfModule mod_userdir.c>
    #
    # UserDir is disabled by default since it can confirm the presence
    # of a username on the system (depending on home directory
    # permissions).
    #
    UserDir disabled

    #
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disabled" line above, and uncomment
    # the following line instead:
    #
    #UserDir public_html

</IfModule>

UserDIR = 개별유저의 홈디렉토리를 사용할 것인가( 디폴트 : NO )
Userdir public_html = 개별유저를 사용할 시 index.html(웹 브라우저에 개시될 최초의 메인화면) 디렉토리 위치

ex) root 웹서버를 사용하지 않고 user1 이라는 사용자를 웹 서비스로 출력하고싶다.

위의 두 주석을 바꿔준다.

#UserDir disabled
UserDir public_html

DocumentRoot "/home/user1/public_html" - user1 의 홈 디렉토리


이렇게 하면 index.html 가 보이지 않고 Fobbiden 에러가 난다면 정상.
문제점을 찾아보도록 한다.

( 유저 홈디렉토리의 권한이 700으로 되어있다. )

현재 이 방법은 거의 사용하지 않는다.

 

 

5. Alias ( 별칭 )

 

~계정명 을 사용하지 않고 순수한 디렉토리명 ( www.myungin.co.kr/user1/ ) 을 사용하고 싶을 때 사용

#위의 UserDir 두 부분을 모두 주석처리 한다.
그 사이에 다음을 입력한다.

 

Alias /user1/ "/home/user1/public_html/"

후방의 디렉토리 표시 "/" 와 , 매개변수의 "/" 마무리를 반드시 매칭시켜줘야 한다.
그렇지 않으면 퍼미션 에러가 날 것이다.

 

Alias 의 / / 는 디렉토리의 경로가 아닌 "문자" 대체 인식의 성격이 강하다.

 

도메인의 메인 디렉토리에 사용하기보다는, 다른 용도에 주로 쓰이고 있다.

 

 

6. Virture Host ( 가상 호스트 도메인 )

 

위의 방법은 해당 도메인의 특정 계정만을 이용하는 방법이다.
가상호스트는 한 도메인으로 여러 사용자를 계정단위로 운용할 수 있다.

 

같은 아이피라도, 호스트의 명칭이나 포트에 따라
www.myungin.co.kr 로 접속하면 루트사용자의 홈디렉토리 index.html가
user1.myungin.co.kr 로 접속하면 user1의 홈디렉토리 index.html가 출력될 것이다.


ex ) kin.naver.com //  mail.naver.com 같은 호스트(www) 부분을 대체하는 디렉토리명을 말한다.
현재 가장 널리 쓰이고 있다. 우리는 해당 부분이 단순 홈디렉토리가 아닌 "계정" 그 자체를 의미한다는 것을
이제 이해해야 한다. 계정이 아닌 디렉토리라고 한다면, 해당 디렉토리에 어떤 사용자 권한을 지정하는 순간,
해당 사용자는 해당 디렉토리 전체를 손댈 수 있기 떄문에 보안에 매우 취약해진다.
계정단위로 관리하는 것이 훨씬 합리적이다.


가상호스트 구성하면 위에서 했던 모든 설정보다 우선시되어 실행된다.

(위의 설정들은 기본으로 돌려놓자)

 

(1) 네임서버 조회 - 에러출력 - 정상


(2) 가장 아랫 부분 Virture Host 의 모든 주석을 제거하고 해당 부분만 남긴다. (복사해서 써라! 백업 )
(가장 기본 구성)

#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /www/docs/dummy-host.example.com
    ServerName dummy-host.example.com
</VirtualHost>

로 다른 부분 지우고, 두 개를 만든다.

( 이유는 www 호스트와 user1 호스트 두 개를 동시에 운용하기 때문이다. )

다음과 같이 구성한다. ( root 계정은 사용할 수 없다 )

<VirtualHost 192.168.132.129:80>   // 메인 네임서버의 아이피를 입력 
    DocumentRoot /home/main/html/public_html // 해당 호스트(계정)의 메인경로
    ServerName www.myungin.co.kr // 해당 호스트의 메인 주소.
</VirtualHost>


<VirtualHost 192.168.132.129:80>
    DocumentRoot /home/user1/public_html // 중요.
    ServerName user1.myungin.co.kr // 중요.
</VirtualHost>

실제로 실습시엔 위에 // 주석 금지입니다. 에러남 ;;

 

여기까지 한다면, www는 보이지만 user1은 여전히 안 되는 사실을 알 수 있다.
(퍼미션 문제는 더 이상 생략)

설정 저장 후, /var/named 의 네임서버 환경설정 파일을 연다.
(기존 구성했던 네임서버명.zone , 아이피.zone )

추가 도메인을 입력한다.

myungin.co.kr.zone

www     IN      A       192.168.132.129
user1   IN      A       192.168.132.129

하단에 www외에 user1이라는 호스트 정방향도 추가해준다.

192.168.132.zone 파일도 설정해 주어야 한다.

 

아주 최소한의 구동가능한 버추어 호스트 세팅 완료.

 

'ETC' 카테고리의 다른 글

CentOS 에서 그누보드 설치시 퍼미션 오류 문제  (0) 2013.05.13
Mysql 기본 Charset 변경  (0) 2013.05.13
[ Basic ] Run Level과 Process 확인하기  (0) 2013.04.23
[ Basic ] Mount 와 Fdisk  (1) 2013.04.22
[ Basic ] Package 와 Tar  (0) 2013.04.22
블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

 

※ Run Level ( /etc/inittab )

 

init = system 그 자체.

# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)


init 0 = 시스템 종료
init 6 = 시스템 리부팅

 

1 = no network. single 모드 ( 구시대 싱글 )
2 = NFS 를 지원하지 않는 다중 사용자 모드 ( 당신이 네트워크를 사용하지 않는다면 3과 같다 )
3 = 다중사용자 및 모든 기능 사용 모드
4 = 보통모드 ( X )
5 = X-Windows GUI 모드 ( 리눅스는 서버이므로 기본적으로 그래픽환경보단 커맨드(CUI), 텔넷모드(TUI)에 익숙해져야 한다 )

 

[ 프로세스 확인 ]

- 윈도우즈의 taskmgr 의 사례와 유사하다.

 

ps -ef

# ps -ef

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 13:11 ?        00:00:01 /sbin/init
root         2     0  0 13:11 ?        00:00:00 [kthreadd]
    .
    .
    .
root      9461  3089  0 13:59 pts/1    00:00:00 su -
root      9462  9461  0 13:59 pts/1    00:00:00 -ksh
root      9635     1  0 14:01 ?        00:00:00 /usr/sbin/anacron -s
named    13082     1  0 14:23 ?        00:00:00 /usr/sbin/named-sdb -u named -t

 

UID = User ID
PID = 실행중인 Process의 넘버
PPID = 해당 프로세스의 상위 부모 Process ( Parent ID )
C = CPU ratio
STIME = 해당 프로세스의 시작 시간
TTY = 해당 프로세스의 터미널
TIME = 해당 프로세스의 실행 명령어가 입력된 시각
CMD = 해당 프로세스를 실행한 명령어

 

 

 

 

#kill [PID/PPID] 로 순서를 추적하여 해당 프로세스를 강종 가능.
잘못 종료시, 시스템이 사용 불가에 빠질수도 있으니, PID < - > PPID 의 상관관계를 잘 파악하여야 한다.

killall [데몬명/프로세스] 로 일괄적으로 전체를 종료시킬 수도 있다.

 

-9 옵션을 사용하는 점도 파악.

pstree -p 로 트리 형식으로 볼 수도 있다.

 

#skill - 관리자가 자신의 서버에 접속한 특정 계정 유저를 정지, 추방시키는 명령어
- 불필요한 접속자나 , 서버 공격자 등을 발견하고 추방할 때 사용.

ex) user1이라는 계정명을 가진 유저를 자신의 서버에서 추방
skill -KILL user1

ex) 특정 터미널 pts/0 에 접속해있는 모든 사용자를 추방
skill -KILL pts/0

ex) 특정 사용자(user1)의 서버접속 상태를 정지시킴
skill -STOP user1

 

 


 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

[ Basic ] Mount 와 Fdisk

ETC 2013. 4. 22. 14:34

[ 뻘 ]

GNU is not Unix.

http://www.gnu.org/gnu/gnu-history.html


※ GRUB Boot Loader ( Booting 시 정보가 기록된 MBR 을 관리하는 툴/환경 ) - 리눅스 부팅시 e 키를 눌러 접속할 수 있다.

 

 

 

[ File system = 파티션과 Disk Management ( mount ) ]

리눅스의 물리적 장치 장착 후 mount 해주어야 한다.
리눅스의 마운트는 장치를 / 의 디렉토리처럼 보이게 하여, 관리하는 방식을 취하고 있다.

 

[ FDISK ]

FDISK 는 파티션을 관리하는 역할이므로 "하드디스크 장치" 를 대상으로 한다.
파티션을 재분할할 때 이외에는 통상적이다.

Primary ( 주 영역 ) 파티션과 Extend ( 확장 영역 ). Logical ( 논리 영역 ) 으로 구분한다.

 


Extend 는 실제로 사용되는 파티션이 아닌, 그 하위에 생성될 Logical 영역 전체를 감싸는, 일종의
논리 영역 전체를 총괄하는 껍질. 네이밍적 성격이 강하다.

즉 Extend 영역의 생성 없이는 하위의 Logical 파티션 생성이 불가능하다.

통상적으로 Primary 파티션은 한 하드디스크에 총 4개까지 ( 1,2,3,4 ) 생성할 수 있다.

한 하드디스크에 5개 이상의 파티션을 구성해야 할 경우에는 3개까지 Primary 로 잡고, 4번째에
extend 영역을 생성 후 5,6 순으로 Logical 파티션을 생성할 수 있다.

Primary 를 하나만 생성 후, extend 를 생성하여 나머지를 logical 파티션으로 채워도

logical 의 순번은 5번부터 시작한다는 점을 잊으면 안 된다

 ( 만들어지던, 만들지 않던간에 파티션 넘버 1,2,3,4는 Primary 의 영역에 할당되어 있다. )

 

 

# fdisk -l(전체) , fdisk -l [특정 디바이스명](특정 장치만 살펴보기)

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 dbytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00041de5

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26         791     6144000   83  Linux
Partition 2 does not end on cylinder boundary.
/dev/sda3             791        1313     4194304   82  Linux swap / Solaris
/dev/sda4            1313        2611    10427392    5  Extended
/dev/sda5            1313        1568     2048000   83  Linux
/dev/sda6            1568        1594      204800   83  Linux
/dev/sda7            1594        2611     8171520   83  Linux

 

리눅스 초기 설치시에 세팅했던 부분이 그대로 나와 있다.

※ primary 파티션을 1,2,3,4 전부 생성했을 경우, 그 하드디스크는 더 이상 어떠한 논리 영역 확장이 불가하다.

( 그래서 보통 1,2,3까지 만들고 4를 extend 확장 후 5,6,7 ... 을 logical 파티션을 만든다 )

※ 고로 당연히 extend 파티션은 어떠한 상황에서도 한 개 이상 존재할 수 없다.

하드디스크는 과거 E-IDE 타입과 현재의 SCSI 타입이 있으며, 이는 정보에서 hda1, hda2 ... 또는 sda1, sda2... 처럼 구분할 수 있다.

hdc 는 CDROM 의 강제 영역이므로 임의설정이 불가하다.

 

 

[ 실습하기 - 물리적 보조 하드를 장착 후, 리눅스 안에서 사용하기 ]

 

 

1. 물리적으로 하드를 장착한다 ( VM 가상머신 HALT 후, 옵션에서 HDD 를 1.0기가 SCSI 타입을 만들어 연결한다 )

 

2. 부팅 후 fdisk -l 로 새 하드디스크가 인식되어 있는지 확인한다. 장착된 보조 하드디스크의 디바이스명을 확인한다.

 

3. 해당 장치명으로 파티션을 분할한다. ( ex : #fdisk /dev/sdb )

 

4.

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3198bd27


Command (m for help):

 

FDISK 파티션 수정모드이다. <P> 는 해당 장치(하드디스크)의 파티션 정보 확인. <N> 은 새 파티션 만들기. <D> 는 파티션 삭제하기의 기본 명령어로 구성되어 있다.

파티션을 변화시키는 작업 후에 <W>를 눌러 저장해야 한다. 단 저장할 경우 기존 정보를 절대 되돌릴 수 없으므로 신중을 기해야 한다.
저장하지 않고 그냥 종료하려면 <Q>를 누르면 된다.

 

5. 파티션을 생성한다. 예는 프라이머리 3개, 로지컬 2개. 총 5개의 파티션을 만들 것이다. ( 용량은 각기 300 200 200 100 200 )

 

6. 파티션 작업은 순차적으로 한다.

- <P>입력하여, 빈 하드디스크임을 확인한다. ( 다른 주 하드디스크를 착각하여 건드리지 않도록 한다 )


Command action
   e   extended
   p   primary partition (1-4)

- 첫 파티션은 Primary 이므로, p 를 선택

 


Partition number (1-4): 1

- 프라이머리로 시작했으므로, os 는 파티션의 넘버를 1-4 사이로 물어볼 것이다. 첫 파티션 분할이므로 1을 선택하자.


First cylinder (1-130, default 1): 1

- 하드디스크의 용량을 결정하는 실린더의 위치를 결정한다. 커스텀으로 따로 세팅할 필요는 없고 순차적으로 디폴터 1.
 

Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130):

- 파티션의 마지막 실린더 위치를 결정한다. 첫 실린더가 1이므로 130을 지정할 경우 하드디스크 용량 전체를 해당 파티션에 지정하는 것이 된다.
하지만 우리는 파티션 용량을 정확하게 300메가를 사용할 것이므로 size{K,M,G} 의 M... +300M 이라고 입력해준다. ( +와 대문자를 지켜야 한다. )

- 정상이라면 커맨드모드로 돌아온다. P 를 눌러서 생성된 파티션을 반드시 확인해 본다.

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3198bd27

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          39      313236   83  Linux

 


같은 방법으로 200, 100의 프라이머리 파티션을 마찬가지로 생성한다.

-

Command (m for help): N
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (40-130, default 40):
Using default value 40
Last cylinder, +cylinders or +size{K,M,G} (40-130, default 130): +200M

Command (m for help): P

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3198bd27

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          39      313236   83  Linux
/dev/sdb2              40          65      208844+  83  Linux

-


Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3198bd27

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          39      313236   83  Linux
/dev/sdb2              40          65      208845   83  Linux
/dev/sdb3              66          91      208845   83  Linux


-

 

6. 이제 Logical 파티션을 2개 만들어야 하는데, 위에서도 설명했듯이 로지컬은 반드시 Extend 라는 껍질 파티션이 있어야 한다.
Extend 확장 파티션의 크기는, 앞으로 만들 모든 로지컬 파티션의 총 합 용량이다. ( 하드디스크의 크기나, 만들어질 로지컬 파티션의 총합을 초과할 수 없다. )

 

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Selected partition 4
First cylinder (92-130, default 92):
Using default value 92
Last cylinder, +cylinders or +size{K,M,G} (92-130, default 130): 130

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3198bd27

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          39      313236   83  Linux
/dev/sdb2              40          65      208845   83  Linux
/dev/sdb3              66          91      208845   83  Linux
/dev/sdb4              92         130      313267+   5  Extended

 


7. N 로 새 파티션 만들기를 선택한 후 이제 로지컬 파티션을 위와 같이 만든다. ( 선택의 여지가 없으므로 타입 로지컬을 묻는 메세지가 출력되지 않을 것이다 )


※ 마지막 파티션의 실린더 지정은 보통 하지 않고, 남은 용량 전체를 사용하므로, 엔터(디폴트)로 남은 용량 전체를 잡아준다. ( 임의로 지정했다가 용량이 초과할 경우 Value out of range 에러가 뜰 것이다 )
파티션 정보로 인해 가령, 300M 으로 지정했더라도 실제로는 그 이상을 초과 사용해서, 생성하게 되므로, 마지막 파티션에서 용량을 따로 지정할 경우 에러 메세지가 출력될 수 있다.

Command (m for help): n
First cylinder (92-130, default 92):
Using default value 92
Last cylinder, +cylinders or +size{K,M,G} (92-130, default 130): +100M

Command (m for help): n
First cylinder (106-130, default 106):
Using default value 106
Last cylinder, +cylinders or +size{K,M,G} (106-130, default 130):
Using default value 130

 

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          39      313236   83  Linux
/dev/sdb2              40          65      208845   83  Linux
/dev/sdb3              66          91      208845   83  Linux
/dev/sdb4              92         130      313267+   5  Extended
/dev/sdb5              92         105      112423+  83  Linux
/dev/sdb6             106         130      200781   83  Linux

Logical 파티션은 무조건 5번부터 시작됨을 알 수 있다. ( 해당 경우는 순차적이라 맞아떨어졌을 뿐, 프라이머리가 1번 하나만 있었어도 1,2(extend),5,6 이렇게 출력된다. )

 

 

8. 파티션 정보를 여러 번 변경했을 경우, W를 눌러 작업을 저장하고 빠져나올 때 Syncing DISK 메세지가 뜨지 않고, 재부팅을 요구할 수도 있다. 그럴 경우에는 서버를 재부팅해주어야 반영된다.

(정상 저장 메세지)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

 

 


9. 파티션을 분할했다면, 마찬가지로 파일을 자유롭게 오고갈 수 있도록, 파일 시스템 포맷을 해 주어야 한다.
포맷 명령어는 mkfs ( Make File System ) 명령어이다

mkfs.ext4 [포맷할 파티션 장치명]
mkfs -t ext4 [포맷할 파티션 장치명]

둘 중 편한 것을 사용하도록 한다. 리눅스 데이터 하드디스크의 기본적 파일패치도 형식은 ext4 이다.

# mkfs.ext4 /dev/sdb1
.
.
.
.

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done


해당의 Done 메세지가 3개 떠야 정상적으로 포맷이 된 것이다. 포맷 후 재부팅을 요구하는 메세지가 나올 경우에는 재부팅을 해야 포맷이 반영된다.

extend 파티션은 실제 사용하는 영역이 아니므로 포맷되지 않는다.


이제 물리 보조 하드디스크를 장착후, 파티션을 나누었고, 포맷까지 완료하여 사용준비가 되었다. 하지만 우리는 이것을 어떻게 실제로 사용 가능하게 불러올 것인지 배우지 않았다.
그것이 바로 mount 라는 개념이 된다.

 

 

 


[ Mount ]

 

윈도우즈의 장치 장착 후 자동으로 알아서 검색해주고, 관련 소프트를 설치해주는 PnP ( Plug and Play ) 기능이, 리눅스 서버에서는 어렵다. 그래서 물리적 하드 디스크를 장착했다면
해당 디스크를 사용하기 위해서는 os 와의 사이에서 해당 형식을 알려주는 중간 "드라이버" 역할을 하는 무언가 있어야 한다. 그것이 바로 Mount 이다.
리눅스의 마운트 형식은 / 디렉토리 형식으로, 임의의 디렉토리를 마운트 지점으로 삼아(= 마운트 포인트) 그 위에 장치를 덮어씌워 해당 마운트 포인트를 그 장치로 삼는 방법이다.

 

 

[ 마운트 기본 상태 확인 명령어 ]

#mount

- 마운트되어 있는 현재 장치들의 기본적인 타입과, 속성을 보여준다.

#df -h

- 마운트되어 있는 장치와 포인트를 좀 더 보기 간결하게 보여준다. ( 가장 자주 쓴다 )

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda7             7.7G  328M  7.0G   5% /
tmpfs                1012M  100K 1012M   1% /dev/shm
/dev/sda1             194M   30M  155M  17% /boot
/dev/sda6             194M  5.6M  179M   4% /home
/dev/sda2             5.8G  2.7G  2.9G  48% /usr
/dev/sda5             2.0G  190M  1.7G  11% /var
/dev/sr0              3.5G  3.5G     0 100% /media/CentOS_6.3_Final


/dev/sr0 장치는 cdrom 을 지칭하는 장치이다.
여러 파티션들이 Mounted on(마운트 포인트) 의 디렉토리를 자신의 숙주로 삼아, 해당 위치에 자리함을 볼 수 있다.
따라서 전체의 한 덩어리 하드디스크처럼 보여도, 실제로는 어떤 부분이 문제가 생겨도 해당 파티션 부분만 처리할 수 있는 장점이 있다.

이곳에 앞에서 만든 /dev/sdb1 ( 300M ) 을 사용할 수 있도록 마운트해야 한다.

 

 

10. mount [장치명] [마운트 포인트]

 

 

- 임의의 마운트 포인트 지점을 만든다. ex) mkdir /sdb1/
- 장치를 마운트한다. 

[root@localhost ~]# mkdir /sdb1
[root@localhost ~]# mount /dev/sdb1 /sdb1
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda7             7.7G  328M  7.0G   5% /
tmpfs                1012M  100K 1012M   1% /dev/shm
/dev/sda1             194M   30M  155M  17% /boot
/dev/sda6             194M  5.6M  179M   4% /home
/dev/sda2             5.8G  2.7G  2.9G  48% /usr
/dev/sda5             2.0G  190M  1.7G  11% /var
/dev/sr0              3.5G  3.5G     0 100% /media/CentOS_6.3_Final
/dev/sdb1             297M   11M  271M   4% /sdb1

/sdb1 이라는 디렉토리에 /dev/sdb1 의 파티션이 마운트되었음을 확인할 수 있다.
해당 /sdb1 디렉토리는 마운트 된 시점부터 /sdb1 의 디렉토리 영역이 아니며, /dev/sdb1 의 보조 하드 디스크의 파티션 영역이 된다. ( 마운트를 해지하면, 기존 디렉토리 정보가 돌아온다 )

 

 

11. umount [장치명]

 

 

- 마운트를 해지할 수 있다.

[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda7             7.7G  328M  7.0G   5% /
tmpfs                1012M  100K 1012M   1% /dev/shm
/dev/sda1             194M   30M  155M  17% /boot
/dev/sda6             194M  5.6M  179M   4% /home
/dev/sda2             5.8G  2.7G  2.9G  48% /usr
/dev/sda5             2.0G  190M  1.7G  11% /var
/dev/sr0              3.5G  3.5G     0 100% /media/CentOS_6.3_Final

- 해지하기 전에 반드시 해당 마운트 포인트 지점에서 위치를 벗어나야 한다. ( ex : cd / ) 그렇지 않다면 해지되지 않는다.

ex)
# pwd
/sdb1
[root@localhost sdb1]# umount /dev/sdb1
umount: /sdb1: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

 

이하의 방법으로 보조 하드디스크의 영역을 디렉토리화(마운트 포인트) 시켜 사용할 수 있게 된다.

※ 마운트 포인트는 파티션당 원칙적으로 반드시 1:1이어야 한다. ro(read only)의 파티션(예 : cdrom ) 일 경우에는 여러개여도
상관이 없지만, 물리 하드디스크 파티션의 마운트 포인트가 여러개일 경우, 다중 사용자들의 동시쓰기 및 권한 혼선을 유발할 수 있다.
서버에 여러 사용자들을 생성하는 것은, 해당 유저 데이터 장치(파티션)에 쓰기 권한을 일방적으로 주는 것이 아닌, 허용된 그 자신만의 일부 공간만을 허락하는 것이다.

 

 


-------------------------------------

[ 오토마운트 ]

 

어떤 회사 서버에 보조하드를 장착했는데, 오토마운트를 지정하지 않으면, 재부팅시 마운트가 자동으로 빠지는 경우가 생긴다. 그런 것을 방지하기 위해 재부팅해도, 항상 기본으로 마운트 된
상태를 유지하는 것을 오토마운트라 한다.

오토마운트는 /etc/fstab 파일을 수정해야 한다.
오토마운트로 지정한 장치가 없어지거나, 틀릴 경우, 부팅 자체가 안되는 치명적 현상이 발생한다. 이 때에는 시스템 응급복구 모드를 사용해야 하므로, 각별히 유의한다.

 


#vi /etc/fstab


#
# /etc/fstab
# Created by anaconda on Wed Jan 16 07:22:40 2013
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=c1c9282a-b1ab-4a52-af92-01119082d042 /                       ext4    defaults        1 1
UUID=8d5f4027-7137-4b5d-9455-d2394e64b63d /boot                   ext4    defaults        1 2
UUID=bc01ae3b-2707-4ecf-bef5-e7c907db0ef1 /home                   ext4    defaults        1 2
UUID=3172ab7d-f9e7-4cca-a5b6-905143ebd319 /usr                    ext4    defaults        1 2
UUID=e1152695-c64a-4138-a53e-7e81ab2301e8 /var                    ext4    defaults        1 2
UUID=bcf03cfc-baa4-42cd-9e55-2bb4f4d6e1b2 swap                    swap    defaults        0 0
/dev/sdb1                  /sdb1     ext4    defaults        1 2


= 이 부분... 오토마운트될 정보를 기입해 준다. 실수할시 부팅 자체가 안 되므로 주의!
반드시 존재하는 마운트여야 한다. ( 수동으로 마운트할수 있는 정상 파티션 )

UUID 를 제대로 입력해 주고 싶은 깐돌이가 있다면, 영문 설명대로 /dev/disk 의 안쪽 리스트를

출력해 보도록 한다. 자신의 마운트마다 UUID 가 기입되어 있다.

 

 


재부팅 후 df -h 로 오토마운트 되었는지 확인.
(되지 않았다면 마운트 포인트라던지, 오타 등 원인분석을 하여야 한다)


(정상)
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda7             7.7G  328M  7.0G   5% /
tmpfs                1012M  100K 1012M   1% /dev/shm
/dev/sda1             194M   30M  155M  17% /boot
/dev/sda6             194M  5.6M  179M   4% /home
/dev/sda2             5.8G  2.7G  2.9G  48% /usr
/dev/sda5             2.0G  190M  1.7G  11% /var
/dev/sdb1             297M   11M  271M   4% /sdb1
/dev/sr0              3.5G  3.5G     0 100% /media/CentOS_6.3_Final


= /sdb1 이 자동 마운트되어 있음을 확인할 수 있다.

※ 응급복구 모드시 가끔 마운트 정보를 수정하려 할 때 fstab 파일이 읽기전용이라면서 저장이 되지 않는 경우가 있다.
이럴 때에는, 응급복구 모드의 shell 에서 임시로 / 에 마운트시킨 /mnt/sysimage 를 u마운트하였다가, 재 마운트 하여야 한다.

(chroot 재실행)

※ 오토마운트되어 있는 장치가 물리적으로 해제될 시에는, 반드시 그 전에 정보를 미리 fstab 에서 삭제하여야 한다.
정보가 남아있는 상태에서, 물리 해제후, 재부팅시에는 정상 부팅이 되지 않는다.

 

 

 


※ MBR

Master Boot Record 의 약자.

물리적 하드 디스크가 여러 파티션으로 분할되어 있을 때, 각각의 파티션에 들어있는 파일 위치 정보는, 섹터의 어떤 특정한 부분에 그 큰 인덱스 정보가 기록되어 있고(부트 섹터), 하드디스크의 헤드는, 신호를 받으면 해당 파티션의 부트 섹터로 가서 경로정보를 찾는다. 하위 파티션들의 부트 섹터 정보들은 다시금 어느 메인이 되는 파티션으로 집약되게 되고, 해당 파티션의 부트 섹터를 MBR 이라 한다.


 

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

[ Basic ] Package 와 Tar

ETC 2013. 4. 22. 14:14

[ 패키지 ]

 리눅스에는 RPM 과 YUM 이라는 두 가지 방식의 패키지 인스톨러가 존재하는데,

일반적으로 서버 관리자는 자신에게 맞는 패키지만 설치하는 RPM 수동설치가 좋으리라 생각한다.

기초나 , 실습시간에는 대부분 편의적인 YUM을 쓰게 될 것이다.

 


[ RPM ] - Redhat Package Maneger

 

Vim-enhanced-7.0.109-3.i386.rpm 이라는 패키지가 존재한다

 

Vim-enhanced-   :  - - 까지가 패키지명이다. - - 마저 없는 것은 완벽한 대표패키지이다.

 

7 : Major 버젼의 상태. 프로그램이 완전히 한 차원 혁신 또는 뒤집어진다면 이 버젼이 보통 올라간다.
0 : Minor 버젼의 상태. 기능의 추가 정도가 있을 때 , 이 버젼이 보통 올라간다.
109 : patch 버젼의 상태. 보통 버그를 수정했을 때 패키지의 이 버젼이 올라간다.
3 : release 버젼의 상태. 배포하는 곳에서 이 패키지가 몇 번째로 재 배포했는지를 나타낸다.
i386 : 실행환경의 아키텍쳐를 나타낸다. i386 이라 함은 구형 - 최신형까지 전부 호환됨을 나타낸다.
(intel 호환 386 cpu 급 이상을 의미)

 

rpm 패키지 설치에서 여러 옵션이 존재하지만, 주로 실무에서 알아야 할 것은 다음의 옵션이다.

 

1. 패키지 설치 : rpm -ivh [ 패키지의 전체 풀 네임.rpm ]
2. 패키지 삭제 : rpm -e [ 패키지 명 ]
3. 패키지 확인 : rpm -qa | grep [ 패키지 명 ]

 

i : install
h : 설치진행상황을 해쉬 (hash) 마크 ### 로 보여준다
v : 진행상황을 자세히 보여준다. ( verbose )

 


[ 패키지의 의존성 Dependedncies 주의사항 ]

1. 패키지 설치 시 의존성 오류 Failed dependencies 를 절대 무시하면 안된다.
2. 의존성 오류를 제기한 해당 패키지부터 해결한 후 재시도한다.
3. lib ~ so.5 등으로 시작하는 의존성 오류일 경우, 특수한 상황을 제외하고는 무시해도 좋다.
4. 위의 경우 --nodeps 로 강제 설치할 수 있지만, 해결할 수 없는 방법이 전혀 없을 때를 제외하고는 쓰지 않는다.
5. 모든 작업은 보통 대표 패키지명 ( - -가 없는 ) 부터 설치한 후, 리스트를 순차적으로 작업한다.

 

 


[YUM] - Yellowdog Updater Modified

 

 레드핫에서는 처음에 지원하지 않다가 페도라 코어 프로젝트로 건너오면서, 포함되게 되었다.
알아서 해당 패키지명만 입력해도, 인터넷에서 자동검색하여, 자동다운로드 - 자동설치 - 자동 의존성 검사 - 자동업데이트까지 해주는 매우 발전적인 패키지 관리자이다.
과거의 수동방식이던 RPM 에 비하여 초심자들에게 엄청나게 편리한 관리자라고 할 수 있으나, 사용자가 원하지 않는 관련 패키지까지 모두 업데이트하므로, 필요한 커스텀만 사용할 서버관리자에게 있어서는 부적절한 패키지 관리자라 할 수 있다.

 

가령, 시스템이 외부와 공인 통신이 불가능한 상태의 위기에 처했을 때,  YUM 만 알고 해당 관련 RPM 의 설치 경험이 없다면, 그건 이미 실격인 것이다. 평소에 FTP 에 업로드되는 관련 패키지들을 따로 CD나 USB로 모아 두었다가, 중요 패키지의 수동 설치법을 RPM 으로 익혀 두는 것은 서버 관리자의 기본 의무라고 할 수 있겠다.


기본 리스트 보기 - #yum list
업데이트 #yum update
새 패키지 설치 #yum install [패키지 네임] ( 해당 관련 모든것들이 한번에 다운로드-설치된다 )
패키지 삭제 #yum remove [ 패키지 네임 ]

-y 옵션 : 진행시 y/n 를 묻지 않는다.

 


[TAR]

리눅스에서 자주 사용되는 파일 묶음 아키텍쳐 ( 압축도 가능하다 )


[ 압축하기 ]

gzip , bzip 두 종류가 존재한다.

압축하기 : gzip [ 압축할 파일 경로 ]

압축 풀기 : gzip -d [ 압축된 파일 경로 ]

gzip 은 그냥 해당 파일을 바로 압축해버리면서 .gz 로 묶인다.

bzip은 gzip 에 비해 압축 효율이 조금 더 개선된 버젼으로 다른 사항은 동일하다.

 
[ 파일 묶기 ]

tar 를 사용한다.
tar 는 여타 일반 커맨드와는 달리 [대상경로][목적지] 의 형식이 아닌 [목적지][대상경로] 임을 유의.
즉 tar 는 [작업후 묶인 파일명][묶을 파일 경로] 로 입력하여야 한다.

즉, 여러 파일을 tar 로 묶고 압축하고 싶을 경우에는, 먼저 "묶고" , 그 다음에 압축해야 한다.
이를 한 번에 실행하는 옵션을 외우도록 한다.

 


[ TAR + GZIP 을 동시에 ]

 

 

1. tar 파일로 /backup/ 의 모든 파일들을 묶는다
#tar cvf test.tar /backup/

 

2. tar 파일로 묶으면서 동시에 gzip 압축을 행한다
#tar cvfz test.tar.gz /backup/

 

c 옵션 : create. 새 묶음(tar)를 만든다.
v 옵션 : visual. 진행과정을 보여준다.
f 옵션 : file. 묶을 파일명을 개별 입력할 수 있다.
z 옵션 : +gzip ( j 를 쓴다면 bzip 형식으로 압축을 행한다 )

 


3. test.tar.gz 파일을 압축해제하고 묶음을 동시에 푼다.
#tar xvzf test.tar.gz 

x 옵션 : 묶은 파일을 풀어준다.

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,