[태그:] 리눅스
리눅스 관련 글입니다.
-
Fail2Ban과 ipset으로 워드프레스 웹 방화벽 구축하기
클라우드의 VM 또는 홈서버에 직접 서버를 구축하고 워드프레스와 같은 블로그 또는 웹사이트를 운영하는 사람들은 모든 문제를 직접 해결해야 한다. 검색엔진의 봇이 아닌 불법적인 웹 크롤러와 봇이 무단으로 저작물을 가져가는 것을 막아야 하고 광고 댓글이 달리는 것도 차단해야 한다. 게다가 로그인 페이지를 찾아내 무단으로 접속을 시도하는 것도 막아야 하고 웹서버의 해킹 시도도 차단해야 하며 심지어 운영체제에 직접 로그인하려는 원격접속(SSH) 시도도 방어해야 한다. 필자 또한 많은 고민을 하며 이런 저런 방법으로 공격을 막아내고 있다. …
-
iptable과 ipset을 연동하여 대량 IP 효과적으로 차단하기
Referer 주소가 없는 방문자의 정체 언제부터 인지는 알 수 없지만 필자가 운영하고 있는 워드프레스 블로그의 방문자 로그에 이상한 로그가 잡히기 시작했었다. 바로 다음과 같은 로그다. 방문자 카운터 로그에 기록된 비정상 방문 이력 구글이나 네이버와 같은 검색엔진을 통해 유입이 되는 경우 95% 이상의 비율로 Referer에 Google이나 Naver, Bing 등 검색엔진의 URL 주소가 기록된다. 하지만 앞 화면에 보이는 것과 같은 접속 이력은 Referer 주소가 없다. 이 방문자 접속 이력은 필자의 워드프레스 블로그에 직 …
-
우분투 리눅스에 PostgreSQL 설치하기
오픈소스 RDBMS의 양대산맥은 MariaDB와 PostgreSQL 이다. 하지만 성능과 기능 그리고 안정성은 PostgreSQL (포스트그레스큐엘이라고 읽는다)이 더 우수하다고 많은 이들이 평가한다. 하지만 개인적으로는 PostgreSQL을 사용해보지는 않았다. 대부분 MySQL이나 MariaDB를 사용했다. 지금 운영하고 있는 워드프레스 블로그를 포함해 많은 오픈소스 CMS나 게시판들이 MySQL을 표준으로 지원해왔기 때문이기도 하다. 하지만 최근들어서는 많은 오픈소스들이 PostgreSQL을 표준으로 지원하고 있으며 북미 지 …
-
Proxmox에 리눅스 컨테이너(LXC)로 우분투 24.10 설치하기
서버 가상화에는 대표적으로 두 가지 종류의 가상화 기술이 사용되고 있다. 첫 번째는 Hypervisor 기반 가상화다. 인텔의 VT-x 또는 AMD의 AMD-V 등 CPU에서 제공하는 가상화 기능을 활용하는 Hypervisor라는 가상머신모니터(VMM)을 통해 가상서버를 생성하는 방식이다. VMWare ESXi나 MS의 Hyper-V, KVM 등이 바로 Hypervisor 기반 가상화다. 두 번째는 Linux Container (LXC)다. LXC는 리눅스에서 지원하는 Cgroup과 Namespace라는 리눅스 커널에서 제공하는 …
-
나만의 VPN 서버 구축하기 (wireguard)
이런 저런 보안 관련 테스트를 하거나 무언가 민감한 글(?)이나 댓글을 작성할 때 내 IP를 노출하고 싶지 않은 경우가 있다. 그 때 노출 되는 IP가 해외의 IP라면 더 좋을 것이다. 그래서 많은 사람들이 해외 업체의 VPN 서비스를 유료로 사용하기도 한다. 나름 IT 밥을 먹고 있다고 자부하는 1인으로서 사람으로서 그런 유료 서비스보다는 직접 해외에 VPN 서버를 구축해 사용하고자 지금까지는 오라클 클라우드의 Free Tier 서비스에서 제공하는 OpenVPN 가상서버를 활용했다. https://blogger.pe.kr/992 …
-
리눅스의 시간대(TZ)를 한국(KST)로 변경하기
리눅스와 유닉스는 주로 미국과 유럽의 개발자들이 개발하는 운영체제다. 그래서 언어(character set), locale과 Time 및 Time Zone 역시 유럽과 미국을 기준으로 만들어 배포된다. 그렇다 보니 리눅스를 다운로드 받아 설치하고 나면 설치과정에서 지역과 타임존을 한국을 선택해도 묘하게 지역과 시간이 한국과 맞지 않는 문제가 발생하곤 한다. 이번에도 그런 경험을 할 수 있었다. 테스트 용으로 사용하고 있는 오라클 클라우드의 Rocky 리눅스를 dnf 명령으로 업데이트 한 뒤 갑자기 타임존이 KST에서 UTC로 바뀌 …
-
우분투 20.04 에 MariaDB 설치하기
python의 웹 프레임워크인 Flask를 테스트하면서 DB를 연동해야할 일이 생겼다. MySQL을 설치할지 아니면 MariaDB를 설치할지를 고민하다 MariaDB를 설치하기로 했다. [Flask 웹 프레임워크] Blueprint를 이용한 모듈화 이해하기 사실 MySQL과 MariaDB는 같은(?) DBMS다. MySQL을 오픈소스로 개발하던 회사를 선 마이크로시스템즈(Sun Microsystems)가 인수하고 몇 년이 지난 뒤 그 선 마이크로시스템즈를 다시 Oracle이 인수했다. 그리고 이 때 MySQL 개발진이 Oracle …
-
vi 필수 사용법 – vi 쉽게 배우기
vi 는 무엇인가? vi는 1970년대에 개발되어 사용하기 시작한 Unix 계열 운영체제에 기본 유틸리티로 포함된 오픈소스 문서편집기다. 문서편집기라고 하지만 자체적인 문서파일의 포맷은 없고 그냥 text (ascii) 편집기일 뿐이다. 즉 Windows에서의 notepad 역할을 Unix와 Linux에서 수행하는 프로그램이 바로 vi다. vi 라는 명칭은 요즘의 GUI 개념과 비교하면 전혀 어울리지 않는 "visual editor"에서 따온 것이라고 한다. 요즘의 Linux에서는 vi와 호환되는 vim 이라는 문서편집기가 설치되 …
-
워드프레스 블로그 방문자 분석도구 만들기 (Apache access log 분석)
이 블로그는 오라클 클라우드에서 제공하는 평생 무료 서비스에 구축하여 운영중이다. 우분투 리눅스 가상머신 2대를 생성하여 하나의 가상서버에는 아파치 웹서버와 PHP를 설치하였고 다른 하나의 가상머신에 MariaDB DBMS를 설치하였다. 그리고 웹 어플리케이션은 워드프레스(Wordpress)를 설치하여 블로그를 구성하였다. www가 웹서버이고 mariadb가 DB서버다. 그리고 ap-svr-01 서버가 바로 오늘의 주제인 워드프레스 블로그의 방문자 분석, 즉 Apache 웹서버의 access log를 분석하고 DB에 업로드하는 웹 …
-
[Apache] 악성 봇과 크롤러 차단하기 (.htaccess)
블로그와 같은 웹서비스를 구축하고 운영하다 보면 광고댓글, 악성댓글과 싸우게 된다. 하지만 이 싸움에서 이기고 나니 다시금 악성 봇과 웹 크롤러들과 싸우는 2차 대전이 벌어졌다. 하지만 이젠 그 싸움이 그다지 어렵지 않다. 광고댓글과 악성댓글을 작성하는 IP를 .htaccess 파일에서 차단하듯 새로운 룰을 적용하여 차단하면 된다. 다만 악성봇과 웹크롤러들은 IP로 차단하기는 어렵다. Access.log를 분석해 보면 User-Agent에 봇이나 웹 크롤러의 정보가 보이는데 광고댓글이나 악성댓글이 대부분 한두개의 IP에서 들어와 …