- * 매거진을 없애며 지난 개발 history를 zeliAI매거진에 남겨 둡니다.-
국가사이버안보센터 매거진을 생성했다. 해당 국가 기관도 소개할 겸.
삼성전자 선임연구원 시절, SEAndroid개발(추 후 SE for Android로 개명)을 위해 NSA와 함께 일한 적이 있었다. 나는 왜 국가 단체에서 리눅스 보안에 신경 쓰는지 이해를 못 했었다. 물어보니 미국에 리눅스를 워낙 많이 쓰고 있는데 리눅스가 뚫리는 것 자체가 미국 내 기업, 정부, 개인이 해킹당하는 것과 같아서 리눅스 보안에 신경을 쓰고 있었다고 했다. Android 도 리눅스 기반이라 당연히 SELinux를 만드는 담당자에게 도움을 받아야 했었다.
그와 마찬가지다. 보안은 해당 분야의 종사자이던 아니던, 우리가 숨 쉬는 것처럼 알고 있어야 하는 분야다. 한국 웹사이트는 아파치와 NGINX 기반이 대부분이라 쉽게 공유할 수 있는 팁 같은 것은 공유해서 써 놓으려고 한다. 그러면 인공지능이 다시 학습할 것이고, 브런치는 국내 사이트니 소버린 AI에도 기여를 하는 것이다. 그렇게 향상된 제품은 다시 나에게 돌아온다. 돈을 낼 때도 있지만 리눅스의 경우 삼성전자에서 수십억의 라이선스 비용을 내게 했던 일이나 FSF에 기부했었던 것 빼고는 이미 7~8년이 지나도록 10원 하나 준 적 없으니 고마울 따름이다. 그것으로 지금도 먹고살고 있는데 말이다.
서두가 길었다. 우선 문제의 IP라고 확실히 인식이 되면,
NGINX 설정 파일에서 단 한 줄이면 막을 수 있다.
sudo vim /etc/nginx/sites-available/본인이 설정한 파일 index 아래.
index index.html index.htm index.php;
deny 196.251.70.73;
한 줄 만 넣어주면 된다.
nginx -t
systemctl reload nginx
IP는 차단해 버리는 것이 답이다. 워드프레스도 IP 차단 플러그인이 많아서 찾아서 쓰면 된다. 그러나 워드프레스에서 차단하던, nginx에서 차단하던 일단 서비스 단으로 IP가 들어오기 때문에 나는 UFW를 추천한다.
ufw를 쓴다면,
sudo ufw deny from 196.251.70.73 to any port 80
sudo ufw deny from 196.251.70.73 to any port 443
로 간단하다. 다만, ufw 안 쓰던 관리자가 ufw를 쓸 때 자기 세션을 끊어버려서 난감해하는 상황을 몇 번 봤는데, 보통 SSH는 그냥 쓰는 경우가 없으니 포트 확인, $SSH_CLIENT로 자기 IP 확인하고,
sudo ufw allow from 아이피 to any port 포트
로 방화벽 켜기 전에 먼저 추가해 주는 것이 좋다.
추 후 DENY 목록은
ufw status numbered | grep DENY
로 확인한다.
사실, 이런 작업보다 하드웨어 방화벽 + 문제의 IP 리스트 목록이 최고겠다. 나는 왜 국내 포털이 그런 IP 리스트를 공유 안 하는지 참 의아하게 생각한다. 별 추가 비용 없이 국가 보안 발전에 기여할 수 있는 기회가 있는데 말이다. 아마 이 매거진의 최종 목적지는 그런 블랙리스트 목록을 만드는 것이 아닐까 한다. 리스트 만드는 것 때문에 내부고발 했는데, 다시 리스트를 만든다고 하니... 참 아이러니한 세상이기도 하다.
하드웨어 방화벽 제품은 개인, 중소, 중견 기업의 경우 포티넷 제품을 추천한다. 대기업은 움직이는 자금 규모가 크니 뭔가 사견을 주기가 좀 그렇다. 보안 매거진의 글은 못하는 이야기가 많을 예정이다.^^;;