최초 설치 단계에서 패키지 선택시 웹서버로 들어가 필요한 패키지 선택 후 설치 완료.
(php, perl, python, mariadb 등 관련 패키지 선택)
패키지 최신버전 업데이트
yum update
MariaDB 설치
yum install mariadb-server php-mysql
시간동기화 서비스 등록 및 구동
vi /etc/ntp.conf
(타임서버주소 설정 부분에 불필요한게 있다면 주석처리하고 필요하다면 주소 추가
server 타임서버주소 iburst )
systemctl enable ntpd.service
systemctl start ntpd.servicet
웹서버, DB 서비스 등록 및 구동
systemctl enable httpd.service
systemctl enable mariadb.service
systemctl start httpd.service
systemctl start mariadb.service
MariaDB 추가설정
vi /etc/my.cnf
([mysqld] 구역에 추가
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
)
/usr/bin/mysql_secure_installation
(mariadb 기본 보안 설정)
서비스 할 포트 방화벽 오픈
firewall-cmd –permanent –zone=public –add-port=80/tcp
firewall-cmd –permanent –zone=public –add-port=443/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 설치 및 설정
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install httpd-itk
vi /etc/httpd/conf.modules.d/00-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 뒤에 “,usrqouta,grpquota” 추가)
mount -o remount 마운트장치
mount 로 확인해서 qouta속성이 없으면 재부팅
edquota 사용자계정
쿼터설정
네임서버 chroot 설정
yum -y install bind-chroot (설치)
/usr/libexec/setup-named-chroot.sh /var/named/chroot on
systemctl stop named
systemctl disable named
systemctl start named-chroot
systemctl enable named-chroot
ll /var/named/chroot/var/named (파일이 생성되었나 확인)
不赖!真的不赖!
它有用吗?
Pingback: Centos 8 APM(VirtualHosting 설정) – LongLegsDaddy's Blog