안녕하세요 😊
오늘은 리눅스에서 자주 사용하는 스케줄링 도구인 cron과 at의 접근 제어 설정에 대해 이야기해볼게요.
시스템에서 특정 사용자만 사용하도록 설정하는 것이 왜 중요한지,
그리고 설정 파일이 없을 경우 어떤 보안 취약점이 생기는지도 함께 알아보겠습니다!
🛠️ cron과 at이 뭐예요?
- cron: 정해진 시간마다 반복적으로 명령어나 스크립트를 자동 실행할 수 있도록 하는 도구예요.
예를 들어, 매일 새벽 2시에 백업 스크립트를 실행하는 식이죠. - at: 한 번만 실행되는 예약 작업을 설정할 수 있는 도구예요.
“지금은 바쁘니까, 2시간 뒤에 이 스크립트 실행해줘!”라고 할 수 있죠.
이 두 도구는 시스템 자동화에 정말 유용하지만, 아무나 사용하게 해두면 보안에 큰 구멍이 생길 수 있어요. 😱
✅ 접근 제어 방식
cron과 at은 모두 다음 두 파일을 사용해 누가 쓸 수 있는지 제어합니다:
- /etc/cron.allow 또는 /etc/at.allow:
이 파일에 등록된 사용자만 사용 가능합니다. - /etc/cron.deny 또는 /etc/at.deny:
이 파일에 등록된 사용자는 사용 금지입니다.
⚠️ 우선순위는?
- allow 파일이 있으면 → 이 파일 기준으로만 허용
- allow 파일이 없고, deny 파일이 있으면 → deny 기준으로 차단
- 둘 다 없으면 → 루트(root) 사용자만 사용 가능
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
👨💻 예시: cron 접근제어 설정
sudo vi /etc/cron.allow
alice bob
위와 같이 입력하면 alice, bob 사용자만 crontab 명령을 사용할 수 있어요.
만약 어떤 사용자를 차단하고 싶다면 /etc/cron.deny에 추가하면 됩니다:
sudo vi /etc/cron.deny
mallory
mallory 사용자는 이제 crontab을 사용할 수 없게 돼요.
🧪 at 접근제어 설정도 동일해요!
sudo vi /etc/at.allow
john mary
sudo vi /etc/at.deny
testuser
at도 cron과 똑같은 방식으로 접근제어를 설정할 수 있어요.
❗ allow, deny 파일이 없을 때의 보안 취약점
이 부분이 매우 중요합니다!
🚨 파일이 모두 없는 경우엔?
- /etc/cron.allow, /etc/cron.deny 둘 다 없을 경우
- /etc/at.allow, /etc/at.deny 둘 다 없을 경우
👉 이 경우에는 루트(root) 사용자만 접근 가능하지만...
✅ 그렇다고 안심하면 안 됩니다!
⚠️ 발생할 수 있는 취약점들
위험 요소 | 설명 |
🔓 일반 사용자도 명령 등록 가능 | OS에 따라 기본 설정이 완전히 차단되지 않아 일반 사용자도 crontab, at 명령을 실행할 수 있는 경우가 있어요. |
🐚 백도어 설치 가능성 | 공격자가 스케줄에 악성 명령어를 등록해 반복 실행되도록 하면, 시스템을 지속적으로 감염시킬 수 있어요. |
🕵️ 정보 유출 자동화 | cron으로 자동으로 민감한 정보(log, 파일 등)를 특정 주소로 전송하게 할 수 있어요. |
🧨 DoS 공격 | cron을 대량으로 등록해 시스템 자원을 소모시키는 식의 서비스 거부 공격(DoS)도 가능합니다. |
🔐 안전한 설정을 위한 팁
- 꼭 필요한 사용자만 allow에 등록하기
- deny는 최소화하거나 사용하지 않기
- 파일 퍼미션 제한하기
sudo chmod 600 /etc/cron.allow /etc/at.allow sudo chown root:root /etc/cron.allow /etc/at.allow
- 사용자 명령어 모니터링 (auditd, psacct, 또는 bash history 활용)
💬 마무리하며
cron과 at은 리눅스 서버 자동화에서 정말 중요한 도구지만,
접근제어 설정이 제대로 되어 있지 않으면 치명적인 보안 취약점이 될 수 있어요.
특히 allow, deny 파일이 없을 때의 동작을 정확히 이해하고,
꼭 필요한 사용자에게만 권한을 주는 습관이 필요합니다. 💡
🔎 "보안은 귀찮아서 지키는 게 아니라, 지키지 않아서 당해봐야 지켜진다"는 말이 있죠!
오늘 내용을 참고해서 여러분의 리눅스 서버에도 접근제어 설정이 잘 되어 있는지 꼭 확인해보세요! 🙌
'knowledge🧠 > Linux🐧' 카테고리의 다른 글
🔐 리눅스 비밀번호 복잡도 설정하는 법 (Rocky Linux 기준, 비전공자도 OK!) (2) | 2025.03.26 |
---|---|
Rocky Linux에서 iptables 쉽게 이해하고 설정하기! 🚀 (0) | 2025.02.17 |
🌟 rsyslog: 강력한 로그 관리 도구로 시스템을 안전하게! (0) | 2024.12.29 |
/etc/shadow encrypted_password 필드 구성 (0) | 2018.03.04 |
리눅스 패스워드 복잡도 설정 (0) | 2017.01.19 |