시험 일정
시험 준비물
- 신분증
- 필기도구
- 수험표
※ 수험표는 시험일 기준 5일 전 출력 가능
시험 시간
- 입실 완료 시간 : 오후 1시 50분까지
- 시험 시간 : 오후 2시 ~ 오후 3시 40분 (총 100분)
- 신분증은 본인 책상 좌측 상단에 배치
- 시험시간 50분이 지나면 퇴실 가능
- 시험 도중 화장실 이용 불가
시험 과목
합격 기준
- 합계 60점 이상
- 과목당 점수의 40% 미만 과락
(1과목 : 8점 / 2과목 : 16점 / 3과목 : 16점 미만)
과목별 문제 수 및 문제당 배점
- 1과목 (리눅스 실무의 이해) : 20문제 * 1점 (총 20점)
- 2과목 (리눅스 시스템 관리) : 40문제 * 1점 (총 40점)
- 3과목 (네트워크 및 서비스의 활용) : 40문제 * 1점 (총 40점)
응시 비용 및 지역
※ 자격증 발급 수수료 : 5800원
* 정보이용료 별도: 신용카드/계좌이체 650원, 가상계좌입금 300원
응시 자격
- 1차 : 제한 없음
- 2차 : 1차 시험 합격자에 한해 성적 공개일 기준으로 2년 이내
www.ihd.or.kr/introducesubject1.do
공부한 책
- 정보처리기사도 이 문제집 다 풀고 합격해서 이기적으로 샀다.
- 오타가 많아서 별 1개 마이너스
- 2021년인데 아직도 2020년 시리즈밖에 없어서 최종 별 3.5개
나의 요점 정리
PAM(Pluggable Authentication Modules) : 어플과 서비스에 대한 중앙집중적, 동적인증 제공
- /etc/pam.d 디렉터리에 위치한 구성 파일 참조
- account : 해당 서비스에 대한 사용자의 접근 허용 여부 결정
- auth : 다른 인증 모듈과 연동
- required : 인증을 위해 반드시 이 모듈에 대한 점검 결과가 성공해야함을 명시
- session : 사용자가 인증받기 전후에 해야할 일 명시
last : 로그인, 로그아웃, 리부팅 이력을 확인 명령어
- /var/log/wtmp 참조
lastb : 로그인 실패 이력 확인 명령어
- /var/log/btmp 참조
sudo의 환경설정 파일 위치 : /etc/sudoers
/var/log/dmesg : 커널 부트 메시지 로그, 시스템 부팅할 때 생기는 로그 기록, (명령어 : dmesg)
/var/log/secure : telnet, ssh 접속에 대한 유저 로그인 기록
/var/log/lastlog : 사용자들의 마지막 로그인 정보 저장, (명령어 : lastlog)
HTTP 상태 코드
- 1XX : 조건부 응답
- 2XX : 성공
- 3XX : 리다이렉션
- 4XX : 요청 오류
- 5XX : 서버 오류
400 - Bad Request
401 - Unauthorized
402 - 결재 필요
403 - Forbidden
404 - Not Found
405 - Method Not Allowed
408 - Request Timeout
LDAP (Lightweight Directory Access Protocol)
- 디렉터리 서비스를 조회, 수정하는 TCP 기반 응용 프로토콜
- X.500 DAP 경량화 버전
- 트리 구조로 구성
LDAP 엔트리
- c : 국가이름
- st : 주 이름 (대한민국은 도)
- l : 도시 / 지역
- street : 도로명 주소
- dn : 조직 내 고유 식별자
- rdn : 상대적인 dn
- o : 조직명 / 회사명
- ou : 부서 이름
- cn : 전체 이름 (이름 + 성)
- sn : 성
- givenName : 이름
- dc : 도메인 네임 요소
- mail : 이메일 주소
NIS(Network Information System)
- Sun Micro 사의 클라이언트 서버 디렉터리 서비스 프로토콜
- RPC 기반
- 시스템의 중요한 파일의 정보를 네트워크 상에 있는 모든 호스트에 배포하는데 사용
- DB 접근 기능
- 사용자 인증 기능
- NFS와 연동하여 효율적인 네트워크 서버 환경 구축 가능
- 관련 서비스 : ssh, telnet, samba
/etc/yp.conf : ypbind의 환경설정 파일
/etc/networks : 네트워크 정보 설정 파일
/etc/ypserv.conf : ypserve를 위한 옵션 저장
/etc/sysconfig/network : NIS 도메인명을 설정하여 시스템 부팅 시 항상 적용되도록 수정 가능
※ nisdomainname : 일시적으로 NIS 도메인명 설정 (부팅 시 정보 삭제)
Samba
- GPL 기반 자유소프트웨어
- 리눅스와 윈도우 간 디렉터리 및 파일 공유 시 사용
- 2개의 데몬 사용 : smbd, nmbd
- smb.conf(환경설정 파일)은 global setting과 share definitions 영역으로 구분
SMB (Server Message Block) : Samba 표준 프로토콜
CIFS (Common Internet File System) : 네트워크를 위한 SMB 프로콜의 확장된 버전
testparm : smb.conf 파일 점검 명령어
smbclient : 윈도우 공유 폴더를 사용하기 위한 명령어
-L : 삼바 서버의 공유 디렉토리 정보 표시
-M : 메시지 전송
-U [사용자 이름] : 사용자 이름 지정
-p [TCP 포트] : 서버의 TCP 포트 번호 지정
smbpasswd : Samba 접근을 위한 계정 관리 명령어, 옵션 없이 사용 시 해당 계정의 비밀번호 변경
-a : 계정 추가
-d: 해당 계정은 사용하지 못하도록 설정
-e : 사용 중지된 계정을 다시 사용 가능하도록 설정
-x : 해당 계정 삭제
-n : 지정한 계정의 패스워드 삭제
pdbedit -l : Samba에 등록된 모든 계정 정보 출력
MTA (Mail Transfer Agent) : 메일 전송 프로그램
- sendmail, qmail, postfix 등이 포함
kmail : KDE용 이메일, GUI를 이용해 이메일 주고받음
가상화 기능
- 공유(sharing) : 여러 개의 가상 자원들이 하나의 동일한 물리적 자원과 연결
- 단일화(pooling) : 여러 개의 물리적 자원을 하나의 가상 자원으로 취급하여 단순하게 활용, 관리
- 애뮬레이션(emulation) : 물리적 자원에 없는 기능을 가상 자원에는 처음부터 있던 것처럼
- 절연(insulation) : 1개의 가상 자원이 장애가 생겨도 다른 가상 자원은 영향을 받지 않음, 물리 자원 교체 가능
전가상화
- 하드웨어 전체 가상화
- 게스트 OS 수정 없이 다양한 OS 지원
- CPU의 VT(Virtual Technology) 기술 사용 => 성능 저하 유발
반가상화
- 하드웨어 일부 가상화
- 게스트 OS 커널 일부 수정 필요
- 게스트 OS가 하이퍼바이저를 호출하여 하드웨어 제어
-- 하이퍼바이저 : 다수의 OS를 한개의 컴퓨터 시스템에서 가동 가능한 SW
Xen
- 1990년대 케임브리지 대학교에서 시작
- 오픈소스
- 하이퍼바이저 기반의 가상화 기술
- 리눅스, 윈도우, Solaris 등 지원
- 전가상화/반가상화 지원
- xm : 도메인 관리, 제어하는 명령어
KVM(Kernel-based Virtual Machine)
- 인텔-VT, AMD-V 기반 CPU 전가상화를 지원하는 기술
- 리눅스 커널 2.6.20부터 포함
- QEMU(반가상화 방식의 하이퍼바이저)를 이용한 다중 가상머신 운영
- CPU 반가상 기술은 지원하지 않지만, Disk I/O, 이더넷, 그래픽 등은 반가상화 지원
- /var/lib/libvirt/images : 게스트 OS의 가상화 디스크 이미지 저장 디렉터리
VirtualBox
- 오라클 주도 하에 개발 및 배포
- x86 기반 가상화
Docker
- 하이퍼바이저 사용하지 않음
- 게스트 OS 설치 안함
- 서버 운영에 필요한 프로그램, 라이브러리만 이미지로 만들어 프로세스처럼 동작시키는 경량화된 가상화 방식
하이퍼바이저를 통합 관리하는 플랫폼 : OpenStack, CloudStack, OpenNebula
CPU 가상화 지원 여부 확인 시 /proc/cpuinfo 파일 참조
virsh : 텍스트 기반 콘솔 환경에서 가상머신 관리 도구 / 시작, 생성, 재시작, 종료 등 기능 제공
xm : Xen 관리 명령어
virt-top : 가상화 현황을 top 처럼
virt-manager : GUI 기반 가상머신 관리 도구 / 시작, 종료, CPU 모니터링 등 기능 제공
libvirtd : 가상화 기술을 위한 데몬
VNC(Virtual Network Computing)
- 원격으로 다른 컴퓨터 제어
- 그래픽 데스크톱 공유 시스템
- 5900번 포트 사용
- vncpasswd : VNC 서버 패스워드 변경 명령어
- vncserver : VNC 서버 실행 명령어 (-kill : 종료 옵션)
- /etc/sysconfig/vncservers : VNC 서버 환경설정 파일
NTP(Network Time Protocol)
- 네트워크 상의 컴퓨터 시간을 동기화 프로토콜
- 계층 구조
- 123번 포트 사용
- 각 계층 : stratum
-- stratum 0 : GPS, 원자시계
- ntpdate : NTP 서버를 이용해 시간을 동기화시키는 명령어
- ntpq -p : peer 상태를 요약해서 출력
- /etc/ntp.conf : NTP 서버 설정 파일
DHCP(Dynamic Host Configuration Protocol)
- 호스트 IP 주소를 동적으로 할당할 때 사용하는 프로토콜
- IP 충돌 예방 가능
- ARP 프로토콜 사용
- /etc/dhcp/dhcpd.conf : DHCP 환경 설정 파일
- range : DHCP 서버가 호스트에게 할당 가능한 IP 범위 지정 명령어
-- 사용 방법 : range ip1 ip2
- option routers : 게이트웨이 주소 지정 명령어
- option subnet-mask : 서브넷 마스크 지정 명령어
- fixed-address : 특정 호스트에게 할당할 고정 IP 지정 명령어
Proxy server
- 클라이언트가 프록시를 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 하는 서버
- 접근 정책 생성 => 유해 사이트 접근 제한 (방화벽)
- 익명으로 페이지 접근 (보안)
- 캐시를 사용하여 속도 향상
- 우회
squid 프록시 서버
- 유닉스 계열에서 작동
- GPL 라이선스를 따르는 오픈 소스 SW
- /etc/squid/squid.conf : squid 서버 환경 설정 파일
-- http_port : 서비스 포트 지정
-- cache_mem : 제공할 캐시 메모리 용량 설정
-- cache_dir : 캐시 저장 경로 및 용량 설정
-- cache_access_log : 캐시 접속 로그를 기록할 파일 설정
-- acl : 별칭 설정
-- http_access allow : 서비스 접근 허용
-- http_access deny : 서비스 접근 불가
DNS(Domain Name System)
- 도메인명을 네트워크 주소로 변환하는 시스템
- 53번 포트 사용
- named : DNS 데몬명
- /etc/resolve.conf : 기본 DNS 서버 주소에 대한 정보 파일
- /etc/named.conf : 네임 서버 환경 설정
Recursive 네임서버 (= Cache DNS 서버)
- 질의가 들어오면 [자신의 캐시에 저장된 정보] 또는 [반복적 질의를 통해 얻은 결과]를 호스트에게 응답
-- 반복적 질의(Iterative Query) : Recursive 네임서버가 각 Authoritative 네임 서버로 질의하는 방식
-- 재귀적 질의(Recursive Query) : 호스트가 Recursive 네임서버로 질의할 때 사용되는 방식
Authoritative 네임서버 (= DNS 서버)
- 특정 도메인에 대한 정보를 관리
- 특정 도메인에 대한 질의에만 응답
- master - slave 구조 (또는 primary - secondary)
- 존(Zone) : 네임서버가 관리하는 도메인 영역
- 존 파일(Zone File) : 특정 도메인에 대한 정보를 저장한 파일, 해당 파일을 읽어 질의에 응답
- 존 전송(Zone Transfer) : 마스터에 있는 원본 존 데이터를 슬레이브가 동기화하는 작업
DNS 레코드
- A(Address) : 도메인에 대한 IPv4 주소 질의
- AAAA : IPv6 주소 질의
- ANY : 도메인에 대한 모든 레코드 질의, 응답이 큼
- TXT : 도메인에 대한 텍스트 정보 질의
- SOA(Start Of Authority) : Zone의 기본 속성 정보 질의
- MX(Mail Exchanger) : 도메인의 메일 서버 질의
- NS(Name Server) : 도메인의 네임서버 질의
- PTR(Pointer) : IP에 대한 도메인 정보 질의 => reverse zone(역 존)에만 사용
- CNAME(Canonical Name) : 호스트 별칭 설정
※ 57페이지
MUA (Mail User Agent) : 사용자들이 메일을 송/수신하기 위한 클라이언트 에이전트
- Thunderbird : 모질라, 메일 클라이언트 프로그램
- Evolution : GNOME, 메일 관리 프로그램
MTA (Mail Transfer Agent) : (메일)서버로 메일을 보내기 위한 서버-클라이언트 에이전트
- Sendmail : SMTP 기반, 리눅스 배포판에 기본으로 있는 프로그램
-- /etc/mail/sendmail.cf : 환경설정 파일, 메일 송/수신 시 이 파일을 해석하여 실행
--- m4 명령어로 환경설정 파일 생성 => m4 sendmail.mc > sendmail.cf
--- Cw : 호스트 지정
--- Fw : 파일 지정
--- Dj : 특정 도메인 강제 지정
-- /etc/mail/local-host-names : 메일 서버에서 사용하는 호스트(도메인)를 등록
-- /etc/mail/access : 접근 제어 설정 저장
--- makemap : /etc/mail/access 파일 편집 후 DB 파일(access.db) 생성 명령어 => makemap hast /etc/mail/access < /etc/mail/access
--- /etc/mail/access 파일 항목)
----- RELAY : relay 허용
----- OK : 무조건 허용
----- REJECT : 메시지 보내고 차단
----- DISCARD : 메시지 없이 차단
----- 501 : 지정된 메일 주소와 일치하는 메일 수신 차단
-- /etc/aliases
--- 특정 ID로 들어오는 메일을 여러 호스트에게 전달할 때 사용
--- 메일 별칭 사용 가능
--- newaliases : /etc/aliases 파일 변동 사항 적용 명령어 (= sendmail -bi)
-- /etc/mail/virtusertable
--- 가상 메일 사용자의 설정 저장 파일
--- makemap hash로 DB 파일 생성 필요
- Qmail : Sendmail에 비해 보안이 뛰어나고 모듈 방식(편리) 프로그램
- Postfix : IBM 라이선스, 오픈소스 프로그램
MDA (Mail Delivery Agent) : (메일)서버가 받은 메일을 사용자에게 전달하는 에이전트
- Procmail : 메일 필터링 프로그램
- SpamAssassin : 아파치, Perl로 개발, 메일 필터링 프로그램
PEM (Privacy Enhanced Mail) : 높은 보안성, 복잡한 구현 방식, 메일 보안 프로그램
PGP (Pretty Good Privach) : PEM에 비해 보안성이 낮고, 구현 쉬움, 메일 보안 프로그램
dovecot : POP3와 IMAP4 역할 수행하는 프로그램
포워딩 (forwarding) 방법
1) virtusertable 파일 설정
2) aliases 파일 설정
3) 사용자 홈 디렉터리에 .forward 파일 설정
SMTP (Simple Mail Transfer Protocol)
- MTA 클라이언트와 서버를 구성하는 프로토콜
- 25번 포트 사용
- 메일서버 - 메일서버 사이에 사용
POP3 (Post Office Protocol)
- (메일) 서버로부터 메일을 수신하기 위한 서버-클라이언트 프로토콜
- 110번 포트 사용
- 메일 서버는 읽은 메일은 삭제함
IMAP4 (Internet Mail Access Protocol)
- POP3와 비슷
- 143번 포트 사용
- 메일 서버는 읽은 메일도 계속 저장함
mailq : 메일 큐 목록(/var/spool/mqueue) 출력 (= sendmail -bp)
-v : 자세하게 출력
-Ac : /etc/spool/submit.cf에 저장된 메일 큐 목록(/var/spool/clientmqueue) 출력
xinetd : inetd 기반 보안 강화된 오픈 소스 슈퍼 데몬
- DoS 공격 억제
- 로그 파일 크기 제한
- IP 주소 당 동시 접속 수 제한
- TCP/UDP 및 RPC 서비스에 대한 접근 제어
- /etc/xinetd.d/* : xinetd 설정 파일
-- disable : 서비스 사용 여부 설정
-- socket_type : tcp=stream / udp=dgram
-- wait : 요청 받은 후 즉시 다음 요청까지 대기 여부
-- user : 슈퍼데몬 실행 사용자 권한 설정
-- server : 서비스 실행 파일 경로
-- log_type : 로그 기록 파일 경로
-- log_on_failure : 로그인 실패 시 로그에 기록할 내용
-- no_access : 접속 거부할 IP 대역
-- only_from : 접속 허용할 IP 대역
-- cps : 들어올 수 있는 접속 수 제한
-- instances : 동시에 실행할 수 있는 데몬 개수
-- access_time : 접속 허용 시간대
TCP Wrapper
- 슈퍼 데몬에 의해 수행되는 호스트 기반 네트워킹 ACL(Access Control List) 시스템
- /etc/hosts.allow, /etc/hosts.deny에 정의된 호스트 정보 기준으로 접근 통제
NFS (Network File System)
- 다른 컴퓨터에 있는 파일, 파일 시스템 공유를 위한 시스템
- RPC(Remote Procedure Call) 사용
- /etc/exports : 서버 환경 설정 파일
-- ro : 공유 자원 읽기만 허용
-- rw : 공유 자원 읽/쓰기 허용
-- root_squash : root 권한으로 접근 시 nobody 사용자로 변경한 후 마운트
-- no_root_squash : root 권한으로 접근 가능
-- sync : 파일 시스템 내 데이터 변동 시 즉시 동기화
-- async : 파일 시스템 내 데이터 변동 시 비동기적으로 처리
showmount : NFS/NIS의 마운트 정보 출력 명령어
-a : 모든 원격 마운트 정보 출력
-e : export된 디렉터리 정보 출력
exportfs : NFS 서버를 다시 시작하지 않고 공유 정보 수정/출력 명령어
-a : /etc/exports 파일 읽음
-r : /etc/exports 파일 다시 읽음
-v : 현재 공유 목록 출력
rpcinfo : RPC 정보 출력 명령어
FTP (File Transfer Protocol)
- 네트워크 상 컴퓨터들 간 파일 교환을 위한 프로토콜
- data 영역 : 20번 포트 / control 영역 : 21번 포트
- 종류 : vsftpd, proftpd 등
vsftpd (Very Secure FTP Daemon)
- 보안 강화된 FTP 데몬
- /etc/vsftpd/vsftpd.conf : 서버 환경 설정 파일
-- anonymous_enable : 익명 사용자 접속 허용 유무
-- local_umask : 로컬 계정 사용자들의 umask 값 설정
-- idle_session_timeout : 유휴 시간에 대한 타임아웃 설정
-- max_clients : 접속할 수 있는 클라이언트 최대 수
-- max_per_ip : 한 호스트가 동시에 접속할 수 있는 IP 설정
-- tcp_wrappers : tcp_wrapper 적용 여부
-- chroot_list_enable : 다시 입력
-- chroot_list_file : 다시 입력
-- chroot_local_user : 다시 입력
-- ls_recures_enable : FTP 서버 내에서 ls -R 가능 여부
-- listen : YES (standalone 방식) / NO (xinetd 방식)
-- listen_port : standalone 방식일 경우, 리스닝 포트 설정
- /etc/vsftpd/ftpuser : FPT 서버 접근 제한할 계정 목록 저장 파일
proftpd
- /etc/proftpd.conf : 서버 환경 설정 파일
-- ServerName : FTP 서버 이름 "설정"
-- ServerType : 데몬 구동 방식 (standalone / xinetd)
-- Port : 리스닝 포트 번호
-- Umask : 로컬 계정 사용자들의 umask 값
-- MaxInstances : FTP 접속 클라이언트 최대 수
-- User : FTP 실행 시 사용할 사용자명
-- Group : FTP 실행 시 사용할 그룹명
-- TimeoutIdle : 유휴 시간에 대한 타이아웃
-- Directory : 지정한 디렉터리에 대한 설정 (/부터 시작)
-- AllowOverwrite : 사용자가 전송하는 파일이 서버에 있을 덮어쓰기 허용 여부
-- Anonymous : 익명 사용자를 위한 디렉터리에 대한 설정
-- RequireValidShell : /etc/shells 파일에 정의되지 않은 쉘을 사용하는 사용자에 대한 접근 허용 여부
-- MaxClients : 익명 사용자에 대한 최대 접속 클라이언트 수
apachectl -graceful : 설정을 변경 한 후 connection을 끊지 않은 상태로 아파치 서버 재시작하는 명령어
mysql_install_db : 최초 설치 후 기본 DB 생성 시 사용하는 명령어