Linux 강좌 / 새 리눅스 서버 초기 설정 실습
새 서버는 복구 콘솔을 확보한 뒤 일반 관리자 계정과 SSH 키를 검증하고, 업데이트·시간·필수 포트·재부팅 동작을 확인하는 순서로 준비합니다. 초기 설정 완료는 명령 실행 횟수가 아니라 새 세션과 재부팅 후에도 필요한 관리·서비스 기능이 유지되는지로 판단합니다.
계정 생성과 초기 설정 후에는 SSH 키 로그인으로 새 세션을 열어 권한을 확인하고, 방화벽과 계정 보호를 적용하세요. 콘솔 접속과 기존 세션을 유지한 상태에서 순서대로 검증합니다.
시스템 설정 실습의 기준은 Ubuntu 26.04 LTS와 Rocky Linux 9 계열의 일반 설치 VM입니다. 컨테이너·WSL·다른 릴리스에서는 서비스와 패키지 구성이 다를 수 있습니다. 가상 머신 실습 환경 만들기에서 콘솔 복구와 버전 확인을 먼저 준비하세요.
실습 전 서버와 복구 경로 확인하기
이 종합 실습은 새로 만든 가상 머신이나 테스트 서버에서 진행합니다. Ubuntu와 Rocky Linux 중 하나를 선택하고 관리자 권한·콘솔 접속·백업 또는 재생성 절차를 확보하세요. 스냅샷은 편리한 되돌리기 수단이지만 같은 저장소의 장애나 실행 중 애플리케이션의 일관성 문제까지 모두 해결하는 백업은 아닙니다.
cat /etc/os-release
hostnamectl
ip -brief address
ip route
timedatectl
lsblk -f
배포판·호스트명·IP 주소·시간대·디스크를 기록해 엉뚱한 서버를 설정하지 않았는지 확인합니다. IP 주소, 서비스 이름과 장치 이름을 다른 실습에서 복사해 쓰지 마세요. 클라우드가 제공한 이미지라면 초기 계정과 cloud-init이 관리하는 설정도 확인합니다.
일반 관리자 계정을 만들고 sudo 검증하기
기존 관리 계정이 적절하면 재사용합니다. 새 계정이 필요한 경우 courseadmin이 아직 없는지 getent passwd courseadmin으로 확인합니다. 다음 첫 블록은 Ubuntu, 둘째는 Rocky Linux용이며 자신의 배포판만 사용합니다. 비밀번호는 passwd 프롬프트에 입력하고 명령줄에 직접 넣지 않습니다.
sudo adduser courseadmin
sudo usermod -aG sudo courseadmin
sudo useradd -m courseadmin
sudo passwd courseadmin
sudo usermod -aG wheel courseadmin
새 터미널에서 해당 계정으로 로그인한 뒤 id와 sudo -v를 확인합니다. 추가 그룹은 기존 로그인 세션에 바로 반영되지 않을 수 있습니다. sudoers를 고쳐야 한다면 visudo의 구문 검사를 사용하고 기존 관리자 세션을 유지합니다. 모든 명령을 비밀번호 없이 허용하는 정책을 편의를 위해 추가하지 마세요.
SSH 키와 접속 경로를 독립적으로 검증하기
클라이언트에서 새 키를 만들거나 승인된 키를 선택하고 서버 호스트 키 지문을 신뢰하는 콘솔에서 확인합니다. 공개 키만 대상 계정에 등록한 뒤, ssh -i 키경로 courseadmin@실제서버주소로 별도 접속해 인증과 sudo를 시험합니다. 방화벽·인증 정책을 바꾸기 전 이 단계를 통과해야 합니다.
서버의 실제 SSH 대기 포트와 클라우드 보안 규칙도 확인합니다. 비밀번호 인증 제한은 키 인증·복구 경로 검증 이후에 적용하고 sshd -t와 실제 새 접속으로 확인합니다. 기존 연결이 유지된다는 것과 새 연결이 허용된다는 것은 별도입니다.
업데이트·시각·호스트 정보를 정리하기
sudo apt update
sudo apt upgrade
sudo dnf upgrade
업데이트 명령은 배포판에 맞는 것만 실행하고 거래 내역을 읽고 승인합니다. 서비스 재시작·커널 변경·재부팅 요구를 확인하고, SSH 접속만으로 끝내지 말고 사용 중인 기능도 다시 시험하세요. timedatectl로 시간대와 동기화를 확인하며, 필요한 시간대가 다르면 운영 정책에 따라 실제 IANA 시간대 이름을 선택합니다.
호스트명을 바꾸는 경우 sudo hostnamectl set-hostname 실제호스트명을 사용하되 DNS·hosts·인증서·관리 시스템과의 관계를 확인합니다. cloud-init이나 자동화가 다시 값을 덮어쓰는지도 점검합니다. 외부 시간 서버 접근이 막힌 환경에서는 “동기화 활성” 설정만으로 실제 시각이 맞는다고 판단하지 않습니다.
필수 포트만 허용하고 상태를 기록하기
Ubuntu UFW와 Rocky Linux firewalld 중 실제 사용하는 도구 하나의 현재 설정을 확인합니다. 실제 관리 포트를 먼저 허용하고 새 연결을 시험한 뒤 필요한 서비스만 추가합니다. IPv4와 IPv6, 호스트 방화벽과 클라우드 방화벽을 함께 검토하고 SELinux는 원인 조사 없이 비활성화하지 않습니다.
mkdir -p "$HOME/server-baseline"
chmod 700 "$HOME/server-baseline"
cat /etc/os-release > "$HOME/server-baseline/os-release.txt"
ip -brief address > "$HOME/server-baseline/addresses.txt"
lsblk -f > "$HOME/server-baseline/storage.txt"
systemctl --failed > "$HOME/server-baseline/failed-units.txt"
이 자료는 이후 변경과 비교할 기준이며 비밀번호·개인 키·토큰은 포함하지 않습니다. 주소와 장치 정보도 운영 정보이므로 접근을 제한합니다. 설정 백업은 별도로 보관하고 복구 담당자가 읽을 수 있는 위치·방법을 기록하세요.
계획된 재부팅 뒤 완료 여부 판단하기
- 중단 가능한 시간과 콘솔 접근을 확인하고 필요한 데이터를 저장합니다.
- sudo reboot로 재부팅한 뒤 콘솔에서 부팅 상태를 확인합니다.
- 새 SSH 연결과 sudo, 네트워크·시각 동기화·필요 서비스·마운트를 확인합니다.
- systemctl --failed와 현재 부팅 로그를 보고 기준 기록과 차이를 검토합니다.
재접속이 안 되면 콘솔에서 실제 주소·SSH 상태·대기 포트·방화벽을 순서대로 확인합니다. 같은 실패를 반복하며 여러 설정을 한꺼번에 바꾸기보다 마지막 변경을 기준으로 복원합니다. 관리 기능이 검증된 뒤에만 다음 서비스 설치를 진행하세요.




