상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
항바이러스 효과 있는 음식 구성
계절병 예방에 탁월한 식품
실매출 기준으로 본 스마트스토어 운영 변화
무재고 창업 플랫폼, 초보자가 실패하는 이유
보고서 양식의 결과를 효과적으로 제시하는 방법은?
보고서 양식 작업에서 시간을 단축하는 법은?
방울토마토, 위 건강에 좋은 섭취법과 주의점
키위 효능, 껍질째 먹을 때 장점과 단점은?
애사비 젤리형 식초, 다이어트 도우미로 충분한가
다이어트 식단에 빠질 수 없는 사과식초 효능
강황 효능은 있지만, 모든 사람에게 맞을까?
강황 효능, 단기 복용과 장기 복용의 차이
Previous
Next
수정하기 - 웹서버구축 시 계정 관리 및 권한 설정 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
웹서버를 운영할 때 계정과 권한 관리를 제대로 해두지 않으면 시스템 전체가 취약해질 수 있습니다. 아래 내용은 웹서버 구축 시 반드시 고려해야 할 계정 관리 원칙과 구체적인 설정 방법을 단계별로 설명한 것입니다. 1. 최소 권한 원칙(Principle of Least Privilege) 적용 모든 계정은 그 계정이 수행해야 할 작업에 필요한 권한만 갖도록 제한해야 합니다. 불필요한 권한을 가진 계정이 해킹당하면 공격자가 서버 전체를 장악할 수 있으므로, 계정마다 역할(role)을 명확히 구분하고 각 역할에 꼭 필요한 권한만 부여하십시오. 2. 계정 분리 전략 • 루트(root) 계정 : 시스템 전체를 관리하는 최상위 슈퍼유저입니다. 평소 절대로 직접 로그인하거나 일상 작업에 사용하지 말고, 오직 긴급한 시스템 복구나 특권 명령이 필요할 때만 sudo su 또는 su 명령을 통해 일시적으로 권한을 상승시켜 사용합니다. • 운영 관리자 계정 : <a href='https://sangseek.com/sangseeks/시스템 설정/ko'>시스템 설정</a> 변경, 설치·업데이트 등 <a href='https://sangseek.com/sangseeks/일반 관리/ko'>일반 관리</a>자 작업만 수행하도록 생성합니다. 이 계정에는 sudo 권한을 최소한으로 부여하고, /etc/sudoers 파일이나 /etc/sudoers.d 디렉터리에서 구체적인 명령어 접근을 제한합니다. • 웹 서비스 전용 계정 : Apache (예: www-data), Nginx (예: nginx)와 같이 웹서버 데몬이 실행되는 전용 시스템 계정을 별도로 만듭니다. 이 계정은 웹문서가 위치한 디렉터리(/var/www/html 등)에만 읽기·실행 권한을 갖고, 불필요한 디렉터리 접근은 차단해야 합니다. • 배포 및 개발 계정 : 소스 코드 업로드, 배포 자동화(CI/CD)용 계정으로, 웹서버 계정과는 별도로 생성하되 그룹 관리를 통해 ▲웹 문서 디렉터리 쓰기 권한(필요 시) ▲로그 디렉터리 읽기 권한 등을 한정적으로 부여합니다. • 데이터베이스 전용 계정 : MySQL, PostgreSQL 등 DB 접근을 위한 계정은 애플리케이션 서버에서만 사용하도록 외부 SSH 접속을 차단하고, DB 접속 시 사용할 최소 권한(SELECT, INSERT, UPDATE 등)만 주어야 합니다. 3. SSH 접근 제어 • 공개키 기반 인증 설정 /etc/ssh/sshd_config에서 PasswordAuthentication no로 설정한 뒤, 관리·배포용 계정에만 각 사용자의 공개키(~/.ssh/authorized_keys)를 등록합니다. • 루트 직접 로그인 차단 PermitRootLogin no로 설정하여 원격에서 루트 직접 접속을 불가능하게 합니다. • 포트 변경 및 방화벽 설정 기본 SSH 포트(22)를 다른 포트로 변경하고 iptables 또는 ufw, firewalld 등을 사용해 허용된 IP 대역만 접근하도록 제한합니다. 4. 사용자·그룹 관리 • 그룹 분리 addgroup 명령으로 개발팀, 운영팀, 모니터링팀 등 역할별 그룹을 만들고 사용자 계정을 그룹에 할당합니다. • 디렉터리 소유권 설정 웹루트 디렉터리(/var/www/html)는 webdev 그룹 소유로 설정(chown root:webdev)하고, 웹서버 계정이 이 그룹의 읽기·실행만 할 수 있도록 chmod 750 혹은 755로 설정합니다. 배포용 계정은 webdev 그룹에 포함시켜 쓰기 권한(770)을 허용할 수 있습니다. • ACL 활용 세밀한 권한 제어가 필요하다면 setfacl/getfacl로 특정 사용자·그룹에 대한 읽기·쓰기·실행 권한을 추가·제거해 줍니다. 5. 파일 및 디렉터리 권한 설정 • 웹 루트 및 코드 파일 보통 644(-rw-r–r--) 또는 640으로 설정해 소유자만 쓰기, 그룹과 타인에게 읽기 권한만 주고 실행 권한은 제거합니다. • 실행 스크립트 및 바이너리 스크립트 파일은 750(-rwxr-x---)으로, 바이너리는 755(-rwxr-xr-x)로 설정하되 타인이 불필요하게 실행하지 못하도록 최소화합니다. • 민감 정보 파일 SSL 키, 환경설정 파일(.env, .htpasswd 등)은 600(-rw-------)으로 설정하고 소유자를 root나 운영 관리자 계정으로 한정합니다. 6. sudo 정책 <a href='https://sangseek.com/sangseeks/세부화/ko'>세부화</a> /etc/sudoers 파일을 직접 수정할 때는 반드시 visudo 명령을 쓰며, 다음과 같이 최소 권한만 허용합니다. • 특정 명령만 실행 허용 예를 들어 웹서버 재시작만 허용하려면 webadmin ALL=(root) NOPASSWD: /usr/sbin/service nginx restart 와 같이 명시하고 그 외 권한 상승은 불가능하게 합니다. • 별칭 사용 Cmnd_Alias 정의를 통해 허용 명령 모음을 만들고, 사용자·그룹별로 각각 할당하면 관리가 편리해집니다. 7. 패스워드 및 계정 보안 정책 • 패스워드 복잡도 및 유효기간 PAM 설정(/etc/pam.d/common-password)에서 최소 길이, 숫자·특수문자 포함 여부, 변경 주기(expire)를 강제합니다. • 계정 잠금 여러 번 실패한 로그인 시 일정 시간 계정을 잠그는 pam_tally2 또는 faillock 모듈을 활성화합니다. • 비활성 계정 정리 수개월간 로그인하지 않은 계정은 자동 비활성화 또는 삭제하도록 스크립트를 주기적(cron)으로 실행합니다. 8. 보안 강화 도구 및 감사 • SELinux/<a href='https://sangseek.com/sangseeks/AppArmor/ko'>AppArmor</a> 리눅스 배포판에 맞는 강화 모듈을 활성화하고, 웹서버 데몬이 특정 디렉터리만 읽고 쓸 수 있도록 정책을 정의합니다. • 로그·감사 /var/log/auth.log, /var/log/secure에 SSH·sudo 기록이 남도록 설정하고, logwatch나 auditd를 이용해 비정상 접근을 탐지합니다. • 침입 차단 fail2ban, denyhosts 등을 이용해 일정 시간 내 실패 로그인 시 해당 IP를 차단합니다. 9. SFTP/Chroot 환경 배포용 혹은 서비스용 SFTP 계정은 chroot 디렉터리(/srv/sftp 등)를 지정해 그 외 경로 접근을 금지합니다. sshd_config에 Match Group sftpusers ChrootDirectory /srv/sftp/%u ForceCommand internal-sftp 와 같이 설정하면 해당 그룹 계정은 지정된 디렉터리 안에서만 파일 전송이 가능합니다. 10. 주기적인 점검 및 업데이트 • 계정 리스트와 권한 설정 상태를 주기적으로 스크립트로 점검하여 의심 계정이나 과도 권한 계정이 없는지 확인합니다. • sudoers, sshd_config, PAM 설정, SELinux 정책 등 보안 설정 파일은 변경 시 이력 관리(git 등)를 통해 언제든 되돌릴 수 있도록 합니다. • 정기적으로 보안 패치를 적용하고, 웹서버(Apache/Nginx), PHP, 데이터베이스 등 핵심 서비스의 버전을 최신으로 유지합니다. 위 원칙과 절차를 충실히 지키면 계정별 권한을 명확히 분리하고, 운영자·개발자·서비스별로 최소 권한만을 부여함으로써 웹서버 보안 수준을 크게 향상시킬 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기