이 명령들은 Apache 웹 서버의 디렉토리 및 파일 권한을 설정하고, Apache 사용자 및 그룹 권한을 조정하는 데 사용됩니다. 각 명령에 대한 상세 설명은 다음과 같습니다:
sudo chmod 2775 /var/www
/var/www
디렉토리의 권한을 2775로 변경합니다.- 2는 setgid 비트를 나타내며, 새로 생성된 파일과 디렉토리가 상위 디렉토리의 그룹 소유권을 상속받도록 합니다.
- 775는 소유자에게 읽기/쓰기/실행 권한, 그룹에게 읽기/쓰기/실행 권한, 기타 사용자에게 읽기/실행 권한을 부여합니다.
find /var/www -type d -print0 | sudo xargs -0 chmod 2775
/var/www
디렉토리 내의 모든 하위 디렉토리를 찾아 권한을 2775로 변경합니다.find
는 디렉토리를 검색하고,-print0
는 null 문자로 구분된 출력을 생성합니다.xargs -0
는 null 문자로 구분된 입력을 받아chmod 2775
를 각 디렉토리에 적용합니다.
sudo find /var/www -type f -print0 | sudo xargs -0 chmod 0664
/var/www
디렉토리 내의 모든 파일을 찾아 권한을 0664로 변경합니다.- 664는 소유자에게 읽기/쓰기 권한, 그룹에게 읽기/쓰기 권한, 기타 사용자에게 읽기 권한을 부여합니다.
sudo systemctl restart httpd
- Apache 웹 서버를 재시작합니다.
sudo chown -R apache:apache /var/www/
/var/www
디렉토리와 그 하위 디렉토리 및 파일의 소유자와 그룹을 apache로 변경합니다.-R
옵션은 하위 디렉토리와 파일에도 재귀적으로 적용됩니다.
sudo usermod -a -G apache ec2-user
- ec2-user 사용자를 apache 그룹에 추가합니다.
-a
옵션은 사용자의 기존 그룹 멤버십을 유지하면서 새 그룹을 추가합니다.-G
옵션은 추가할 보조 그룹을 지정합니다.
sudo chown ec2-user:apache /var/www/html/.htaccess
/var/www/html/.htaccess
파일의 소유자를 ec2-user로, 그룹을 apache로 변경합니다.
이러한 명령들은 Apache 웹 서버 환경에서 적절한 권한 설정과 사용자 및 그룹 관리를 수행하여 보안과 협업을 향상시키는 데 도움이 됩니다.
이 내용은 Amazon Linux 2023에서 SSL 인증서를 Let’s Encrypt를 통해 설치하고 Apache 웹 서버에 적용하는 과정을 설명하고 있습니다. 각 단계에 대한 자세한 설명은 다음과 같습니다:
sudo su
: 슈퍼유저(root) 권한으로 전환합니다.dnf install openssl mod_ssl mod_ssl
: SSL 관련 패키지인 openssl과 Apache의 SSL 모듈인 mod_ssl을 설치합니다.sudo dnf install -y python3 augeas-libs pip
: Let’s Encrypt 클라이언트인 Certbot을 설치하기 위해 필요한 Python 3, Augeas 라이브러리, pip를 설치합니다.sudo python3 -m venv /opt/certbot/
: /opt/certbot 디렉토리에 Python 가상 환경을 생성합니다. 이를 통해 Certbot과 해당 종속성을 시스템의 다른 Python 패키지와 격리할 수 있습니다.sudo /opt/certbot/bin/pip install --upgrade pip
: 가상 환경 내에서 pip를 최신 버전으로 업그레이드합니다.sudo /opt/certbot/bin/pip install certbot
: 가상 환경 내에서 Certbot을 설치합니다.sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
: /usr/bin 디렉토리에 Certbot 실행 파일의 심볼릭 링크를 생성하여 어디서나 certbot 명령을 사용할 수 있도록 합니다.sudo dnf install cronie-noanacron
: Cron 작업을 위해 cronie 패키지를 설치합니다.sudo vi /etc/crontab
: Cron 작업을 설정하기 위해 /etc/crontab 파일을 편집합니다.30 1 2 root /usr/bin/certbot renew --post-hook "systemctl reload httpd"
: 매월 2일 1시 30분에 SSL 인증서를 자동으로 갱신하고, 갱신 후 Apache를 다시 로드하는 Cron 작업을 추가합니다.sudo vi /etc/httpd/conf.d/도메인주소.conf
: 도메인에 대한 Apache 설정 파일을 생성하고 편집합니다. 이 파일은 80포트(HTTP)에 대한 설정을 포함하며, HTTPS로 리다이렉트하는 규칙을 설정합니다.sudo systemctl stop httpd
: SSL 인증서를 받기 위해 Apache 웹 서버를 중지합니다.sudo certbot certonly --standalone
: Certbot을 사용하여 SSL 인증서를 받습니다. 이메일 주소와 도메인 주소를 입력하고 약관에 동의합니다.sudo systemctl start httpd
: SSL 인증서를 받은 후 Apache 웹 서버를 다시 시작합니다.- 메인 도메인과 www 서브도메인에 대해 위의 과정을 반복합니다.
sudo vi /etc/httpd/conf.d/ssl.conf
: SSL 설정 파일을 편집합니다. 443포트(HTTPS)에 대한 가상 호스트 설정을 추가하고, SSL 인증서 파일의 경로를 지정합니다.
이 과정을 통해 Apache 웹 서버에 Let’s Encrypt SSL 인증서를 설치하고 적용할 수 있습니다. 80포트의 HTTP 요청은 HTTPS로 자동 리다이렉트되며, 443포트에서는 SSL 암호화를 사용하여 보안 연결이 이루어집니다.