[리눅스마스터 1급] 16/03/12 기출 - 3과목 정리
2023. 8. 26. 03:42ㆍ자격증/리눅스마스터 1급
✅ 파일 공유를 위한 서비스 및 프로토콜 - SAMBA, NFS(Network File System), FTP(File Transport Protocol)
📕 SAMBA
- 특징
- GPL 기반의 자유 소프트웨어로 리눅스와 윈도우 간 디렉토리, 파일,, 프린터 등 공유에 사용
- TCP/IP 기반으로 NetBIOS상에 동작하는 SMB(Server Message Block) 프로토콜 이용
- 삼바에서 설정한 그룹과 호스트명이 윈도우의 Network Neighborhood에 컴퓨터 이름으로 표시된다, 또한 삼바를 이용하면 상대의 호스트의 IP 주소 대신 컴퓨터 이름을 이용하여 접속 가능 (WINS- Windows Internet Name Service)
- CIFS(Common Internet File System)은 SMB를 인터넷까지 확장한 표준 프로토콜, 유닉스와 윈도우 환경 동시 지원
- 삼바 서버 구성 요소
- nmbd
- UDp 137, 138 포트 이용
- WINS 서비스를 위한 데몬
- smbd
- 삼바 프로토콜의 주요 기능 담당
- TCP 445 포트 이용
3) 삼바 서비스 이용
a) 삼바 서버 접속: smbclient 명령어 이용
- 호스트 공유 폴더 이름 지정 예시
smbclient //192.168.12.22/[공유폴더]
# 단, \\를 이용할 경우 \\ 2개씩 이용
smbclient \\\\\\\\192.168.12.22\\\\[공유폴더]
b) 삼바 사용자 목록 및 세부 내용 확인: pdbedit
# pdbedit -L
posein:500:
yuloje:501:
# 옵션
- L : 등록된 삼바 사용자 목록 조회
- v : 사용자 목록 출력 시 상세한 정보 표시
- u : 사용자 이름 지정
- a : 삼바 사용자 계정 추가, 패스워드 설정(반드시 리눅스 시스템에 등록된 계정이어야 함)
- r : 삼바 사용자 계정 변경
- x : 삼바 사용자 계정 제거
c) 삼바 계정 & 패스워드 설정: smbpasswd
- 반드시 리눅스 시스템에 등록된 계정이어야 함
📗 NFS (Network FileSystem)
- 특징
- TCP/IP를 이용하여 원격 호스트(컴퓨터)의 파일 시스템을 마치 로컬 호스트(PC)에 있는 것처럼 Mount하여 사용할 수 있는 서비스.
- RPC(Remote Procedure Call)을 이용하여 NFS 관련 명령어를 전달하므로 rpcbind 데몬 필요
- 주요 패키지
- rpcbind: rpcbind, rpcinfo 등 명령어 포함
- nfs-utils: nfs 관련 데몬 및 명령어 포함
- NFS 서버 설정
- /etc/exports 파일 - NFS 서비스 설정용
- # 주요 옵션 **시험 단골: root 사용자의 접근 권한 설정 항목 - no_root_squash: root 접근 허용 - root_squash: root 권한 접근 거부하기 위하여 클라이언트 root 요청을 기본값(nobody)로 매핑 -> 즉, 일반 사용자 권한 - anounuid: 특정 계정의 권한(uid)를 허용 - all_squash:NFS클라이언트에서 접근하는 모든 사용자(root포함)의 권한을 nobody로 매핑시킨다. -> 예외없이 모든사용자 === 일반사용자
- NFS 서비스 이용
- mount 명령어 이용
- mount -t nfs [NFS 서버] : [대상(공유된) 디렉토리] [마운트 디렉토리] *ps. mount -t nfs -> mount.nfs 로 대체 가능 # 예시 mount -t nfs 192.168.13 : /joon /mnt
📒 FTP (File Transport Protocol)
- 특징
- TCP/IP를 이용하여 FTP 서버 & 클라이언트 간 파일 전송을 위한 프로토콜.
- 등록된 사용자만 접속 O (단, 익명의 사용자 지원 O → 보안 취약 O, 권장 X)
- vsfpd(Very Secure FTP Daemon) : 대표 FTP 프로그램, CentOS에서 기본 제공
- ㄴ 보안 중요시 함, 익명 사용자 디렉터리 권한 777 → 로그인 제한 O
- FTP 패키지 설치
- vsftpd 파일 목록
- /etc/vsftpd/ftpusers : ftp서버에 접근할 수 없는 계정 목록 파일 (PAM 연관된 설정 파일)
✅ 메일 서비스 관련 프로토콜 (SMTP, POP, POP3, IMAP)
📕 SMTP (Simple Mail Transfer Protocol) - TCP 25번 포트 이용
- 인터넷에서 이메일을 전송하기 위해 사용하는 프로토콜
📒 POP , POP3 - TCP 110번 포트 이용
- 메일 서버에 도착한 메일을 수신하는 프로토콜
- 클라이언트 프로그램으로 메일을 가져온 후 서버에서 해당 메일 삭제
📗 IMAP - TCP 143번 포트 이용
- 메일 서버에 도착한 메일을 수신하는 프로토콜
- 서버에 일단 남겨두고 나중에 삭제
📍 Tip
- POP3 및 IMAP에서 사용하는 서버 프로그램 : dovecot
✅ 메일 서비스
- sendMail
- ****주요 설정파일
- /etc/alliases: 메일의 별칭 혹은 특정 계정으로 수신한 이메일을 다른 계정으로 전달하도록 설정
- # 예시 - webmaster: ihduser, kalituser - admin: include:/etc/main_admin
- /etc/mail/local-host-names: sendmail에서 수신할 메일의 도메인과 호스트, 즉 메일 수신자를 설정하며 sendmail을 다시 시작하여 적용
- /etc/mail/access: 메일 서버에 접속하는 호스트의 접근을 제어하는 설정 파일로 스팸 메일 방지 등에 사용 가능
- makemap hash /etc/mail/access
- /etc/mail/virtusertable: 가상의 메일 계정으로 들어오는 메일을 특정 계정으로 전달하는 정보 설정
- makemap hash /etc/mail/virtusertable
- 주요 명령어
- 1) sendmail - sendmail을 관리하는 명령어 - 옵션: -bq(메일 큐 상태 표시), -b(alliases정보갱신), -oQ(특정 큐의 상태 표시) 2) mailq - 메일 큐의 내용을 표시하는 명령어 - mailq -Ac: /etc/mail/submit.cf 파일에 지정된 큐의 상태 표시
- ****주요 설정파일
- 메일 서비스 관련 프로그램
- MTA (Mail Transfer Agent)
- SMTP 프로토콜 이용하여 메일 전송
- sendmail, qmail, postfix
- MDA (Mail Delivery Agent)
- 일종의 대리인 역할 수행, 메일 박스에 도착한 메일을 대행해서 가져오거나 전달하는 역할 수행
- 대표 프로그램: procmail → 스팸 메일 필터링, 메일 정렬 등의 역할도 수행
- MUA (Mail User Agent)
- 사용자가 메일을 수신 혹은 발신할 때 사용하는 프로그램
- MTA (Mail Transfer Agent)
- 메일 암호화 관련 도구: Nmap
✅ DNS (Domain Name Service)
- 개념
- 도메인 이름과 IP 주소를 상호 변환하는 서비스
- TCP 53, UDP 53을 이용
- DNS 서버 종류
- Primary Server
- Master Server
- 필수 항목
- Secondary Server
- Slave Server
- Primary Server의 zone 파일 백업
- Master DNS에 문제가 있을 경우 보조 DNS
- Caching Name Server
- 도메인을 소유하지 않아도 구성 가능
- 도메인 관리 없이 resolving 역할만 수행
- 속도를 향상시키는 역할→ DNS 관련 질의가 많은 경우 해당 서버를 구성하여 인터넷 사용 속도 ↑
- Primary Server
- DNS 서비스 이용
- 패키지 설치
- # DNS 서버 프로그램 : bind # 데몬: named # 설치 명령어 yum -y install bind # 설치 후 bind, bind-libs, bind-utils 패키지 설치
- bind 관련 파일과 디렉토리
- /etc/named.conf
- DNS 서버의 주요 환경 설정 역할 → zone 파일, Reverse zone 파일 포함
- options
- DNS로 운영 중인 현재 시스템 외에는 네임 서버에 대한 질의를 허가하지 않으려고 할 때 옵션
- allow-query: {localhost}
- zone 파일
- 포함: 도메인 이름, ip주소, 관련 리소스 간 매핑, 리소스 레코드
# ZONE 파일 설정 일부 www IN A 192.168.12.22 WWW1 IN CNAME WWW WWW2 IN CNAME WWW
- Reverse zone 파일
- IP주소에 대한 도메인 정보 조회
- 명령어
- # 문법적 오류 검사 $ named-checkconf
- /var/named
- root 도메인 서버의 정보를 담은 named.ca
- 사용자가 설정한 zone 파일 등 저장하는 디렉토리
- /etc/named.conf
✅ 가상화 관리 서비스 (Virtualization)
- 개념
- CPU , 메모리 , 디스크와 같은 물리적인 자원을 → 여러개의 논리적인 자원으로 나눔
- 또는, 다수의 물리적인 자원을 → 하나의 논리적인 자원으로 통합하는 서비스
- 특징
- 논리적인 자원(Resource Pool)에 기반한 효율적인 자원 활용, 물리적인 공간 절약, 데이터 및 서비스에 대한 가용성 증가, 중앙 집중 관리에 따른 보안성 향상 등의 장점 제공
- 대표적인 특징
- 공유: 다수의 많은 가상 자원들이 하나의 동일한 물리적 자원과 연결, 가리키는 것을 의미
- 프로비저닝: 사용자의 요구사항에 맞게 할당, 배치, 배포, 가상화 기반의 자원 할당은 물리적 단위보다 더 세밀한 조각 단위로 가능
- 단일화
- 애뮬레이션: 물리적 자원 자체는 원래부터 존재하지 않았지만, 가상 자원은 어떤 기능들이나 특성들을 마치 처음부터 존재했던 것처럼 가질 수 있다.
- 절연: 하나의 가상화 서비스에 문제가 발생하여도 다른 서비스로 장애가 전이되지 않도록 관리
- 가상화 서비스 방식
- 하드웨어 레벨의 가상화 방식
- VMM(Virtual Machine Monitor)이 물리적인 하드웨어를 가상머신의 하드웨어와 매핑, 게스트 운영체제의 자원 사용 관리
- 종류
- 전가상화(Full Virtualization)
- CPU의 물리적 가상화 지원 기능을 이용하여 하드웨어를 완전히 가상화
- 윈도우, 리눅스 등 다양한 게스트 OS를 수정없이 사용 가능
- 반가상화(Para Virtualization)
- 게스트 OS는 하이퍼바이저에 하드웨어의 제어를 요청하여 동작
- 하이퍼바이저가 하드웨어 사용을 통제하므로 상대적으로 높은 성능
- 게스트 OS수정 필요, 리눅스 등 오픈소스가 주로 지원
- 전가상화(Full Virtualization)
- 호스트 기반 가상화 방식
- 호스트 운영체제에 VMM을 설치하고 가상 머신을 생성
- 종류
- VirtualBox, VMware Player
- 운영체제 가상화 방식
- 하드웨어에 설치된 하나의 운영체제 위에 가상화 계층을 두어 가상화 서비스를 제공
- 종류
- 컨테이너 방식
- 호스트 운영체제의 커널을 공유, 각각의 애플리케이션 별로 격리된 컨테이너 생성
- 경량화 된 가상화 방식
- 예시- Docker
- 하드웨어 에뮬레이션 방식
- 하드웨어를 소프트웨어 방식으로 에뮬레이션 함
- 컨테이너 방식
- 하드웨어 레벨의 가상화 방식
- 리눅스 대표 가상화 기술
- KVM
- 인텔 CPU 지원
- VT-X & VMD-V 기반 CPU 전가상화 지원 기술 (리눅스 커널 2.6.20 이후)
- CPU 반가상 기술 지원 X
- 이더넷, Disk I/O, 그래픽 등 반가상화 지원
- 호스트 서버에서 보면 게스트 서버는 하나의 프로세스로 간주되기 때문에 오버헤더 거의 X
- XEN
- 1990년대 케임브리지 대학교, 오픈소스
- CPU 전가상화, 반가상화 모두 지원 → 하이퍼바이저 기반의 가상화 기술
- 리눅수, 윈도우, Solaris 모두 지원
- 반가상화 구성 시 → 호스트와 다른 아키텍처의 게스트 실행 x
- 전가상화 구성 시 → QEMU 기반 동작
- VirtualBox
- 오라클 주도
- x86 기반 가상화 소프트웨어
- Docker
- 하이퍼바이저, 게스트 운영체제 설치 필요 X
- 서버 운영에 필요한 프로그램 & 라이브러리만 이미지로 → 프로세스처럼 동작
- 경량화된 가상화 기술
- KVM
- /proc/cpuinfo
- flag값으로 CPU 가상화 지원 여부 점검 가능
egrep 'svm|vmx' /proc/cpuinfo - svm: AMD-V - vmx: Intel VT-v 결과 flags :::블라블라
- 가상화 주요 명령어
- virt-top
- 가상화 현황 top과 유사한 형식으로 출력
- virsh
- 텍스트 기반의 콘솔 환경에서 가상 머신 관리 도구 (생성, 시작, 재시작, 종료, 강제 종료)
- virt-manager
- 가상 머신을 손쉽게 시작 및 종료 가능
- 가상머신의 cpu 사용량, 호스트 cpu사용량 모니터링 할수 있는 GUI기반 도구
- libvirt
- Linux에서 가상화 지원을 위한 api, 데몬, 라이브러리, 관리 툴들 모음
- libvirtd
- libvirt 관리시스템의 서버 데몬으로 관리도구와 통신하여 원격 도메인의 명령어 전달
- xm
- xen관리하는 명령어
- virt-top
✅ 기타 서비스
📕 슈퍼 데몬
- 개념
- inetd와 같이 다른 서비스를 실행 및 관리하는 데몬
- 리눅스의 inetd방식
- 사용자의 요구에 따라 필요한 서비스 실행
- 요청 완료 시 서비스 종료 → 시스템 자원 효율 ↑
- standalone 방식에 비해 사용자 요청 처리시간 느림
- but, 다양한 서비스를 제한된 시스템 자원으로 운영하기에 효율 ↑
- /etc/inetd.conf 에서 서비스 사용 여부 지정, 접근 제어 (TCP WRAPPER) 사용
- 리눅스의 inetd방식
- inetd와 같이 다른 서비스를 실행 및 관리하는 데몬
- CentOS7 서비스 관리 방식
- systemd 방식 → 소켓기능(ondemand activation)을 통해 효율적으로 메모리 관리 가능
- 기존 xinetd를 통해 제공하던 rsync, telnet등의 서비스 → systemd 방식으로 통합
- xinetd, TCP Wrapper를 제공하는 서비스가 제한적, 접근제한이 필요할 경우 이후 iptables, fireawlld사용 권장
- xinetd (CentOS7 이후로 해당 방식 중요성 낮음)
- IP 주소 당 접속 수 제한
- DOS 공격에 대비한 설정 제공
- 서비스에 대한 접속 시간 제한
- 📗 프록시 서비스
- 개념
- 클라이언트와 서버 사이에 위치
- 요청과 응답 과정에서 데이터를 중계하는 역할 담당
- 목적
- 서버의 데이터를 캐시하여 인터넷 전송 속도를 빠르게 하기 위해 사용
- 서버의 가용성 향상을 위한 부하분산에 사용 가능
- 사용 분야
- 응답 속도 향상
- 서버 부하 분산 → 다수의 서버를 서버팜으로 구성하여 정해진 규칙에 따라 클라이언트의 요청을 특정 서비스 요청으로 전달
- 접근 통제 → 프록시 서버에 설정한 접근 통제 정책에 따라 요청 제한
- 악성 코드 유입 방지
- 리눅스 프록시 서버(squid)
- 리눅스에서 사용할 수 있는 대표적인 프록시 서버
- GPL 오픈소스 소프트웨어
- 캐싱을 통해 HTTP, FTP, gopher 등 서비스의 데이터 응답 속도 향상
- TCP 3128 이용
- 개념
📒 DHCP 서비스 (Dynamic Host Configuration Protocol)
- 개념
- 클라이언트 호스트가 사용할 IP 주소, 게이트웨이 주소, 네임서버 주소 등을 자동으로 할당하는 속도
- 제한된 IP주소 풀을 다수의 클라이언트에게 동적으로 할당하여 IP주소 사용의 효율을 향상 가능
- DHCP 프로토콜을 이용하여 IP 주소 임대기간 설정 가능
- 저장 장치가 없는 호스트에게 IP 자동 부여, 네트워크 부팅 지원하기 위해 사용 가능 → BOOTP(Bootstrap Protocol) 사용
- UDP 프로토콜과 브로드캐스트 통신 방식 사용
- 서비스 설정 파일
- /etc/dhcp/dhcpd.conf
- 설정 문장 뒤에는 반드시 세미콜론 필수
- 주요 설정 항목
- option routers : 게이트 웨이 주소 지정
- # vi /etc/dhcpd.conf options routers 192.168.12.1
- /etc/dhcp/dhcpd.conf
📘 VNC (Virtual Network Computing) 서비스
- 개념
- 비트맵 이미지 기반의 RFB(Remote Frame Buffer) 프로토콜 이용
- GUI방식으로 원격 컴퓨터 접속 기능
- TCP/5900+[디스플레이번호]
- 동시에 여러 클라이언트가 접속하여 화면 공유 가능
- VNC 클라이언트
- 서버 화면에 전송받아 표시, 마우스 키보드 등 컨트롤 정보를 → 서버로 전달
- VNC 서버
- 서버 컴퓨터의 화면을 공유하기 위해 사용
- VNC 클라이언트로부터 전달받은 마우스, 키보드 신호를 통해 통제
📙 NTP(Network Time Protocol) 서비스
- 개념
- 컴퓨터 간 시간을 동기화하는 NTP 프로토콜을 이용하여 NTP 서버와 시간 동기화
- UTC기준 1/1000초까지 시간 동기화 가능
- UDP/123 기본 포트
- 계급(Startnum) 구조
- 클럭소스 수준의 계층적, 반계층화된 시스템을 사용하고 이 계층 구조의 각 수준을 계급이라고 함.
- 계급 수준은 레퍼런스 시계에서 거리 정의
- 숫자가 낮은 계급(단계)가 높은 계급(단계)보다 더 품질 우수
- 설정 파일
- /etc/ntp.conf
- 주요 명령어
- ntpdate
- 원격 서버와 시간을 동기화
- ntpq
- NTP 질의 명령어
- -p옵션으로 연결된 서버의 상태 출력
- ntpdate
✅ 기타 용어
- DOS 공격 - LAND ATTACK
- 공격자가 임의로 자신의 ip 주소 및 포트를 대상 서버의 ip 주소 및 포트와 동일하게 하며 서버 공격
- 이러한 패킷을 공격 시스템에 보내면 해당 시스템은 SYN패킷의 출발지 주소 참조
- 패킷은 외부로 나가지 않고 자신에게 돌아옴
- 이 공격법은 syn flooding처럼 동시 사용자 수를 증가 시키므로 CPU부하를 발생시킴
- 스크린 호스트 게이트웨이
- 스크린 라우터와 단일 홈 게이트웨이를 조합한 형태
- 스크린 라우터에서 패킷 필터링을 1차로 수행하고, bastion 호스트 역할을 수행하는 단일 홈 게이트웨이에서 프록시와 같은 서비스를 통해 2차 방어
- iptables 관련 명령어
- 같은 IP주소에서 60초 동안에 15번 이상 SSH 접속을 시도하면 DROP 시키는 정책을 ssh 사슬에 추가하는 명령어
iptables -A SSH -p udp --dport 22 -m recent update --seconds 60 hitcount 15 -j Drop
- /etc/sysconfig/iptables
- /etc/rc.d/init.d/iptables 스크립트에서 iptables-save 명령어 사용해서 관련 정책 저장
- 해당 저장 명령 수행 시, 해당 설정 파일에 관련 정책 저장
- 시스템 재부팅 시에 자동으로 규칙 적용
'자격증 > 리눅스마스터 1급' 카테고리의 다른 글
[리눅스마스터 1급] 2023년 필기 합격 후기 & 시험 공부 방법 (1) | 2023.09.10 |
---|