홈 서버를 설정하는 데에는 여러 가지 이유가 있습니다. 미디어 서버, 파일 서버 또는 로컬 백업 서버로 사용할 수 있습니다. 기본적으로 온라인 상태일 필요가 없는 모든 파일은 홈 서버에 적합한 후보입니다. 특히 요즘에는 Linux 기반 홈 서버를 설정하는 것이 상대적으로 쉽습니다. 즉, 해당 서버를 안전하게 유지하는 것은 완전히 다른 이야기입니다. 보안은 중요한 만큼 까다로울 수 있습니다.
꼭 필요한 것만 설치
홈 서버를 안전하게 유지하는 가장 쉬운 방법 중 하나는 처음부터 보안을 염두에 두는 것입니다. 이것은 설치로 시작됩니다. 애플리케이션이나 서비스가 필요한지 확신이 서지 않습니까? 설치하지 마십시오. 나중에 언제든지 설치할 수 있습니다.
Linux를 몇 번 설치했다면 훨씬 쉽습니다. 기본값을 고수하는 대신 설치를 가장 잘 제어할 수 있는 모드를 사용하십시오. 때때로 이들은 "전문가 모드" 또는 이와 유사한 이름으로 지정됩니다.
설치 옵션을 주의 깊게 추적하면 나중에 보안상의 이유로 서비스를 비활성화하는 시간을 절약할 수 있습니다.
sudo 구성
다른 단계로 이동하기 전에 sudo
를 구성해야 합니다. . 왜요? 여기에서 완료되면 SSH를 통해 서버에 로그인하고 루트 계정으로 로그인할 수 없기 때문입니다. 시스템을 추가로 변경하려면 sudo
를 사용해야 합니다. .
먼저 sudo
를 사용할 수 있는지 확인하세요. . 사용자 계정에서 USERNAME 대신 사용자 이름으로 다음을 실행합니다.
sudo -lU USERNAME
사용자 이름이 "(ALL) ALL" 또는 이와 유사한 것을 실행할 수 있다는 메시지가 표시되면 계속 진행할 준비가 된 것입니다.
이제 서버의 루트 계정으로 다음을 실행하여 "/etc/sudoers" 파일을 편집합니다. 다른 에디터를 원하시면 nano 대신 사용하세요.
EDITOR=nano visudo
USERNAME 대신 사용자 이름을 사용하여 다음을 포함하도록 파일을 편집하십시오.
USERNAME ALL=(ALL) ALL
SSH 구성
홈 서버에서 이미 SSH를 활성화했을 수 있습니다. 실제로 이것이 일반적으로 서버와 상호 작용하는 방식이기 때문에 그렇게 할 가능성이 큽니다.
먼저 OpenSSH가 설치되어 있는지 확인합니다. 다른 배포판을 사용하는 경우 명령은 다양하지만 패키지 이름은 상당히 일관성이 있어야 합니다. Ubuntu에서 다음을 실행합니다.
sudo apt install openssh-server
키 기반 인증을 사용하는 것이 암호 인증보다 훨씬 더 안전하므로 SSH가 이 방식으로 작동하도록 설정합니다. 이렇게 하려면 서버 자체가 아니라 서버에 연결할 클라이언트에서 작업하고 있는지 확인하십시오. 먼저 SSH 키가 없는지 확인합니다.
ls ~/.ssh/
나열된 파일 이름 중 "id_rsa" 및 "id_rsa.pub"가 표시되면 이미 SSH 키가 있는 것입니다. 이 다음 단계를 건너뛰세요.
ssh-keygen -t rsa -b 4096 -C "[email protected]"
이제 SSH 키를 서버에 복사합니다.
ssh-copy-id USERNAME@SERVER
홈 서버의 경우 이름 대신 서버의 IP 주소를 사용하고 있을 수 있습니다. 서버 이름을 모르는 경우 위의 SERVER 대신 IP 주소를 사용하십시오.
이제 SSH 설정을 수정하여 보안을 강화하겠습니다. 키를 생성한 클라이언트에서 서버에 로그인합니다. 이렇게 하면 이 단계 후에 다시 로그인할 수 있습니다. nano
를 대체하여 다음을 실행합니다. 원하는 편집자와 함께하세요.
sudo nano /etc/ssh/sshd_config
다음 설정으로 파일을 편집합니다. 파일의 다양한 위치에 있습니다. 설정의 첫 번째 인스턴스만 따를 것이므로 중복이 없는지 확인하십시오.
ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no PermitRootLogin no
이제 다음 명령 중 하나로 SSH 서버를 다시 시작해야 합니다.
Ubuntu에서 다음을 실행합니다.
sudo systemctl restart ssh
방화벽 구성
실행 중인 서비스와 서버가 인터넷에 연결하는 정도에 따라 방화벽을 실행할 수 있습니다. 이에 대한 몇 가지 옵션이 있지만 Linux에서 시도되고 진정한 방법은 iptables입니다.
iptables 설정은 이 기사의 범위를 벗어나지만 걱정하지 마십시오. 컴퓨터에서 iptables를 구성하는 방법에 대한 완전한 가이드가 있습니다.
방화벽을 설정하는 또 다른 쉬운 방법은 ufw
를 사용하는 것입니다. . 다음 명령으로 설치할 수 있습니다.
sudo apt install ufw
기본적으로 모든 포트를 차단합니다. 온라인 및 ssh 액세스를 활성화하려면 다음 ufw 명령을 실행하여 포트 80, 443 및 22를 엽니다.
sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 22
마지막으로 ufw 서비스를 활성화합니다.
sudo ufw enable
최신 상태 유지
서버가 제대로 작동한다면 잊어버리기 쉽지만 이는 위험할 수 있습니다. 소프트웨어를 최신 상태로 유지하십시오. 무인 업그레이드를 사용할 수 있지만 이는 예측할 수 없습니다. 가장 안전한 방법은 정기적인 주간 또는 월간 서버 유지 관리 일정을 예약하여 모든 것이 제대로 작동하는지 확인하는 것입니다.
여기서 갈 곳
이제 외부 위협으로부터 서버를 보호하기 위한 좋은 출발이 되었습니다. 하지만 집에서 서버에 액세스해야 하는 경우 어떻게 해야 합니까? 귀하가 여는 모든 문은 잠재적으로 공격자가 사용할 수 있으며 모든 열린 포트는 귀하의 취약성을 증가시킵니다.
외부에서 홈 네트워크에 액세스하는 가장 쉬운 방법 중 하나는 이 기사의 범위를 벗어나는 VPN을 사용하는 것입니다. 어떤 옵션이 있는지 알아보려면 사용 가능한 최고의 보안 VPN 서비스 목록을 살펴보세요.