본문 바로가기
IT Life

squid 프록시 서버 비정상 접속 관리 (ip 대역 차단 등 설정)

by 미스터트롤 2021. 10. 13.
반응형

이전에 오렌지파이(Orange Pi)를 이용하여 리눅스 서버를 구축한 일이 있었다.

(관련 내용은 아래 링크 참조)

 

https://mrtroll.tistory.com/587?category=762964 

 

초저가 잡 스케줄러 구축 (1) : 구상과 지름

그동안 지인들의 부탁을 받고 만들어준 웹 어플리케이션이 몇가지 있다. 그 중 일부는 매일 또는 일정시간마다 확인하고 동작해야하는 배치성 작업이 필요한 것들이 있었다. 즉, 주기적인 작업

mrtroll.tistory.com

https://mrtroll.tistory.com/588?category=762964 

 

초저가 잡 스케줄러 구축 (2) : 서버환경설정

이전 포스트에서 초저가 잡 스케줄러를 만들기 위해 어떤 하드웨어와 소프트웨어를 사용할 것인지 결정했었다. 요약하자면 오렌지파이 제로 LTS(Orange Pi Zero LTS)와 우분투 리눅스를 이용해서 잡

mrtroll.tistory.com

 

 

가끔 외부에서 일을 하다보면 여러 사이트들이 여러가지 정책에 의하여 막혀있는 경우가 종종 발생한다.

 

그래서 메일 등을 확인하고자 믿을만한 프록시가 있으면 좋겠다는 생각에 간단히 프록시서버를 설치해서 설정하였다.

 

관련 내용은 아래 링크 등 구글에서 squid 설치를 참조했었다.

 

https://chhanz.github.io/linux/2019/11/13/configuration-squid-proxy/

 

[Linux] Squid 를 이용한 Proxy 서버 구성

[Linux] Squid 를 이용한 Proxy 서버 구성 주로 on-premise 환경에서 운영되는 시스템은 인터넷이 안되는 시스템이 많습니다. 이런 상황이다 보니, Yum 을 통한 Package 관리가 쉽게 되지 않습니다. 그렇다고

chhanz.github.io

 

 

그런데 사용중에 이상한 점을 발견했다. 시간이 지날수록 점차적으로 느려지거나 접속이 안되는 현상이 발생했다.

 

서비스를 리스타트해보니 잘 되는 것을 보니 느낌이 왔다. 뭔가 접근이 많은 것 아닌가?

 

그제서야 부랴부랴 squid access.log를 뒤져보니..

root@orangepizerolts:~# cd /var/log/squid/
root@orangepizerolts:/var/log/squid# ls
access.log  cache.log  netdb.state
root@orangepizerolts:/var/log/squid# tail -f access.log

.. 생략 ..
1634084190.166      2 104.244.75.3 TCP_DENIED/403 3900 GET http://azenv.net/ - HIER_NONE/- text/html
1634084206.654      3 162.55.232.113 TCP_DENIED/403 5361 POST http://server-two-worldpremiumchks.online/login/ - HIER_NONE/- text/html
1634084221.907      2 108.61.142.12 TCP_DENIED/403 3985 GET http://wall.angelsword.cc/lixuan.php - HIER_NONE/- text/html
1634084230.247      3 162.55.232.113 TCP_DENIED/403 5320 POST http://server-two-worldpremiumchks.online/login/ - HIER_NONE/- text/html
1634084246.405      2 172.111.1.119 TCP_DENIED/403 3923 GET http://azenv.net/ - HIER_NONE/- text/html
1634084251.703      3 162.55.232.113 TCP_DENIED/403 5301 POST http://server-two-worldpremiumchks.online/login/ - HIER_NONE/- text/html
1634084256.513      3 162.55.232.113 TCP_DENIED/403 5362 POST http://server-two-worldpremiumchks.online/login/ - HIER_NONE/- text/html
1634084274.700      3 162.55.232.113 TCP_DENIED/403 5321 POST http://server-two-worldpremiumchks.online/login/ - HIER_NONE/- text/html
1634084280.617      3 162.55.232.113 TCP_DENIED/403 5366 POST http://server-two-worldpremiumchks.online/login/ - HIER_NONE/- text/html
1634084295.876      3 162.55.232.113 TCP_DENIED/403 5384 POST http://server-two-worldpremiumchks.online/login/ - HIER_NONE/- text/html
1634084319.156      2 172.111.1.119 TCP_DENIED/403 3923 GET http://azenv.net/ - HIER_NONE/- text/html
1634084326.014      2 108.61.142.12 TCP_DENIED/403 3985 GET http://wall.angelsword.cc/lixuan.php - HIER_NONE/- text/html
1634084359.674      2 108.61.142.12 TCP_DENIED/403 3985 GET http://wall.angelsword.cc/lixuan.php - HIER_NONE/- text/html
1634084394.509      2 172.111.1.119 TCP_DENIED/403 3923 GET http://azenv.net/ - HIER_NONE/- text/html
1634084407.174      2 167.179.97.138 TCP_DENIED/403 3902 GET http://azenv.net/ - HIER_NONE/- text/html
1634084430.850      2 104.244.75.3 TCP_DENIED/403 3900 GET http://azenv.net/ - HIER_NONE/- text/html
1634084431.512      2 51.15.9.77 TCP_DENIED/403 3920 GET http://azenv.net/ - HIER_NONE/- text/html
1634084432.094      2 52.237.118.106 TCP_DENIED/403 3902 GET http://azenv.net/ - HIER_NONE/- text/html
1634084437.854  66095 1.236.139.209 TCP_TUNNEL/200 23547 CONNECT blog.like.naver.com:443 - HIER_DIRECT/175.158.5.164 -
1634084451.486      2 51.15.9.77 TCP_DENIED/403 3920 GET http://azenv.net/ - HIER_NONE/- text/html
1634084467.180      2 172.111.1.119 TCP_DENIED/403 3923 GET http://azenv.net/ - HIER_NONE/- text/html
.. 생략 ..

위 처럼 알 수 없는 곳으로부터 요청이 쇄도하고 있었다. (지금은 squid 설정 변경으로 대다수가 TCP_DENIED 되고 있는데, 그전에는 반응을 했을 것이다.)

 

그래서 먼저 squid.conf를 변경해줄 필요가 있었다.

vi /etc/squid/squid.conf

내용 중 아래와 같이 수정

acl [별명] src [허용할ip]/255.255.255.0
http_access allow [별명]
http_access deny_all

이렇게 하면 특정 ip 대역 (1.2.3.x)만 허용하고 나머지는 모두 서비스 요청을 deny하기 때문에 어느정도 문제가 해결된다.

 

 

그러나 TCP_DENIED가 로그에 쌓이는 것조차 불만이기 때문에.. 이것도 iptables나 route를 이용해서 OS차원에서 튕겨내본다.

 

iptables -A INPUT -s 111.222.0.0/16 -j DROP

또는

route add -net 111.222.0.0 netmask 255.255.0.0 reject

 

이렇게 해주면 111.222.x.x 대역 ip는 모두 접근할 수 없게 된다.

 

그러나 재부팅되면 소실되는 것으로 파악되어.. 영구적으로 하는 방법을 찾는 중..

 

반응형