이번 글에서는 리눅스 서버 환경을 구축하는 과정의 첫 번째 실습 내용을 정리했다. 시스템 정보 확인, 캐시 및 메모리 관리, 디스크와 부팅 정보 확인, Apache2 웹 서버 설치 및 보안 설정까지 실습했다. 이번 실습을 해보면서 서버 구축의 기초와 관리 방법을 경험해 볼 수 있었다.
1. 시스템 정보 확인하기
서버의 OS 정보는 다음 명령어로 확인할 수 있다.
lsb_release -a
해당 명령어를 입력하면 리눅스 배포판, 버젼, 코드 네임 등 운영체제 정보를 출력해 준다.
-a 옵션은 전체 정보를 출력하라는 의미이다.
2. CPU 및 메모리 정보 확인하기
리눅스는 /proc 디렉터리 아래에 다양한 시스템 정보를 제공한다. 예를 들어, 다음은 CPU 모델명을 확인하는 방법이다.
cat /proc/cpuinfo | grep "model name" | head -n 1
CPU 라인의 개수 (몇개의 논리 프로세서가 있는지)를 확인하려면 :
cat /proc/cpuinfo | grep "model name" | wc -l
메모리 정보는 다음 명령어로 확인한다.
free -m
-m 옵션은 메가바이트 단위로 표시하겠다는 의미이다.
3. 시스템 캐시 정리하기
리눅스의 파일 시스템 캐시는 다음 명령어로 정리할 수 있다.
sync
echo 3 > /proc/sys/vm/drop_caches
sync는 디스크에 캐시를 동기화하며, drop_caches에 3을 쓰면 PageCache, Dentries, Inodes를 모두 비운다.
4. 디스크 및 부팅 정보 확인하기
파티션 정보 확인은 다음과 같이 수행했다.
lsblk
fdisk -l
디스크 사용량은 사람이 읽기 쉬운 형식으로 확인할 수 있다.
df -h
시스템의 마지막 부팅 시간은 다음 명령어로 확인 가능하다.
who -b
5. 로그인 사용자 확인 및 서비스 확인하기
현재 로그인한 사용자 및 활동 상태 확인:
w
현재 시스템에서 실행 가능한 유닛 파일(systemd 기반 서비스 목록) 확인 :
systemctl list-unit-files
6. 스왑 영역 설정하기
메모리 부족 시 디스크를 임시 메모리처럼 활용하는 스왑 파일을 생성했다. 실습에서는 2GB 스왑 파일을 설정하였다.
7. 방화벽 설정하기 (iptables & ufw)
기본 방화벽 정책을 확인하고, 필요한 포트를 열어주었다.
iptables -nL
ufw allow 80
ufw allow 443
ufw allow 22
ufw allow 53
만약 포트를 잘못 열었다면 다음과 같이 삭제할 수 있다.
ufw delete allow [포트번호]
8. Apache2 웹 서버 설치 및 설정하기
Apache2는 가장 널리 쓰이는 HTTP 서버이다. 설치 후에는 다음과 같은 기본 설정을 진행했다.
apt install apache2
service apache2 start
Apache의 기본 웹 루트는 /var/www/html이며, 해당 디렉터리에 있는 HTML 파일이 웹으로 제공된다.
firefox로 웹 페이지를 열어 index.html 파일 내용을 확인할 수 있었다.
9. SSL 인증서 설치하기 (HTTPS 보안 설정)
1. SSL-cert : 웹사이트와 클라이언트 간의 암호화된 통신을 가능하게 해주는 인증서.
2. Certbot : Let's Encrypt 인증서를 자동으로 발급해 주고 갱신해 주는 도구.
Certbot은 다음의 이유로 설치했다.
- 인증서 자동 갱신
- 무료 사용 가능
- Apache2와 연동 용이
10. Apache 보안 모듈 및 설정하기
Apache 보안을 강화하기 위해 다음 모듈들을 활성화했다.
a2enmod rewrite
a2enmod headers
a2enmod ssl
그리고 불필요하거나 보안상 노출 우려가 있는 모듈은 비활성화하였다.
a2dismod -f autoindex
mod_autoindex는 디렉터리에 index.html이 없을 경우 디렉터리 목록을 보여주는 기능이므로, 비활성화함으로써 보안을 강화했다.
모든 설정이 끝난 후, Apache를 다시 시작했다.
service apache2 restart
현재 Apache 설정 상태는 다음 명령어로 확인할 수 있다.
apache2ctl -S
11. 마무리
이번 실습에서는 리눅스 서버의 기본 정보 확인부터 Apache 웹 서버 구축, 방화벽 및 보안 설정까지 실습을 진행하였다.
서버 설정은 단순히 명령어를 외우는 것보다, 왜 해당 설정이 필요한지 이유를 이해하는 것이 더 중요하다는 것을 느낄 수 있었다.
다음 실습에서는 Apache 보안 설정 강화 및 SSL 활성화에 대해 다뤄보려고 한다.
다음 글 보러 가기
이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.
모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.
'리눅스 서버 구축' 카테고리의 다른 글
리눅스 시스템 관리 실습 - 사용자, 패키지, 서비스, 방화벽 관리 (4) | 2025.05.24 |
---|---|
리눅스 서버 구축 실습 - 5편 - Virtual Host 설정과 SSL 인증서 적용 프로젝트 (2) | 2025.05.23 |
리눅스 서버 구축 실습 - 4편 - phpMyAdmin 설치와 보안 설정 (2) | 2025.05.23 |
리눅스 서버 구축 실습 - 3편 - PHP 모듈 설치 및 보안 설정, phpinfo 조건부 출력 (0) | 2025.05.23 |
리눅스 서버 구축 실습 - 2편 - Apache 보안 설정 강화 및 SSL 활성화 (4) | 2025.05.22 |