2월20일 특정 ip로 ID는 fnfOzvSR 로 댓글이 수없이 달려있다.
중국 ip 122.136.188.132
검색해 보니 국내 커뮤니티며 회사 사이트들에 접속해 게시물을 게시하거나 댓글들을 수없이 달아 놓았다.
라이믹스 자체ip 차단기능이 없어 nginx에서 차단을 해야 할 것 같다.
chat GPT를 이용하여 질문을 던져 봤다.
질문
nginx 에서 특정 ip를 차단 하려고 해! 수정해야할 파일의 위치와 파일명 그리고 수정 방법을 알려줘
Nginx에서 특정 IP를 차단하려면, nginx.conf
파일이나 해당 도메인에 대한 설정 파일을 수정해야 합니다. 아래는 이를 설정하는 방법을 안내할게요.
1. 수정할 파일 위치
보통 Nginx 설정 파일은 /etc/nginx/nginx.conf
또는 /etc/nginx/sites-available/
디렉토리 내에 있는 각 도메인에 대한 설정 파일입니다. 사용하는 배포판이나 설정에 따라 다를 수 있으니, 이들 경로를 확인해야 합니다.
2. IP 차단 방법
차단할 IP를 설정하려면 deny
지시어를 사용합니다.
a) 전체 Nginx 설정 파일에서 차단하기 (/etc/nginx/nginx.conf
)
-
nginx.conf
파일을 엽니다:sudo nano /etc/nginx/nginx.conf
-
http
블록 안에, 또는 특정server
블록 내에 아래와 같이 IP를 차단하는 구문을 추가합니다:http { # 전체 서버에서 특정 IP 차단 deny 192.168.1.100; # 차단할 IP 주소 allow all; # 다른 모든 IP는 허용 server { # 서버 설정 } }
b) 특정 도메인에 대해 차단하기 (/etc/nginx/sites-available/your_site
)
-
해당 도메인의 설정 파일을 엽니다:
sudo nano /etc/nginx/sites-available/your_site
-
server
블록 내에 아래와 같이 IP 차단 구문을 추가합니다:server { listen 80; server_name your_domain.com; # 특정 IP 차단 deny 192.168.1.100; # 차단할 IP 주소 allow all; # 다른 모든 IP는 허용 # 나머지 설정들... }
3. Nginx 재시작
파일을 수정한 후, Nginx 설정을 다시 로드하거나 재시작해야 변경사항이 반영됩니다. 아래 명령어를 사용하여 Nginx를 재시작합니다.
sudo systemctl reload nginx # 설정 재적용
혹은 Nginx를 완전히 재시작할 수도 있습니다:
sudo systemctl restart nginx
이제 해당 IP가 Nginx 서버에 접속할 수 없게 됩니다. IP 차단이 정상적으로 적용되었는지 확인하려면 해당 IP로 서버에 접속을 시도하여 확인할 수 있습니다.
## 나의 조치사항
MobaXterm을 접속한다. PC 교체를 했더니 세션설정이 하나도 되어 있지 않아 하나둘 설정부터 해주었다.
일단 공용키 위치를 지정해 주고 서버 계정을 입력 해주고 접속한다.
sudo 또는 root 계정으로 nginx 설정폴더까지 접근
cd /etc/nginx/sites-available/default
파일이 있다면 nano 편집기로 접근해 둔다.
nano etc/nginx/sites-available/default
server {
if ($host = 도메인) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 default_server;
listen [::]:80 default_server;
server_name 도메인;
return 404; # managed by Certbot
# 특정 ip차단
deny 122.136.188.132; #차단할 ip주소
allow all; #다른 모든ip는 허용
}
server {
if ($host = www.도메인) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name www.도메인;
return 404; # managed by Certbot
}
CTRL + X 로 빠져 나온다.
systemctl reload nginx
sudo systemctl restart nginx