Apache 서버 설정 문제

Apache 서버 설정 문제

AWS의 RedHat 7 이미지에 Apache를 설치하고 구성했습니다. 하지만 filezilla를 사용하여 SSH를 통해 파일을 업로드하는 동안 권한/소유권 문제가 발생합니다.

SSH 사용자를 설정하고 해당 홈 디렉토리를 apache /var/www/html/에 추가하고 여기에 Magento를 설치했습니다.

원래 설정:

  1. 사용자:/var/www/html/group은 아파치입니다.
  2. user:root/group:apache for /var/lib/php/session dir (확실하지는 않지만 magento가 세션 파일을 거기에 저장하고 소유자가 변경되면 쓰기 오류가 발생하는 것 같습니다)
  3. httpd.conf 사용자:그룹은 아파치입니다.
  4. 이러한 설정을 사용하면 ftp 또는 sftp를 사용하여 파일을 업로드할 수 없습니다. - 권한 오류입니다.

내가 다음으로 변경하면:

  1. 사용자: /var/www/html/ 그룹은 ssh_user입니다.
  2. 사용자: ssh_user / 그룹: ssh_user for /var/lib/php/session dir
  3. httpd.conf 사용자:그룹은 ssh_user입니다.
  4. 이것으로 업로드는 가능하지만 캐시 파일은 루트로 생성됩니다.

내가 원하는 것은:

  1. 사용자: /var/www/html/ 그룹은 ssh_user입니다.
  2. /var/lib/php/session 디렉토리의 기본 설정
  3. httpd.conf 사용자:그룹은 아파치입니다.

일반 사용자가 ftp나 sftp를 통해 파일을 업로드할 수 있기를 바랍니다.

이 목표를 어떻게 달성하나요? 아파치를 처음으로 설정하는 것이기 때문에 올바르게 수행하는 방법을 배우려고 노력하고 있습니다.

답변1

모든 디렉터리와 파일에 쓸 수 있는 웹 서버 UID가 필요한 모든 웹 애플리케이션은 설계상 손상되고 안전하지 않습니다. 이런 삶을 받아들일 의지가 있다면...

  1. 각 계정을 포함할 새 그룹 제공~해야 한다문서 작성 가능 - 설명을 위해 웹 작가라고 부르겠습니다.

  2. 이 그룹에 이러한 사용자를 추가합니다. 기본 그룹일 필요는 없습니다(usermod -G webwriters ssh_user; usermod -G webwriters apache; ....).

  3. 범위의 각 최상위 디렉터리에서 다음 명령을 실행합니다.

chown -R apache:webwriters $DIR
find $DIR -type f -exec chmod g+rw {} \;
find $DIR -type d -exec chmod g+rws {} \;

이제 이 그룹은 모든 파일과 디렉터리에 쓸 수 있습니다. 그리고 새 파일을 생성하면 해당 파일은 웹 작가 그룹의 소유가 됩니다.

  1. /etc/ssh/sshd_config를 편집하여 sftpserver에 추가 -u 002하고 sshd를 다시 시작하세요. 이렇게 하면 sftp를 통해 복사된 새 파일을 이 그룹에서 쓸 수 있게 됩니다. FTP를 사용하지 마십시오. scp를 사용하려면 쉘 rc 파일에 umask를 설정해야 합니다.

  2. /etc/systemd/system/httpd.service.d에 새 디렉토리를 생성하고(아직 존재하지 않는 경우) 파일을 추가합니다. 원하는 대로 이름을 지정할 수 있습니다.

[Service]
UMask=0002

그런 다음 Apache를 다시 시작하십시오. 이렇게 하면 웹 서버에서 생성된 파일에도 예상 소유권/권한이 부여됩니다.

마지막으로 가장 중요한 것은 HIDS(L5, LIDS, Tripwire)를 설치하고 관리 방법을 배우는 것입니다. Fail2ban을 설치하고 로그인 시도율에 제한을 추가하십시오.

답변2

아파치 httpd.conf를 확인하십시오. 여기서 ServerRoot 및 ServerAdmin도 볼 수 있습니다. 거기에는 다음이 있습니다.

ServerRoot "/etc/httpd"
ServerAdmin root@localhost

서버 설치나 구성을 위한 접근권한은 위와 같이 root여야 하며 수정을 권장하지 않습니다.

그러나 일반적으로 /var/www/html인 docroot 위치의 경우 사용자와 그룹은 apache입니다. 루트를 제외한 다른 사용자로 변경할 수 있습니다. Apache 또는 루트가 아닌 다른 사용자를 사용하여 docroot 또는 DocumentRoot 디렉터리 위치(즉, /var/www/ 또는 /var/www/html)의 소유자를 변경하는 것이 중요합니다. 원하는 사용자로 변경할 수 있습니다.httpd.conf에서 루트를 사용자 및 그룹으로 설정하는 것은 권장되지 않습니다.

User apache
Group apache

httpd.conf에 언급된 동일한 사용자로 docroot 디렉토리의 소유자를 변경해야 하는지 확인하십시오. 기본적으로 사용자와 그룹은 Apache입니다. 따라서 다음과 같이 docroot 디렉터리 /var/www/html의 소유자를 apache로 변경해야 합니다.

sudo chown -vR apache. /var/www/html

이제 귀하의 웹 사이트 페이지가 생성되기 시작합니다은닉처Apache가 로드한 웹 페이지를 방문할 때마다.

귀하의 시나리오에서 ssh_user를 사용자로 사용하면 User:Group을 원하는 디렉터리 위치와 모든 내부 계층(예: /var/www/html/ 경로)으로 설정할 수 있습니다. 그런 다음 다음을 사용하여 설정할 수 있습니다. 명령.

구문: sudo chown -vR 사용자 이름:그룹 이름{디렉터리 위치 경로}

sudo chown -vR ssh_user:ssh_user /var/www/html
sudo chown -vR apache:apache /var/lib/php/session

일반 사용자가 ftp 또는 sftp를 통해 파일을 업로드하거나 전송할 수 있도록 하려면 FileZilla Server 또는 WinSCP를 사용할 수 있으며, 디렉터리를 소유한 사용자로 로그인한 후 파일을 전송하는 것이 좋습니다.

액세스하려는 디렉터리에 대한 사용자 또는 그룹 권한이 있는지 확인하세요.

관련 정보