APACHE + PHP
게시판이 있는 웹
Ubuntu 22.04 에 Apache 와 PHP 를 올리고, 서버팜의 MySQL 과 PDO 로 연동한 게시판(list · write)을 올렸습니다.
// WHAT WE BUILT
APACHE + PHP
Ubuntu 22.04 에 Apache 와 PHP 를 올리고, 서버팜의 MySQL 과 PDO 로 연동한 게시판(list · write)을 올렸습니다.
HARDENING
ServerTokens Prod · ServerSignature Off 로 버전을 숨기고, 디렉터리 목록 · SSI · CGI 를 껐습니다.
SSH :2222
모든 서버의 SSH 를 2222 로 옮기고 root 로그인을 막았습니다. 방화벽 정책상 담당자 PC 만 닿습니다.
// CONFIGURATION
장비에 입력한 순서 그대로입니다. 계정 비밀번호는 공개 사이트라 가렸습니다.
network:
version: 2
ethernets:
ens160:
addresses: [172.16.10.10/24]
routes: [{to: default, via: 172.16.10.1}]
$ sudo netplan apply && sudo hostnamectl set-hostname cb-websudo sed -i 's/^#\?Port .*/Port 2222/' /etc/ssh/sshd_config sudo sed -i 's/^#\?PermitRootLogin .*/PermitRootLogin no/' /etc/ssh/sshd_config sudo systemctl disable --now ssh.socket sudo systemctl restart ssh
ServerTokens Prod
ServerSignature Off
<Directory /var/www/html>
Options -Indexes -Includes -ExecCGI
</Directory>
$ sudo a2enconf hardening && sudo systemctl reload apache2<?php
$pdo = new PDO("mysql:host=192.168.30.20;dbname=cbboard;charset=utf8mb4",
"boarduser", "********",
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);// VERIFICATION
cb-web$ ss -tlnp | grep 2222 LISTEN 0 128 0.0.0.0:2222 ✓ sshd cb-web$ curl -I http://127.0.0.1 HTTP/1.1 200 OK Server: Apache ✓ 버전 숨김 outside$ curl -s http://203.0.113.20/list.php | head -1 <!doctype html> ✓ 게시판 응답
// PITFALLS
| 증상 | 원인 | 해결 |
|---|---|---|
| SSH 포트가 안 바뀜 | ssh.socket 이 22 를 잡고 있음 | ssh.socket 비활성화 |
| 게시판 DB 에러 | DB 쪽 계정 호스트 불일치 | 'boarduser'@'172.16.10.10' |