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,  정보 탈취 스크립트 등
  • 탐지 우회
    • cron은 백그라운드에서 조용히 작동하기 때문에 운영자도 눈치채기 어려움
    • 타임 기반으로 실행되므로 흔적 없이 정기적으로 활동 가능
  • 권한문제
    • 루트 권한으로 실행되는 cron 작업은 시스템에 치명적인 영향을 줄 수 있음
      • 설정 실수 또는 권한 오용 시 전면적인 시스템 훼손 가능

 

정보보호 관점에서의 cron 관리 포인트

항목 설명
접근 제어 cron.allow / cron.deny 파일로 실행 가능한 사용자 제한
무결성 점검 crontab 파일과 실행 스크립트의 변경 여부를 정기적으로 모니터링
로그 감사 cron fㅗ그를 별도로 수집하고 분석해 이상 행동 탐지
스크립트 검증 실행되는 스크립트는 사전 검토 및 무결성 체크 필요
최소 권한 원칙 적용 가능한 한 일반 사용자 권한으로 작업 등록(root는 제한적으로 사용)ㅠ
728x90

+ Recent posts