라벨이 웹 서버인 게시물 표시

리눅스에서 아파치 웹 서버 로그 파일 자동 압축 및 백업하기

이미지
리눅스 서버를 운영하면서 로그 파일을 관리하는 것은 매우 중요한 작업입니다. 특히 웹 서버의 로그 파일은 시간이 지남에 따라 용량이 커질 수 있으며, 이를 주기적으로 압축하고 백업하는 작업이 필요합니다. 이번 포스팅에서는 아파치(Apache) 웹 서버의 로그 파일을 자동으로 압축하고 백업하는 스크립트를 작성해 보겠습니다. 이 스크립트를 통해 로그 파일 관리를 자동화하면 서버의 디스크 용량을 효율적으로 사용할 수 있습니다. 서론 웹 서버 로그 파일은 서버의 운영 상태를 모니터링하고 문제를 분석하는 데 중요한 역할을 합니다. 하지만 이러한 로그 파일은 매일 생성되고, 오래된 로그 파일을 그대로 두면 서버의 디스크 용량을 차지하게 됩니다. 이를 해결하기 위해 로그 파일을 주기적으로 압축하고 백업하는 작업이 필요합니다. 이번 포스팅에서는 아파치 웹 서버 로그 파일을 자동으로 압축하고 백업하는 스크립트를 소개하겠습니다. 본론 스크립트 작성하기 로그 파일을 압축하고 백업하는 스크립트를 작성해 보겠습니다. 이 스크립트는 매일 생성되는 로그 파일을 압축하고, 백업 디렉토리에 저장하도록 설계되었습니다. log_backup.sh라는 파일명으로 작성하겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #!/bin/bash   # 아파치 로그 파일 경로 설정 LOG_DIR = "/var/log/apache2" BACKUP_DIR = "/path/to/backup/directory" DATE = $(date  + \%Y - \%m - \%d)   # 압축 파일명 설정 LOG_ARCHIVE = "apache-logs-$DATE.tar.gz"   # 백업 디렉토리가 존재하지 않으면 생성 if  [  !   - d  "$BACKUP_DIR"  ];  then   mkdir  - p  "$BACKUP_DIR"

초보자를 위한 nginx 설치 및 기본 설정 방법

이미지
서론 인터넷의 발달과 함께 웹 서비스의 중요성이 더욱 커지고 있습니다. 특히 웹 서버 소프트웨어는 웹사이트의 성능과 보안을 좌우하는 핵심 요소 중 하나입니다. 오늘은 가볍고 빠른 성능으로 많은 사랑을 받고 있는 **nginx** (엔진엑스) 웹 서버의 설치 방법과 기본 설정에 대해 알아보겠습니다. 본론 1. nginx 설치하기 nginx는 Linux, Windows 등 다양한 운영체제에서 사용할 수 있습니다. 여기서는 가장 일반적인 Linux 환경에서의 설치 과정을 안내드립니다. Ubuntu 기준 1 2 sudo apt update sudo apt install nginx cs CentOS 기준 1 2 sudo yum install epel - release sudo yum install nginx cs 설치가 완료된 후, `systemctl`을 이용하여 nginx 서비스를 시작합니다. sudo systemctl start nginx sudo systemctl enable nginx sudo systemctl start nginx sudo systemctl enable nginx 2. 기본 설정 확인 및 변경 nginx의 설정 파일은 `/etc/nginx/nginx.conf`에 위치해 있습니다. 이 파일을 편집기로 열어 기본 설정을 확인하고 필요에 따라 변경할 수 있습니다.  worker_processes와 worker_connections : 이 두 설정은 nginx의 성능에 직접적인 영향을 미칩니다. 시스템의 코어 수에 맞춰 `worker_processes`를 조정하고, `worker_connections`는 동시에 처리할 수 있는 최대 연결 수를 설정합니다. http : HTTP 관련 설정을 포함하며, 이 안에서 server 블록을 구성하여 각 웹사이트의 설정을 다룹니다. 3. 가상 호스트 설정 여러 웹사이트를 한 서버에서 운영하려면 가상 호스트를 설정해야 합니다. `/etc/nginx/sites-available/` 디렉터리에 웹사이트별 설정 파일을 만

mod_cband, mod_evasive, mod_ratelimit을 이용한 apache 트래픽 관리

apache에서 초당 접속 횟수 제한하는 방법 웹 서버를 운영하다보면 트래픽이나 속도를 제한해야 하는 경우가 있습니다. 예를 들어, 특정 IP나 URL에 대해 초당 접속 횟수를 제한하거나, 다운로드 속도를 조절하거나, 전체적인 대역폭을 관리하거나 하는 등의 작업이 필요할 수 있습니다. 이런 경우에는 apache 웹 서버에서 제공하는 여러가지 모듈과 설정을 이용할 수 있습니다. 이번 포스팅에서는 ubuntu 기준으로 apache에서 초당 접속 횟수를 제한하는 방법에 대해 알아보겠습니다. apache 설치하기 ubuntu에서 apache를 설치하는 방법은 간단합니다. 터미널을 열고 다음 명령어를 입력하면 됩니다. 1 2 sudo apt update sudo apt install apache2 cs 설치가 완료되면 다음 명령어로 apache 서비스의 상태를 확인할 수 있습니다. 1 sudo systemctl status apache2 cs mod_cband 모듈 사용하기 apache에서 초당 접속 횟수를 제한하는 방법 중 하나는 mod_cband라는 모듈을 사용하는 것입니다. mod_cband는 개별 홈페이지의 트래픽을 관리하기 위해 사용하는 모듈로서, 다음과 같은 기능을 제공합니다. CBandLimit: 일정 기간 동안 허용할 최대 트래픽 용량을 설정합니다. CBandPeriod: 트래픽 제한을 적용할 기간을 설정합니다. CBandSpeed: 일정 시간 동안 허용할 최대 전송 속도를 설정합니다. CBandRemoteSpeed: 원격 클라이언트의 최대 전송 속도를 설정합니다. CBandExceededURL: 트래픽 제한이 초과되었을 때 보여줄 URL을 설정합니다. CBandScoreboard: 트래픽 사용량을 저장할 파일의 경로를 설정합니다. CBandStatusHandler: 트래픽 상태를 확인할 수 있는 핸들러를 설정합니다. mod_cband 모듈을 설치하고 사용하는 방법은 다음과 같습니다. 1. mod_cband 모듈 다운로드 및 설치 1 2 3 4 5 6 w

apache 웹 서버 보안 강화하기 : 8가지 필수 설정

이미지
Apache 기본 보안 설정 Apache는 가장 널리 사용되는 웹 서버 중 하나입니다. 그러나 Apache를 설치하고 사용하기만 한다면 보안상의 취약점이 있을 수 있습니다. 이 포스팅에서는 Apache의 기본 보안 설정에 대해 알아보겠습니다. 1. 서버 정보 숨기기 웹 페이지의 헤더와 404 에러페이지에서 서버에서 사용하고 있는 OS 버전/ OS 정보가 노출되었다면, 공격자에게 힌트를 주게 됩니다. 이런 서버 정보를 숨기기 위해서는 ServerTokens 설정을 수정해야 합니다. ServerTokens 설정은 HTTP response의 HTTP Header에 노출되는 서버 정보를 얼마나 보여줄 것인가를 설정할 수 있습니다. 설정 값은 Full, OS, Minimal, Minor, Major, Prod 이 있습니다. Full : Apache/2.4.18 (Ubuntu) / PHP … OS : Apache/2.4.18 (Ubuntu) Min : Apache/2.4.18 Minor : Apache/2.4 Major : Apache/2 Prod : Apache ServerTokens 설정은 OS별로 다음과 같은 파일에서 수정할 수 있습니다. 우분투 : /etc/apache2/conf-available/security.conf CentOS : /etc/httpd/conf/httpd.conf 설정 파일 내 ServerTokens 를 Prod로 수정하고 아파치를 재시작하면, 서버 정보가 최소한으로 노출됩니다. 2. 디렉토리 인덱싱 차단 디렉토리 인덱싱 차단은 이전 포스팅에서도 한번 언급했던 것입니다. ( 이전 포스팅 보기 ) 디렉토리 인덱싱은 웹 서버에 있는 파일과 폴더의 목록을 보여주는 기능으로 이 기능이 활성화되어 있다면, 공격자는 웹 서버의 구조와 파일을 쉽게 파악할 수 있습니다. 따라서 디렉토리 인덱싱을 차단하는 것이 좋습니다. 디렉토리 인덱싱을 차단하기 위해서는 /etc/apache2/apache2.conf 파일에서 Options 부분에 있는 Indexes 를 제

apache 웹 서버에서 ‘index of /’ 페이지 없애는 방법

이미지
안녕하세요. 이번에는 apache의 'index of /'에 대한 설명과 없애는 방법에 대해 알아보겠습니다. apache의 'index of /'란 무엇인가요? apache는 웹 서버 소프트웨어로, 웹 브라우저와 웹 사이트 간의 통신을 가능하게 해줍니다. apache는 웹 사이트의 파일들을 저장하고 있으며, 웹 브라우저가 요청하는 파일을 전달해줍니다. 그런데, 웹 브라우저가 특정 디렉토리(폴더)를 요청할 때, 그 디렉토리에 index.html이나 index.php와 같은 기본 파일이 없다면, apache는 'index of /'라는 제목으로 그 디렉토리의 모든 파일과 하위 디렉토리를 나열해주는 페이지를 보여줍니다. 예를 들어, http://example.com/galerias/ 라는 주소로 접속했을 때, galerias 디렉토리에 index.html이나 index.php가 없다면, 다음과 같은 화면을 볼 수 있습니다. 'index of' 페이지 이러한 페이지를 디렉토리 인덱싱이라고 부르며, apache의 mod_autoindex 모듈이 제공하는 기능입니다. 디렉토리 인덱싱은 웹 사이트의 구조나 파일들을 쉽게 확인할 수 있게 해주는 장점이 있지만, 보안측면에서 심각한 문제를 초래합니다. apache의 'index of /'를 없애는 방법은 무엇인가요? apache의 'index of /'를 없애는 방법은 크게 세 가지입니다. 1. 기본 파일 생성하기 가장 간단한 방법은 디렉토리에 index.html이나 index.php와 같은 기본 파일을 생성하는 것입니다. 이렇게 하면, 웹 브라우저가 디렉토리를 요청할 때, apache는 기본 파일을 보여주게 됩니다. 예를 들어, http://example.com/galerias/ 라는 주소로 접속했을 때, galerias 디렉토리에 index.html이 있다면, 다음과 같은 화면을 볼 수 있습니다. index.html에 접속하면 사이트 주인