평소와 다른 LOGWATCH 보고서가 도착했다. 메시지는 "Connection attempts using mod_proxy"였다.
Httpd
Connection attempts using mod_proxy:
175.198.181.142 -> www.naver.com:80 2 Time(s)
일단 하나씩 생각해보자. mod_proxy는 mod_jk와 함께 웹서버 Apache에서 자주 사용하는 모듈이다. mod_jk는 Apache와 Tomacat을 연동하는 모듈이고, mod_proxy는 말 그대로 프록시 기능을 하는 모듈이다. 포워드 프록시, 리버스 프록시, 로드 밸런싱이 주요 기능이다.
그렇다면 저 문구는 "누군가, 내 서버 Apache에 설치된 mod_proxy 모듈을 이용해 네이버에 접속을 시도했다."로 볼 수 있다. Attempts이므로 시도한다는 것만 보여줄 뿐 결과가 어땠는지를 보여주진 않는다. 하지만 무언가 이상하다 내 서버에는 Apache가 설치되지 않았는데 말이다.
$ sudo cat /var/log/nginx/access.log | grep 175.198.181.142
<결과 없음>
혹시나 해서, nginx 로그를 살펴보았으나 아무런 기록이 없다. 당연하겠지만 아파치가 설치되지 않았기 때문일 것이다.
$> curl --proxy http://140.227.61.25:58888 http://yahoo.com
* 140.227.61.25:58888 - 무료 프록시 서버
<p>Sorry, you are not currently allowed to request http://yahoo.com/ from this cache until you have authenticated yourself.</p>
윈도우나 리눅스에서 무료 프록시 서버를 이용하여 다른 사이트에 접속할 때 사용하는 curl 명령어다. 2023. 10. 5. 기준 정상적으로 동작하고, html reponse를 정상적으로 기대할 수 있다. 이 걸 내 서버에 적용하면 어떻게 될까? 다음과 같이 301 에러를 응답한다.
$> curl --proxy http://my.server:port http://yahoo.com
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
서버에 로그는 어떻게 남을까? 로그파일에 접근 기록이 있었다. 이번 사건의 "IP 175.198.181.142"는 부정한 목적인지, 우연한 실수인지 모르겠지만 내 서버에 아파치 프록시가 있을 것으로 예상하고 접근한 것 같다.
$ sudo cat /var/log/nginx/access.log
"GET http://yahoo.com/ HTTP/1.1" 301 162 "-" "curl/8.0.1" "-"
k : https 사이트를 SSL certificate 검증없이 연결
x : Request 시 사용할 method 종류
$ curl -kx http(s)://<your-server-ip>:<your-server-port> http://ifconfig.me
$ curl -kx http(s)://<your-server-ip>:<your-server-port> https://ifconfig.me
로그와치의 리포트와 동일한 결과를 얻었다. 누군가 curl -kx 또는 이와 유사한 명령으로 서버에 접근한 것이다. 그러나 Apache 서버에 설치한 사실이 없으므로 Apache의 설정파일도 수정할 필요는 없다. (파일이 없는데 뭘 수정?) 혹시 모를 일에 대비하기 위해 방화벽에 아이피 거부를 등록하는 것이 현재 최선의 방안이다.
| 참고 |
(1) Logwatch: connection attempts using modproxy
_https://serverfault.com/questions/286999/logwatch-connection-attempts-using-mod-proxy
(2)https://serverfault.com/questions/1110688/httpd-connection-attempts-using-mod-proxy
(3) Computer Tips - What does it mean when logwatch says: Connection attempts using modproxy: 222.208.183.218 - www.google.com:443: 5 Time(s)
_https://www.davekb.com/browse_computer_tips:logwatch_connection_attempts_using_mod_proxy:txt