CentOS 웹 서버 보안 설정

CentOS는 많은 사람들이 웹 서버를 운영하는 데 널리 사용되는 운영 체제입니다. 그러나 웹 서버를 운영하는 동안 보안에 대한 신경을 써야합니다. 이 블로그 포스트에서는 CentOS 웹 서버를 보호하기 위한 몇 가지 보안 설정을 소개합니다.

1. 방화벽 구성

방화벽은 서버에 들어오고 나가는 네트워크 트래픽을 관리하여 서버를 외부에서의 공격으로부터 보호하는 데 도움이 됩니다. CentOS에서는 firewalld를 사용하여 방화벽을 구성할 수 있습니다.

다음 명령어로 firewalld 서비스를 시작합니다.

sudo systemctl start firewalld

웹 서버를 사용하는 포트(보통 80번 포트)를 열어야 합니다. 다음 명령어를 사용하여 포트를 열 수 있습니다.

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload

2. SSH 액세스 보안 강화

SSH는 웹 서버에 원격으로 액세스하기 위해 사용되는 프로토콜입니다. 악의적인 사용자가 SSH를 통해 서버에 액세스하지 못하도록 몇 가지 보안 설정을 추가할 수 있습니다.

SSH를 통한 루트 로그인을 비활성화하고 특권이 부여된 사용자만 SSH 액세스를 할 수 있도록 설정합니다. /etc/ssh/sshd_config 파일을 열어 다음 라인을 찾습니다.

PermitRootLogin yes

위 라인을 다음과 같이 수정합니다.

PermitRootLogin no

이제 특정 사용자만 SSH 액세스를 할 수 있도록 설정해야 합니다. AllowUsers라는 옵션을 사용하여 허용된 사용자 목록을 지정할 수 있습니다.

AllowUsers user1 user2

마지막으로 SSH 서비스를 재시작하여 변경 사항을 적용합니다.

sudo systemctl restart sshd

3. 웹 애플리케이션 보안

웹 서버의 보안은 애플리케이션 수준에서도 중요합니다. 악의적인 사용자로부터 웹 애플리케이션을 보호하려면 다음을 수행해야 합니다.

4. SSL 인증서 사용

SSL 인증서를 사용하여 웹 서버 통신을 암호화하면 중간자 공격을 방지할 수 있습니다. 또한 SSL 인증서를 사용하면 웹 서버의 신뢰성도 높아집니다.

무료로 사용 가능한 Let’s Encrypt와 같은 인증 기관에서 SSL 인증서를 발급받을 수 있습니다. 다음은 SSL 인증서를 설치하고 설정하는 간단한 단계입니다.

  1. Certbot 도구를 설치합니다.
sudo yum install certbot
  1. Certbot을 사용하여 SSL 인증서를 발급받습니다.
sudo certbot certonly --standalone -d example.com
  1. 웹 서버 설정 파일에서 SSL 인증서 경로를 설정합니다. 일반적으로 /etc/nginx/nginx.conf 또는 /etc/httpd/conf.d/ssl.conf 파일을 편집할 수 있습니다.
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
  1. 웹 서버를 재시작하여 SSL 인증서를 적용합니다.
sudo systemctl restart httpd

이러한 CentOS 웹 서버 보안 설정을 통해 웹 서버를 보호하고 악의적인 사용자로부터 안전하게 유지할 수 있습니다. 보안 설정은 지속적으로 관리해야 하며 최신 보안 업데이트를 적용하는 것이 중요합니다.