반응형

Anti-Gravity 반중력(중력에 반하는 힘)

무슨 툴 이름이 이렇게 길지? 영어를 못해서 길게 느껴지는건가 하며 사전을 찾아보니 이름의 의미는 좋은데 툴이름이 이렇게 너무 길면 내 기준 너무 어려움 불합격ㅋ

이제 슬슬 사용기들이 올라올텐데 antigravity 에게 직접 물어보았다.

그런데 antigravity 에게 물어본 것인지, 아니면 gemini 3.0 에 antigravity 를 물어본 것인지 확실치는 않지만 어짜피 둘다 구글꺼니까 잘 알겠지 하는 마음으로 질문폭격기 가동

반응형

'Tech > AI' 카테고리의 다른 글

새로운 바이브코딩 CLI 등장 DROID / factory.ai  (0) 2025.10.06
Goover AI 실망스러운데 이거 뭐지?  (0) 2025.09.21
반응형

Cloudflare Zero Trust를 이용하여 홈서버(맥미니 서버)의 서비스 접속하는 방법.(n8n, code-server, ssh 접속)

1. Cloudflared 설치 및 로그인

서버(Host) 컴퓨터에서 cloudflared를 설치하고 로그인합니다.

# MacOS (Homebrew)
brew install cloudflare/cloudflare/cloudflared

# 로그인 (브라우저 인증)
cloudflared tunnel login

로그인이 완료되면 인증서(cert.pem)가 생성됩니다.

2. Tunnel 생성

터널을 생성하고 이름을 지정합니다. (예: home_server)

cloudflared tunnel create home_server

생성 후 터널 ID(UUID)와 자격 증명 파일 경로가 출력됩니다.

3. 설정 파일 (config.yml) 작성

~/.cloudflared/config.yml 파일을 생성하고 라우팅 규칙을 설정합니다.
주의: SSH 연결을 위해 service: ssh://localhost:22를 사용해야 하며, 우선순위를 위해 가장 상단에 배치하는 것이 좋습니다.

tunnel: <Tunnel-UUID>
credentials-file: /Users/myaccount/.cloudflared/<Tunnel-UUID>.json

ingress:
  # 1. SSH 연결 (우선순위 높음)
  - hostname: ssh.mydomain.net
    service: ssh://localhost:22

  # 2. code-server
  - hostname: code.mydomain.net
    service: http://localhost:8080

  # 3. n8n
  - hostname: n8n.mydomain.net
    service: http://localhost:5678

  # 4. 기본 404 처리
  - service: http_status:404

4. Application 등록

Application 을 URL과 연결

4. DNS 레코드 연결

Cloudflare DNS에 CNAME 레코드를 생성하여 도메인과 터널을 연결합니다.

# n8n
cloudflared tunnel route dns home_server n8n.mydomain.net

# code-server
cloudflared tunnel route dns home_server code.mydomain.net

# SSH
cloudflared tunnel route dns home_server ssh.mydomain.net

명령어 실행이 안 될 경우, Cloudflare 대시보드에서 CNAME 레코드를 수동으로 추가할 수 있습니다.

  • Type: CNAME
  • Name: n8n, code, ssh
  • Target: <Tunnel-UUID>.cfargotunnel.com
  • Proxy Status: Proxied (Orange Cloud)

콘솔 명령어로 자동등록됨

5. Tunnel 실행

설정이 완료되면 터널을 실행합니다. (임시 실행)

cloudflared tunnel run home_server

서버 시작시 자동실행되도록 하기 위해 시스템 서비스로 등록하여 백그라운드에서 항상 실행되도록 설정

Mac OS에서 서비스로 등록하는 방법
macOS에서는 **launchd**를 사용하여 cloudflared를 서비스(Daemon)로 등록합니다.

설치 명령 실행: 다음 명령을 실행하여 cloudflared를 시스템 서비스로 등록합니다.

sudo cloudflared service install

sudo launchctl list | grep cloudflared
19334	0	com.cloudflare.cloudflared

6. Cloudflare Access (Zero Trust) 설정

Cloudflare Zero Trust 대시보드 > Access > Applications에서 각 도메인(n8n.mydomain.net 등)에 대한 애플리케이션을 생성하고 정책(Policy)을 설정합니다.

  • Action: Allow
  • Rule: Emails / IP Ranges 등 원하는 인증 방식 설정
  • SSH 팁: SSH 접속 시 이메일 OTP는 시간이 걸려 타임아웃이 발생할 수 있으므로, Google/GitHub 같은 IdP(Identity Provider)를 연동하여 사용하는 것을 권장합니다.

이메일OTP 만들기, Add rules > include 에 내 이메일 등록
Application 설정에서 Policies 에 만들어놓은 allow_my_email 등록

7. SSH 클라이언트 접속 설정 (중요)

 ( 클라이언트 컴퓨터에서도 cloudflared 설치필요)

외부에서 SSH로 접속하려면 클라이언트 컴퓨터(접속하려는 컴퓨터)에도 cloudflared가 설치되어 있어야 하며, SSH 설정이 필요합니다.

7.1 클라이언트 컴퓨터에 cloudflared 설치

# MacOS
brew install cloudflare/cloudflare/cloudflared

# Windows/Linux 등 OS에 맞는 방법으로 설치

7.2 SSH Config 설정 (~/.ssh/config)

클라이언트 컴퓨터의 ~/.ssh/config 파일에 다음 내용을 추가합니다. 이 설정은 SSH 접속 시 cloudflared를 프록시로 사용하여 인증을 처리하게 합니다.

Host ssh.mydomain.net
  User myaccount
  ProxyCommand /opt/homebrew/bin/cloudflared access ssh --hostname %h

참고: cloudflared 경로는 OS나 설치 방식에 따라 다를 수 있습니다. (which cloudflared로 확인)

7.3 접속 테스트

ssh ssh.mydomain.net

명령어를 실행하면 브라우저가 열리고 인증을 요구합니다. 인증 성공 시 터미널이 연결됩니다.

8. 문제 해결 (Troubleshooting)

SSH 접속 Timeout 발생 시

  1. 서버 방화벽 확인: 서버(Mac mini)의 방화벽 설정에서 cloudflared 프로그램의 들어오는 연결(Incoming Connections)을 허용해야 합니다. (방화벽에서 SSH 연결가능 프로그램에서 + 해서 /opt/homebrew/bin/cloudflared 찾아서 등록해줘야 함) 
  2. 프로토콜 확인: config.yml에서 SSH 서비스가 http://가 아닌 ssh://로 설정되어 있는지 확인합니다.
  3. 클라이언트 설정 확인: 접속하려는 컴퓨터에 cloudflared가 설치되어 있고 ProxyCommand가 설정되어 있는지 확인합니다.
반응형
반응형

공유기 포트포워딩 + 서버 오픈 방식의 위험성

홈서버 셀프 호스팅을 위해 DDNS에 자신의 IP 를 연결하고 공유기에서 포트포워딩 (Port forwarding) 을 통해 포트번호 22, 443, 80등을 PC와 연결하게되면 몇시간내로 해킹시도됨

해커는 해커봇을 통해 그냥 인터넷 전체를 24시간 상시 스캔중

  • 22 (SSH), 80/443 (웹), 3306 (MySQL), 5432 (Postgres), 6379 (Redis) 27017 (Mongo), 8080/8081 (관리 포트)

전체 IP에서 열린 포트 찾기, 즉시 공개홈서버로 등록하고 공격 자동화

  • SSH brute-force 공격
  • DB 무차별 접근
  • Redis/Mongo 접속
  • 웹 취약점 스캔
  • 취약한 라이브러리 공격
  • 관리자 페이지 우회
  • JWT 쿠키 공격
  • CVE 자동 공격
  • n8n 취약점 스캔
  • code-server 취약점 공격

DDNS + 포트포워딩은 보안 전문가들이 말하는 가장 위험한 홈서버 운영 방식

기업에서는 절대로 포트포워딩을 통해 서비스를 오픈하지 않음,

VPN / ZeroTrust / Cloudflare Tunnel/벤더사 Native 보안접근 사용

서비스 포트를 외부 공격으로부터 보호하고 사용자 접근을 제어하는 다양한 솔루션 사용

보안 솔루션

1. Zero Trust Network Access (ZTNA)

Cloudflare Zero Trust Tunnel이 대표적인 ZTNA 솔루션입니다. 이는 전통적인 VPN과 달리, 모든 접근을 불신하고, 사용자, 기기, 요청의 컨텍스트를 지속적으로 검증하여 특정 애플리케이션에만 접근을 허용합니다.

  • 주요 특징:
    • 마이크로 세그먼테이션: 네트워크 전체가 아닌 개별 애플리케이션 단위로 접근을 제어합니다.
    • 외부 노출 최소화: 애플리케이션의 포트가 인터넷에 직접 노출되지 않습니다 (터널링 방식).
  • 주요 서비스:
    • Cloudflare Zero Trust (Tunnel): 설정이 간편하고 광범위한 기능을 제공합니다.
    • Zscaler Private Access (ZPA)
    • Palo Alto Networks Prisma Access
    • Perimeter 81

2. Virtual Private Network (VPN)

전통적인 방식이며, 사용자가 특정 네트워크에 원격으로 접속하는 가장 일반적인 방법입니다. 사용자가 VPN 게이트웨이에 연결되면, 해당 네트워크 내부의 모든 리소스에 접근할 수 있게 됩니다.

  • 주요 특징:
    • 네트워크 레벨 접근: 한번 연결되면 네트워크 내부의 모든 포트와 서비스에 접근할 수 있어, 제어력이 낮고 보안 취약점이 될 수 있습니다.
    • 단일 실패 지점: VPN 서버 자체가 공격의 대상이 될 수 있습니다.
  • 주요 솔루션:
    • OpenVPN, WireGuard, IPsec 등의 기술을 이용한 자체 구축.
    • 상용 VPN 어플라이언스 (Cisco AnyConnect, Juniper 등).

3. 클라우드 벤더의 네이티브 보안 및 접근 서비스

주요 클라우드 서비스 제공업체(CSP)들은 클라우드 환경에서 구동되는 서비스 포트를 보호하기 위해 자체적인 접근 제어 및 네트워킹 서비스를 제공합니다.

A. AWS (Amazon Web Services)

서비스 용도 Cloudflare Tunnel과의 비교
AWS PrivateLink 서비스 포트의 노출 없이 VPC 간에 또는 온프레미스와 AWS 서비스 간에 안전한 연결을 제공합니다. Cloudflare Tunnel이 외부 사용자 접근에 중점을 둔다면, PrivateLink는 AWS 내/외부 사설 통신에 중점을 둡니다.
AWS Client VPN 관리형 VPN 서비스로, 원격 사용자가 VPC의 리소스에 안전하게 접근하도록 합니다. VPN 기술을 사용하며, ZTNA보다는 전통적인 네트워크 접근 방식에 가깝습니다.
AWS IAM (Identity and Access Management) 리소스 접근 권한을 사용자 및 역할 기반으로 정밀하게 제어합니다. 서비스 포트를 보호하는 것 외에, 누가 어떤 AWS 리소스에 접근할 수 있는지를 근본적으로 정의합니다.
Security Groups / NACL 인스턴스/서브넷 레벨의 방화벽 역할을 수행하여 특정 포트와 IP만 허용합니다. 가장 기본적인 포트 보호 방법입니다.

B. Oracle Cloud Infrastructure (OCI)

서비스 용도 Cloudflare Tunnel과의 비교
OCI Bastion Service SSH 접근을 위한 관리형 프록시 서비스로, 컴퓨트 인스턴스의 공용 IP 노출 없이 접근하게 합니다. SSH 기반 서버 관리 포트 보호에 특화되어 있으며, 전체 웹 서비스 포트 보호에는 제한적일 수 있습니다.
Security Lists / Network Security Groups (NSG) 가상 클라우드 네트워크(VCN) 레벨 또는 인스턴스 레벨에서 방화벽 역할을 수행합니다. AWS의 Security Groups와 유사하며 기본적인 방화벽 보호를 제공합니다.

선택 요약 및 제안

보호 방식 최적의 사용 시나리오
Cloudflare Tunnel / ZTNA 인터넷을 통한 원격 사용자의 특정 웹 서비스나 애플리케이션 접근을 가장 안전하고 세밀하게 제어하려는 경우. (외부 공격 표면 최소화)
VPN 네트워크 전체에 대한 접근이 필요한 IT 관리자나 개발자가 광범위한 네트워크 리소스에 접근해야 할 경우.
클라우드 네이티브 서비스 (PrivateLink, Bastion 등) 클라우드 환경 내에서 서비스 간의 사설 통신을 구축하거나, 특정 **클라우드 관리 포트 (SSH)**를 보호하려는 경우.

웹 호스팅 및 n8n 서버와 같이 인터넷을 통해 사용자나 워크플로우가 접근해야 하는 환경에서는 Cloudflare Zero Trust (ZTNA) 방식이 전통적인 VPN보다 보안성, 접근 제어의 용이성, 외부 노출 최소화 측면에서 가장 현대적이고 강력한 대안.

반응형
반응형

cloudflare 메인 dashboard 에서 계정홈에서 

Onboard a domain 에서 내 도메인 연결

내 도메인을 추가

DNS Records 메뉴로 들어가서 Cloudflare Nameserver 를 가비아에서 도메인 세팅에 입력해준다.

(Cloudflare 에서 메뉴찾는게 좀 어렵다. 계정의 dashboard가 있고 서비스들마다 dashboard가 따로 있어서 잘 찾아봐야함)

cloudflare DNS서버 정보를 복사해서
내 도메인 관리페이지에 네임서버에 cloudflare 네임서버를 입력

가비아에서 DNS 변경 후 잠시기다리면 설정이 완료되었다는 이메일이 옴

Cloudflare 에서 DNS 설정이 확인완료되면 자동으로 이메일로 완료되었다는 확인이 옴

기다리면 자동완료

반응형
반응형

홈서버 구축이야기 

홈서버를 구축하려고 미니PC를 N150으로 검색을 해봤는데

알리에서 알아봐도 25만원~28만원선으로 생각보다 비쌈.

당근에서 중고 맥미니 m1을 비교해보니 35만원선. 이러면 맥미니m1이 훨씬 좋은거 아닌가 싶다는 생각에

맥미니 m1 으로 홈서버 구축 

도메인도 무료도메인으로 사용하려고 DuckDNS , DeSEC 를 가입해서 알아봤는데

cloudflare zero trust 의 설정하는데 애먹을 것 같아서 과감하게  

가비아 접속 https://domain.gabia.com/

오~ 왠일 550원ㅋ

가비아에서 550원에 .shop .store 를 살 수 있다. (대신 1년 후에 갱신시 8만원 ㄷㄷㄷ)

브랜드를 만드는 게 아니기에 1년만 사용할 생각으로 550원에 겟. 플렉스~

 

반응형

+ Recent posts