완벽한 서버 – Apache2, Postfix, Dovecot, Pure-FTPD, BIND 및 ISPConfig 3이 포함된 CentOS 7.1
이 가이드에서는 CentOS 7.1(64Bit) 서버에 ISPConfig 3를 설치하는 방법을 보여줍니다. ISPConfig 3는 웹 브라우저를 통해 Apache 웹 서버, Postfix 메일 서버, MySQL, BIND 네임 서버, PureFTPd, SpamAssassin, ClamAV, Mailman 등의 서비스를 구성할 수 있는 웹 호스팅 제어판입니다. 버전 3.0.4부터 ISPConfig는 Apache 외에도 nginx 웹 서버를 완벽하게 지원합니다. 이 튜토리얼에서는 nginx가 아닌 Apache를 사용하는 서버 설정을 다룹니다.
1 요구 사항
이러한 시스템을 설치하려면 다음이 필요합니다.
- Centos 7.1 최소 서버 시스템. 이는 Centos 7.1 최소 서버 자습서에 설명된 대로 처음부터 설치한 서버이거나 최소 Centos 7.1 설정이 설치된 호스팅 회사의 가상 서버 또는 루트 서버일 수 있습니다.
- 빠른 인터넷 연결.
2 서문
이 튜토리얼에서는 IP 주소가 192.168.1.100이고 게이트웨이가 192.168.1.254인 호스트 이름 server1.example.com을 사용합니다. 이러한 설정은 사용자에 따라 다를 수 있으므로 적절하게 교체해야 합니다.
3 키보드 레이아웃 설정
서버의 키보드 레이아웃이 키보드와 일치하지 않는 경우 올바른 키보드로 전환할 수 있습니다(내 경우에는 localectl 명령을 사용하여 독일어 키보드 레이아웃의 \de\).
localectl set-keymap de
사용 가능한 모든 키맵 목록을 얻으려면 다음을 실행하십시오.
localectl list-keymaps
이 튜토리얼의 끝에서 ISPConfig를 설치하고 싶습니다. ISPConfig는 제가 방화벽으로 사용하기를 좋아하는 Bastille 방화벽 스크립트와 함께 제공되므로 지금 기본 CentOS 방화벽을 사용 중지합니다. 물론 CentOS 방화벽을 켜둔 상태로 두고 필요에 따라 구성할 수 있습니다(그러나 CentOS 방화벽을 방해할 가능성이 높으므로 나중에 다른 방화벽을 사용해서는 안 됩니다).
달리다...
yum -y install net-tools
systemctl stop firewalld.service
systemctl disable firewalld.service
CentOS 방화벽을 중지하고 비활성화합니다.
그런 다음 방화벽이 실제로 비활성화되었는지 확인해야 합니다. 이렇게 하려면 다음 명령을 실행합니다.
iptables -L
출력은 다음과 같아야 합니다.
[ ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
또는 firewall-cmd 명령을 사용합니다.
firewall-cmd --state
[ ~]#
이제 다음 단계에서 구성 파일을 수정하는 데 사용할 네트워크 구성 편집기와 셸 기반 편집기 \nano\를 설치하겠습니다.
yum -y install nano wget NetworkManager-tui
설치하는 동안 네트워크 카드를 구성하지 않은 경우 지금 구성할 수 있습니다. 달리다...
nmtui
... 연결 편집으로 이동합니다.
네트워크 인터페이스 선택:
그런 다음 네트워크 세부 정보를 입력합니다. DHCP를 비활성화하고 고정 IP 주소, 넷마스크, 게이트웨이 및 하나 또는 두 개의 이름 서버를 입력한 다음 확인을 누릅니다.
그런 다음 확인을 선택하여 네트워크 설정에서 변경한 사항을 확인합니다.
및 종료하여 nmtui 네트워크 구성 도구를 닫습니다.
당신은 실행해야
ifconfig
이제 설치 프로그램이 귀하의 IP 주소를 올바르게 받았는지 확인하려면 다음을 수행하십시오.
[ ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fecd:cc52 prefixlen 64 scopeid 0x20 ether 00:0c:29:cd:cc:52 txqueuelen 1000 (Ethernet) RX packets 55621 bytes 79601094 (75.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 28115 bytes 2608239 (2.4 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10loop txqueuelen 0 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
네트워크 카드가 여기에 표시되지 않으면 부팅 시 활성화되지 않은 것입니다. 이 경우 /etc/sysconfig/network-scripts/ifcfg-eth0 파일을 엽니다.
nano /etc/sysconfig/network-scripts/ifcfg-ens33
ONBOOT를 yes로 설정합니다.
[...]
ONBOOT=yes
[...]
서버를 재부팅합니다.
이전에 구성한 모든 이름 서버가 나열되어 있는지 /etc/resolv.conf를 확인하십시오.
cat /etc/resolv.conf
네임서버가 없으면 다음을 실행합니다.
nmtui
누락된 네임서버를 다시 추가합니다.
이제 구성으로...
4 /etc/hosts 조정
다음으로 /etc/hosts를 편집합니다. 다음과 같이 만드십시오.
nano /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.100 server1.example.com server1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
5 SELinux 비활성화
SELinux는 확장된 보안을 제공해야 하는 CentOS의 보안 확장입니다. 제 생각에는 보안 시스템을 구성하는 데 필요하지 않으며 일반적으로 이점보다 더 많은 문제를 야기합니다(일부 서비스가 예상대로 작동하지 않았기 때문에 일주일 동안 문제 해결을 수행한 후 생각해 보십시오. SELinux만 문제를 일으켰습니다.) 따라서 비활성화합니다(나중에 ISPConfig를 설치하려면 필수입니다).
/etc/selinux/config를 편집하고 SELINUX=disabled로 설정합니다.
nano /etc/selinux/config
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
그런 다음 시스템을 재부팅해야 합니다.
reboot
6 추가 리포지토리 활성화 및 일부 소프트웨어 설치
먼저 소프트웨어 패키지용 GPG 키를 가져옵니다.
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
그런 다음 이 튜토리얼 과정에서 설치할 많은 패키지가 공식 CentOS 7 리포지토리에서 사용할 수 없으므로 CentOS 시스템에서 EPEL 리포지토리를 활성화합니다.
yum -y install epel-release
yum -y install yum-priorities
편집 /etc/yum.repos.d/epel.repo...
nano /etc/yum.repos.d/epel.repo
... 그리고 [epel] 섹션에 priority=10 행을 추가합니다.
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [...]
그런 다음 시스템에서 기존 패키지를 업데이트합니다.
yum update
이제 나중에 필요한 일부 소프트웨어 패키지를 설치합니다.
yum -y groupinstall 'Development Tools'
7 할당량
(저와 다른 파티션 구성표를 선택한 경우 할당량이 필요한 파티션에 적용되도록 이 장을 조정해야 합니다.)
할당량을 설치하려면 다음 명령을 실행합니다.
yum -y install quota
이제 웹사이트(/var/www) 및 maildir 데이터(var/vmail)가 저장된 파일 시스템에 할당량이 이미 활성화되어 있는지 확인합니다. 이 예제 설정에서는 하나의 큰 루트 파티션이 있으므로 /를 검색합니다.
mount | grep ' / '
[ ~]#
별도의 /var 파티션이 있는 경우 다음을 사용합니다.
mount | grep ' /var '
대신에. 행에 \noquota\라는 단어가 포함되어 있으면 다음 단계를 진행하여 할당량을 활성화하십시오.
/(루트) 파티션에서 할당량 활성화
일반적으로 /etc/fstab 파일에서 할당량을 활성화하지만 파일 시스템이 루트 파일 시스템 \/\인 경우 할당량은 Linux 커널의 부팅 매개변수로 활성화해야 합니다.
grub 구성 파일을 편집합니다.
nano /etc/default/grub
GRUB_CMDLINE_LINUX로 시작하는 줄을 검색하고 명령줄 매개변수에 rootflags=uquota,gquota를 추가하면 결과 줄이 다음과 같이 표시됩니다.
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto vconsole.keymap=us rhgb quiet rootflags=uquota,gquota"
다음 명령을 실행하여 변경 사항을 적용합니다.
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak
grub2-mkconfig -o /boot/grub2/grub.cfg
서버를 재부팅합니다.
reboot
이제 할당량이 활성화되었는지 확인합니다.
mount | grep ' / '
[ ~]#
할당량이 활성화되면 마운트 옵션 목록에서 \usrquota,grpquota\를 볼 수 있습니다.
별도의 /var 파티션에서 할당량 활성화
별도의 /var 파티션이 있는 경우 /etc/fstab을 편집하고 ,uquota,gquota를/파티션(/dev/mapper/centos-var)에 추가합니다.
nano /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Sep 21 16:33:45 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 1 1
/dev/mapper/centos-var /var xfs defaults,uquota,gquota 1 2
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot xfs defaults 1 3
/dev/mapper/centos-swap swap swap defaults 0 0
그런 다음 실행
mount -o remount /var
quotacheck -avugm
quotaon -avug
할당량을 활성화합니다. 할당량이 활성화된 파티션이 없다는 오류가 발생하면 계속 진행하기 전에 서버를 재부팅하십시오.
8 Apache, MySQL, phpMyAdmin 설치
단일 명령으로 필요한 패키지를 설치할 수 있습니다.
yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin