한번 해보라: 집 인터넷 회선에서 메일 서버를 돌려보라 — 진짜로, 서버가 원래 하듯 Gmail·Outlook과 직접 대화하는 서버를. 그리고 실패하는 걸 지켜보라. 뭔가 잘못 설정해서가 아니다. 그게 필요로 하는 포트가 당신 패킷이 건물을 떠나기도 전에 막혀 있기 때문이다. 당신의 ISP는 몇 년 전에 아웃바운드 25번 포트를 차단했고, 대부분의 소비자 회선도 마찬가지다. SMTP 그 자체인 포트, 1982년에 이 프로토콜에 배정된 그 포트는 인터넷 마지막 구간에서 배달 불능 우편이다.

그 차단은 옳은 결정이었다. 이 점을 먼저 분명히 해두고 싶다. 나머지는 불평이고, 그 불평을 “고친 걸 되돌리라”는 요구로 오해받고 싶지 않기 때문이다. 25번 포트 차단은 지금껏 배치된 스팸 대응책 중 가장 효과적인 것에 든다. 그러나 그 대가가 무엇이었는지는 똑바로 응시할 가치가 있다. 대가는 이메일이 원래 되려던 그것이었으니까 — 누구든 서버를 세우면 일급 참여자가 되는 연방(federation) 네트워크. 그 인터넷은 실재했다. 25번 포트 차단은 그것이 끝난 큰 이유이고, 거의 아무도 애도하지 않았다. 대안이 익사였기 때문이다.

“아무나 참여 가능”을 뜻하던 포트

1982년 8월에 나온 RFC 821은 SMTP에 잘 알려진 포트 하나를 줬다: 25번. 메일을 보내는 사람과 그걸 전달하는 서버 사이엔 구분이 없었다. 1982년엔 그을 만한 구분이 없었기 때문이다. SMTP를 하는 모든 호스트가 25번을 듣고, 메일을 받고, 목적지로 넘겼다. 네트워크에 기계가 있고 거기서 MTA가 돌면, 당신은 피어였다. 아무한테나 보내고, 아무한테서나 받고, 아무를 위해 relay할 수 있었다. 네트워크는 허가를 묻지 않았고 문지기를 두지 않았다.

이건 지금 정말로 체감하기 어려운 부분이다. 우리는 그 후계자 안에서 자랐으니까. 이메일은 연방으로 설계됐다. 중앙 권력 없음, 승인된 발신자 목록 없음, 당신 메일이 유효한지 정하는 평판 점수 없음. 그저 25번 포트에서 서로의 메시지를 날라주기로 합의한 독립 서버들의 그물. 초기 인터넷이 어디서나 걸었던 것과 같은 설계 베팅이었다 — 지능은 가장자리에 두고, 가운데는 멍청하게 유지하고, 그냥 나타나기만 하면 누구든 참여하게. 이메일은 아마 그 원칙의 가장 순수한 표현이었다. 대학, 회사, 남는 기계를 가진 취미가 — 전부 같은 포트 위의 동등한 존재.

그리고 그것은 설계된 그대로 활짝 열린 채 이용당했다.

스팸이 포트의 전제를 깨뜨렸다

25번 포트는 선의를 전제했다. 모델 전체 — 낯선 사람의 메일을 받아 넘긴다 — 는 그 낯선 사람들이 대체로 정직할 때만 작동한다. 1990년대 후반이 되자 그 전제는 잔해였다. open relay가 수집돼 스팸으로 가득 채워졌다. 그러다 더 나쁜 일이: 남의 서버를 악용하는 대신, 스패머들이 값싸고 일회용이며 유동적인 IP — ISP가 일반 고객에게 나눠주는 바로 그 가정용·전화접속 대역 — 에서 자기 발신기를 돌리기 시작했다. 봇넷에 감염된 집 PC 한 대가 세계 어느 메일서버에든 25번 포트로 소켓을 열어 relay도 없이 스팸을 직사할 수 있었다. 소비자 대역에서의 “direct-to-MX”가 스패머의 일꾼이 됐다.

방어자의 논리는 필연적으로 따라왔다. 가정용 유동 IP가 낯선 사람의 25번 포트로 곧장 말을 거는 경우, 정당한 트래픽은 거의 없다. 진짜 사용자는 메일을 자기 제공업체에 건네고, 그 업체가 relay를 한다. 그러니: 발신지에서 포트를 막아라. 1998년 12월, RFC 2476은 이미 인증된 사용자를 위한 별도의 “submission” 포트로 587번을 떼어놓았다. 정당한 아웃바운드 메일이 25번이 아닌 갈 곳을 갖도록 딱 그러려고. 그 덕에 ISP는 누구의 발신 능력도 끊지 않으면서 소비자용 25번을 쾅 닫을 명분을 얻었다.

2000년대 중반엔 공식 정책이 됐다. 지금 M3AAWG로 불리는 메시징 업계 반(反)남용 연합은 가정용·유동 대역의 25번 포트를 관리하거나 차단하고 인가된 relay만 쓰게 하라는 모범사례 권고를 2005년에 냈다(2023년 개정). RFC 5068은 2007년 같은 자세를 성문화했다. 그리고 Spamhaus는 PBL을 만들었다 — 유동적·가정용, “직접 메일을 보내면 안 되는” IP 대역 목록으로, 수신 서버가 보자마자 거부할 수 있는. 독립적인 세 장치가 전부 같은 방향을 가리켰다: 열린 포트는 닫히는 중이었고, 네트워크의 가장자리는 피어에서 클라이언트로 강등되고 있었다.

실제로 죽은 것

여기 반전이 있다. 25번 포트는 여전히 열려 있다 — 서버들 사이에선. 깨끗한 IP 평판을 가진 자리 잡은 두 메일서버는 1982년과 똑같이 25번에서 대화한다. 포트가 제거된 게 아니다. 조건부가 됐을 뿐이다. 그리고 그 조건은: 당신은 이미 누군가여야 한다는 것이다.

오늘날 받은편지함에 안정적으로 닿는 메일을 보내려면, 평판이 데워진 IP 주소, 서로 맞는 정·역 DNS, 정렬된 SPF·DKIM·DMARC, 그리고 이상적으론 몇 달로 측정되는 실적이 필요하다. 웹 서버를 돌리듯 새 IP에서 메일서버를 돌리고 싶은 사람에겐 그중 무엇도 주어지지 않는다. 갓 발급된 IP는 무죄가 증명되기 전까진 유죄다. 모든 걸 제대로 해도 — 완벽한 인증, 깔끔한 설정 — 수신 측이 미지의 발신자는 통계적으로 위협이라고 학습해뒀기에 몇 주씩 스팸함에 처박힐 수 있다. 연방은 기술적으로 여전히 존재한다. 다만 새 독립 운영자로 거기 가입하는 일이 “서버를 꽂는다”에서 “몇 달간 평판을 쌓고 기도한다”로 바뀌었을 뿐이다.

그래서 이메일이 작동해야 하는 사람에게 현실적 답은 이렇게 됐다: 직접 돌리지 마라. 이미 평판과 데워진 IP와 배달 관계를 가진 Google, Microsoft, 또는 한 줌의 제공업체에 맡겨라. 그리고 사람들은 압도적으로 그렇게 했다. 결과는 여전히 연방이라 불리고, 여전히 열린 프로토콜을 말하고, 내부적으로 여전히 25번 포트에서 돌지만 — 세계 메일함의 놀라운 비중이 아주 적은 수의 회사 뒤에 앉아 있는 이메일 시스템이다. 프로토콜은 열린 채였다. 시장이 닫혔다.

아무도 일부러 짓지 않은 해자(垓字)

여기서 불평이 날카로워진다. 열린 포트를 대체한 평판 체제는 음모가 아니다 — 창발한(emergent) 해자이고, 누가 의도했든 아니든 기존 사업자를 아름답게 보호한다. 메일 인프라를 돌리려는 신규 진입자는 자리 잡은 플레이어에겐 그냥 없는 배달성 장벽에 부딪힌다. 배달성이란 대체로 이미 자리 잡았음의 함수이기 때문이다. 대형 제공업체가 이걸 로비할 필요는 없었다. 스팸이 그들에게 쥐여줬다. 봇넷에 맞선 모든 방어책이 부작용으로 작은 존재가 되는 걸 더 어렵게 만들었다.

나는 해법이 없고, 쉬운 해법을 주장하는 사람은 의심한다. 소비자 대역에 25번 포트를 다시 열면서 봇넷에 대포를 도로 쥐여주지 않을 순 없다. 그 거래는 아슬아슬하지도 않다. 스팸은 실재했고, 방어는 필요했고, 중앙화는 그 값이었다. 그러나 이메일이 여전히 그 프로토콜이 묘사하는 열린 공유지인 척하는 대신, 값을 정직하게 이름 붙이는 건 온당한 일이다. 모든 RFC는 아직도 1982년처럼 읽힌다 — 어떤 호스트든, 어떤 피어든, 25번 포트, 문지기 없음. 전선(wire)은 여전히 그렇게 작동한다. 세상이 멈췄을 뿐이다, 막힌 포트 하나씩. 우리가 만든 가장 연방다웠던 시스템은 조용히 회원제 클럽이 됐고, 그 옛 열린 문은 대체로 장식으로 반쯤 괴어둔 채다.