LINUX 운영체제 보안

CentOS crontab을 이용한 이메일 보내기.

웹하는빡통 2019. 11. 18. 21:01

cron

리눅스에서는 일반적으로 cron 데몬이 주기적인 작업 실행을 처리한다. cron이 시작될 때부터 끝날 때까지 계속 실행되며 실행되며 cron 설정 파일은 cron table을 줄여서 crontab이라 부른다.

 

cron이 참조하는 crontab 파일 위치

  • /var/spool/cron

  • /etc/cron.d

  • /etc/crontab

cron은 시작할 때 모든 곳에 저장된 설정파일들을 읽어 메모리에 저장해두고 휴지 상태에 들어간다. 그리고 매분마다 활성화돼 변경된 crontab 파일들이 있는지 확인하고, 변경된 경우 설정을 다시 읽어 저장하고, 그 시간에 실행해야 할 작업이 있는지 확인하고 실행시킨 후 다시 휴지 상태로 들어간다.

 

vi /etc/crontab

 

관리자가 직접 지정한 작업들을 설정하며, 임의의 사용자 권한으로 실행할 수 있다. 시스템 관련 작업들을 등록해 사용하는 곳이다.

 

 

*는 분/시/일/월/요일 이다. 여기서 주말 같은 경우는 0은 일요일 6은 토요일을 의미한다. 

간단한 예제로 설정하겠다. 

 

15,45 * * * * /root/every_30min.sh

매시 15,45분에 /root/every_30min.sh를 실행하라.

 

*/1 * * * * /root/test.sh

매 1분마다 /root/test.sh를 실행하라 

 

0 2 * * * /root/test.sh

오전 2시에 /root/test.sh를 실행하라

 

30 1-23/6 * * * /root/es.sh

1시부터 매 6시간마다 수행(01시30분,07시30분,13시30분...)

 

0 8 * * 1-5 /root/test.sh 

평일(월요일-금요일) 08:00에 실행해라

 

  Crontab 명령어

 

  • crontab -l : 예약된 작업리스트

  • crontab -e : 예약된 작업 수정

  • crontab -r : 예약된 작업 삭제

  • crontab -u 사용자명 : 루트관리자는 해당 사용자의 crontab 파일을 보거나 삭제, 편집가능

자그럼 지금 부터 실습을 해보겠다 위 내용을 토대로 메일 한번 보내보자. 

 

 

 

crontab을 이용하여 메일 보내기. 

먼저 mailx 패키지를 설치하자. 

 

설치가 정상적으로 완료가 되었으면 이제 메일을 한번 보내보자.

 

vi test.txt 파일을 생성 후 안에 내용을 작성한다. 

 

mail -s는 메일 제목을 의미한다 "haha"라는 메일 제목을 설정하고 그 뒤에 보내는 이메일 주소를 입력한다

mail -s [메일주소] < test.txt 

 

그 결과 네이버 메일을 확인해보니 메일이 온것을 확인 할 수 있었다.

 

이번에는 1분마다 메일을 보내보자.

 

crontab -e에 들어가 위 사진과 같이 작성해준다 모자이크 부분은 해당 보낼 메일주소이다.

 

 

그 다음 crontab -l을 이용해 정상적으로 등록이 되었는지 확인한다. 정상적으로 등록이 되어있으면 위 사진과 같이 나올거다. 

 

그 결과 잠깐 담배피고 온 사이에 메일이 어마무시하게 온 것을 알 수 있다. 

이번 crontab을 배우면서 문득 든 생각이 정상적인 메일이 아닌 악성코드가 담겨진 메일이거나 APT공격에도 이용이 될 것 같다는 생각이 들었다. 친구들에게 한번씩 장난삼아 해보아도 될 것 같다.