(U-22/상) 서비스 관리 crond 파일 소유자 및 권한 설정

crond

안녕하세요 IT몽상가입니다.

리눅스 보안에 세번째 분류인 서비스 관리에 대해서 알아보고자 하는데요.

서비스 관리는 리눅스에서 제공하는 서비스 중 불필요한 서비스나 보안적으로 위험한 서비스를 사용하고 있는지를 확인하는 것인데요.

이번에 알아보고자 하는 항목은 “crond 파일 소유자 및 권한 설정”입니다.

많이 사용되는 cron서비스 인데요.

시스템 운영에서도 자주 사용하고 있는데요.

그렇기에 해커들도 해당 서비스를 이용하여 다양한 공격을 하고 있습니다.

가장 최근에 자주 사용되었던 부분은 서버에 체굴 시스템을 실행하는데 사용되었는데요.

이유는 특정시간대에 자동으로 실행할 수 있기에 사용되었습니다.

주로 새벽에 가장 접속자가 없는 시간대에 cron서비스를 이용하여 채굴을 하고 시스템 부화도 많이 주지 않는 방법으로 지속적인 채굴을 하는 경우가 있었는데요.

이렇기에 cron서비스는 잘 관리하여야 합니다.

그러면 “crond 파일 소유자 및 권한 설정”에 대해서 알아보도록 하겠습니다.

– crond 파일 소유자 및 권한 설정 내용 및 목적

Cron 관련 파일의 권한 적절성 점검을 하는데요.

관리자외 cron 서비스를 사용할 수 없도록 설정하고 있는지 점검하는 것을 목적으로 하고 있습니다.

cron서비스는 주기적인 예약서비스로 주로 백업을 진행하거나 주기적인 작업을 하는 경우 cron를 이용하여 작업을 진행하는데요.

현재도 많은 시스템에서 cron서비스를 사용하고 있습니다.

그래서 권한을 가지고 있는 관리자를 제외한 다른 사용자는 사용하지 못하게 하고 있습니다.

– crond 파일 소유자 및 권한 설정 보안 위협

root외 일반 사용자에게도 crontab 명령어를 사용할 수 있도록 할 경우, 고의 또는 실수로 불법적인 예약 파일 실행으로 시스템 피해를 일으킬 수 있습니다.

최근에 많이 사용되는 부분은 코인을 채굴하는데 사용되었는데요.

일단 예약 서비스이기에 주기적으로 실행 시킬 필요가 없습니다.

자동으로 주기적으로 실행되게 할 수 있는데요.

그래서 새벽 시간에 채굴 프로그램이 실행되게 하여 서버에 부화를 최소화 하는데요.

그렇게 주기적으로 실행하면서 채굴을 하여 부당 수익을 획득하는 경우가 있었습니다.

– crond 파일 소유자 및 권한 설정 방법 및 점검 방법

예약서비스를 관리하는 것으로 root 및 권한을 부여 받은 사람들만 사용할 수 있게 하여야 하는데요.

그렇기에 cron서비스를 이용할 수 있는 명령어인 crontab 명령어가 일반 사용자가 사용하지 못하게 되어 있어야 합니다.

그래서 해당 명령어를 관리하는 /bin/crontab 파일의 권한을 우선 확인 합니다.

그리고 cron.allow 파일과 cron.deny 파일을 확인 하는데요

우선 설정 파일(cron.allow, cron.deny)이 없는 경우 root만 사용 가능합니다.

cron.allow는 사용 가능한 사용자, cron.deny은 사용하지 못하는 사용자를 등록하면 됩니다.

cron.allow가 우선이기에 cron.allow에 등록되어 있는 경우 cron.deny 등록되어 있어서 사용할 수 있습니다.

  • SOLARIS, LINUX, AIX, HP-UX

* 설정 방법

crontab 파일을 권한을 수선 설정합니다. 설정 값은 750으로 설정되어 있어야 합니다.

그리고 cron.allow와 cron.deny을 설정하면 되는데요.

해당 파일의 권한은 root 그리고 설정은 640으로 되어 있어야 합니다.

* 점검 방법

점검방법은 우선 bin/crontab 파일을 권한을 확인하고, cron.allow와 cron.deny를 확인 합니다.

corn.allow와 cron.deny가 우선이기에 해당 파일이 설정되어 있다면 crontab파일을 권한을 설정할 필요 없습니다.

– crond 파일 소유자 및 권한 설정 방법 및 점검 테스트

실제 서버에서 확인해 보겠는데요.

우선 테스트 환경은 제가 작성하였던  VMware 다운로드 및 설치 방법(무료 설치)와 CentOS Linux Containers 설치하기!를 참조하시면 됩니다.

테스트 환경은 CentOS 7 버전에서 진행 됩니다.

d17a5224 1b05 4a0f 8ded ac36570b03bc

우선 crontab 파일을 확인 하는데요.

bin폴더에 있는 파일을 확인 합니다.

image 1

etc 폴더에 해당 파일을 생성하였는데요.

cron.allow 파일과 cron.deny 파일을 경우 cron.d 폴더에 생성하여도 되나 저는 etc 폴더에 생성해 놓았습니다.

그리고 이렇게 설정하는 경우 root는 사용할 수 있으나, 다른 계정은 사용하지 못하는 경우가 발생 했는데요.

그것은 결국 cron설정 파일 폴더의 권한이 필요 했습니다.

image 2

var/spool 폴더에 cron폴더가 존재하는데요. 해당 폴더에 권한을 이렇게 하지 않는 경우 root가 아닌 계정에서 crontab -e 해당 명령어 사용이 가능 하였습니다.

앞서 cron.allow와 cron.deny에 설정하는 경우 crontab이랑 명령어는 사용 가능 하였으나, 스케줄을 정하는 crontab -e 명령어는 해당 폴더 설정이 하여야 사용 가능하였습니다.

– 마무리

“crond 파일 소유자 및 권한 설정”에 대해서 알아봤는데요.

사실 테스트 하는 과정이 조금 어려웠는데요.

진단을 하는 것과 실제 적용하는 것에 차이가 좀 있었습니다.

물론 직접 설정하지 않아봐도 진단이 가능 하나 이렇게 하나씩 확인하면서 이것 저것 배우는게 많은거 같네요.

cron은 예약 서비스로 다양한 곳에서 많이 사용됩니다.

그리고 악의적으로도 많이 사용하고 있기에 주기적인 점검을 통하여 안전하게 사용 하는게 좋을거 같네요.

00.IT몽상가가로 16

Leave a Comment