#1 Set up

앞으로 웹 해킹 침투 테스트를 위한 웹 서버를 구축하겠다.

- 설치 환경

OS : Ubuntu (20.04.3 LTS)
WEB Sever : Apache2 (2.4.41)
Sever Side : PHP (7.4.3)
DBMS : MySql (8.0.26)
Tools : PhpMyAdmin (4.9.5deb2)

1. Ubuntu 의 Apt 최신 상태로 업그레이드 한다.

(포스팅 날짜 기준 : 2021.10.15)

sudo apt update
sudo apt upgrade

1) apt란?

2. 웹 서버 구축을 위해 아래 내역을 모두 설치한다.

sudo apt install apache2 php mysql-server libapache2-mod-php php-mysql

libapache2-mod-php 는 apache2 와 php를 연결해주는 패키지이고
php-mysql 도 php와 mysql을 연결해주는 패키지이다.

- apache2

설치 동작 확인 #이하 주석

systemctl status apache2 # 서비스 상태 확인
apache2 -v # 버전 확인

서비상태가 Acive (running) 상태 확인 후 버전을 확인해보았다.

$ systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-10-15 10:27:29 PDT; 12h ago
$ apache2 -v
Server version: Apache/2.4.41 (Ubuntu)

웹 브라우저 주소창에 loaclhost 접속하여 동작하는지 확인해보자.

추가로 웹 서버 입장에서 접근된 클라이언트 내역을 확인가능하다.

$ tail -5 /var/log/apache2/access.log

192.168.88.1 - - [15/Oct/2021:22:19:56 -0700] "GET / HTTP/1.1" 200 3477 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"
127.0.0.1 - - [15/Oct/2021:22:39:44 -0700] "GET / HTTP/1.1" 200 3477 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:93.0) Gecko/20100101 Firefox/93.0"

본인의 경우 가상머신으로 서버를 돌리고 있고 네트워크 환경은 NAT으로
192.168.88.1 주소를 가지고 접속 내역은 NAT 게이트웨이 주소가 나오고
localhost(127.0.0.1)으로 접속은 우분투로 직접 접속을 확인 할 수있다.

- PHP

설치 동작 확인

$ php -v
PHP 7.4.3 (cli) (built: Aug 13 2021 05:39:12) ( NTS )

아래 경로에서 php.php 파일을 생성하여 php정보 확인 함수를 입력하여 동작하는지 확인해봅니다.

경로 : /var/www/html/

파일 : php.php
<?php
        phpinfo();
?>

- MySQL

설치 동작 확인 및 기본 보안 설정

$ sudo mysql 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 82
Server version: 8.0.26-0ubuntu0.20.04.3 (Ubuntu)
mysql> exit

$ sudo mysql_secure_installation 

Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No:
Please set the password for root here.
New password:
Re-enter new password:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Dropping test database...
Success.
Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!

- phpmyadmin

phpmyadmin은 MySQL을 웹으로 DB를 모두 관리가 가능한 Tool이다.

설치 동작 확인

sudo apt install phpmyadmin

이하 추가 질의는 apache 선택 후 모두 yes로 넘어가며 패스워드 설정한다.

phpmyadmin 웹 으로 접속하여 관리하기 때문에 웹 기본 경로에 심볼릭 링크를 걸어 연결 되도록 한다. 추가로 변경 사항이 적용 되도록 apache2 재기동한다.
phpmyadmin 계정 권한을 모두 허용 해준다. (추후 보안을 위해 권한을 수정하도록 하자.)

sudo ln -s /usr/share/phpmyadmin /var/www/html
mysql> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost';
systemctl restart apache2

접속 초기 ID는 phpmyadmin 이고 패스워드는 설치 시 설정하였다.

참고 자료
https://ko.linux-console.net/?p=685
https://ubuntu.com/server/docs/lamp-applications
https://n2infotech.co.kr/355

좋은 웹페이지 즐겨찾기