Cron이란,
서버 내에서 특정한 시간에 특정 작업을 수행하게 해주는 스케쥴링 역할을 합니다.
Crontab이란, Cron 작업을 설정하는 파일을 지칭합니다.
경로는 각 OS별로 다른 위치에 저장이 되지만 기본적으로 /etc/crontab의 경로에 저장되어있으며,
해당 경로의 파일에 설정된 Cron을 읽어서 작업을 수행하게 됩니다.
[Cron의 구성]
Cron은 기본적으로 [분-시-일-월-요일-사용자-실행명령]의 7개의 필드로 구성되어있습니다.
# m h dom mon dow user command
[Cron과 관련된 파일]
/usr/sbin/cron : 크론의 데몬 파일
/etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly, /etc/cron.hourly : 시스템 크론 설정 디렉토리
/var/log/cron : Cron 실행 내용이 기록되는 로그파일
/etc/cron.allow, /etc/cron.d/at.allow : 크론 접근을 허용할 계정을 설정하는 파일
/etc/cron.deny /etc/cron.d/at.deny : 크론 접근을 차단할 계정을 설정하는 파일
/var/spool/cron : 일반 사용자의 Cron 설정 내역이 저장되는 파일
/etc/crontab : root사용자를 위한 시스템 예약 작업 파일
[Crontab 명령어]
crontab -l : 예약된 작업 리스트
crontab -e : 예약된 작업 수정
crontab -r : 예약된 작업 삭제
crontab - u [사용자명] : root 사용자는 해당 사용자의 crontab 파일을 보거나 삭제, 편집 가능
[Cron의 동작 경로]
Crond 데몬 실행 ->
Crontab 파일 읽음 (Hourly, daily, weekly, monthly) & /var/spool/cron 경로에 있는 파일을 읽음.(각 사용자들의 개별 cron 설정파일) ->
Cron에 의해 수행이 안된 작업 Anacron에 의해 수행 재시도 ->
/var/log/cron 에 기록.
[Cron 설정 예시]
1. 매일 6시에 백업 : 0 6 * * * /bin/sh backup.sh
2. 하루에 두번 script.sh 수행 : 0 5, 17 * * * /scripts/script.sh
3. 매분 수행 : * * * * * /sxripts/script.sh
4. 매 10분마다 monitor 스크립트 실행 : */10 * * * * /scripts/monitor.sh
5. 1월부터 12월까지 2개월마다 1일날 오전 4시 10분에 /etc/check.sh 스크립트 실행 : 10 4 1 1-12/2 * /etc/check.sh
6. 금요일하고 일요일 5시에만 스크립트 수행 : 0 17 * * sun [$(date + %d) -le 07] && /script/scriptnt.sh
참고 : https://tecadmin.net/crontab-in-linux-with-20-examples-of-cron-schedule/
[보안 측면에서 기업이 주의해야 할 점]
Crontab은 작업 스케쥴과 관련되어있어 스니핑(Sniffing)을 통해 정보가 유츌될 수 있는 취약점이 존재합니다.
때문에, 기업은 Crontab의 권한을 확인하여 Others의 권한을 제한하여야 합니다.
설정 해 놓아야 할 사항
cron.allow, at.allow, cron.deny, at.deny, cronlog 등.
<Cron으로 작업 스케쥴을 관리할 경우 단점>
1. 배치 작업의 등록/변경/삭제일자 확인 불가능.
2. 배치 오류 로그가 확인하기 어렵게 기록/관리 됨.
[결론]
> 별도의 작업 스케쥴러 프로그램/툴을 사용할 것을 권고.
> 위처럼 툴의 도입이 어려울 경우, 크론 리스트를 관리하는 별도의 파일을 만들어 하루~주 단위로 수동관리할 것. 이는 예로 1월1일의 해당리스트와 12월 31일의 리스트를 비교했을때 생성된, 삭제된 리스트를 확인할 수 있게해줌. 여기다가 주, 월 등 단위로 모니터링하는 통제를 만들것을 권고. (모집단 측면) IT감사시 배치작업 모니터링 또한 테스트를 하기 때문에 /log/cron 파일의 로그를 일마다 모니터링하고 상위권자의 승인을 득하여 결과(성공/오류, 오류시 조치내역)를 보고하는 통제를 만들것을 권고. (모니터링 측면)
'공부 > IT 감사 및 내부회계 IT' 카테고리의 다른 글
[공부] 내부회계관리제도 개요/구축 (0) | 2021.07.14 |
---|---|
[보안] 허용된 호스트만 접근 허용, 접근제어솔루션 우회불가 확인 방법 (DBSafer, Hiware 등의 IT Supporting Tools 설정 확인) (0) | 2021.06.16 |
[OS] LDAP과 Active Directory란? (0) | 2021.06.15 |
[OS] Linux PAM 모듈이란? (0) | 2021.06.15 |
OS/DB 별 패치 확인 및 보안 권고 사항 (0) | 2021.06.15 |
댓글