Apache2 Install & Multiple Ports
아파치 설치 및 한 IP에서 다중 포트 사용
Apache HTTP Server는 오픈 소스 소프트웨어 그룹인 아파치 소프트웨어 재단에서 만드는 웹 서버 프로그램이다. 팀 버너스 리가 만든 최초의 웹 서버 프로그램인 “NCSA HTTPd”를 기반으로 만들어졌다.
팀 버너스 리의 NCSA HTTPd는 유닉스 기반으로 만들어졌기에, 아파치 HTTP 서버는 NCSA HTTPd를 리눅스에서도 돌리는 것을 목표로 만들어진 프로그램이다.
그 이후 리눅스와 함께 퍼져나갔고, 리눅스가 서버 OS의 최다 점유율을 차지하자 아파치도 자연스럽게 최다 점유율을 차지하게 되었다. 현재 거의 모든 리눅스 배포판이 이 아파치를 지원한다.
Install
sudo apt-get update
sudo apt-get install apache2
설치 후 /etc/init.d/ 디렉토리는 daemon 프로그램이 존재하는 디렉토리 apache2가 정상적으로 설치된 것을 확인할 수 있고,
로컬로 접근했을 때 이와 같은 그림이 나온다면 잘 설치가 된 것입니다.
아파치 실행 및 종료
- 실행
sudo service apache2 start
- 종료
sudo service apache2 stop
- 재시작
etc/init.d/apache2 restart
Multiple Ports
하나의 IP에서 여러개의 포트를 이용하여 다른 사이트를 접속해보고자 한다.(CTFd를 구축하면서 웹 문제에 대해 여러 사이트를 보여줘야 하기에 이를 이용했다.)
먼저 사용할 포트를 설정 파일에 추가합니다.
/etc/apache2/ports.conf
Listen ports_number를 사용할 포트로 추가하면 됩니다. 기본적으로 Listen 80만 적혀 있지만, 저는 여러 문제를 통해 접속을 받아야 하기에 81, 222, 12345, 31337 여러 포트를 열어뒀습니다.
이후, 개별 포트에 대한 가상호스트 설정과 웹 루트 디렉터리와 로그 파일 위치 등을 설정해줍니다.
etc/apache2/sites-available/000-default.conf
사용할 포트에 대한 NameVirtualHost *:port를 명시하고,
<VirtualHost *:port> .... </VirtualHost>
해당 포트 접속 시 보여줘야 할 웹 루트 디렉토리와 로그 파일 위치 등을 명시해주면 됩니다.
Resource Permission
위 작업을 통해서 접속하면 권한이 없다고 나올 것이다. 그렇기에 위에서 접속을 유도한 디렉토리에 대해서 권한을 부여해야 하는데 해당 경로는 아래와 같습니다.
/etc/apache2/apache2.conf
포트 별 보여준 디렉토리에 대해서 아래와 같이 하면 명시 해주면 됩니다.
<Directory /경로> ... </Directory>
Options을 FollowSymLinks로 하게 된다면 디렉토리 인덱싱에 취약하므로 Options로 마무리 지어주시면 됩니다.
접속은 http://[URL]:[PORT]/로 접속하시면 됩니다.