본문 바로가기

리눅스

Nginx에서 특정 IP 주소를 제한하는 방법

반응형

Nginx에서 특정 IP 주소를 제한하는 방법

Nginx를 사용하여 특정 IP 주소를 제한하려면 Nginx의 설정 파일에 allow 및 deny 지시어를 사용하여 특정 IP 주소를 허용하거나 차단할 수 있습니다.

1. nginx 설정 파일 열기

nginx의 설정 파일은 일반적으로 /etc/nginx/nginx.conf 또는 /etc/nginx/sites-available/default와 같은 위치에 있습니다.

2. 허용하거나 거부할 IP 주소 지정

다음과 같은 형식으로 허용하거나 거부할 IP 주소를 지정합니다.

allow [IP 주소];
deny [IP 주소];

여러 IP 주소를 지정하려면 각각의 IP 주소를 세미콜론으로 구분합니다.

3. nginx server 블록에 IP 주소 지정

허용하거나 거부할 IP 주소를 지정한 후 nginx server 블록에 해당 IP 주소를 지정합니다.

예를 들어, 다음과 같이 server 블록을 수정할 수 있습니다.

server {
	listen 80;
	server_name example.com;
	allow 192.168.1.1;
	deny all;
}

여러 IP 주소를 허용하려면 다음과 같이 설정할 수 있습니다.

location / {
    allow 192.168.1.100;
    allow 203.0.113.0/24;  # 범위를 지정할 수도 있습니다.
    deny all;
}

4. 설정 파일 저장 및 nginx 서비스 재시작

설정 파일을 저장한 후 nginx 서비스를 재시작합니다.

우분투에서는 다음과 같은 명령어를 사용할 수 있습니다.

sudo nginx -t
sudo systemctl restart nginx

위의 단계를 따라하면 nginx에서 특정 IP 주소를 제한할 수 있습니다.

728x90

특정 IP 주소 대역에서만 액세스를 허용하도록 구성하고 나머지는 모두 거부

# www.sangchul.kr
server {
    listen 80;
    server_name www.sangchul.kr;
    return 301 https://$host$request_uri;
}

# Settings for a TLS enabled server.
server {
    listen 443 ssl http2;
    server_name www.sangchul.kr;
..
    ###Temporary usage setting
    error_page 403 /403.html;
        location = /403.html {
        internal;
        return 301 https://www.sangchul.kr;
    }

    allow 192.168.1.0/24;
    allow 192.168.4.0/24;
    allow 192.168.15.0/24;
    allow 192.168.19.0/24;
    deny all;
}

이 설정은 www.sangchul.kr 도메인으로 들어오는 HTTP 요청을 HTTPS로 리다이렉트하며 HTTPS 요청에 대한 설정도 함께 포함하고 있습니다.  

 

HTTP 요청을 HTTPS로 리다이렉트

  • listen 80 : 80번 포트에 대한 설정 즉 HTTP 요청을 처리하기 위한 설정입니다.
  • server_name www.sangchul.kr : 이 설정이 적용되는 도메인입니다.
  • return 301 https://$host$request_uri; : HTTP 요청을 HTTPS로 리다이렉트하기 위한 설정입니다. $host 변수는 현재 호스트의 이름을 의미하며 $request_uri는 현재 요청된 URI를 의미합니다.

HTTPS 요청에 대한 설정

  • listen 443 ssl http2 : 443번 포트에 대한 설정 즉 HTTPS 요청을 처리하기 위한 설정입니다. ssl은 SSL 인증서를 사용하겠다는 의미이며 http2는 HTTP/2 프로토콜을 사용하겠다는 의미입니다.
  • server_name www.sangchul.kr : 이 설정이 적용되는 도메인입니다.
  • error_page 403 /403.html; : 403 Forbidden 오류가 발생했을 때 사용자에게 보여줄 페이지를 설정합니다.
  • location = /403.html {internal; return 301 https://www.sangchul.kr;} : /403.html 경로에 대한 설정입니다. internal은 이 경로가 내부적으로 사용되는 경로임을 나타내며, return 301 https://www.sangchul.kr;는 403 오류가 발생했을 때 리다이렉트할 페이지를 설정합니다.
  • allow 192.168.1.0/24; allow 192.168.4.0/24; allow 192.168.15.0/24; allow 192.168.19.0/24; deny all; : 위에서 설정한 HTTPS 서버에 접근할 수 있는 IP 주소 대역을 설정합니다. allow는 허용할 IP 주소 대역을 설정하며 deny all은 나머지 모든 IP 주소에 대한 접근을 거부합니다.

특정 IP 주소를 제한하거나 허용할 수 있습니다.

 

728x90
반응형

'리눅스' 카테고리의 다른 글

[리눅스] whereis 명령어  (0) 2023.03.30
which 명령어  (0) 2023.03.30
웹서버의 동시 접속자 수(동접자)  (0) 2023.03.24
[리눅스] siege 명령어  (0) 2023.03.24
[리눅스] core 파일을 분석하는 방법  (0) 2023.03.24