VPN 이야기-2
내 서버에 VPN을 설정하면 좋으면 외부에서 연결하는 모든 포트를 일일히 설정하지 않고 VPN끼리만 통신하게 하면 VPN대역만 전체를 열어주면 된다.
집이나 사무실의 IP를 이용할때는 내 서버에 접속이 가능하다가 카페의 WIFI를 이용만 해도 못하는 것이다.
이럴때 내 노트북에 VPN agent 만 있어도 어떤 곳에서든 내 서버를 ssh 로 혹은 NFS 공유디스크를 이용가능하다.
처음에는 zerotier를 이용했다.
- VPN 서버를 구축하려는 부담 + 여러번에 이은 실패
- 간편한 설정
그런다음은 tailscale로 갈아탔다.
- zerotier보다 더 간편한 설정
- zerotier에서는 가끔씩 접속 이슈 발생(zertotier는 TCP기반, tailscale은 UDP기반)
- zerotier는 10개 제한 tailscale은 20개 제한
막상 갈아타 보니.....신세계다. 현재까지는 접속 이슈도 없고
설정이 생성되는 url만 접속하면 끝이다. 이렇게 VPN을 변경하니 귀찮은 일이 발생한다.
기존에 설정해놓은 VPN 주소가 다 바껴서 RSYNC나 NFS 설정이 막힌것이다.
나는 서버에 IP 기반이 아닌 node를 기반으로 접속설정을 해놓았다.
~/.ssh/config
/etc/hostsconfig는 ssh root@1.2.3.4 를 대신해 ssh node명 만으로 서버와 서버가 접속가능하게 해주고
/etc/hosts는 rsync 크론탭 백업, NFS 설정시 ip기반으로 된걸 node기반으로 설정가능 하게 해준다. 파일을 보면 이렇다.
Host blue
HostName 1.2.3.4
User root
Host tech
HostName 1.2.3.5
User root
Host mac
HostName 1.2.3.6
User root
# ~/.ssh/config1.2.3.4 blue
1.2.3.5 tech
1.2.3.6 mac
# /etc/hosts서버에 다른 서버로 가는 뭔가가 장애가 생기면 포인트중의 하나가 /etc/hosts 파일이다.
예를들어 ping blue 로 하면 1.2.3.4 로 ping을 확인한다.
그리고 ssh blue 로 하면 config파일 기반으로 1.2.3.4서버에 접속이 된다.
이러면 일일히 서버의 ip를 외우지 않아도 되는 것이다.
을 해보면 전세계의 봇 들이 내 서버에 들어가려고 접속을 실행한다. 그래서 22기본포트를 바꿔봐도 다른 회수가 적어질뿐 지속적으로 시도를 한다.
그래서 아예 서버방화벽(firewalld, ufw, iptables, hosts allow등등)에서 ssh포트를 막고 VPN 대역만 뚫어주면 lastb 가 말끔해진다.
이렇게 되면 mysql 접속을 하거나 모든 것들을 VPN으로 하고 오직 http와 https 만 열어주면 되는 것이다.
mysql이 뚫려 있으면 언젠가는 DB가 말끔히 지워지고 비트코인 주소만 남아있는 광경(?)을 목격하게 될 수 도 있다.