리눅스 서버 구축

리눅스 서버 구축 실습 - 1편 - 시스템 정보 확인부터 Apache2 웹서버 설정까지

ahhyun98 2025. 5. 22. 15:34

 

이번 글에서는 리눅스 서버 환경을 구축하는 과정의 첫 번째 실습 내용을 정리했다. 시스템 정보 확인, 캐시 및 메모리 관리, 디스크와 부팅 정보 확인, 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 활성화에 대해 다뤄보려고 한다. 

 

다음 글 보러 가기

 

이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.

모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.