Daemon

i2sec/Linux 2014. 8. 20. 16:54

1. Daemon이란?

- 시스템에 관련된 작업을 Background로 움직이는 프로그램

Standalone 

xinetd 

os 밑에서 바로 실행되면 독자적으로 항상 준비

메모리 부하가 심하나 응답속도가 빠르다

/etc/init.d

ex>sendmail, apache, mysql, name server, nfs 등 

os와 서비싕 중간자역할로 요청이 들어 왔을때만 실행

메모리 사용이 효율적이나 응답속도가 비교적 느리다

/etc/xinetd.d

ex> telnet, pop3 등 


2. Daemon의 종류

- HTTPD 

- TELNETD

- SNMPD

- SSHD

- DHCPD


3. Daemon 설정 - TELNET

- 원격 접속 데몬으로 Xinetd에서 관리

- 23 port 사용


1) 설치 :  yum -y install telnet-server

- 의존성 때문에 xinetd와 함께 설치된다. 삭제 시 xinetd는 삭제가 안되므로 따로 삭제해야 한다.


2) xientd 재시작 : service xinetd restart

-첫 구동이기 때문에 stopping 부분이 failed로 나오는 것이기 때문에 문제있는 것이 아니다


3) xinetd 구동 확인 : pstree xinetd

4) telnet 포트 확인 : vi /etc/ services


5) telnet 활성화 : vi /etc/xinetd.d/telnet 로 파일을 열고 disable =yes를 no로 수정


6) 변경 내용을 적용하기 위해 xinetd 재시작  service xinetd restart


7) 방화벽 포트 추가 : vi /etc/sysconfig/iptables 23포트 추가


8) 방화벽 재시작 : service iptables restart


9) 포트 활성화 확인 : netstat -ntlp


10) 내부 접속 확인 : telnet localhost


11) 외부 접속 확인 : cmd로 telnet 접속



4. 서비스 생성

- telnet과 똑같은 기능을 하는 서비스를 생성해보겠다.

1)/etc/xinetd.d 안에 파일 생성


2)파일 안에 내용입력 : vi /etc/xinetd.d/파일명

-파일 이름보다는 서비스명이 중요하다!!!

-서버파일이 존재하지않으면 포트가 열리지 않기때문에 꼭 서버파일을 정해진 디렉토리에 생성한다.


3)xinted 재시작


4)포트 추가 : vi /etc/services

-비어 있는 포트를 찾아서 추가한다.


5)서버 파일 생성 

-telnet을 생성할려고 하기 때문에 telnet 서버파일을 이용하겠다

-서버파일생성 후 권한을 주어야만 정상동작한다.


6)방화벽 포트 추가


7)방화벽 재시작


8)포트 확인


9)내부 접속 확인


10)외부 접속 확인


'i2sec > Linux' 카테고리의 다른 글

리눅스에서 ftp 사용하기  (0) 2014.08.21
방화벽  (0) 2014.08.21
vi 편집기  (0) 2014.08.16
링크  (0) 2014.08.15
프로세스  (0) 2014.08.14

vi 편집기

i2sec/Linux 2014. 8. 16. 16:54

1.vi란?

- linux에서 메모장과 같은 기능으로 파일을 생성하거나 편집할 때 주로 이용된다.


2. vi mode



3. 명령 모드

- vi 기본 모드

- vi가 실행 되거나, 입력 모드에서 ESC키

- 커서 이동, 문자열 수정, Copy & Paste

- Enter키 입력 불필요

인자값 

의미 

커서 위치에서 입력 모드 변경 

커서 위치 우측 한칸에서 입력 모드 변경 

커서 문자를 지우고 입력모드 변경 

커서 위치 문자 삭제(숫자키와 같이 사용 시 숫자만큼 뒤로 삭제)

dd 

현재 커서 행 삭제(숫자키와 같이 사용 시 숫자만큼 행 삭제) 

 yy

현재 커서 행 복사(숫자키와 같이 사용 시 숫자만큼 행 복사) 

 p

복사 내용 현재 라인 이후 붙여넣기 

되돌리기 


4. 실행 모드

- ":"을 찍자마자 명령모드에서 실행모드로 변경

인자값 

의미 

:! [command] 

커서 위치에서 입력 모드 변경 (shell에서 쓰던 명령어 사용가능)

 :e [command 

파일 열기 

:q 

종료(변경x) 

:q! 

강제 종료(변경 무시) 

:w 

파일저장 

:wq 

파일 저장 후 종료 

-"!"는 강제의 의미

- 주로 'wq!' 저장하고 나온다


5,기타

- ':set nu' : 라인 앞에 번호 표시

- ':/300' : 300번째 줄 이동

- ' /"문자열"' : 찾는 문자열 검색    

   'n'을 누르면 밑으로가면서 검색, 'shift+n'을 누르면 위로가면서 검색

- ":/bin/bash" : 현재 vi로 오픈한 파일의 권한으로 bash실행

'i2sec > Linux' 카테고리의 다른 글

방화벽  (0) 2014.08.21
Daemon  (0) 2014.08.20
링크  (0) 2014.08.15
프로세스  (0) 2014.08.14
권한  (0) 2014.08.14

링크

i2sec/Linux 2014. 8. 15. 16:55


*Inode : 데이터가 있는 위치를 가르키는 번호


1. 하드 링크

-Usage : ln <링크 원본 파일> <링크 파일명>


-원본 파일과 동일한 Inode 사용

-원본 수정 시 하드링크도 수정됨

-원본의 이동이나 삭제시 남아 있음

-파일 복사와 차이는 공간을 차지하지 않음

-원본 파일 링크 수 증가


2. 하드 링크

-Usage : ln -s <링크 원본 파일> <링크 파일명>


-windows 바로가기 아이콘과 비슷

-주로 사용자가 많이 사용

-긴 디렉토리명 이동시 유용

-원본을 다른 곳으로 이동시키면 사용 못한다.

-새로운 Inode 사용

-원본 자체 포인터 역할 뿐이므로, 원본 수정 시 수정된 파일이 보임

-원본의 삭제 시 링크가 끊김


3.기타

-원본 파일을 가지고 권한을 변경 했을 때 원본파일과 하드링크 파일 권한은 변경되나 심볼릭 링크 권한은 변경되지 않는다

*심볼릭 링크를 이용한 history 영구적 삭제

1. history가 저장되는 /home/.bash_history파일 확인

2. history가 저장되는 /home/.bash_history파일 삭제 및 /dev/null로 심볼릭 링크를 건다

3.명령어를 입력해도 기록이 남지 않는다


'i2sec > Linux' 카테고리의 다른 글

Daemon  (0) 2014.08.20
vi 편집기  (0) 2014.08.16
프로세스  (0) 2014.08.14
권한  (0) 2014.08.14
사용자 계정 / 그룹 관리  (0) 2014.08.13

프로세스

i2sec/Linux 2014. 8. 14. 17:50

1. 프로세스란?

-컴퓨터 안의 실행되는 프로그램

-실행되자않고 있으면 프로그램이고 실행되서 메모리에 올라가면 프로세스다!


2. 프로세스의 종류

process

대화형 

배치 

데몬 

*데몬 : 인터넷을 이용한 서비스를 하기 위한 프로세스(ssh, http 등)

           background에서  이루어지는 프로세스다


3. 프로세스의 분류

1) Foreground

- 사용자 눈에 보이는 작업

-실행중인 포그라운드 작업을 백그라운드작업으로 전환 : [ctrl] + [z]

-포그라운드 작업 취소 : [ctrl] + [c]

-백그라운드 작업 취소 : #job -> #fg %작업번호 -> [ctrl] + [c]


2)Background

-사용자 눈에 보이지 않으나 시행되고 있는 작업

-실행 시간이 오래 걸리는 프로세스를 뒤로 보낼 때 명령어 뒤에 "&"를 붙여서 실행

-명령이 완료되면 작업번호와 함께 "Done" 메시지 출력


3. 프로세스 명령어

1)ps

-현 process 조회 가능

-usage : ps [option]

-주로 ps -ef(간단히 보기), ps - aux(자세히 보기) 형태로 많이 사용

인자 값 

의미 

현재 실행중인 모든 프로세스 출력 

모든 프로세스 정보 출력 

L

Long format 

Full format 


2)kill

-프로세스 종료

-usage : kill [option] [PID]

인자값 

의미 

-9 

프로세스 강제 종료 

-hup 

프로세스 정보 다시 읽어 드림 

-프로세스를 죽일 때에는 PID로 죽일것!

  PPID로 할 경우 PPID가 '1'(root) 로 바뀔 수 있다.

- killall [프로세스명] : 프로세스명으로 종료시키는 명령어이나 해당 이름이 있는 프로세스를 전부 종료하는 단점이 있다.


3) pstree / ps auxw | grep httpd

-프로세스 정보를 표시


4) top

- 프로세스별 CPU와 메모리 점유율 표시

- 윈도우 ctrl + alt + del 과 동일한 기능



4. 기타

*제일 최근 작업 : "*", 두번째 최근 작업 : "-"


*[작업 번호] [+,-] PID => /proc/'PID번호' 저장 , cat ./stat로 확인가능


*PID : 자식 프로세스 , PPID : 부모 프로세스

 부모프로세스가 자식프로세스를 실행시켜주고 PID를 부여한다

 ex> shell 에서 pwd 명령어를 실행시켯을때 shell이 PPID, pwd 가 PID


*PPID = '0' : OS 프로세스 (/sbin/init)


*부모 프로세스(PPID)는 어디던지 '반드시' 존재한다


* 이름 뒤에 'd'가 붙으면 데몬 프로세스

'i2sec > Linux' 카테고리의 다른 글

vi 편집기  (0) 2014.08.16
링크  (0) 2014.08.15
권한  (0) 2014.08.14
사용자 계정 / 그룹 관리  (0) 2014.08.13
명령어 정리  (0) 2014.07.31

권한

i2sec/Linux 2014. 8. 14. 17:16

1.파일의 리스트와 파일 속성

위치 

의미 

파일 유형 (L:링크, -: 파일, d : 디렉토리 ) 

rw- r-- r-- 

파일 허가권 

링크 수 

root 

파일 소유자 이름(UID) 

root 

파일 소유 그룹 이름(GID) 

 0

파일 크기(byte) 

 Aug 14 16:53

마지막 변경 날짜/시간 

test 

파일 이름



2. 파일 허가권

r : 읽기 -> 4

w : 쓰기 -> 2    

x : 실행하기 -> 1`

소유자

그룹 

그 외 사용자 

w  



3. 파일 소유권

- 파일 소유한 사용자와 그룹을 의미

1)chmod

- 파일 허가권 변경 명령어

- usage : chmod [권한] [파일명]

- ex> chmod 777 test


2)chown

- 파일의 소유권을 바꾸는 명령어

- usage : chown [소유자].[그룹] [파일명]

- ex> chown skykings.skykings test

*소유자만 변경하면 그룹은 소유자랑 동일하게 변경되나 그룹만 변경 시 그룹만 변경된다.


3) 기타

*실행 권한만 주면 실행은 되지않는다.

 파일을 읽을 수 있어야지만 실행이 가능하기 때문에 읽기 권한도 줘야한다.(안에서 쉘을 가지고 실행하는 파일만)

*실행가능한 파일 권한은 "755"

  읽기와 쓰기만 가능한 경우 '644'


4. Setuid

-S or s로 표현되고 8진수 모드로 4000

-파일 실행 시 파일 소유자 권한 실행(실행시에만 잠깐 힘을 빌리는 형태)'

- setuid시 권한이 4자리가 되면 '?755'로 권한을 줄 시 ? 자리가 setuid 부분이 된다 

-권한을 '4755' 형태로 준 모습

-파일 허가권은 동일하다.

- 읽기 setuid 시 실행권한이 있으면 s, 없으면 S

   쓰기 setuid 시 실행권한이 있으면 s, 없으면 S

   읽기 setuid 시 실행권한이 있으면 t, 없으면 T


*setuid가 걸린 파일 검색

find / -perm -4000 (-user, -group) [소유자명, 그룹명] => 4000이 포함된 권한을 가진 소유자 또는 그룹명의 파일을 찾겠다

'i2sec > Linux' 카테고리의 다른 글

링크  (0) 2014.08.15
프로세스  (0) 2014.08.14
사용자 계정 / 그룹 관리  (0) 2014.08.13
명령어 정리  (0) 2014.07.31
Directory  (0) 2014.07.31

사용자 계정 / 그룹 관리

i2sec/Linux 2014. 8. 13. 01:52

1. 계정 생성 명령어 관련 파일

위치

의미  

/etc/passwd 

사용자 계정 정보의 저장소 

/etc/shadow 

암호화된 사용자 정보 

/etc/group 

그룹 목록들에 대한 정보 

/home 

사용자 별 홈 디렉토리 


1) /etc/passwd


위치 

의미 

skykings 

사용자 계정명 

패스워드(/etc/shadow 파일에 저장된 값을 불러온다) 

501 

Uid 

501 

Gid 

/home/skykings

홈디렉토리 위치(설정하지 않으면 최상위 디렉토리로 간다) 

 /bin/bash

사용자 시스템 로그인 시 shell의 위치

(설정하지 않으면 /bin/sh로 실행, 잘못된 경로일 경우 로그인이 되지 않는다)

* Uid와 Gid를 0으로 변경 후 접속 시 root 계정으로 접속된다.

*계정에 lock을 걸려면 /sbin/nologin 에서 설정한다


2) /etc/shadow

위치 

의미 

skykings 

 사용자 계정명

 $1$OWnL9I/s$IZ4XjXkseSNXCUnt99ORi1

md5로 암호화된 패스워드 값 

 16155

암호 생성 일자 

암호 변경 가능 최소 시간 

99999 

초기 암호 변경 없이 사용 유효 기간 

만료 지정 시 만료 경고 일수 


2) /etc/group


위치 

의미 

skykings 

 그룹명

그룹 패스워드

501 

GID 

NULL 

그룹 구성원 사용자 이름 



2. 계정 관련 명령어

1) useradd

- 계정 생성

-usage : useradd [option] [인자값],,,,[계정]

 인자값

의미 

 -u

사용자 UID 변경 

-g 

사용자 기본 그룹 지정 

-d

사용자의 기본 홈 디렉토리 변경 


2) usermod

-계정 수정

-usage : usermod  [option] [인자값],,,,[계정]

인자값 

의미 

-u 

사용자 UID 변경 

-g 

사용자 기본그룹 지정 

-d 

사용자의 기본 홈 디렉토리 변경 

-l 

계정명 변경 


3) userdel

- 계정 삭제

-usage : userdel [option] [인자값],,,,[계정]

 인자값

의미 

 -f

rkdwp tkrwp

-r 

계정 생성 시 모든 정보 삭제

-h

도움말

* 주로 "-rf" 옵션으로 많이 사용한다


4) passwd

-패스워드 수정

-usage : usermod  [option] [계정]

인자값 

의미 

-d

패스워드 NULL 지정 (암호 삭제)

-l 

패스워드 잠금

-u

패스워드 잠금 해제

-S

패스워드 상태 출력


5) groupadd / groupdel

-그룹 생성, 삭제

-usage : groupadd  [option] [그룹]

             groupdel [그룹]

 인자값 

의미 

-f 

그룹 강제 생성 

-g 

그룹 생성 시 GID 지정 


'i2sec > Linux' 카테고리의 다른 글

프로세스  (0) 2014.08.14
권한  (0) 2014.08.14
명령어 정리  (0) 2014.07.31
Directory  (0) 2014.07.31
개요  (0) 2014.07.31

명령어 정리

i2sec/Linux 2014. 7. 31. 01:36

*"pwd"

- 현재 경로를 표시

-usage : pwd


*"cd"

- 디렉토리 이동

- usage : cd [인자값]

인자값 

의미

현재 디렉토리 

.. 

상위 디렉토리 

로그인 사용자 홈 디렉토리 

바로 이전 작업 디렉토리 

Directory

이동하기 원하는 디렉토리 


*"ls"

-해당 경로에 파일 내역을 출력

-usage : ls [option] [directory/file

-주로 ls -al 형태로 많이 이용한다.

 인자값

의미 

 -a, -all

모든 파일과 디렉토리 표시 

-l 

자세히 출력 

-d 

디렉토리 정보 출력 

-n 

UID, GID 출력 

-R 

하위 경로와 모든 파일 나열


*"cp"

-파일, 디렉토리 복사

-usage : cp [option] [source] [target]

인자값

의미 

-I 

복사에 대한 실행여부 물음 

-f 

강제 복사 

-r 

하위 디렉토리와 파일 모두 복사 

-v 

복사 진행 상태 출력 

-a 

원본 파일의 속성, 링크 정보 유지 복사 



*"mv"

-파일, 디렉토리 이동

-usage : mv [option] [suorce] [target]

인자값 

의미 

-i 

이동에 대한 실행여부 물음 

-f

강제 이동 

-u 

이동 대상 위치보다 최근 파일 시 이동 

-v 

이동 진행 상태 출력 

-b 

대상 파일이 이미 있어 백업 파일 생성 


*"mkdir"

-디렉토리 생성

-usage : mkdir [option] [directory name]

 인자값

의미 

-m 

디렉토리 생성 시 기본 권한 설정 

-p

상위 디렉토리 생성 

--help 

도움말 

--version 

버전 표시 


*"rm"

-디렉토리, 파일 삭제 

-usage : rm [option] [directory/file]

-주로 rm -rf 형태로 많이 이용한다.

 인자값

의미 

-f

강제 삭제

-r

디렉토리 삭제시 하위 경로와 파일 삭제

-v

파일 삭제 정보 자세히 보여줌

--version 

버전 표시 


*"cat"

-텍스트 파일 내용 출력

-usage : cat [option] [file name]

인자값 

의미 

파일 내용 덮어 씌우기  

>>  

기존 파일 내용 추가 == 이어쓰기 


*"touch"

-파일 생성 및 시간 정보 변경

-usage : touch [option] [file name]

인자값 

의미 

-r

시간 동기화

-t 

지정된 시간으로 변경

ex1> touch -r /etc/passwd /tmp/i2sec ==> passwd파일의 시간과 i2sec 파일의 시간이 같아진다

ex2> touch -t 201403150621 /tmp/i2sec ==> i2sec 파일의 시간이 2014년 3월 15일 6시 21분으로 변경된다


*"head"

- 파일 내용 중 처음부터 10줄 출력

-usage : head [option] [file name]

인자값 

내용 

-n

 뒤의 숫자만큼 위에서 부터 내용 표시 

ex> head -n 5 ./i2sec ==> 상위 다섯줄 표시


*"tail"

- 파일 내용 중 마지막부터 10줄 출력

-usage : head [option] [file name]

인자값 

내용 

-f

실시간으로 파일 내용 확인


*"more"

- 파일 내용을 화면 단위로 표시

-usage : head  [file name]


*"rdate"

-타임 서버 시간 조회 및 시스템 시간 변걍

-usage : rdate [option] [time server]

인자값 

의미 

-p

타임 서버 시간 조회(옵션 없는 것과 동일)

-s

타임 서버 시간 시스템 동기화

- 주요 타임 서버 : time.bora.net / ntp.ewha.net


*"find"

-파일, 디렉토리 검색

-usage : find [경로] [option] [value]

인자값 

의미 

-name

파일 이름으로 검색

-user

계정으로 검색

-group

그룹으로 검색

-size 

크기로 검색

-perm

권한으로 검색

-숨긴 파일 찾을 때 : find / -name ".*" (특수 기호만 들어갈 시 ""를 이용하여 문자로 인식시켜줘야 한다.)

-리눅스에서는 디렉토리도 파일로 인식해서 파일과 함께 디렉토리도 찾을 수 있다.

-디렉토리와 파일 구분 : find <걍로> -name <파일명> -ls(파일의 상세내용을 보여주어서 d이면 디렉토리 -면 파일로 구분할   수 있다.)


*"ifconfig"

-네트워크 IP 설정

-usage : ifconfig [network interface] [IP] [netmask] [iup/down]

-ex>IP 등록 : ifconfig eth0 192.168.0.1 255.255.255.0 up

       IP 뺴기 : ifconfig eth0 down


*"route"

-GateWay 설정

- usage : route [add/del] [IP/NET]

- ex> G/W등록 : route add default gw 192.168.0.1

         G/W 제거 : route del defau;t gw 192.168.0.1


*"DNS 설정"

-등록 : cat > ./resolv.conf

           namesever [주 DNS 주소]

           namesever [보조 DNS 주소]

-제거 : cat > ./resolv.conf (내용 없이 저장)


*"shutdown"

- 시스템 종료

-usage : shutdown [option] [time] "message"

인자값 

의미 

-k

모든 사용자에게 메시지만 전송

-h

시스템 종료

-r

시스템 재부팅

+m

현재 시간으로 부터 종료 시점 시간 설정

Now

명령어 수행하는 순간 종료


*"파이프와 필터"

- 파이트(|) : 앞 명령어의 수행결과를 뒤 명령어의 입력 값으로 전달해주는 역할 

두개 이상의 명령어 조합이 가능하다.

ex> ls -al /usr/bin | more

- 필터(grep) : 표준 입력으로부터 자료를 읽어 간단한 처리 후 표준 출력으로 보내는 명령어

 ex> grep abc.txt hello

       ps aux | grep xfs

- ";" : 파이프와 달리 여러 명령어를 함께 사용하는 것이 아니라  명령어를 순차적으로 실행


*"표준 입출력과 리다이렉션"

-표준 출력 Redireciotn : 표준 출력장치(모니터)의 방향을 파일로 전황

 사용법 : >, >>

 ex> ls /usr/bin > list_file

       ls /usr/bin >> list_file


-표준 오류 Redirection

  사용법 : 2>, 2>>

  ex> find / -name passwd => 오류가 많이 나온다

         ==> find / -name passwd 2> /dev/null => 오류 값을 /dev/null(쓰레기통)으로 보내고 출력

'i2sec > Linux' 카테고리의 다른 글

프로세스  (0) 2014.08.14
권한  (0) 2014.08.14
사용자 계정 / 그룹 관리  (0) 2014.08.13
Directory  (0) 2014.07.31
개요  (0) 2014.07.31

Directory

i2sec/Linux 2014. 7. 31. 01:11

1. 기본 디렉토리



* "/"

- 루트 디렉토리(최상위 디렉토리)

- 이 디렉토리를 기준으로 모든 디렉토리가 생성됨

- 모든 디렉토리의 출발점이자 다른 파티션의 연결점


* "/bin"

- 시스템을 사용하기 위한 기본적인 명령어를 포함하는 디렉토리                                                                                                    

  (cp, mv, vi 등)

- 일반 사용자까지 모두가 사용할 수 있는 명령어


* "/boot"

- 부팅에 필요한 커널과 핵심 파일이 들어 있는 디렉토리


* "/dev"

- 장치 파일이 위치하는 디렉토리

- /dev/null은 쓰레기통과 같은 영역


* "/etc"

- 시스템 설정파일이 들어가는 디렉토리(IP, 방화벽, P/W 등)

- 시스템이나 사용자 관리를 위한 자료 파일 관리자용 명령어


* "/home"

- 일반 사용자의 홈 디렉토리가 생성되는 곳


* "/lib"

- 시스템 운영 및 프로그램 구동할 때 필요한 공유 라이브러리


* "/root"

- 시스템 관리자, 즉 root 사용자의 홈 디렉토리


* "/mnt"

- CD-ROM과 플로피 장치에 대한 기본 마운트 포인트를 제공


* "/proc"

- 프로세스와 시스템 정보를 제공하기 위한 목적으로 설계된 가상 파일 시스템을 사용하는 디렉토리

- 프로그램을 구동하게 되면 /proc에 해당 프로세스의 PID 번호에 해당하는 데렉토리를 생성하여 프로세스의 진행 상황을 추적하고 관리

- 시스템 및 커널 정보는 문자로 디렉토리와 파일 명이 이루어지며

  현재 실행중인 프로세스의 정보는 숫자로 이름이 이루어진다.


* "/sbin"

- 관리자가 사용하는 시스템 운영에 필요한 명령어가 존재하는 디렉토리

  (fdisk, reboot, shutdown 등)


* "/tmp"

- 프로세스 생성 과정에서 발생되는 임시파일을 저장하는 디렉토리


* "/usr"

- 프로그램을 설치할 때 패키지에 포함된 대부분의 파일이 이공에 설치

- windows의 Programs files 폴더와 유사


* "/lost + Found"

- 개별 파일 시스템의 최상위 디렉토리 마다 존재

- 일반적인 상황에서는 이 디렉토리에 파일이 존재하지 않는 것이 정상

- fsck(File System Check) 명령어가 사용되는 디렉토리

- 시스템 부팅 시 파일 시스템의 이상 유무를 진단하여 문제가 있으면 구동

- 시스템을 점검 시 파일이 손상된 경우 해당 파일 시스템에 존재하는 lost+found 디렉토릴 이용하여 복구


* "/opt"

- add-on 패키지가 설치되는 디렉토리

- 표준 레드햇 리눅스 배포판에 존재하지 않는 패키지가 설치될 경우 이 디렉토리에 설치


* "/var"

- 내용이 자주 변경되는 가변 자료가 저장되는 디렉토리

-로그, 스풀, 웹 서버 관련 자료, 데이터베이스, FTP의 최상위 디렉토리 등이 이 곳에 저장된다.



2. 자주 사용되는 파일


*"/etc/passwd"

- 사용자 계정이 저장되는 파일


*"/etc/shadow"

- 계정의 P/W가 저장되는 파일, MD5로 암호화되어서 저장된다.


*"/etc/sysconfig/iptables"

- 방화벽 설정을 하는 파일


* "/etc/hosts.allow", "/etc/hosts.deny"

- 각각 화이트,블랙 리스트 기반으로 접속자의 IP와 접속방법을 제어하는 파일들 


3. 기타

* 현재 디렉토리와 상위 디렉토리

- "./"는 현재 디렉토리를 의미하고 "../"는 상위 디렉토리를 의미한다


* 절대경로와 상대경로

- 절대 경로는 최상위 디렉토리 부터 시작하는 경로를 의미

  (ex> /etc/passwd, /usr/lib)

- 상대 경로는 현재 내가 있는 디렉토리를 시작으로 하는 경로를 의미

  (ex> lib -> cdrom => ../../mnt/cdrom,  cdrom->floopy => ./floopy)


'i2sec > Linux' 카테고리의 다른 글

프로세스  (0) 2014.08.14
권한  (0) 2014.08.14
사용자 계정 / 그룹 관리  (0) 2014.08.13
명령어 정리  (0) 2014.07.31
개요  (0) 2014.07.31

개요

i2sec/Linux 2014. 7. 31. 01:10

1.Linux 개요


Linux는 Windows의 프로그램이 아닌 독자적인 OS 이다.

Linux는 공개버전과 상용버전으로 나뉜다.

그러나 기본적으로 Linux는 소스코드가 공개된 누구나 변경 수정이 가능한 오픈소스 OS이다.

Linux는 다국어를 지원



2.Linux 탄생 배경


리눅스 토파즈라는 사람이 커널 개발

리차드 스톨만이 모든 소퓨트웨어는 공유되고 공유에 대한 제한 철폐를 목표로 창립한 FSF의 GNU 프로젝트와 발전

 *GNU(Gnu Not Unix)

 *GPL(General Public License)라이선스 -> 소스 공개 및 수정 재 배포 가능



3.사용범위


-개인용 데스크탑

-워크스테이션 -> 개발자 환경

-서버 -> 웹,메일,DB,FTP 서버등 

-임베디드 -> TV, PDA, 핸드폰등

-클러스트링(pc방 카운터 pc 기능)



4.Linux 구조



-Kernel Mode/User Mode

-((((H/W(cpu,ram))커널)쉘(csh,bash)응용프로그램(vi 에디터, x 윈도우))

 -우리가 쉘에서 명령어를 입력하면 그 것이 커널로 전달되어 커널에서 하드웨어들을 제어한다.

  (우리는 앞으로 리눅스에 접속하면 서버를 다루고 원격접속을 하기 떄문에 x윈도우같은 응용프로그램은 사용하지 않는다)

=>Kernel은 H/W와 S/W의 징검다리 역활을 한다.

-커널소스 숫자

 -linux-x.y.z.tar.gz의 형식

  -x : 주 버전

  -y : 홀수 -> 베타버전, 짝수 -> 안정

  -z : 버그 수정 횟수

 -숫자가 높을수록 장치지원이 높음

=>취약점을 찾을 수 있는 가장 기본적인 요소이다.


-커널과 모듈

 -자주 사용하는 요소 : 커널에 포함

 -가끔 사용하는 요소 : 모듈(독립적)로 작성하여 필요 시 마다 호출


-Linux 특징

-대소문자의 구별이 분명하다.

-다중 사용자, 다중 작업 시스템

 -사용자 추가

  -root 사용자만이 권한을 가지고 있다.

  -설정 파일:/etc/default/useradd

  -기본 설정 파일 저장 : /etc/skel -> 사용자 생성시 마다 설정 반영

   (예 : 'ms'라는 사용자 추가시 /etc/skel -> /home/ms)

-서버로 사용하기 적합

-계정과 비밀번호가 필요

-명령어로 하드웨어를 제어(Shell 역할)

-ROOT 사용자 : 계정의 관리

-홈 디렉토리 : 각 사용자의 공간

-환경설정 파일 : 각 사용자별 환경(예:path)

 (.bashrc(단축명령어 저장), .bash_profiles(환경변수 저장))


*로그

 누가 시스템에 접근하고 제어한 기록이 남는 곳이다.

 프로그램, 서비스의 발생 시 오류도 기록한다.

 (/var/log)



5.Linux system


-리눅스 실행 과정

 전원 on ->시스템 reset -> 로그인창 -> 아이디/페스워드 입력 ->쉘 실행 ->명령어 입력 -> 커널에게 명령어 전달 ->커널이 하드웨어 조작 -> 모니터 출력

|_________________________________순환_____________________________________|


-가상 콘솔

 *기본적으로 6개 제공된다

 *Ctl+Alt+F1~F6은 Text Mode 형식의 콘솔: CLI

 *Ctl+Alt+F7은 X 윈도우로 전환 : GUI


-ROOT 계정

 *시스템 설치시에 자동으로 생성된다.

 *시스템 관리를 위해 모든 권한을 가지고 있다.(Linux의 대통령)


-일반 계정

 *시스템 관리자(root 사용자)에 의해 생성된다.

 *시스템 관리자가 초기 패스워드를 설정해준다.

  (만약 패스워드를 설정하지 않으면 접속할 수 없다.)

 *개인 사용 환경 변경 및 저장이 가능하다.


-SHELL

 *시스템과 사용자간의 대화를 가능하게 하는 명령어 해석기이다.

  ->우리가 입력한 명령어를 Kernel에게 전달

 *종류 : bash,C shell, V shell등

  ->기본 기능이나 작동법은 동일

 *기능 : 내부명령/외부명령을 실행해주는 명령프롬프트다.

         여러 명령어를 연결해서 사용가능하다(파이프:|)

         입/출력 리다이렉션으로 명령 방향 전환이 가능하다(>,>>,<,<<)

         특수문자를 해석 및 치환한다(명령어 치환)

         지역변수/환경변수를 관리한다.


-사용자 환경 설정 파일

 -.bash_logout, .bash_profile(환경변수 등록), .bashrc(단축명령어 등록)라는 환경 설정파일이 존재하는데

  이러한 환경 설정파일들은 새로운 사용자가 추가될 때 마다 각 사용자의 홈디렉토리에 복사된다.

  (원본파일은 /etc/skel(계정이 생성되는 곳) 에 존재한다)

 -모든 사용자의 환경설정 파일은 /etc/profile, /etc/bashrc 이다.


-PATH 디렉토리 추가

 현재 로그인에서만 추가할 때(로그아웃시 소멸된다,)

  -PATH = $PATH <추가할 디렉토리>

 특정 사용자에게 추가할 때는 ~/.bash_profile 에 추가해준다(로그아웃해도 소멸되지 않는다)

 전체 사용자에게 추가할 때는 /etc/profire 에 추가해준다(역시 로그아웃시 소멸되지 않는다)


-단축명령어 등록

 현재 로그인에서만 추가할 때(로그아웃시 소멸된다,)

  -alias <단축어> = 'FULL 명령어'

 특정 사용자에게 추가할 때는 ~/.bashrc 에 추가해준다(로그아웃해도 소멸되지 않는다)

 전체 사용자에게 추가할 때는 /etc/bashrc 에 추가해준다(역시 로그아웃시 소멸되지 않는다)


-Linux 기본명령어

*echo : 뒤에나오는 문자열 출력

(예 : echo shell -> shell 출력)

*echo $SHELL : 현재 내가 사용하고 있는 SHELL을 확인할 수 있는 명령어(실행결과 : /bin/bash)

 ($ : 변수 인식 인자값으로 단어를 변수로 인식 시켜준다)

*echo $? : 이전 작업이 제대로 수행됬는지 확인할때 사용(단, 바로 전에 수행했던 명령어만 확인된다!)

 (잘됬으면:0, 잘못됬으면:숫자)

*echo $PATH : 현재 환경변수 확인

*cd : 디렉토리 이동시 사용

*clear : 화면의 모든내용을 지워줌(Ctrl + L)

*history : 로그인 후 지금까지 사용한 명령어를 보여준다

 (history 목록을 지우고 싶을때 : history -c)

 (로그아웃시 .bash_history에 저장 된다)

'i2sec > Linux' 카테고리의 다른 글

프로세스  (0) 2014.08.14
권한  (0) 2014.08.14
사용자 계정 / 그룹 관리  (0) 2014.08.13
명령어 정리  (0) 2014.07.31
Directory  (0) 2014.07.31

day04 - 네트워크 이론

i2sec/Network hacking 2014. 4. 28. 22:22

1. subnetmask

2. routing

3. NAT

4. Windows IP 설정

5. Linux IP 설정

6. ARP/RARP

7. ICMP

-송신 측의 상황과 목적지 노드의 상황 진단 == PING

-IP계층 또는 보다 상위 계층 프로토콜(TCP, UDP)에 의해 이용

-ICMP 메세지는 사용자 프로세스에게 되돌려 주는 에러 메세지 생성

-ICMP 메세지는 IP 데이터 그램으로 전송

-IP Scan, Ping of Death(DOS공격)에 이용


*Ping of Death(DOS공격)

예전에는 가능했던공격. 많은 양을 보내 CPU 과부하시킨다

그러나 요즘에는 과부하가 되기전에 네트워크 선로가 다차서 다른 사용자가 네트워크가 안될 수도 있다.



IP헤더 

ICMP 메세지 

<----------------------------------------------IP 데이터 그램-------------------------------------------------->


8. TCP

3-way handshaking(세션 생성)

*netstat에 표시


Listening : 서버가 특정 클라이언트에 대해서 듣고 있다는 표시

Established : 현재 연결중인 상태. 3-way handshaking이 끝나고 난 다음 상태이다.

Wait : 대기중인 상태

-세션의 갯수가 많을수록 과부하가 걸린다.



Source port

destination port 

 sequence number

acknowledgement number 

 data offset

reserved 

URG 

ACK 

PSH 

RST 

SYN 

FIN 

 windows size

 checksum

urgent pointer 

options 

padding 

data 

-source port : 세그먼트를 전송하는 호스트에게 있는 프로그램의 포트 번호

-destination port : 수신자 호스트 상에서 수행되는 프로그램의 포트번호

-sequence number : 신뢰성 있는 연결을 보장하기 위한 번호

   서로 다른 ISN(Initial Sequence Number)을 생성하여 사용

-ACK : 응답

-PSH : 우선 처리 요청(4계층 TCP -> 7계층 응용)(ex>토렌트)

-RST : 초기화, 강제종료

-SYN : 응답 요청

-FIN : 연결 종료 요청

-checksum : IP헤더에 오류가 있는지 검사

-data : 실질적인 데이터


*포트

-포트가 있는 이유 : 서비스 별로 연결 방식이 다른데 통합하게 디면 비동기화 통신 방식이 형성되기 때문에 속도가 느려진다

   즉, 서비스를 원할하게 하기 위함.

-출발지 포트는 "랜덤"하게 선정되어 나갈때 마다 달라지지만 목적지 포트는 서비스별로 정해져있다.

-서비스 포트는 규약같은 것이기 때문에 거의 바뀌지 않는다.


*TCP(연결할때까지만 사용) ----------> HTTP,SSH,TELNET(응용프로토콜로 바뀜)


9.UDP

-TCP와 달리 handshaking과정이 없다

-비신뢰성 연결이다.(NO reliable data transfer)

-흐름제어를 하지 않는다(No Flow Control)

-TCP에 비해 간단한 전송이 이루어진다(No Congestion Control)

-신뢰성 검사를 하지않고 빠른 전송이 필요할때 사용


10.알아야될 포트

포트번호 

서비스  

서비스 내용 

20/21   (TCP) 

 FTP(-data)

FTP연결 : 21 data전송 : 20 

FTP 연결 시 인증과 컨트롤을 위한 포트 

22 (TCP) 

SSH 

패킷이 암호화되어 전송

Telnet과 같은 비 암호화 프로그램을 대체 

23 (TCP) 

TELNET 

Telnet 서비스로서 원격지의 서버의 실행 창을 얻어낸다. 

25 (TCP) 

SMTP 

메일을 보낼 때 사용하는 서비스

(잘 사용하지 않는다) 

53 (UDP) 

DNS 

Domain Name Service 이름을 해석하는데 사용하는 명령어 

80 (TCP) 

HTTP 

Hyper Text Transfer Protocol 웹 서비스 

*Telnet/FTP : 연결 시 주고 받는 패킷이 암호화 되지않아서 노출되기 쉽고 노출된 패킷으로 복구도 가능하다.

*SSH/SFTP : Telnet/FTP의 암호화되지 않는 단점을 보안한 응용 프로그램으로서 openssl 사용한다


11.트래픽 분류

-유니캐스트(Unicast) : 다른 클라이언트와 1:1 통신


-멀티캐스트 : 특정 그룹과 통신(1:다수)

-브로드캐스트 : 네트워크 내 전체 사용자에게 전송(x.x.x.255 이용)


'i2sec > Network hacking' 카테고리의 다른 글

TCP/IP  (0) 2014.04.25
Network + OSI 7 Layer  (0) 2014.04.25
정보통신  (0) 2014.04.25
네트워크 해킹 시작..  (0) 2014.04.23