728x90
cron 이란?
리눅스에서 cron은 정기적인 작업을 자동으로 실행할 수 있도록 도와주는 시간 기반의 작업 스케줄러입니다.
시스템관리자나 사용자들이 백업, 로그정리, 자동업데이트 등 반복적인 작업을 자동화할 때 주로 사용합니다.
기본 개념
- cron 데몬은 백그라운드에서 실행되며, 설정된 스케줄에 따라 지정된 명령어를 자동으로 실행합니다.
- 스케줄은 crontab 파일에 등록하며, 사용자별로 설정할 수 있습니다.
crontab 문법
crontab 파일은 다음과 같은 형식으로 작업을 등록합니다.
분 시 일 월 요일 명령어
| 필드 | 의미 | 허용값 |
| 분 | Minute | 0-59 |
| 시 | Hour | 0-23 |
| 일 | Day of Month | 1-31 |
| 월 | Month | 1-12 |
| 요일 | Day of Week | 0-7 |
0 3 * * * /home/user/backup.sh
매일 새벽 3시에 /home/user/backup.sh 실행
crontab 명령어
| 명령어 | 설명 |
| crontab -e | 현재 사용자용 crontab 파일 편집 |
| crontab -l | 현재 사용자용 crontab 내용 보기 |
| crontab -r | 현재 사용자용 crontab 삭제 |
| crontab -u 사용자명 -e | 특정 사용자의 crontab 수정(root만) |
예제
| 설명 | crontab 설정 |
| 매일 정오에 스크립트 실행 | 0 12 * * * /home/user/script.sh |
| 매주 일요일 1시 실행 | 0 1 * * * /usr/bin/weekly_cleanup |
| 매 10분마다 실행 | */10 * * * * /home/user/check.sh |
로그 확인
cron 실행 결과는 일반적으로 메일로 발송되거나 로그파일에 저장됩니다.
- 로그 확인
cat /var/log/cron # RHEL/CentOS
journalctl -u cron.service # Debian/Ubuntu
- 출력 리디렉션 예시
* * * * * /home/user/script.sh >> /home/user/log.txt 2>&1
리눅스 작업스케줄러 cron이 정보보호 관점에서 중요한 이유
1. 자동화된 보안 작업 수행
- 보안 패치 자동화
- 정기적으로 보안 업데이트 스크림ㅂ트를 실행하여 시스템을 최신 상태로 유지 가능
- 취약점 노출 시간 최소화
- 정기적으로 보안 업데이트 스크림ㅂ트를 실행하여 시스템을 최신 상태로 유지 가능
- 로그 백업 및 분석
- 로그파일을 주기적으로 수집, 백업 또는 정리하여 보안감사를 위한 증적 보존 가능
- 데이터 암호화 및 전송
- 중요한 파일을 자동 암호화하거나 외부 서버로 안전하게 전송하는 작업 자동화 기능
2. 악용될 경우 보안 위협 요소
- 백도어로 악용 가능
- 공격자가 crontab에 악성 명령어를 등록하면 지속적인 악성행위가 자동 실행됨
ex. reverse shell, 정보 탈취 스크립트 등
- 공격자가 crontab에 악성 명령어를 등록하면 지속적인 악성행위가 자동 실행됨
- 탐지 우회
- cron은 백그라운드에서 조용히 작동하기 때문에 운영자도 눈치채기 어려움
- 타임 기반으로 실행되므로 흔적 없이 정기적으로 활동 가능
- 권한문제
- 루트 권한으로 실행되는 cron 작업은 시스템에 치명적인 영향을 줄 수 있음
- 설정 실수 또는 권한 오용 시 전면적인 시스템 훼손 가능
- 루트 권한으로 실행되는 cron 작업은 시스템에 치명적인 영향을 줄 수 있음
정보보호 관점에서의 cron 관리 포인트
| 항목 | 설명 |
| 접근 제어 | cron.allow / cron.deny 파일로 실행 가능한 사용자 제한 |
| 무결성 점검 | crontab 파일과 실행 스크립트의 변경 여부를 정기적으로 모니터링 |
| 로그 감사 | cron fㅗ그를 별도로 수집하고 분석해 이상 행동 탐지 |
| 스크립트 검증 | 실행되는 스크립트는 사전 검토 및 무결성 체크 필요 |
| 최소 권한 원칙 적용 | 가능한 한 일반 사용자 권한으로 작업 등록(root는 제한적으로 사용)ㅠ |
728x90
'정보보호' 카테고리의 다른 글
| DNS(Domain Name Service)의 개념과 쿼리 과정 (0) | 2025.06.09 |
|---|---|
| 이메일 보안 기법(PGP, PEM, S/MIME) (0) | 2025.06.08 |
| 포트스캐닝 도구 nmap 사용 방법 및 스텔스 스캔 (0) | 2025.06.06 |
| 리눅스 /etc/passwd 파일 및 /etc/shadow 파일에 대한 개념 (0) | 2025.06.03 |
| PKI OSCP(Online Certificate Status Protocol) 개념 (0) | 2025.05.31 |