Subdomain을 생성하기 위해 새 domain을 GoDaddy에서 구매했다. 하지만 구매한 domain은 DDNS (Dynamic Domain Name System)가 아닌 DNS (Domain Name System)이므로 공유기에 할당된 external IP가 변경되면 새로 바꿔줘야한다. 물론 DDNS service를 연결할 수 있지만 무료로 이용하려면 제약되는 것들이 많아서 IP가 변경되는 순간 Discord Webhook로 메시지가 전달되도록 구성해보겠다.
Fail2Ban의 명령어 중 sudo fail2ban-client status sshd을 사용하면 아래와 같은 결과가 나온다.
1 2 3 4 5 6 7 8 9 10
$ sudo fail2ban-client status sshd Status for the jail: sshd # Service에 대한 보호 규칙 |- Filter # 악의적인 활동 정보 | |- Currently failed: 2 # 2개 기기의 잘못된 로그인 시도 | |- Total failed: 7 # 시작된 이후 총 7번의 잘못된 로그인 시도 | `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd # Fail2Ban의 시스템 로그를 감시 방법 `- Actions # 악의적인 활동을 감지했을 때 취하는 조치에 대한 정보 |- Currently banned: 1 # 현재 차단된 IP 주소의 수 |- Total banned: 1 # 총 차단된 IP 주소의 수 `- Banned IP list: XXX.XXX.XXX.XXX # 차단된 IP
차단된 기기에서 SSH를 연결하려 시도하면 아래와 같이 실패하게 된다.
1 2
$ ssh ${USER}@${IP} -p ${PORT} ssh: connect to host ${IP} port ${PORT}: Connection refused
이걸 매번 확인할 수는 없기 때문에 의문의 중국 해커가 공격하면 알람을 받을 수 있게 Apache Airflow와 Discord를 사용해보겠다! 사실 그거 안다해도 포맷 말고 할 수 있는게 없긴 한…
열심히 구축한 home server을 더 다양하게 활용하기 위해 (설치가 매우 간편한 K3s $\rightarrow$ 많은 시행착오 끝에 K8s로,,,) K8s를 통해 Apache Airflow를 설치하고 배포해보겠다. https://${DDNS}/airflow에 서비스가 구동될 수 있도록 ingress도 설정해보겠다.