• Fail2Ban과 ipset으로 워드프레스 웹 방화벽 구축하기

    클라우드의 VM 또는 홈서버에 직접 서버를 구축하고 워드프레스와 같은 블로그 또는 웹사이트를 운영하는 사람들은 모든 문제를 직접 해결해야 한다. 검색엔진의 봇이 아닌 불법적인 웹 크롤러와 봇이 무단으로 저작물을 가져가는 것을 막아야 하고 광고 댓글이 달리는 것도 차단해야 한다. 게다가 로그인 페이지를 찾아내 무단으로 접속을 시도하는 것도 막아야 하고 웹서버의 해킹 시도도 차단해야 하며 심지어 운영체제에 직접 로그인하려는 원격접속(SSH) 시도도 방어해야 한다. 필자 또한 많은 고민을 하며 이런 저런 방법으로 공격을 막아내고 있다. …

  • iptable과 ipset을 연동하여 대량 IP 효과적으로 차단하기

    Referer 주소가 없는 방문자의 정체 언제부터 인지는 알 수 없지만 필자가 운영하고 있는 워드프레스 블로그의 방문자 로그에 이상한 로그가 잡히기 시작했었다. 바로 다음과 같은 로그다. 방문자 카운터 로그에 기록된 비정상 방문 이력 구글이나 네이버와 같은 검색엔진을 통해 유입이 되는 경우 95% 이상의 비율로 Referer에 Google이나 Naver, Bing 등 검색엔진의 URL 주소가 기록된다. 하지만 앞 화면에 보이는 것과 같은 접속 이력은 Referer 주소가 없다. 이 방문자 접속 이력은 필자의 워드프레스 블로그에 직 …

  • 중국의 유해 트래픽을 차단하다

    인터넷에는 유해한 트래픽이 넘쳐난다. 그 중에서도 중국에서 다른 나라로 유입되는 트래픽은 유별나게도 유해한 트래픽이 많다. 우리나라로 유입되는 다양한 트래픽도 대부분 유해한 트래픽이라 해도 과언이 아니다. 그리고 그런 중국발 유해 트래픽은 필자의 블로그로도 유입된다. 그런데 최근에 갑자기 그 트래픽이 많아지기 시작했다. 워드프레스 블로그의 방문자 로그 분석 필자는 다음화면과 같이 방문자의 로그를 로그 수집서버에 수집하여 종종 분석하고 있다. 로그는 다음 화면과 같이 시간, 글제목, 글URL, IP, Referer 주소, 플랫폼의 …

  • imgproxy를 사용한 이미지 캐시 서버의 효과

    필자가 운영하고 있는 블로그에 Caddy + Nginx + imgproxy 조합의 이미지 캐시 서버를 구축해서 연동한지 1개월 하고도 10여일이 넘게 지났다. 처음 구축했을 때는 안정성을 훼손하지 않을까 염려했는데 성능이나 안정성 측면에서 성공적이라 생각된다. 필자의 블로그에는 대충 어림잡아도 100~250 KB 크기의 이미지 파일이 적게는 3~5개, 많게는 30~40개의 이미지까지도 첨부되기에 포스트 1개만 해도 제법 큰 트래픽이 발생한다. 필자의 워드프레스 블로그(blogger.pe.kr)에는 포스트를 작성할 때 JPG 포맷의 …

  • 바이브 코딩으로 가볍고 빠른 워드프레스 테마 만들기

    필자의 블로그는 3년 전, 티스토리를 떠나 직접 구축한 독립 리눅스 서버에 설치된 워드프레스에 정착해 있다. 그리고 워드프레스로 블로그를 구축하면 거의 필수적으로 사용하게 되는 테마는 여러 테마를 전전하다 제너레이트 프레스(GeneratePress)를 사용하고 있다. 제너레이트프레스(GeneratePress) 테마 워드프레스 사용자, 특히 한국의 사용자들은 제너레이트프레스 테마를 선호하는 경향이 강하다. 제너레이트프레스 테마를 선호하는 이유는 제너레이트프레스가 다른 상용 테마들 중에서 손꼽히게 가볍고 빠르며 깔끔하고 심플한 테마를 …

  • 워드프레스의 글 목록 페이지를 생성하는 플러그인 (대문)

    티스토리에서 독립서버의 워드프레스로 이사한 후 가장 애를 먹은 것 중 하나가 대문에 최신글의 목록을 깔끔하게 표시하는 것이었다. 티스토리나 네이버 블로그에서는 너무도 당연하게 블로그 첫 페이지에 표시되는 최신글 목록 기능이 제공된다. 블로그의 메인페이지와 카테고리, 또는 Tag를 선택했을 때에는 글의 제목과 글을 대표하는 이미지 그리고 작성일자, 카테고리와 글의 요약이 표시되어야 한다. 이 당연하다고 생각되는 기능이 워드프레스에서는 당연한 것이 아니다. 워드프레스 블로그의 글 목록 표시 그래서 네이버 블로그나 티스토리를 사용하던 …

  • 쇼핑몰 북마크 추가하는 애드웨어 삭제 방법

    PC에 이런 저런 프로그램을 설치하거나 여기 저기 웹사이트를 돌아다니다 보면 웹 브라우저의 북마크에 테무, 알리, 지마켓 등등 쇼핑몰 즐겨찾기가 추가되어 있다. 보기 싫어 삭제하고 나면 얼마 지나 다시 추가되어 있다. 게다가 원치 않는 웹사이트를 브라우저의 탭으로 띄워 접속하기도 하고 뜬금없이 광고 팝업창을 띄워 짜증을 유발하기도 한다. 이런 프로그램은 애드웨어(adware)의 일종으로 악성 프로그램으로 분류된다. 이런 악성 북마크를 반복적으로 추가하는 프로그램들은 대부분 알집, 곰플레이어 등과 같이 무료 프로그램과 함께 배포되어 …

  • 워드프레스 Code Snippets 플러그인 만들기

    워드프레스 CMS는 블로그를 구축하고 운영할 때 필요한 기능을 제공해주는 매우 다양한 플러그인이 있다. 하지만 비용을 지불하지 않으면 원하는 기능을 사용하지 못하는 경우가 많고 불필요한 기능이 덕지덕지 붙어있어 무겁기까지 하다. 게다가 계속적으로 업데이트를 해야 한다는 알림이 뜨고 업데이트를 하면 문제가 발생하는 경우도 다반사다. Code Snippets 관리용 플러그인 워드프레스를 사용해 블로그를 구축하고 운영할 때 꼭 필요한 기능 중 하나가 바로 코드 스니펫을 관리해주는 기능이다. 코드 스니펫 관리가 필요한 가장 대표적인 경우 …

  • 워드프레스 블로그에 방문자 카운터 설치하기

    앞의 포스트에서 매우 심플한 방문자 카운터를 만든 후기를 올렸다. 그런데 막상 방문자 카운터를 만들고 나니 사용할만한 느낌이 들었고 필요한 기능을 추가하게 되었다. WPV Conter 일단 방문자 카운터의 이름을 바꿨다. WPV Counter. 즉 WordPress Visitor Counter의 대문자만 따와서 지었다. 플러그인 추가 기능을 통해 아래에 첨부한 방문자 카운터 파일을 업로드하고 설치하면 다음과 같이 설치한 플러그인 목록에 WPV Counter라고 표시된다. WPV Counter 설치된 화면 WPV Counter의 주 …

  • 워드프레스 블로그의 이미지 캐시서버 구축하기

    많은 사람들이 네이버나 티스토리 같은 블로그 플랫폼에 블로그를 구축하여 운영하고 있지만 필자는 IT분야의 개발, 시스템엔지니어, 보안컨설턴트의 경력을 갖고 있기에 경험을 살려 클라우드에 서버를 직접 구축해 운영하고 있다. 다음 이미지에서와 같이 필자의 블로그는 오라클 클라우드의 프리티어(Free Tier) 인스턴스 2개를 사용해 구축되어 있다. 블로그가 구축된 OCI 인스턴스 www라는 이름의 인스턴스에는 Apache Web Server 2/PHP 8.3 FPM와 함께 CMS인 Wordpress가 설치되어 있고 mariadb라는 …