Day 9-CRON, RSYNC, 서비스와 데몬

2019. 11. 28. 11:40Security/리눅스

* CRON

- 리눅스의 반복 작업을 예약할 수 있는 프로그램.

- 윈도우의 스케줄러와 유사.

 

Crontab 명령을 이용한 스케줄 정의 

형식 : crontab [옵션]

-e : 스케줄 등록(vi 환경)
- l : 스케줄 확인(출력)

- r : 스케줄 삭제(거의 사용하지 않음)

 

명령어 형식

[분(0~59)] [시(0~23)] [일(1~31)] [월(1~12)] [요일(0(일)~6)(토)] [작업내용]

[#-#] : 실행할 시간 범위를 지정

[#-#/#] : 범위내에서 실행 간격 지정

00

9-18/2

1-15/3

1-12/4

1-5

 

ex)

00 0-23 * * * rdate -s time.bora.net : 매시간마다 실행
0-59/10 * * * * chown -R data.st /home/data : 0에서 59분까지 10분마다 실행
0-59/10 * * * * chmod -R 775 /home/data : 0에서 59분까지 10분마다 실행

 

* RSYNC

- 두 시스템간 지정한 디렉토리를 동기화

 

RSYNC 데몬 구동

데몬구동 하는 방법은 standalone과 xinetd이 있다.

standalone : 해당 서버를 메모리에 미리 올려놓는 방식. 여기서는 standalone을 사용. 

xinetd : 해당 서버가 필요할때만 메모리에 올렸다가 내렸다가 함. 필요할때만 사용하는 방식이라 가용성이 떨어짐.

 

rsync 명령 옵션

형식 : rsync -avz [--delete] source destination

        rsunc -avz [--delete] IP::[서비스명] [백업 디렉토리]

        rsunc -avz [--delete] [백업 디렉토리] IP::[서비스명]

-v : 작업내역 출력

-a : archive mode 작업. 심볼릭 링크, 권한등의 모든 내용을 보존

-z : 파일을 압축 전송

--delete : source에서 지워진 파일을 destination에서도 지워준다.(완전 동기화 옵션)

ex) rsync -avz /home/httpd/ /backup/httpd/ : 로컬 시스템 내에 동기화

 

rsync 관련파일

- /usr/bin/rsync : 데몬

- /usr/lib/systemd/system/rsyncd.service : 백업 설정 파일

- /etc/rsyncd.conf : 백업 설정 파일

[서비스명] : client에서 이용하는 리소스 식별자

path : 백업 경로

comment : 주석

uid : 전송자 uid

gid : 전송자 gid

use chroot : rsync 경로를 외부에서 /로 인식

read only : 읽기 전용으로 접근

hosts allow : 접속 허용할 호스트(클라이언트만 지정)

max connections : 동시 접속자 수

timeout  : 접속 유지시간

 

[실습]

yum list rsync :  rsync 설치 확인

systemctl start rsyncd.service : rsync 데몬 실행

systemctl status rsyncd.service : rsync 데몬 상태 확인

[backup] : client에서 이용하는 리소스 식별자

/backup/ : 백업 경로

root : 전송자 uid

root : 전송자 gid

use chroot : rsync 경로를 외부에서 /로 인식

read only : 읽기 전용으로 접근

192.168.10.188 : 접속 허용할 호스트(클라이언트만 지정)

1 : 동시 접속자 수

300  : 접속 유지시간

conf 변경 후에는 항상 restart 해주어야 한다.

rsync -avz 192.168.10.187::backup /backup/

// 192.168.10.187의 backup 서비스를 /backup/에 백업.

00 01 * * * rsync -avz 192.168.10.187::backup /backup/

// 매일 새벽 1시에 192.168.10.187의 backup 서비스를 /backup/에 백업.

 

* 서비스와 데몬

- 사용자의 요구 시점이 아닌 임의의 시점에서 background 프로세스로 시작되어 사용자나 프로세스에 서비스를 제공하는 프로그램.

- 현재는 대부분 standalone 방식 사용.

 

stand alone

- 스스로 listen하며 항상 메모리에 상주

- 요청에 즉시 대응 가능.

 

super daemon

- 서비스 요청이 있을시에 xinetd에 의해 호출

- 점점 사라지는 추세

 

systemctl list-unit-files : 모든 서비스의 상태 확인

systemctl [is-enabled] [서비스명] : 자동 실행 등록 여부

systemctl [is-active] [서비스명] : 현재 실행 여부

systemctl [enable] [서비스명] : 서비스 등록

systemctl [disable] [서비스명] : 서비스 등록 해제

systemctl [start | restart | stop] [서비스명] : 서비스의 실행, 재실행, 종료

 

Target

- init의 run level과 동일한 개념

- run level보다는 다양한 모드를 제공. 

레드햇 게열 리눅스의 런레벨

systemctl list-units --type target --all : 제공되는 target 확인

systemctl set-default [타켓] : 기본 타켓을 변경

#systemctl get-default

// 시스템의 기본 타겟 확인(CentOS 7 이전버전에서는 /etc/inittab/ 파일에 설정)

#systemctl set-default multi-user.target : multi-user로 기본 target을 변경

재부팅하면 기본 타겟이 변경된 것을 확인할 수 있음.

 

systemctl [rescue | emergency] : 시스템 관리나 장비 손상등으로 인한 타겟 변경

rescue : rescue.target

emergency : emergency.target(응급 복구 모드)

 

* 용어 및 개념 정리

보안의 3요소가 위협받는 경우

무결성 : 잘못된 정보가 저장되는 것.

가용성 : 원하는 사용시간대에 사용하지 못하는 것.

기밀성 : 권한이 없는 사람이 정보를 보게 됨.

 

백업에 관해 : 이상유무를 확인하지않고 백업한다면 무결성의 문제가 생길 수 있기때문에 반드시 데이터의 이상 유무를 확인하고 백업을 시도해야하기때문에 일정 정도는 사람이 반드시 개입해야 함. 백업을 사용하는 이유는 가용성의 문제에 대응하기 위해서 사용.

 

복구(recovery)와 복원(restore)

복구(recovery) : 손상됐거나 손실된 데이터를 되살리는 작업

복원(restore) : 사용자의 의도에 따라서 데이터의 전부 또는 일부를 되돌리는 작업