(Ubuntu) Apache2 웹 서버 설치 방법
해당 포스팅은 'Ubuntu 20.04.5 LTS 환경에서 Apache2 Web Server를 설치하는 방법'에 대한 내용입니다.
웹 서버 설치 및 방화벽 포트 허용 과정이 포함되어 있으며, 해당 과정에서 발생할 수 있는 상황에 대한 주의사항이 포함되어 있습니다.
1. 패키지 목록 업데이트 및 Apache2 설치
//패키지 목록 업데이트
$ sudo apt-get update
//Apache2 Web Server 설치
$ sudo apt-get install apache2
apache2 설치로 인해 일정 용량의 디스크 공간이 사용된다는 'After this operation, ~kB of additional disk space will be used.' 메시지를 허용하여 설치를 완료합니다.
2. 설치 완료 후 확인
//apache2 상태 확인
$ sudo service apache2 status
위 명령어를 통해 Apache2 상태를 확인할 수 있으며, 처음 설치가 완료되었을 때, 다음과 같이 'active (running)' 상태가 됩니다.
$ sudo service apache2 start //아파치 웹 서버 시작
$ sudo service apache2 stop //아파치 웹 서버 종료
$ sudo service apache2 restart //아파치 웹 서버 재시작
$ sudo service apache2 reload //아파치 웹 서버를 중지하지 않고 환경 설정을 적용
(상태 확인 외 아파치 웹 서버 시작, 종료, 재시작 등 사용되는 명령어)
여기까지 Apache2 웹 서버를 설치하고 active 상태가 되었다면, 해당 인스턴스 외부 ip로 접속 시 다음과 같은 아파치 기본 페이지가 뜨는 것을 확인할 수 있습니다.
(아파치 웹 서버의 기본 페이지는 /var/www/html/index.html에 위치하고 있습니다.)
3. 방화벽(ufw) 설치 및 활성화
//ufw(방화벽) 설치
$ sudo apt-get install ufw
//ufw(방화벽) 활성화
$ sudo ufw enable
다음으로 apache 웹 서버 테스트를 위한 방화벽 설정 과정입니다.
***
이때 주의할 점으로는 ufw를 활성화하면 방화벽 작동으로 인해 모든 포트가 막히게 되는데요.
때문에 활성화만 하고 포트에 대한 설정을 하지 않고 종료하게 되면 다시 접속할 때 ssh 접근을 못하게 되는 경우가 발생할 수 있습니다.
'ssh: connect to host ~ port 22: Operation timed out'
//방화벽 기본 정책 차단
$ sudo ufw default deny
//로그를 남기도록 설정
$ sudo ufw logging on
4. 방화벽 포트 허용
//등록, 삭제 할 수 있는 룰 확인
$ sudo ufw app list
/etc/ufw/applications.d 파일을 보면 서비스별로 ufw 설정이 나눠져 있으며, ufw 설정을 그룹화하여 관리할 수 있는데요.
해당 명령어로 반환되는 결과는 실제 등록되어 적용되는 룰이 아니니라 등록 또는 삭제할 수 있는 룰입니다.
- Apache: 80 포트만 허용
- Apache Full: 80 포트(암호화되지 않은 웹 트래픽에 대한 일반 포트)와 443 포트(TLS/SSL 암호화 트래픽에 대한 포트)를 허용
- Apache Secure: 443 포트(TLS/SSL 암호화 트래픽에 대한 포트)만 허용
//80포트와 443포트 허용
$ sudo ufw allow 'Apache Full'
//추가로 21, 22 포트도 허용
$ sudo ufw allow 21
$ sudo ufw allow 22
(방화벽 포트 허용은 위와 같이 allow를 통해 실행되며, 반대로 포트를 허용하지 않는 경우는 deny 옵션을 통해 실행하면 됩니다.)
5. 방화벽 포트 허용 확인
//방화벽 포트 허용 확인
$ sudo ufw status
다음 명령어를 통해 방화벽 포트 허용 상태를 확인할 수 있으며, 여기까지가 아파치 웹 서버 설치의 기본적인 과정입니다.
< 참고 자료 >
'Programming > Linux' 카테고리의 다른 글
CentOS MariaDB 오프라인 수동 설치 방법 (tar.gz 파일) (0) | 2024.02.01 |
---|---|
(Linux) Too many open files 에러가 발생하는 경우 (0) | 2023.10.18 |
리눅스 서버 시간 확인 및 설정 방법 (linux timedatectl 명령어) (0) | 2023.03.30 |
linux sftp log 설정 방법 (접속 및 작업 로그) (0) | 2023.02.16 |
리눅스 파일 편집기 vi 자주 사용되는 명령어 정리 (1) | 2022.11.24 |