본문 바로가기
카테고리 없음

리눅스마스터 1급 기출: 챕터 3

by 주황딱지 2024. 8. 26.

네트워크 관리

웹 관련 서비스

웹의 개요

웹: 인터넷으로 상호연결되어 문서와 정보를 공유하는 서비스

웹 브라우저를 사용/ 하이퍼 텍스트 형식의 웹 문서 탐색/ 하이퍼링크를 참조

하이퍼 텍스트: http, html

하이퍼 링크; URL

 

웹 문서(HTML)

HTML은 W3C에서 주관하여 관리한다.

정적 HTML 문서: .html 확장자

동적 문서; .php, .jsp, .asp 확장자

 

(23, )

서버

클라이언트의 요청에 따라 웹 문서를 전달하는 서비스 프로그램

Apache: 오픈소스 웹 서버

IIS: 마이크로소프트 제공 웹 서버, ASP지원, GUI 기반 관리 콘솔 이용

Ngis: 비동기 이벤트 방식, 로드 밸런스, HTTP 캐시, 리버스 프록시 기능 제공

GWS: 구글 웹서버

 

HTTP 프로토콜

웹 브라우저와 웹 서버가 상호 통신하는데 사용하는 프로토콜, 데이터 요청 및 전송하기 위한 표준 규약 

 

(22)

아파치(APACHE) 웹 서버

오픈소스로 공개되는 대표적인 웹서버/ MPM지원, 프로세스와 쓰레드를 아용해 처리 / prefork와 worker 두 방식으로 클라이언트의 요청을 자식 프로세스들에게 제공

prefork: 하나의 프로세스가 하나의 쓰레드 보유/ 프로세스를 복제후 요청 처리/ 쓰레드간 메모리 공유 x / 1024의 자식프로세스 사용

worker: 프로세스당 여러 쓰레드를 갖고 각 쓰레드가 클라이언트의 요청을 처리/ 초기에 구동할 프로세스의 수를 지정/ 프로세스당 최대 64개의 쓰레드를 가짐, 초과시 새로운 프로세스 생성/ 동접자수가 많은 사이트에 적합 

 

아파치 소스코드:

--prefix=/usr/local/apache: 설치과정중 파일 설치 경로 지정

 

 

(22,)

PHP

웹 서비스의 로직을 구현하고 동적 생성하는 스크립트 언어

localhost/phpinfo.php: 자세한 정보 출력

테스트: phpinfo()

 

(22,)

MySQL

관계형 데이터베이스 관리시스템 / 다양한 프로그래밍 언어를 위한 인터페이스 제공, php-mysql 패키지를 통해 PHP와 연동 가능/ MySQL은 TCP 3306번호로 통신, PHP는 /tmp/mysql.sock파일을 소켓으로 이용해 접속

기본관리 데이터 베이스인 mysql생성 과정: ./mysqld

 

웹 관련 서비스 컴파일 및 설치 시 고려사항

su명령어 사용. 아파치 웹 서버 설치: httpd -v, rpm -qa | grep httpd로 확인 가능

 

 

(22, 23)

아파치 웹 서버의 구조와 세부 설정

 

1. 아파치 웹 서버의 주요 디렉토리

/usr/local/apache에 관련 파일이 설치됨

주요 디렉토리:

 

2. 아파치 웹서버 실행 파일 목록

/usr/bin 혹은 /usr/sbin에 관련 실행 파일 저장됨.

주요 실행 파일:

 

 

3. 아파치 웹서버 환경 설정 파일/etc/httpd/conf/httpd.conf 파일을 기본으로 사용아파치 웹서버 주요 설정 파일:

 

httpd.conf를 이용한 아파치 웹서버의 기본 설정:

DocumentRoot "/usr/local/apache/htdocs" 아파치 웹 서버 환경 설정 파일에서 웹 문서가 저장되는 위치를 확인하는 과정

 

ServerAdmin: 에러발생시 표시되는 질의를 실행하는 이메일 주소 표시ServerName: 도메인명과 포트 번호 설정DirectoryIndex: 파일 접근시 기본으로 반환하는 파일을 지정ServerRoot: Apache가 설치되어있는 디렉토리

 


인증 관련 서비스

리눅스 인증의 개요

인증(authentication): 시스템을 사용하는 클라이언트가 등록된 사용자인지 확인

인가(authorization): 인가된 클라이언트에게 권한을 부여하는 것

인증방법: /etc/passwd, /etc/shadow에 등록 후, 등록된 정보와 로그인 정보와 비교

 

NIS(Network Information Service):

sun사가 개발한 서비스/ 호스트, 사용자 명, 사용자 함호등을 검색하고 관리함/ RPC(Remote porcedure call)사용

NIS서버에 등록된 사용자, 그룹 정보등을 네트워크를 이용해 다른 시스템에게 제공하여 여러 호스트들이 동일한 계정 정보 사용

가능/ telnet, samba, ssh

 

(22, 23)

LDAP(Lightweight Directory Access Protocol):

디렉토리 서비스를 조회하고 수정하는 TCP 기반 응용 프로토콜/ X.500DAP 기반/, 경량화,엔트리 트리 구조

RDBMS에 비해 빠른 검색 속도, 자주 변경시 불리

속성:

  • c: country
  • st: state
  • l: local city
  • street: 도로명
  • dn: 조직 내  고유 식별자
  • cn: 전체 이름
  • sn: 성
  • dc: 도메인 네임 요소
  • givenName: 이름

 

 

 

 

NIS 서비스 이용하기

(22, 23)

1.NIS 서버 설치와 구성을 위한 사전 작업

NIS는 RPC를 이용하므로 'systemctl start rpcbind' 명령으로 RPC데몬 구동 / 부팅 시 항상 실행: system enable rpcbind 

 

2. NIS 서버 설치

yum -y install ypserv 명령으로 서비스 파일도 설치

서비스 파일:

  • ypserv.service: 메인 데몬 구동
  • yppasswdd.service: 사용자 패스워드 관리
  • ypxfrd.service: 서버와 클라이언트 간의 매핑 속도 높임

3. NIS 도메인명 설정

nisdomainname: 도메인명 설정, 도메인명 확인

 

(22)

4, NIS 정보 갱신 및 적용

/var/yp 디렉토리로 이동 후 make 실행, 아니면 make -c /var/yp

/var/yp: 기본 디렉토리

 

NIS 클라이언트 설치와 구성

(23, )

1. NIS 클라이언트 설치

ypbind와 yp-tools 패키지 설치

ypbind: 바인드 정보 관리

yp-tools: NIS 서버와 클라이언트 연결

authconfig 명령을 이용한 클라이언트 설정

SSH를 이용해 client 호스트에 로그온 후 등록

 

(22, 23)

2. NIS 주요 명령어

nisdomainname: 도메인 이름 설정, 설정한 이름 표시

ypwhich: NIS로 로그인한 후, NIS 서버 조회 / -m옵션으로 맵 정보 출력

ypcat: NIS 서버 구성파일 내용 확인

yptest: NIS 클라이언트에서 동작 및 설정 확인, 도메인명, 맵파일 목록, 사용자 계정 등 정보 출력

yppasswd: NIS 서버에 등록된 사용자의 비번 변경

ypchsh: NIS 서버에 등록된 쉘 변경

ypchfn: NIS 서버에 등록된 사용자 정보 변경


파일 관련 서비스

삼바 서비스

삼바는 GPL 기반 소프트웨어로 리눅스와 윈도우 간 디렉토리, 파일, 프린터, 등을 공유하는데 사용한다.

TCP/IP 기반으로 동작하는 SMB 프로토콜 이용

삼바를 사용하면 상대 호스트의 IP주소 대신 컴퓨터 이름을 사용해 접속할 수 있다: WINS

 

삼바 서버의 구성 요소

nmbd: UDP 137,138포트 이용해 컴퓨터를 브로드캐스팅 방식으로 검색 후, TCP 139번 포트를 이용해 컴퓨터 이름으로 접속/ WINS를 위한 데몬

smbd: 삼바 프로토콜의 주요 기능 담당/ TCP 445번 포트 이용/ IP주소를 이용한 직접 접속해 삼바 서비스 이용 가능

 

삼바 서비스 설치와 구성

 

1. 삼바 관련 패키지 설치

yum -y install 패키지 이름

패키지 이름:

  • samba: 삼바 데몬, 관련 라이브러리 및 스크립트 포함하는 핵심 패키지
  • samba-common: 삼바 서버 및 클라이언트에서 공통으로 사용하는 설정 및 명령어를 포함한다.
  • samba-client: 삼바 클라이언트와 관련 명령어를 포함한다.

2. 삼바 서비스 실행

systemctl -l status <service> 명령어 형식 이용

 

(22, 23)

3. smb.conf를 이용한 삼바 서비스 설정

Global section과 Share section 영역으로 구분 []기호로 이용해 세부 섹션 구성

 

Global section

 

 

 

Share section

path: 공유 디렉토리 경로를 지정

host allow: 특정 호스트 접근 허용

workgroup: 공유 그룹명

 

4. 삼바를 이용할 사용자 등록과 패스워드 설정

/etc/samba/smbusers 설정 파일을 이용해 리눅스 계정과 삼바 이용자명 매핑

smbpasswd [option] [사용자 계정]

option:

  • -a: 삼바 사용자 계정 추가 후 패스워드 설정
  • -x: 삼바 사용자 계정 제거
  • -d: 삼바 사용자 계정 비활성화
  • -e: 삼바 사용자 계정 활성화
  • -n: 패스워드 제거, 패스워드 없이 로그인 가능

pdbeit [option] [사용자 계정] : 삼바 사용자 목록 및 세부 내용 확인 가능

option:

  • -L: 사용자 목록 출력
  • -v: 사세한 정보 출력
  • -u: 사용자 이름 지정
  • -a: 삼바 사용자 계정 추가 후 패스워드 설정
  • -r: 삼바 사용자 계정 변경
  • -x: 삼바 사용자 계정 제거

 

삼바 서비스 이용하기

(23)

1. 삼바 서버에 접속

smbclient명령어로 공유 디렉토리 정보를 확인 후 서버에 접속

smbclient [option] [hostname] /접속 후 '?' 명령

option: 

  • -L: 공유 디렉토리 정보 표시
  • -M: ctrl+d와 함께 사용해 메시지 전송
  • -U: 사용자 이름 지정
  • -p: TCP 포트 번호 지정

호스트 공유 폴더 이름: //172.30.1.12/[공유폴더]/ 혹은 \\\\172.30.1.12\\[공유폴더]\\로 지정

 

2. SMB 파일 시스템 마운트

mount 명령을 이용해 삼바 공유 디렉토리를 로컬 시스템에 마운트 해 로컬처럼 사용 가능

 

3. 삼바 관련 기타 명령어

smbstatus: 현재 접속 정보 확인

testparm: 삼바의 설정 정보를 확인

nmblookup: 삼바 서버의 NetBIOS이름으로 IP주소 조회

smbcontrol: 삼바 데몬에게 메시지를 보내 제어

 

 

NFS 서비스

NFS는 TCP/IP를 이영해 원격 호스트의 파일 시스템을 로컬호스트에 있는것처럼 마운트하여 사용하는 서비스다.

RPC를 이용해 NFS관련 명령어를 전달하므로 rpcbind 데몬이 필요하다.

주요 패키지

rpcbind: rpcbind, rpcinfo등의 명령어를 포함해 RPC서비스를 위해 사용 

nfs-utils: NFS관련 데몬 및 명령어 포함

 

NFS 서비스 설치와 구성

(22, 23)

1. NFS 서버 설정

/etc/exports파일을 이용해 NFS 서비스 설정

옵션:

  • ro: 읽기 전용
  • rw: 읽기 및 쓰기
  • asysnc: 데이터 변경을 기록할 때 비동기적으로 처리
  • sysnc: 기본 설정값, 동기적으로 처리
  • secure: 기본 설정값, 포트번호 1024 이하의 요청만 허가
  • no_root_squash: root 권한 접근 허용
  • root_squash: root 권한 접근 거부
  • all_squash: 모든 사용자 권한을 nobody로 매핑 

2. NFS 관련 데몬 실행

rpcbind와 nfs데몬을 실행하고 확인

 

3. NFS 서비스 이용하기

mount -t nfs [NFS 서버] : [대상 디렉토리] [마운트 디렉토리]

 

/etc/fstab을 이용한 마운트

예시: 192.168.223/var/user-nfs  /var/user-local  nfs  timeo=14,soft,retrans=3  0  0

주요 설정 옵션: 위의 예시를 기준  a b c d e f

a: 192.168.223/var/user-nfs =파일 시스템 장치 명: 파티션 혹은 장치의 위치 지정

b: /var/user-local =마운트 포인트: 어떤 디렉토리로 연결할 지 지정 

c: nfs =마운트 시스템 종류: nfs, NTFS, ext3, iso9660 등을 지정

d: timeo=14,soft,retrans=3 =마운트 옵션: 

  • timeo: 타임아웃 후 첫번째 재전송 요구 시간 지정
  • retrans: 타임아웃 후 재전송 요청 회수 지정
  • soft: retrans에서 설정한 값 만큼 요청
  • hard: 무한 반복 요청
  • auto: 부팅 시 자동 마운트로 지정
  • re, nouser, exec, Set-UID, quota 추가 지정 가능

e: 0= 덤프: 백업 여부 지정, 0:불가, 1:가능

f: 0= 무결성 검사: fsck에 의한 무결성 검사 우선순위를 지정(0은 하지 않음 처리)

 

(22, 23)

4. NFS 기타 명령어

rpcinfo: 메모리에 로딩된 RPC기반 서비스 테이블을 관리하는 명령어

exportfs: NFS 서버의 export된 디렉토리 정보, 즉 공유 목록 관리하는 명령어

showmount: export된 정보를 확인하는 명령어

nfsstat: NFS 및 RPC연결에 대한 메모리 통계 정보를 표시하는 명령어

 

FTP 서비스

FTP는 TCP/IP를 이용해 FTP서버와 클라이언트 간 파일을 전송하기 위한 프로토콜/ 등록된 사용자만 접속 가능하나 익명도 지원하긴 함

vsftpd: 가장 대표적인 FTP프로그램으로 보안을 중요시하며 권한에 로그인 제한

 

(22, 23)

FTP 서버 설정

/etc/vsftpd/vsftpd.conf 파일을 이용해 vsfpt의 동작환경 설정

anonymous_enable=Yes: 익명 사용자 접속 허용

local_enable= Yes: 로컬,일반 사용자 접근 허용


메일 관련 서비스

메일 서비스는 메일을 인터넷을 통해 주고 받는다.

 

(22)

메일 서비스 관련 프로토콜

SMTP: 메일 서버간 송수신 뿐 아니라 메일 클라이언트에서 서버로 보낼때 사용/ TCP 25

POP/POP3: 메일 서버에 도착한 메일을 수신하는 프로토콜로, 메일을 가져오면 서버에서 삭제한다/ TCP 110

IMAP: 메일 서버에 도착한 메일을 수신하는 프로토콜로, 메일을 서버에 남겨돴다 나중에 삭제한다/ TCP 143

 

(22, 23)

메일 서비스 관련 프로그램

MTA(Transfer): SMTP 프로토콜 이용/ sendmail, qmail, postfix 

MDA(Delivery): 대리인 역할을 해 가져오거나 전달한다/ procmail

MUA(User): 사용자(클라이언트)가 메일을 수신 발신하는 프로그램/ kmail, evolution, mutt

dovecot: IMAP, POP3서버를 제공하고 손쉽게 관리한다.

 

메일 관련 서비스 사용하기

(22, 23)

1. sendmail의 주요 설정 파일

/etc/mail로 시작함

 

  • /etc/mail/sendmail.cf: 기본 설정 파일
  • /etc/mail/sendmail.mc: 설정을 편리하게 관리하는 보조 파일/ m4유틸리티를 m4 sendmail.mc > sendmail.cf를 생성
  • /etc/mail/aliases: 메일 별칭 또는 특정 계정으로 수신한 이메일을 다른 계정으로 전달함, 여러사람에게 전달: include:[파일이름] / 변경된 내용 적용: newaliases
  • /etc/mail/access: 메일 서버 접근 제어/ [정책대상] [정책]: [정책대상] = 도메인명, IP, 메일 주소 . [정책]: RELAY, DISCARD, REJECT, OK
  • /etc/mail/virtusertable: 가상 메일 계정 전달: ceo@linux.com ihd -> ceo@windows.com kait
  • /etc/mail/local-host-names: 메일 수신자를 설정 후 다시 시작하여 적용/ 한줄에 도메인 하니씩 가입

2. /etc/mail/sendmail.cf 파일 설정

 

3, sendmail 관련 주요 명령어

 

4. telnet을 이용한 메일 발송


DNS관리 서비스 

DNS서비스: 도메인 이름과 IP주소를 상호 변환하는 서비스

DNS 서버: 도메인 관리, 클리이언트 요청에 따라 도메인명과 ip주소를 변환해 응답함 / TCP/53, UDP/53 포트 이용

DNS 서버의 종류: 

  • Primary name server: Master server라고 부르고, 필수항목이다.
  • Secodary name server: Slave sercer라고도 하고, Primary server의 zone파일을 백업한다/ 문제가 생길경우 보조 DNS로 사용가능
  • Caching name server: 도메인 관리 없이 resolving역할 만 수행한다. 속도를 향상시킴

DNS 서비스 사용하기

 

(22, 23)

1. DNS 관련 패키지: bind, bind-libs, bind-utils

데몬: named

서버 프로그램: Bind(ISC가 만듦)

 

(23)

2./etc.named.conf 파일 설정

 

주석: /* */, //, #등 모두 사용 가능

구문: options, acl, logging, zone/ 각 구문은 {}로 둘러져 있고 끝날 때 ;를 붙인다.

 

option: 

  • directory: zone파일의 저장 디렉토리 저장/ 반드시 있어야함
  • dump-file: 정보 갱신시 저장 파일로 사용하는 파일 이름 설정
  • forward: forwarders옵션과 함께 사용/ only 또는 first값을 가진다./ only: 도메인 주소에 대한 질의를 다른서버로 넘긴다. /first: 다른서버에서 응답이 없으면 자신이 응답
  • forwarders: forward를 처리할 서버 지정, 세미콜론으로 구분
  • allow-query: 네임 서버에 질의할 호스트 지정
  • allow-transfer: zone파일 내용을 복사할 대상 제한
  • recursion: 하위 도메인 검색 허용 여부 지정

logging: bind 네임 서버의 로깅 방식 설정

 

(22)

acl: 여러 호스트들을 하나의 이름으로 지정해 options 구분의 allow옵션을 사용할 수 있게 된다. 

acl "별명" {192.168.2.23; 192.168.4/24};

 

zone: 도메인을 관리하기 위한 데이터 파일인 zone파일 지정

hint: 루트 도메인 지정

zone ".": 루트 도메인

 

(22, 23)

zone 파일: 도메인 이름과 IP주소혹은 리소스간 매핑을 포함하고 리소스 레코드로 구성된다. / ;를 이용해 주석가능

리버스 존 파일을 이용해 ip주소에 대한 도메인 정보 조회 제공

리버스 존 설정: Ip주소 마지막을 제외하고 (10.0.2.15)일 경우 2.0.10.in-addr.arpa 형식을 따른다.

zone 파일 구성항목:

  • $TTL
  • SOA
  • 개별 도메인: [도메인 명] [IN] [CLASS] [Record type] [우선순위] [도메인] . (.있어야함)

zone 파일의 주요 레코드 타입:

  • A: IPv4주소
  • AAAA: IPv6주소
  • CNAME: 도메인 이름 별칭
  • MX: 메일 서버
  • NS: 공식 네임 서버
  • PTR: IP주소를 기반으로 도메인 이름 변환(리버스 존 파일에서만 사용됨)
  • SOA: DNS 핵심 정보 지정
  • TXT: 텍스트 문자열

 


가상화 관리 서비스

(22, 23)

가상화 특징:

  • 공유(sharing): 다수의 가상 자원들이 하나의 동일한 물리적 자원과 연결됨
  • 프로비저닝(provisioning): 사용자의 요구사항에 맞게 할당, 배치, 배포
  • 단일화(agregation): 여러개의 물리적 자원을 논리적으로 통합해 단순화시킴
  • 에뮬레이션(emulation): 물리적인 특징이 다른 장치를 범용적인 모델로 인식해 사용하도록 지원
  • 절연(insulation):  가사와 서비스에 문제 발생시 다른 서비스로 전이되지 않게 함

하드웨어 레벨 가상화 방식: VMM(Virtual Machine Monitor)이 하드웨어를 가상머신의 하드웨어와 매핑후 자원사용을 관리함

전가상화(Full Virtualization): CPU의 물리적 가상화 지원 기능을 이용해 하드웨어를 가상화함, OS를 수정없이 사용 가능

반가상화(Para Virtualization): 하이퍼 바이저가 하드웨어 사용을 통제= 높은 성능, OS수정 필요

 

(22, 23)

호스트 기반 가상화 방식: 호스트 운영체제에 VMM을 설치하고 가상머신을 생성한다.

  • KVM: CPU를 전가상화하는 기술/ 오버헤더 거의 없음/ 에뮬레이터인 QEMU를 이용해 다중 가상머신 운영
  • Xen: 게스트 운영체제의 커널 일부분을 수정해 사용/ CPU 반가상화로 서버 대비 효유성이 가장 좋음
  • VirtualBox: 오라클이 주도해 배포하는 소프트웨어
  • Docker: 프로그램과 라이브러리만 이미지로 만들어 프로세스처럼 동작시키는 경향화된 가상화 기술
  • Kubernetes: 구글이 만든 컨테이너 관리 프로그램

(23)

가상화 지원 소프트웨어의 디스크 이미지 형식

  • VDI: 버츄얼 박스 전용
  • VHD: 버츄얼박스, Hyper-V, Xen에서 사용
  • VMDK: 버츄얼박수, VMware Player에서 사용
  • QCOW2: KVM을 이용해 가상머신 생성시 기본으로 적용

(22, 23)

가상화 관련 명령어:

  • vit-top: top와 유사한 형식으로 출력/ 가상 머신만을 대상으로 CPU자원 상태 모니터링 가능
  • virsh: 텍스트 기반 콘솔 환경에서 가상머신을 관리해주는 도구
  • virt-manager: 가상머신, 호스트 모두의 CPU 사용량을 모니터링하는 GUI 기반 도구
  • libvirt: API, 데몬, 라이브러리, 관리 툴들의 모음
  • libvirtd: libvirt관리 시스템 데몬/ 원격 도메인의 명령을 전달
  • xm: Xen 관리 명령어

기타 서비스

xinetd

 

(22, 23)

TCP Wrapper

최근에는 standalone 데몬도 사용 가능: ldd명령으로 실행 데몬 라이브러리 확인해서 libwrapso 파일 참조시 사용가능

SSH: 접근제어 가능 서비스

 

(22, 23)

DHCP: 동적 할당, 자동으로 주소를 할당시키는 서비스 /

BOOTP: 하드디스크가 없는 호스트에게 IP를 부여하는 프로토콜

 

dhcpd.conf 설정 항목

range: 클라이언트에 할당할 범위 지정

option domain-name: 도메인 이름 지정

option routers: 게이트웨이 주소 지정

 

 

 

(22, 23)

VNC: 다른 컴퓨터에서 가상머신으로 동작하는 시스템에 접속해 사용하는 기능

 

(22, 23)

 NTP: 컴퓨터간 시간을동기화하는 NTP 프로토콜을 이용해 서버와 시간을 동기화한다.

ntpdate: 원격서버와 시간을 동기화함

ntpq: NTP query 명령어/ 서버상태를 출력한다. 

server: 기준 서버 지정

keys: 키 지정

dreftfile: 데몬에 의ㅐ 자동으로 생성되는 위치 지정/ 시간을 정확히 유지하는 역할

 

 

(22)

PROXY: 클라이언트와 서버 사이에 위치해 요청과 응답 과정에서 데이터를 중계하는 역할을 담당한다./ 접근 제어

SQUID: 리눅스에서 사용하는 일반적인 프록시 서버 

네트워크 보안

네트워크 침해 유형 및 특징

1. 스니핑 공격:

한 서브 네트워크 내에서 전송되는 패킷의 내용을 임의로 확인하는 공격

 

네트워크 무작위 모드와 TCP dump:

네트워크 설정을 무작위 모드로 변경 후 TCP dump 이용 시, 네트워크 내의 모든 패킷을 확인 가능

ifconfig [network interface] promisc 사용 시 무작위 모드로 변경됨 / ifconfig [network interface] -promisc: 일반 모드로 전환

tcpdump: 네트워크 패킷 확인 명령어 

 

대응방안: SSL같은 암호화 통신 방식을 이용

 

2. 스푸핑 공격:

네트워크 서비스 또는 패킷 정보를 임의로 변경하여 공격에 사용

IP주소, DNS주소, MAC주소 등의 정보를 변조하여 공격 탐지 및 역추적을 어렵게 한다.

 

IP spoofing: IP의 구거적 취약점 악용하여 IP기반 인증 서비스 무력화

대응 방안: IP기반 인증 최소화, TCP 번호를 랜덤하게 구성한다.

 

ARP spoofing: IP주소를 MAC주소로 변환하는 ARP프로토콜의 취약점을 악용

IP주소와 MAC주소의 매핑 정보를 네트워크에 브로드캐스트해서 대상 호스트들의 ARP테이블을 변조되도록 함

대응방안: arp -s [IP] [MAC] 명령어로 정적 ARP매핑 정보를 둥록

 

DNS spoofing: DNS 요청에 위조된 정보를 응답 패킷으로 보내는 공격

패킷 내용에 IP주소를 공격자의 악의적인 IP로 변경하여 접속시킴

 

(22, 23)

3. DOS(Denial of service), DDOS(Distributed DOS)공격:

DOS 공격은 공격 대상의 시스템 및 네트워크 취약점 등을 공격하여 과부하를 발생시켜 정상적인 서비스를 불가하게 하는 가용성 침해 공격이다.

DOS 공격유형:

  • 파괴 공격: 시스템의 한계용량을 초과하는 부하를 발생시켜 장치, 데이터를 파괴한다.
  • 시스템 자원 고갈 공격: 반복적인 프로세스 생성, 메모리 할당, 데이터 저장등을 통해 CPU, 메모리, 디스크등의 자원을 고갈시킨다. / i-node고갈: 파일시스템 처리
  • 네트워크 자원 고갈 공격: 대용량의 과도한 패킷을 유발하여 네트워크 대역폭을 고갈시킨다.

세부 기법:

  • ping of death: ICMP Echo 패킷의 크기(64k)보다 매우 크게 전송하여 시스템에 문제를 일으킨다. 전송된 데이터는 라우팅되는 동안 세분화 되어 전송 및 처리에 과부하를 발생시킨다.
  • teardrop attack: IP fragementation에 따라 패킷을 재조합할 때 오프셋을 임의로 변조시켜 재조립 과정에서 과부하 및 crash를 발생시킨다.
  • TCP SYN flooding: 3way handshake방식을 악용한 공격. 공격자는 TCP연결시 SYN flag를 대량으로 발송하고 SYN-ACK의 최종응답인 ACK를 전송하지 않는다. TCP연결을 처리하기 위해 계속 자원을 할당해 정상적인 서비스가 불가하다.
  • UDP flooding: 대량의 UDP패킷을 전송하여 공격 대상의 자원을 소모시키는 공격. 공격 받은 시스템은 UDP패킷을 처리하기 위해 계속 서비스 및 포트를 점검하게 된다. 공격시 IP주소를 스푸핑하여 응답은 공격자가 받지 않는다.
  • Land attack: IP패킷을 보낼 때 발신자, 수신자 IP를 공격 대상의 IP로하여 문제를 일으킨다.
  • Smurf attack: 공격자가 공격 대상 IP주소로 위장하고 ICMP request패킷을 브로드캐스트를 통해 다수의 시스템에 전송한다. 수신한 다수의 시스템은 ICMP Echo reply를 공격 대상 IP로 보내면서 부하를 발생시킨다.
  • Mail bomb: 동일한 이메일 주소를 대상으로 다량의 메일을 동시에 발송시킨다. 이 공격은 네트워크 자원과 데이터 저장을 위한 디스크 자원도 고갈시킨다.
  • NTP 증폭 공격: NTP 서비스의 monlist방식을 악용한 DDOS 공격이다. 공격자의 적은 공격 패킷이 증폭되어 대상에 전송시켜 피해를 증가시킨다.

3.5. DDOS:

디도스 공격은 공격을 위한 agent를 분산된 시스템에 배치한 후 DoS공격을 동시 실행시키는 공격 기법이다.

agent에 명령을 내리는 명령서버를 C&C서버라 한다.

agent가 설치되어 DDoS 공격에 사용되는 호스트를 좀비PC라 하며 좀비PC의 네트워킹을 botnet이라 한다.

 

공격 도구:

  • Stacheldraht: 리눅스 시스템용 디도스 공격의 agent역할을  하는 악성 코드로 smurf 공격에 사용될 수 있다. 통신시 암호화 기능을 지원하며 공격자 확인을 하는 패스워드를 지정할 수 있다.
  • TFN: 공격자 시스템과 마스터 시스템간 연결이 평문으로 되어있고, UDP,TCP flooding, ICMP 브로드캐스트 공격이 가능하다.
  • TKN 2K: TFN의 발전된 형태로 UDP,TCP,ICMP를 복합적으로 사용하고 포트도 임의 결정되며 암호화를 사용한다, 지정된 TCP포트에 백도어를 실행할 수 있다.
  • Trinoo: UDP flooding 디도스 공격을 하는 통합 도구

대응 방안:

  • 침입 차단 시스템으로 패킷 및 포트 필터링을 수행
  • 침입 탐지 시스템으로 공격 탐지
  • 로드 밸런싱을 통한 대용량 트래픽 분산 처리
  • 시스템 최신 패치
  • 불필요한 서비스 제거 및 포트 닫기

4. 무작위 공격 도구(Brute force attack):

사전 파일을 기반으로 임의의 정보를 무작위로 대입해 인증을 우회하는 공격 기법이다.

root, administrator와 같은 고정 아이드를 사용할 경우 무작위 패스워드 입력에 보안이 취약할 수 있다.

 

공격 도구:  john the ripper

대응 방안: 입력 회수 제한, 해시, salt

 

5. 기타 해킹 프로그램 및 악성 코드:

prorat: 해킹 대상 시스템에 원격 접속 및 제어할 수 있는 프로그램

Netbus: 네트워크를 통해 윈도우 컴퓨터 시스템을 원격 제어하는 소프트웨어

Back orifice: 윈도우의 TCP/IP 기능을 이용해 시스템끼리 원격 제어

랜섬웨어: 시스템 파일을 암호화하여 금전을 요구함

트로이 목마: 악성코드를 담고있는 정상적인 프로그램으로 가장한 프로그램

웜바이러스: 스스로 실행되는 악성 소프트웨어, 자가 복제에 다른 시스템에 전파됨.


대비 및 대처방안

보안 솔루션을 이용한 대비 및 대처

 

1. 방화벽

방화벽은 외부로부터 들어오는 악의적인 트래픽을 막고, 허가된 트래픽만 내부 네트워크로 유입하도록 통제하는 하드웨어, 소프트웨어 이다.

방화벽은 패킷도 룰에 따라 통제 가능, 접근제어, 로깅 및 감사 추적, 사용자 및 호스트 인증 기능 제공

 

방화벽의 종류:

 

 

2. 침입 탐지 시스템(IDS: intrusion detection system)

공격을 실시간으로 탐지하는 보안 시스템

IDS 기능: 데이터 수집, 정보 분석, 침입 탐지, 추적 및 보고

IDS 유형: 호스트기반(HIDS), 네트워크기반(NIDS)

 

오용 탐지: 알려진 공격패턴과 비교해 탐지, 알려지지 않은 공격에 취약

이상 탐지: 이상한 패턴일 경우 공격으로 판단, 정상적인 패턴을 공격으로 인식할 경우도 있음

 

3. 침입 방지 시스템(IPS: intrusion prevention system)

IPS는 침입 탐지의 수동적인 방어 시스템에서 더 발전해 능동적인 방어와 차단등 사전 공격대응을 중심으로한 보안 시스템

 

(23)

4. Snort

리눅스에서 사용하는 공개형 IDS 프로그램이다.

Snort 주요기능:

  • 패킷 스니퍼: 네트워크 패킷을 읽고 표시한다.
  • 패킷 로거: 모니터링한 패킷을 저장 및 로그에 기록
  • 네트워크 IDS: 네트워크 패킷을 분석하여 공격 탐지 / Buffer overflow, Port scan등 다양한 공격 탐지

Snort Rule 설정

헤더와 룰 옵션으로 구분된다.

헤더: 

  • action: 동작 방식
  • protocol: 점검 대상 프로토콜
  • source IP/Port: 소스 IP 및 포트
  • direction: 패킷의 흐름 방향
  • dsetination IP/Port: 목표 IP 및 포트

룰 옵션:

  • General, Payload, non-payload, post-detection 4가지로 분류
  • 이중 Payload 탐지 룰 옵션을 주로 사용한다,

 

Suricata: OISF가 2010년에 개발한 공개형 IDS 및 IPS/ GPU 기반 가속화

 

5. iptables

리눅스의 방화벽이라고도 하며 패킷 필터링 정책을 사용해 특정 패킷을 분석하고 접근을 제어한다/ NAT에도 사용/ 넷필터 모듈이용해 네트워크 패킷을 필터링함

 

itables의 테이블 구조

 

(22, 23)

itables 사용법

itables [-t 테이블이름] [action] [체인이름] [match 규칙] [-j 타겟]

구성 항목:

  • -t: filter, nat, mangle, raw 중 하나를 이름으로 지정/ 기본은 filter= 생략가능
  • action: 체인을 대상으로 수행할 명령 지정
  • 체인이름: '-t 테이블 이름'으로 지정한 테이블의 체인을 지정 / 체인 이름은 대소문자를 구분
  • match 규칙: 패킷을 처리하기 위해 점검할 조건 지정
  • -j 타겟: 규칙을 만족할 경우 처리 

action 명령:

  • -N: 새로운 체인 생성
  • -X; INPUT, OUTPUT, FORWARD 제외한 체인 제거
  • -L: 체인 목록 표시
  • -F: 지정한 체인에 설정된 모든 정책 삭제
  • -C: 패킷 테스트
  • -P: 체인의 기본 정책 설정
  • -Z: 체인 내의 모든 규칙들과 패킷과 바이트 카운트를 0으로 설정

match 규칙:

  • -s: 출발 IP
  • -d: 도착 IP
  • !: 규칙 제외
  • -p: 프로토콜 설정
  • -i: 입력 네트워크 인터페이스 선택
  • -o: 출력 네트워크 인터페이스 선택
  • --sport: 소스 포트 설정
  • --dport: 타깃 포트 설정

nat 테이블: 사슬명

 

 

nftables: 대체 방화벽 소프트웨어

 

6. firewalld

systemctl stop firewalld: 방화벽 동작 중지

 

다음 중 웹클라이언트가 접근이 금지된 페이지를 요청했을 때 웹 서버에 기록되는 상태 코드 번호로 알맞은 것은? 403

 

     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형