Keep Information On Yourself

모의 해킹 연습용 서버 설치하기(Apache,php,MariaDB, XE) 본문

환경구축

모의 해킹 연습용 서버 설치하기(Apache,php,MariaDB, XE)

차모리 2018. 2. 6. 11:10

이 게시물은 개인 공부용 글이므로 높임말을 쓰지 않고, 이 블로그에 있는 공부하는 내용은 노트에 적은 필기를 블로그에 옮기는 것이며 어떠한 목적이든 타인의 PC나 시스템을 침해하는 해킹할 시 법적인 책임이 발생하여 처벌받을 수 있으니 연습이나 공부는 자신의 PC 내에서 행하시기 바랍니다.

---------------------------------------------------------------------------------------------------------------------------




Apache 설치



일반 사용자 권한으로 apache를 설치하려면 루트 권한이 필요하니 su를 입력하여 루트 권한을 획득한 뒤 다시 실행한다.

(최신 버전은 http://httpd.apache.org/download.cgi 에서 다운로드)




 아파치 서버를 시작하고 시작프로그램에 등록한다. 또한, 방화벽에 허용할 포트를 등록해 주어야 사용할 수 있다. 포트를 추가하려면 --add-port=[사용할 포트/프로토콜명], 서비스를 추가하려면 --add-service=[서비스명]으로 등록하면 된다.
firewall-cmd --reload를 입력하여 방화벽을 재시작하여 등록한 것을 불러오게 해주고 firewall-cmd --list-all로 방화벽 허용 리스트를 확인해준다.

/etc/httpd/conf/httpd.conf를 열어 다음을 수정하여 준다.





 user와 group을 nobody로 바꾸어 주면 shell이나 실행 권한이 없어 보안상 좋다고 하지만 apache 서비스를 restart 하면 에러가 난다. nobody로 바꾸어주면 apache가 소유한 파일들을 읽을 수 없기 때문에 에러가 난다. Apache 계정도 nobody 계정과 같이 로그인과 shell 사용이 권한이 없다.












파이어폭스를 열어 localhost에 접속하여 이러한 화면이 보이면 아파치가 제대로 설치된 것이다.




PHP 설치


설치 요구사항을 보면 php 7 (XE3.0.0-beta.24 부터) 이상과 아래 Extension도 추가로 설치 해야 한다. 
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
GD PHP Extension
FileInfo PHP Extension



extension 설치를 위해 yum에 remi 저장소를 추가해 주면 편리하다. remi 저장소 이외에도 구글에서 검색하여 다양한 repository를 이용할 수 있다.



remi 저장소는 epel 저장소에 의존성을 가지고 있으므로 먼저 설치해 주어야 한다. (CentOS7 기준)







추가 후 repo 리스트를 확인해준다.





yum --enablerepo=[저장소] install [패키지]


설치가 끝나면 아래와 같이 /etc/php.ini를 수정하여야 한다.



주석을 없애고 date.timezone을 수정



보안을 위해 exec, shell 실행 권한을 disable 한다.


추가로 composer를 설치해준다. composer는 PHP를 개발하는 데 있어서 패키지 간의 의존성을 관리하는 의존성 관리자다. node.js 의 npm, ruby의 bundle과 같은 구실을 한다.






설치 후 버전을 확인하면 위와 같다. php 작동을 위해 phpinfo를 만들어본다.

#vi /var/www/html/phpinfo.php


<? phpinfo(); ?>


저장 후 웹브라우저에서 localhost/phpinfo.php로 php 정보를 확인할 수 있다. 하지만 SElinux 때문에 php가 연동되지 않을 수도 있다. SElinux에 관한 설정은 맨 아래 있다.




SElinux 설정을 하더라도 인식이 되지 않는다면 /etc/php.ini에 short_open_tag를 on으로 교체해준다. (짧은 태그 사용을 사용하게 해주는 옵션)


MariaDB 최신 버전 설치하기


http://yum.mariadb.org 에 접속하여 최신 버전을 확인한다.


/etc/yum.repos.d/MariaDB.repo를 만들어줘야 한다. 내용은 아래와 같다.






Mariadb를 설치해준다.




설치가 끝나면 mariadb를 실행시키고 시작프로그램에 등록해준다.




mariadb의 보안설정을 해주고 root 비밀번호를 새로 설정해준다. (default 값으로 해도 무방하다)




Mariadb에 접속하여 사용할 계정에 권한을 주고 XE에서 사용할 database를 생성해주어야 한다.



  위 사진은 예시고, XE에 사용할 계정명, toor에는 사용할 password를 넣으면 된다.


FLUSH PRIVILEGES는 변경사항을 적용해주는 명령어다.




데이터베이스를 생성한 후 SHOW DATABASES; 를 입력하여 생성되었는지 확인한다.





마찬가지로 MariaDB가 사용할 포트를 방화벽에서 허용처리 해준다.


XE 보드 설치


https://www.xpressengine.io/ 에서 다운로드 가능하다. 또는 github에서도 git clone을 이용해 다운로드 가능하다.


여기서는 apache 기본위치인 /var/www/html에서 작업을 진행한다.




git clone을 이용해 github에서 복사한 주소를 이용하여 XpressEngine을 내려 받는다.




xe 폴더 안에 files란 폴더를 만들고 그룹 소유권을 아파치 가동 계정으로 바꾸어 주고 xe 사용을 위해 권한을 변경해준다. (설치 시 files의 권한은 707이 필수다)





명령어 입력 후 필요한 부분은 위에서 설정한 대로 입력하고 나머지는 default 값으로 해도 된다.  
이렇게 해도 SElinux 때문에 정상적으로 xe가 apache에 올라가지 않는다.




그리고 httpd 데몬을 재시작시키고 접속해보면




위와 같이 XE가 apache에 탑재된다. Apache, php, MariaDB를 설치해두면 다른 웹 에플리케이션도 XE와 비슷한 방법으로 설치할 수 있다.





 위에 Screen shot은 composer install 대신 공식 홈페이지에 설치방법으로 설치하는 명령어다. 

'환경구축' 카테고리의 다른 글

가상머신(host-only)과 GNS3 구성으로 외부 네트워크 이용  (0) 2018.02.13
DNS 서버 구축  (0) 2018.02.08
Comments