* 이 글은 기존 글 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”실행)
쿼터설정
버츄얼 호스팅 설정은 차후에 보강!!!!!!!!!!!!!!!