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. 웹 애플리케이션 보안
웹 서버의 보안은 애플리케이션 수준에서도 중요합니다. 악의적인 사용자로부터 웹 애플리케이션을 보호하려면 다음을 수행해야 합니다.
- 정기적인 보안 패치: CentOS 업데이트를 통해 최신 보안 패치를 적용합니다.
- 강력한 암호 정책: 사용자 암호 정책을 설정하여 강력한 암호를 사용하도록 요청합니다.
- 보안 헤더 설정: 웹 서버에 보안 헤더를 추가하여 웹 애플리케이션을 보호합니다.
- 입력 유효성 검사: 사용자 입력을 유효성 검사하여 악의적인 코드나 SQL 삽입 등의 시도를 방지합니다.
4. SSL 인증서 사용
SSL 인증서를 사용하여 웹 서버 통신을 암호화하면 중간자 공격을 방지할 수 있습니다. 또한 SSL 인증서를 사용하면 웹 서버의 신뢰성도 높아집니다.
무료로 사용 가능한 Let’s Encrypt와 같은 인증 기관에서 SSL 인증서를 발급받을 수 있습니다. 다음은 SSL 인증서를 설치하고 설정하는 간단한 단계입니다.
- Certbot 도구를 설치합니다.
sudo yum install certbot
- Certbot을 사용하여 SSL 인증서를 발급받습니다.
sudo certbot certonly --standalone -d example.com
- 웹 서버 설정 파일에서 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;
- 웹 서버를 재시작하여 SSL 인증서를 적용합니다.
sudo systemctl restart httpd
이러한 CentOS 웹 서버 보안 설정을 통해 웹 서버를 보호하고 악의적인 사용자로부터 안전하게 유지할 수 있습니다. 보안 설정은 지속적으로 관리해야 하며 최신 보안 업데이트를 적용하는 것이 중요합니다.