2022-09-03 리눅스마스터 1급 1차 시험 준비를 위해 공부했던 내용들입니다.
기출문제를 풀면서 모르는 개념들은 위 책을 참고하여 공부하였습니다.
괄호안에 페이지 쪽수는 위의 책 페이지를 말합니다.
etc/resolv.conf ( P.215 )
시스템에서 사용하는 DNS 서버를 설정하는 파일
nameserver : 현재 사용중인 DNS 서버의 IP주소
/etc/hosts
DNS 서버를 사용하기 이전에 이용
자주 이용하는 IP 주소에 별칭 설정 , 접속을 쉽게
IPv4 주소 클래스 ( P . 189 )
특수목적 IP 주소 ( 사설주소 , 루프백 )
IP 명령어와 ifconfig 명령어 비교
서브넷마스크( Subnet Mask )
네크워크를 분할 , 새로운 하위의 네트워크를 구성
네트워크 ID / 호스트 ID 구분
서브넷팅은 서브넷 마스크를 이용하여 Host ID 를 Network ID 로 변환
네트워크가 분리되므로 서로가 통신하기 위해서는 라우터를 통해서만 가능
슈퍼넷팅은 서브넷 마스크를 이용하여 Network ID를 Host ID 로 변환
클래스 A | 255.0.0.0 | 호스트개수: 16,777,216
클래스 B | 255.255.0.0 | 호스트개수 : 65,536
클래스 C | 255.255.255.255.0 | 호스트개수 : 256
게이트웨이(Gateway) 주소
Host ID 가 1인 값
범위 255 - 224 = 31
원격지에서 X 클라이언트 이용 ( p.107 )
xhost
: x서버에 접근할 수 있는 클라이언트를 지정하거나 해제하는 명령
xauth
: 호스트(IP) 기반 인증인 xhost 의 IP 변경을 이용해 불필요한 클라이언트 접속 문제
-> xauth 사용자 기반 인증
.Xauthority 파일의 MIT-MAGIC-COOKIE-1 키 값
예전에 실행했던 명령어 보기
history : 실행했던 명령어들의 내역 확인
! 문자열 : 문자열에 매칭되는 명령 찾아서 실행
!! : 가장 최근에 실행한 명령을 다시 실행
!-1 : 숫자에 해당하는 명령 다시 실행 , -1 은 가장 최근 명령
!# : 명령을 한번 더 실행 date; !# 는 date; date 와 동일하다
!?al?
최근 실행한 명령 중에서 ‘al’ 이라는 문자열이 들어간 명령을 찾아서 재실행
리눅스 쉘 특수문자
반복문 for 문법
시그널 ( SIGNAL )
특정 이벤트가 발생했을 때 프로세스에게 전달하는 신호
기본 처리 | |||
1 | SIGHUP (HUP) |
HangUP의 약어로 로그아웃과 같이 터미널에서 접속이 끊겼을 때 보내지는 시그널입니다. 데몬 관련 환경 설정 파일을 변경시키고 변화된 내용을 적용하기 위해 재시작할 때 이 시그널이 사용됩니다. |
종료 |
2 | SIGINT (INT) |
키보드로부터 오는 인터럽트 시그널로 실행을 중지. [CTRL]+[c] 입력 시에 보내지는 시그널입니다. |
종료 |
3 | SIGQUIT (QUIT) |
키보드로부터 오는 실행 중지 시그널. [CTRL] + [\] 입력 시에 보내지는 시그널입니다. 기본적으로 프로세스를 종료시킨 뒤 코어를 덤프하는 역할을 합니다. |
코어 덤프 |
4 | SIGILL (ILL) |
illegal instruction의 약자입니다. 잘못된 명령을 사용했을 때 발생합니다. | 코어 덤프 |
5 | SIGTRAP (TRAP) |
trace(추적), breakpoint(중지점)에서 TRAP 발생할 때 | 코어 덤프 |
6 | SIGABRT (ABRT) | abort의 약자로 비정상종료 함수에 의해 발생합니다. (즉 abort 시스템 호출을 하였을 때 발생) |
코어 덤프 |
7 | SIGBUS | 메모리 접근 에러시 발생하는 시그널입니다. | 코어 덤프 |
9 | SIGKILL (KILL) | KILL! 무조건 종료, 즉 프로세스를 강제로 종료시키는 시그널! | 종료 |
11 | SIGSEGV | invalid memory reference | 종료 + 코어덤프 |
15 | SIGTERM (TERM) | Terminate의 약자로 가능한 정상 종료시키는 시그널로 kill 명령의 기본 시그널입니다. | 종료 |
17 | SIGCHLD (child) |
자식 프로세스가 stop 되거나 종료되었을 때 부모에게 전달되는 신호입니다. (멀티 프로세스 코딩에서 자세한 사용법은 배울 거..) | 무시 |
18 | SIGCONT (CONT) | Continue의 약자로 STOP 시그널에 의해 정지된 프로세스를 다시 실행시킬 때 사용됩니다. | 재시작 |
19 | SIGSTOP (STOP) | 터미널에서 입력된 정지 시그널입니다. SIGCONT로 재실행시킬 수 있습니다. | 중지 |
20 | SIGTSTP (TSTP) | 실행 정지 후 다시 실행을 계속하기 위해 대기시키는 시그널입니다. [CTRL] + [z]를 입력했을 때 보내지는 시그널입니다. SIGCONT로 역시 다시 실행시킬 수 있습니다. |
중지 |
29 | SIGIO | 비동기 입출력이 발생했을 경우 ! (I/O now possible!) | 종료 |
프로세스 포그라운드와 백그라운드
포그라운드
- 입력한 명령어 실행이 결과가 나올 때까지 기다리는 방식
- 한 동작을 수행할 동안 다른 동작은 할 수 없는 상태
백그라운드
- 하나의 쉘(터미널)에서 여러 개의 프로세스를 동시에 실행할 수 있는 방식
- 한 동작을 수행하는 동안에도 다른 동작을 할 수 있는 상태
- 해당 명령어 처리가 오래 걸릴걸 대비해 백그라운드를 이용하면
여러작업을 동시에 수행할 수 있다.
- 필요한 여러 작업을 백그라운드로 실행한 후 터미널에서는 포그라운드 작업을
계속 진행할 수 있다.
프로세스를 백그라운드로 실행하고자 할 때 명령어 마지막에 & 를 붙여준다 .
test.py &
프로세스가 실행 중(포그라운드)에 백그라운드로 전환
키보드의 ctrl + z 를 누른 다음 bg 를 입력
Ctrl + D : 프로세스 정상종료
Ctrl + C : 프로세스 강제종료
Ctrl + Z : 프로세스 정지(Stop)
RAID ( p.49 )
RAID-5 구성은 각각의 서버 모두가 Parity 정보를 분산하여 보관
따라서 Parity 용량은 구성 디스크 1개의 용량과 같다
C = ( N-1 ) * D C:가능용량 , N: disk 개수 , D : 하드 용량
systemd 프로세스
부팅,서비스 관리 , 로그 관리 등의 시스템 전반적인 영역 프로세스 , PID1
systemd 이전에는 init 프로세스가 그 역할
run level , target
부팅시에 시스템이 어떤 수준으로 기능을 제공할지 정함
런 레벨 | target | 의미 |
0 | poweroff.target | 시스템 중단(Halt) |
1 | rescue.target | 텍스트 기반의 단일 사용자 모드(single user mode) |
2 | multi-user.target | 사용되지 않음(사용자가 지정 가능) |
3 | multi-user.target | 텍스트 기반의 다중 사용자 모드 |
4 | multi-user.target | 사용되지 않음(사용자가 지정 가능) |
5 | graphical.target | X 윈도 기반의 다중 사용자 모드(로그인도 X 윈도에서 이뤄짐) |
6 | reboot.target | 시스템 리부팅 |
get-default : 시스템의 기본 타겟을 확인하는 명령어
set-default : 시스템의 기본 타겟을 변경하는 명령어
시스템 부팅 시에 X 원도 모드로 부팅이 되도록 설정하는 명령
systemctl set-default graphical
GRUB ( Grand Unified BootLoader ) ( P.56 )
GRUB 환경설정 파일 : /boot/grub2/grub.cfg 심볼릭 링크 파일 : /etc/grub2.cfg
grub2-mkconfig grub2-mkconfig -o /boot/grub2/grub.cfg
: GRUB 환경 설정 파일을 수정한 후에 변경된 내용을 저장하기 위해 사용하는 명령어
리눅스 배포판 ( P.29 )
우분투(Ubuntu) : 그놈 데스크톱 환경(GNOME desktop environment) 기반의 그래픽 셸인 유니티(Unity)를 사용
사용자의 편의성에 많은 초점
칼리(Kali Linux) : 시스템 보안을 공부하기 위해 해킹 및 보안 도구가 많이 내장된 리눅스 배포판
데비안 계열 : Ubuntu , Linux Mint , Elementary OS , Knoppix , Corel , Lindows
슬랙웨어 계열 : Vector Linux , SuSE , Porteus , Salix OS
레드햇 계열 : CentOS
리눅스 기반 운영체제
Tizen , webOS , GENIVI
QNX : UNIX 운영체제
리눅스의 기술적인 특징 ( P.36 )
1. 계층적인 파일 구조
/(root) 를 기준으로 하위 디렉터리 … 트리 구조
2. 장치의 파일화
하드웨어적 자원 - 장치 (device ) 를 모두 파일화하여 하드웨어에 명령 수행
3. 가상 메모리 사용
하드 디스크 : 데이터 저장 공간
RAM(메모리) : 작업 공간
메모리의 공간이 작으면 프로그램은 실행시킬 수 없게 된다
스와핑(Swapping)
메모리와 하드 디스크 사이의 데이터 교환
메모리에 공간이 꽉 찼다고 하더라도 가상 메모리를 설정하여 실행 가능
4. 동적 라이브러리 지원
라이브러리 : 특정한 기능을 하는 루틴들을 모아 놓은 것
주요 라이선스 ( P.26 )
1. GPL ( General Public License )
자유 소프트웨어 라이선스 , 소스 코드를 반드시 공개 배포
2. LGPL ( Library/Lesser GPL )
독점 소프트웨어에서도 사용 가능
3. BSD ( Berkely Software Distribution )
수정된 코드에 대한 공개나 어떠한 표시도 하지 않아도 됨 , 비공개 허용
4. Apache
자유롭게 이용 가능 , 재배포시 반드시 공개할 필요가 없음
다만 재배포 경우 라이선스를 포함 , 아파치 재단에서 개발된 소프트웨어임을 명확히 밝혀야함
5. MPL ( Mozilla Pulbic License )
코드 수정 시 소스 코드 공개 필수
다른 코드와 결합하는 경우 , MPL 이외 다른 소스 코드는 공개하지 않아도 됨
6. MIT
수정본의 재배포 시 소스 코드 비공개 허용
독점 소프트웨어와 결합 불가능 : GPL
2차적 저작물 소스 코드 공개 : GPL , LGPL , MPL
비공개 가능 : BSD , Apache , MIT
Kubernetes : 구글이 개발 , 컨테이너화된 애플리케이션의 배포 , 확장 , 관리를 자동화
백업(복원) 관련 명령어 ( P.480 )
tar(tape archive ) , cpio( copy input to output ) , dd(data dumper ) , rsync( remote synchromous )
dump - restore
tar ( tape archive )
파일이나 디렉터리들을 하나의 파일로 묶어주는 역할
tar 명령어 옵션
tar 압축률이 제일 좋은 명령
xz > bzip2 > gzip
-c : 내용을 tar 로 묶음
-p : 권한을 저장
-v : 압축 또는 해제 과정을 화면에 표시
-f : 파일이름 지정
-x : tar 압축 해제
-z : gzip 으로 압축 또는 해제
-C : 압축파일 해제 경로 지정
-j : bzip2 압축 적용 옵션
-g : 증분 백업
tar cvfp home.tar /home /home 디렉터리를 퍼미션 등을 그대로 유지하면서 home.tar 라는 파일로 묶는다
tar -g list -cvfp home1.tar /home
tar -g list -cvfp home2.tar /home
list 라는 파일의 내용과 비교하여 증가된 것만 home2.tar 로 백업
cpio( copy input to output )
증분 백업 기능은 지원하지 않는다
cpio option > 파일명 cpio option < 파일명
-o : 표준 출력 , 파일 백업하기
-i : 표준 입력 , 백업한 자료 불러오기
-v : 과정 상세히 출력
find /home | cpio -ocv > home.cpio /home 을 home.cpio 파일로 백업한다
로그 관련 파일( P.445 )
/var/log/messages : 시스템에서 발생하는 표준 메시지 기록 , 대부분의 로그가 이 파일에 쌓임
/var/log/secure : 인증을 기반으로 접속과 관련된 로그
/var/log/dmesg : 시스템 부팅할 때 출력 로그
/var/log/xferlog : FTP 접속 관련 작업 로그
logrotate 로그 순환 ( P.443 )
설정 파일 : /etc/logrotate.conf 응용프로그램은 /etc/logrotate.d 디렉터리 내에 위치
weekly : 로그 파일 rotate 주기 , daily,monthly,yearly
rotate 4 : 최대 4번까지 rotate 하는 설정 - 기본 logfile , logfile.1 , logfile.2 , logfile.3 , logfile.4 형태로 생성
create : 로테이트를 한 후 비어 있는 로그 파일을 생성
dateext : 로그 파일에 날짜를 덧붙여서 생성
rsyslog 로그 체계적 생성 및 관리 ( P.440 )
/etc/rsyslog.conf : rsyslogd 데몬의 환경 설정 파일 [기본 구성 형식] facility.priority action
# systemctl restart rsyslog 관련 설정을 변경했을 경우 데몬 재시작
커널 매개 변수와 sysctl ( P.454 )
/proc/sys 디렉터리 : 커널 제어를 위한 매개 변수 보관 관리
cat 명령을 사용하여 커널 매개 변수 값을 확인 cat /proc/sys/fs/file-max
커널 매개 변수의 값을 변경하는 방법 - echo 명령과 > 기호 이용
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all ping과 같은 ICMP 패킷에 응답하지 않도록 설정
sysctl
/proc/sys 를 최상위 디렉터리로 인식
/proc/sys/net/ipv4/icmp_echo_ignore_all -> net.ipv4.icmp_echo_ignore_all
설정 변경을 재부팅 시에도 반영되게 하려면 /etc/stsctl.conf 파일에 등록
sysctl 명령어 옵션
-a -A : 적용된 커널 매개 변수와 값을 모두 출력
-p : /etc/sysctl.conf 파일의 내용을 읽어 들여 반영하고 출력
-n : 특정 매개 변수에 대한 값을 출력
-w 변수=값 : 매개 변수에 값을 설정
장치 관리
프린터 관련 명령어( P.401 )
BSD 계열 : lpr , lpq , lprm , lpc
System V 계열 : lp , lpstat , cancel
# lpr -# 2 -P lp test.txt test.txt 라는 문서를 lp 라는 이름을 가진 프린터로 2장을 출력
IPP ( Internet Printer Protocol ) : 프린터 서포트 프로토콜
ALSA ( Advanced Linux Sound Architecture ) : 다수의 사운드 장치를 관리
OSS ( Open Sound System ) : 사운드를 만들고 캡처하는 인터페이스
CUPS ( Common Unix Printing System ) : 컴퓨터를 인쇄 서버로 기능하도록 해주는 프린팅 시스템
XSANE ( XScanner Access Now Easy ) : SANE 스캐너 인터페이스를 X-windows 기반으로 만든 프로그램
모듈 관련 명령어 ( P.389 )
lsmod : 커널에 적재된 모듈 정보를 출력
insmod : 커널에 모듈을 적재하는 명령 , 해당 모듈 파일이 존재하는 디렉터리까지 이동 후 명령 사용
rmmod : 커널에서 모듈을 제거하는 명령
modprobe : insmod , rmmod 와 달리 다른 모듈에 의존되어 있는 경우에도 적재,제거 가능
모듈 관련 설정 파일 : /etc/modprobe.d 및 /lib/modprobe.d 디렉터리 안에 .conf 파일
리눅스 모듈은 /lib/modules 디렉터리에 .ko(kernel object) 확장자로 존재함
모듈 의존성 파일 : 모듈 간의 의존성을 기록한 파일
모듈 간의 의존성이 변경되면 modules.dep 파일의 내용이 변경되어야 modprobe 명령이 정상적으로 동작
depmod : 커널 모듈 간의 의존성을 관리하는 명령어
LVM ( Logical Volume Manager ) ( P . 411 )
리눅스의 저장 공간을 효율적이고 유연하게 관리하기 위한 커널
PV -> VG -> LV 순 pvcreate(Physical Volume ) -> vgcreate( Volume Group ) -> lvcreate ( Logical Volume )
물리적 볼륨을 생성한 후에 볼륨 그룹을 구성하고 논리적 볼륨을 생성한다
# lvcreate -L 2G -n backup lvm0 lvm0 볼륨 그룹에 backup 라는 이름으로 2G용량으로 LV을 생성
-L : LV 의 크기를 지정
-n : LV의 이름을 지정
RAID ( P. 426 )
Linux Software RAID 를 md( Multiple Device ) 라 부름
mdadm : md를 관리하는 도구
# mdadm options <raiddevice> <component-devices>
주요 옵션
-f : 특정 장치에 오류 발생
# mdadm /dev/md1 -f /dev/sdb6 /dev/md1 의 /dev/sdb6 장치에 강제적으로 오류 발생
소스 프로그램 설치 ( P.370 )
압축풀기 -> 디렉터리 이동 -> configure -> make -> make install 5단계
configure : 소스 프로그램 환경 설정 스크립트 , Makefile 만듦
make : Makefile 읽음
커널 컴파일
커널 소스를 다운로드하여 시스템에 최적화된 커널을 만드는 과정
커널 컴파일 과정 중 make menuconfig 명령을 이용해서 여러 가지를 설정을 끝낸 후에 저장하였다. 다음 중 관련 작업 후 커널 소스 디렉터리에 생성되는 파일명으로 알맞은 것은?(정답률 : 40%)
.config
컴파일의 순서
커널 소스의 설정값 초기화(make mrproper) -> 커널 컴파일 옵션 설정 작업(make menuconfig)
->커널 이미지 파일 생성 작업( make bzlmage)
make clean 은 make mrproper 와 달리 config 파일 제외하고 초기화
디스크 쿼터 Disk Quota
디스크에 남아있는 용량 , 사용자의 디스크 사용량 제한
소프트 : 사용자에게 공지되는 제한 용량
하드 : 실제 사용자가 최대로 사용할 수 있는 용량 소프트 < 하드 , 하드로 지정한 값은 절대 초과할 수 없다.
xfs_quota : 파일 시스템의 쿼터를 관리해주는 명령어
edquota : vi 편집기 실행
repquota : 쿼터 정보 출력
quota : 사용자나 그룹 단위로 쿼터 정보 출력
사용자 쿼터 설정하기 - /etc/fstab 에서 /home 의 4번째 필드에 사용자쿼터 설정 옵션인 uquota(usrqouta) 를 추가
프로세스 우선순위 ( P. 338 )
하나의 시스템에는 많은 프로세스들이 동시에 실행 , 우선순위를 부여하여 관리
ps -l : 프로세스의 우선순위 확인 , PRI(priority) 와 NI(nice) 항목 값이 낮을수록 우선순위 높음
PRI 범위 0~139 / 인위적인 조작X 시스템 상황에 따라 적절히 부여
NI 범위 -20 ~ 19 / 프로세스 우선순위 변경 명령어 : nice , renice , top
프로세스 관련 명령어 ( P . 345 )
ps : 동작중인 프로세스 상태 출력
kill : 프로세스에 특정한 시그널을 보내는 명령 #kill -9 724 PID 가 724 인 프로세스를 강제 종료 -9 : SIGKILL
pkill : 프로세스명을 사용해서 특정 프로세스에 시그널을 보내는 명령 #pkill httpd httpd 프로세스를 모두 종료
pkill 은 kill 명령어에서 ps 명령어로 PID 를 찾은 뒤 입력해야 되는 불편함을 개선
nohup : 사용자가 로그아웃하거나 실행중인 프로세스의 터미널이 닫혀도 백그라운드로 작업될 수 있도록
pgrep : 프로세스 이름 기반으로 검색하는 명령 , PID 값을 출력 #pgrep httpd httpd 프로세스의 PID를 출력
top : 동작중인 프로세스의 상태를 실시간으로 화면에 출력
gcc ( GNU Complier Collection )
C 컴파일러 도구 , C언어로 작성할 파일을 gcc로 컴파일하면 a.out 실행 파일 생성
gcc : a.out 실행파일 생성
gcc -o : 출력파일명 지정
gcc -c : .o 오브젝트 파일 생성
소유권과 허가권 ( P. 265 )
권한 | 파일 | 디렉터리 |
r | 파일의 내용을 볼 수 있는 권한 | 디렉터리 내부의 내용을 볼 수 있는 권한 |
w | 파일의 내용을 수정할 수 있는 권한 | 디렉터리 내부에 파일을 생성 또는 삭제할 수 있는 권한 |
x | 실행 파일을 실행시킬 수 있는 권한 | 디렉터리 내부로 접근할 수 있는 권한 |
파일 링크 ( Link ) ( P. 273 )
파일이나 디렉터리를 생성하면 I-node 번호 부여 # ls -i 명령으로 확인가능
I-node 번호가 같다면 같은 파일로 인식
ln : 하드링크 또는 심볼릭 링크 생성 명령 ln -s : 심볼릭 링크
ln [옵션] 원본파일 대상명
하드링크 : 동일한 파일 복사 , 파일에만 부여
심볼릭링크 : 파일 가르키는 포인터 , 파일과 디렉터리 모두 사용 가능
패키지 관리 기법 ( P.357 )
프로그램의 쉬운 설치 , 삭제 , 관리등을 위함
기본 패키지 관리 기법 : RPM , Dpkg , YaST
온라인 패키지 관리 기법 : YUM , apt-get , zypper
rpm 옵션
-q : 질의 시 꼭 사용해야 하는 옵션
-l : 패키지에서 설치한 모든 파일 정보 출력
-f : 지정한 파일을 설치한 패키지 이름 출력 # rpm -qf /bin/ls /bin/ls 파일을 설치한 패키지 정보 출력
-p : 패키지 파일에서 설치되는 파일 목록 정보 출력
# rpm -qlp abcd.rpm 패키지 파일에서 설치되는 파일 목록 정보 출력
# yum list [항목] 패키지에 대한 정보 출력 항목: installed , updates , all
# yum info [패키지명] 패키지에 대한 정보 출력
# yum update 패키지 업데이트
# yum search [문자열] 문자열이 포함된 패키지 찾기
# yum erash(remove) [패키지명] 패키지 삭제
라이브러리 관리 ( P.382 )
동적 링크 라이브러리 : 실행 프로그램에 항상 라이브러리를 포함하는 것이 아니라
필요할 때만 라이브러리를 메모리에 적재하는 방식
공유 라이브러리 : 공유물(shared object) 라는 의미로 .so /lib 와 /usr/lib 위치
/etc/ld.so.conf : 공유 라이브러리 디렉터리 추가 등록시 사용하는 환경 설정 파일
ldconfig : 공유 라이브러리 관련 정보를 갱신하고 설정하는 명령 /etc/ld.so.conf 파일의 내용을 다시 읽어 들인다
ldd : 특정 파일이나 프로그램이 의존하고 있는 공유 라이브러리 정보 출력
#ldd -v /bin/cp cp명령어가 의존하고 있는 공유 라이브러리 정보를 버전 등과 같이 출력
텍스트 파일 관련 명령어 ( P.317 )
cut : 데이터의 열(column)을 추출 -c : 문자 수 기준 -f : 파일의 필드 기준 -d : 필드 구분자 지정
#cut -f 1,3 -d: /etc/passwd 필드 구분을 : 으로 지정하고 , 첫번째 세번째 필드값을 추출해서 출력
iptables ( P.674 )
접속 제한을 위한 패킷 필터링 도구
# iptables -A INPUT -s 192.168.12.22 -d localhost -j DROP
INPUT 사슬에 발신지가 192.168.12.22 이고 , 도착지가 localhost 인 패킷을 거부 시키즌 정책 추가
# iptables -D INPUT 2
INPUT 사슬에 설정한 두 번째 정책을 삭제
filter : 패킷 필터링
nat : ip 주소 변환 , 한 개의 공인 IP 주소를 가지고 여러 대의 컴퓨터 사용
mangle : 특수 규칙 , 성능 향상
raw : 독립적 동작
firewalld ( P.688 )
동적 방화벽 서비스 데몬 , 재시작할 필요 없음
CentOS 7 에서 lokkit 사용하기
1. lokkit 설치하기 #yum install lokkit
2. firewalld 서비스 중지시키기 #systemctl stop firewalld
3. iptables 서비스 시작하기 # systemctl start iptables
웹 서비스 HTTP ( P. 512 )
NIS ( Network Information Service ) ( P.568 )
하나의 서버에 등록된 사용자 계정,암호,그룹 정보 등을 공유하여 다른 시스템에 제공하는 서비스
관련 명령어들이 yp ( yellow pages ) 로 시작
NIS 는 RPC ( Remote Procedure Call ) 을 사용 #systemctl start rpcbind
NIS 서버 관련 데몬 : ypserv , yppasswdd , ypxfrd
NIS 클라이언트 사용하기 위한 패키지 : ypbind , yp-tools
ypserv : 서버용 패키지명 , 서버를 운영하는 데몬 스크립트
yppasswdd : 클라이언트에서 패스워드 시에 적용되도록 해주는 데몬 스크립트
ypxfrd : 서버와 클라이언트 간의 매핑 속도를 높여주는 데몬 스크립트
DNS 조회 없이 NIS 를 빠르게 이용하기 /etc/hosts 파일 수정하여 NIS 서버 및 클라이언트 주소 도메인 등록
관련 정보 갱신 - # cd /var/yp ; make # make -C /var/yp
var/yp : 맵 파일이 생성되는 기본 디렉토리
관련 명령어
nisdomainname : NIS 도메인명을 보여주거나 설정
ypwhich : NIS 서버명과 관련 맵 파일 출력 # ypwhich -m NIS 서버의 맵 파일을 출력
ypcat : NIS 서버의 데이터베이스라고 할 수 있는 맵 파일의 내용을 확인 # ypcat hosts.byname
LDAP(Lightweight Directory Access Protocol) (P.568)
이름,주소와 같이 하나 이상의 속성을 가진 객체로 구성 / 그 객체를 엔트리 라고 부름 ( = 레코드 )
DIT : Directory Information Tree 라 부르는 트리 구조에 의해 조직화
이 조직 내에서 고유한 식별자인 DN ( Distingushed Name ) 을 사용
[속성 관련 키워드]
c : CountryName 국가이름
cn : CommonName 이름과 성의 조합
sn : SurName 성을 나타냄
givenName : 이름을 나타냄
VNC(Virtual Network Computing) ( P.661 )
RFB(Remote Frame Buffer) 프로토콜을 이용하여 원격의 다른 컴퓨터에서 그래픽 환경 기반으로 데스크톱을 공유할 수 있는 시스템
센드메일(sendmail) 관련 주요 파일 ( P.610 )
1. /etc/mail/local-host-names : 메일 서버에 사용하는 도메인을 설정 , 한 줄에 하나씩 기입
2. /etc/mail/access : 메일 서버로 접근하는 호스트나 도메인의 접근을 제어하는 파일
-RELAY : 허용 / -REJECT : 거절 + 메시지 / DISCARD : 거절 /
3. /etc/aliases : 특정 계정으로 들어오는 메일을 다른 계정으로 전송되도록 설정 webmaster: posein,jalin,joon
변경 시에는 newaliases 명령을 실행시켜 변경된 내용을 적용
4. /etc/mail/virtusetable : 하나의 메일 서버에 여러 도메인을 사용하는 환경 , 각각의 도메인별 메일 포워딩
ceo@linux.com posein ceo@linux.com 으로 들어오는 메일은 posein 에게 전달
ceo@windows.com yuloje ceo@windows.com 으로 들어오는 메일은 yuloje에게 전달
FTP(File Transfer Protocol) (P. 602 )
서버와 클라이언트 사이에 파일을 주고받기 위한 프로토콜
vsftpd : 대표적인 FTP 서버 프로그램
anonymous_enable=YES 익명 계정의 허가 유무를 지정
local_enable=YES 일반 계정 사용자의 허가 유무 지정
삼바( SAMBA ) ( P. 582 )
운영체제가 다른 시스템의 자원을 공유 , SMB 프로토콜 , smbd / nmbd 데몬 사용
smb.conf : 삼바 서버의 환경 설정 파일
hosts allow = 127. 192.168.12. 192.168.13 삼바 서버에 접속을 허용할 호스트를 지정
smbclient : 윈도우 서버로 접근할 때 사용 -L : 접속하려는 삼바 서버의 공유 디렉터리 정보 출력
# smbclient -L joon -U administrator&1234 / joon 이라는 호스트에 admin 계정으로 접근 패스워드는 1234 이다
# smbclient //192.168.12.22/src
smbstatus : 클라이언트와 연결된 상태 출력
mount.cifs : 윈도우에 공유된 디렉터리를 마운트할 때 사용
#mount.cifs //192.168.5.13/photo /mnt 192.168.5.13 에 공유된 디렉터리인 photo 를 /mnt 로 마운트한다
(Network File System) ( P.595 )
네트워크상에서 상대방의 파일 시스템 일부를 자기 자신의 디렉터리인 것처럼 사용
/etc/exports : NFS 서버의 환경 및 접근 제어 설정 파일
[설정법]
공유할_디렉터리 허가할_호스트(옵션)
(옵션)
ro : 읽기 전용 rw : 읽기 및 쓰기 가능
root_squash : root 사용자를 무시하고 nobody( 또는 nfsnobody ) 로 매핑
all_squash : root 를 포함하여 모든 사용자의 권한을 nobody( 또는 nfsnobody ) 로 매핑
/nfsdata 192.168.5.13
/nfsdata1 192.168.5.0/24(rw,root_squash)
NIS 와 더불어 RPC 기반으로 작동되므로 rpcbind 데몬을 먼저 실행 #systemctl start rpcbind
# rpcinfo : rpc 관련 정보를 출력
NFS 클라이언트에서는 mount 명령을 이용하여 NFS 서버의 파일 시스템을 이용
# mount -t nfs 192.168.5.13:/nfsdata /mnt 192.168.5.13 의 /nfsdata 를 /mnt 디렉터리로 마운트한다.
# mount.nfs 192.168.5.13:/nfsdata /mnt
NTP(Network Time Protocol) ( P . 664 )
컴퓨터간의 시간을 동기화
/etc/ntp.conf : 환경설정 파일
server time.bora.net 기준이 되는 NTP 서버를 지정
server time.kriss.re.kr
프록시 Proxy ( P.657 )
프록시(proxy) 서버는 네트워크 속도가 느린 환경에서 보다 빠른 인터넷을 이용하기 위해 사용
자주 방문하는 사이트의 정보를 저장하는 일종의 캐시 서버 , squid 프로그램을 설치해서 구성
프록시 서버 설정 파일 : /etc/squid/squid.conf
http_port 3128 프록시 서버의 포트 번호를 지정
가상화(Virtualization) ( P.631 )
물리적 자원들을 논리적 자원들의 형태로 표시하는 기술
자원을 여럿으로 나누거나 , 다수의 자원을 하나로 묶는 기술
가상화의 기능
- 공유 ( sharing ) : 여러 사용자들이 물리적 자원을 공유
- 단일화 ( Aggregation ) : 공유와 반대되는 개념 , 유휴 디스크들을 하나의 가상화된 디스크로 만듦
-Emulation : 물리적 자원 자체에는 원래부터 존재하지 않았지만 가상 자원에는 기능들이 존재했던 것처럼
Provisioning : 사용자의 요구사항에 맞게 할당,배치,배포할 수 있도록 만들어 놓는 것
Xen : CPU 반가상화
KVM : x86 시스템 기반 , CPU 전가상화
VirtualBox : OS 가상화 , 무겁고 느림
Docker : 컨테이너 가상화 , 가볍고 빠름
DNS ( Domain Name System ) ( P . 617 )
IP 주소 기반의 인터넷 체계에서 도메인명 기반으로 이용
/etc/named.conf : DNS 서버의 환경 설정 파일 include 지시자를 선언하여 별도의 파일에 추가 정의 가능
zone 파일 : 도메인을 관리하는 데이터베이스 파일 /var/named 위치
/etc/named.conf 파일 directory “/var/named”; 존 파일이 위치하는 디렉터리명
[zone 파일 기본 형식]
zone “도메인명” IN { 리버스 존 파일에 대한 설정은 “ 50.247.203.in-addr.arpa “ 역순 형식
type (master | slave | hint);
file “존파일명”;
};
zone 파일에서 메일 서버 설정하기
( 도메인이 linux.or.kr 이고 관리자 계정이 posein ) “ 계정.도메인 “ 형태 관리자계정 마지막에 “ . “
@ IN SOA ns.linux.or.kr. posein.linux.or.kr.
acl 구문 : 여러 호스트를 하나의 명칭으로 지정할 때 사용
# acl “member” {210.96.52.100; 192.168.5/24; } ;
/etc/named.conf : DNS 서버의 환경 설정 파일 , zone 파일 지정
- Primary Name Server : 도메인 관리를 위한 필수 서버 , Master DNS
- Secondary Name Server : zone 파일을 백업하는 역할 , Slave DNS
타입
A : IPv4 의 주소를 기입
AAAA : IPv6 의 주소를 기입
NS : 도메인 네임 서버 지정
MX : 메일 서버 지정
CNAME : Canonical Name 레코드 , 별칭을 지정
'자격증 > 리눅스마스터 1급' 카테고리의 다른 글
[리눅스마스터 1급 2차] 제1401회 기출문제 작업식 풀이 (11~16번) (0) | 2023.05.01 |
---|---|
[리눅스마스터 1급 2차] 제1401회 기출문제 단답식 풀이 (1~10번) (0) | 2023.04.27 |