Centos 8 APM(VirtualHosting 설정)

* 이 글은 기존 글 Centos 7 APM(VirtualHosting 설정) 을 기반으로 8버전으로 작성
최초 설치 단계에서 패키지 선택 시 서버 -> 웹서버 선택 후 설치 완료
(php, perl, python, mariadb 등 관련 패키지 선택)
패키지 최신버전 업데이트

yum update
(설치시 “centos 8 failed to set locale defaulting to c.utf-8″오류가 발생하면 “yum install glibc-langpack-en”로 해결 가능)
(참고로 기본로케일은 “localectl set-locale LANG=ko_KR.utf8″로 변경 가능)

MariaDB 설치

yum install mariadb-server php-mysqlnd

시간동기화 서비스 등록 및 구동(htpd에서  chrony로 변경됨)

vi /etc/chrony.conf
(타임서버주소 설정 부분에 불필요한게 있다면 주석처리하고 필요하다면 주소 추가
pool 타임서버주소 iburst )
systemctl enable chronyd.service
systemctl start chronyd.servicet

웹서버, DB 서비스 등록 및 구동

systemctl enable httpd.service
systemctl enable mariadb.service
systemctl start httpd.service
systemctl start mariadb.service

MariaDB 추가설정

vi /etc/my.cnf.d/mariadb-service.cnf
([mysqld] 구역에 추가
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
)
/usr/bin/mysql_secure_installation
(mariadb 기본 보안 설정 – root 암호입력, 테스트계정 삭제, root 원격접속 차단 등)

서비스 할 포트 방화벽 오픈

firewall-cmd –permanent –zone=public –add-port=80/tcp
firewall-cmd –permanent –zone=public –add-port=443/tcp
(그 외 필요한 포트 오픈)
firewall-cmd –permanent –zone=public –add-port=22/tcp
(사용치 않으면 설정하지 말것)
firewall-cmd –reload

사용자 계정 추가시 기본 값 설정
/etc/skel 에 사용자 계정생성시 제공될 웹루트 디렉토리 생성

mkdir /etc/skel/public_html
chmod 700 /etc/skel/public_html
touch /etc/skel/public_html/index.html
vi /etc/skel/.bashrc    (아래의 내용 추가)
(
alias vi=’vim’
alias rm=’rm -i’
alias cp=’cp -i’
alias mv=’mv -i’
)

사용자 계정 생성

useradd 사용자계정
(삭제시는 userdel -r 사용자계정)

MariaDB사용자/DB 생성

create database xxxxxx;
create user ‘xxxxxx’@’localhost’ identified by ‘zzzzzzzz’;
grant all privileges on xxxxxx.* to xxxxxx@localhost;
flush privileges;

MPM-ITK 설치 및 설정

yum install https://pkgs.dyn.su/el8/extras/x86_64/httpd-itk-2.4.7.04-31.el8.x86_64.rpm
yum install httpd-itk
vi /etc/httpd/conf.modules.d/01-mpm-itk.conf (모듈 로드 주석 해제)
(Virtual Hosting 설정에 “AssignUserId 사용자계정 사용자그룹” 을 추가하면 해당 사이트에서 작업시 지정된 사용자 및 그룹으로 동작한다)
systemctl restart httpd.service
chmod 700 /home/*
chmod 700 /home/*/public_html
위 두개는 크론으로 돌릴지 고민해본다.
setsebool -P httpd_enable_homedirs 1
chcon -R -h -t httpd_user_content_t /home/사용자디렉토리/public_html
chcon -R -h -t httpd_sys_rw_content_t /home/사용자디렉토리/public_html/파일업로드디렉토리

보안설정

vi /etc/profile
(umask 002 를 umask 077)
vi /etc/default/useradd
(SHELL 을 /bin/false )

sftp chroot 설정

vi /etc/ssh/sshd_config
(Subsystem       sftp    /usr/libexec/openssh/sftp-server 를 Subsystem       sftp    internal-sftp)
(
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
Match Group sftpusers
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /home
ForceCommand internal-sftp
)
 
chmod 755 /home
groupadd sftpusers
useradd  사용자계정
usermod -G sftpusers 사용자계정
/home/ 아래 사용자 디렉토리의 other 권한은 모두 뺀다.
chmod o-rwx /home/*

ssh 포트 변경

vi /etc/ssh/sshd_config
(Port 포트번호 설정)
yum install policycoreutils-python
semanage port -a -t ssh_port_t -p tcp 포트번호
semanage port -l | grep ssh
포트 추가 확인

quota 설정

vi /etc/fstab
(원하는 장치의 defaults 뒤에 “,usrquota,grpquota” 추가)
mount -o remount 마운트장치
mount 로 확인해서 qouta속성이 없으면 재부팅
edquota 사용자계정
(쿼터파일이 없다는 오류발생 시 “quotacheck -cavug”실행)
쿼터설정

 
버츄얼 호스팅 설정은 차후에 보강!!!!!!!!!!!!!!!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

*