새로운 개발 환경을 세팅할 때는 그때그때 필요한 내용을 구글링하며 즉흥적으로 처리하곤 했습니다. 하지만 이번에는 늘 고민해왔던 개발 환경 초기 세팅을 체계적으로 정리해보고자 합니다. 새로 세팅시 내가 참고하기 위해 참고로 설치한 우분투 버전은 24.04.1입니다.
Root 패스워드 설정 🔒
우분투에서는 기본적으로 루트 계정이 비활성화 되어 있으며, 비밀번호도 설정되어 있지않다. 세팅 시작전에 루트 계정을 활성화 해줍니다. ( 세팅을 적용하기 앞서, root 계정으로 로그인 하는 것을 추천드립니다. )
# 루트 계정 비밀번호 설정
# 아래와같이 입력하면 Net password를 입력하고 나온다. 패스워드를 설정해줍니다.
sudo passwd
Setting 전 update & upgrade 🔄
시작 전에 전체적으로 update를 합시다. 설치 직후 시스템을 최신 상태로 유지하는 것이 중요합니다.
- update 사용 가능한 패키지 목록을 업데이트
- upgrade 실제로 패키지를 최신 버전으로 업그레이드
#시스템 업데이트 및 업그레이드 명령어
sudo apt update && sudo apt upgrade -y
필수 소프트웨어 설치 🧑💻
작업 환경에 필요한 프로그램을 설치합니다. 이 목록 외에도 개인의 필요에 따라 추가로 설치를 해줍니다.
- Curl, Wget: 파일 다운로드 도구
- Net-tools: 네트워크 유틸리티
- Vim: 기본 텍스트 편집기
- Unzip: zip 파일 압축 프로그램
sudo apt install curl wget net-tools vim unzip -y
Apt 저장소 미러 변경 💾
기본 우분투 apt 서버를 mirror.kakao.com 서버로 업데이트 해줍니다. 미러 서버로 변경함으로써 속도를 향상시킬 수 있습니다🚀
#현재 사용 중인 저장소 확인
cat /etc/apt/sources.list.d/ubuntu.sources;
# apt 셋팅
sudo sed -i 's/kr.archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list.d/ubuntu.sources;
sudo apt update -y;
고정 IP 설정(Static IP)
Ubuntu를 사용할 때 서버에서 직접 터미널을 여는 것보다 SSH를 통해 원격으로 터미널을 여는 것이 더 편리합니다. 따라서 먼저 고정 IP 설정과 OpenSSH 서버 설치부터 빠르게 설정하는게 좋습니다.
IP 주소 확인
아래 명령어를 통해 변경하고자 하는 이더넷 이름을 알아낸다.
# IP주소 확인
$ ifconfig
게이트웨이 확인
# 네트워크 경로와 게이트웨이 확인
route -n
# 기본 게이트웨이 출력 ("route -n" 명령시 아래와 같은 주소가 나타난다.)
0.0.0.0 172.30.1.1 0.0.0.0 UG 100 0 0 enp2s0
- 0.0.0.0은 기본 경로를 의미하며, 172.30.1.1가 기본 게이트웨이로 설정되었습니다.
- enp2s0 인터페이스를 통해 외부 네트워크에 연결됩니다.
설정 파일 열기
# 설정 파일 열기
sudo vi /etc/netplan/50-cloud-init.yaml;
설정 파일 수정
# 50-cloud-init.yaml file
network:
version: 2
renderer: networkd
ethernets:
enp2s0: # 수정할 이더넷 인터페이스 이름 (예: enp2s0)
dhcp4: false # DHCP 사용하지 않음 (고정 IP 설정)
addresses:
- 172.30.1.5/24 # 고정 IP 주소 (서버에 할당할 IP)
routes:
- to: default # 기본 경로 설정
via: 172.30.1.1 # 기본 게이트웨이 IP (보통 라우터의 IP)
nameservers: # DNS 서버 설정
addresses:
- 8.8.8.8 # 첫 번째 DNS 서버 (Google DNS)
- 8.8.4.4 # 두 번째 DNS 서버 (Google DNS)
변경 사항 적용 및 확인
# 변경 사항 적용
sudo netplan apply;
# 네트워크 상태 확인
# ip a or ifconfig로 확인
ip a;
#Google DNS 서버에 ping을 보내 인터넷 연결을 확인
ping -c 4 8.8.8.8;
SSH 설정🔑
SSH(Secure Shell)는 원격으로 서버에 안전하게 접속할 수 있게 해주는 프로토콜입니다. 기본적으로 Ubuntu Server에는 SSH가 설치되어 있지만, 보안을 위해 몇 가지 설정을 변경해야 합니다.
SSH 설치
# 설치
sudo apt install openssh-server;
# 상태 확인
sudo service ssh status;
SSH root login 설정
먼저 ssh 설정을 vim으로 열어줍니다. 리눅스의 취약점을 통해 ssh에 root로 접근하는 경우를 사전에 차단하기 위한 설정입니다. ssh의 config 파일에서 Port 번호와 PermitRootLogin 설정을 변경해 줍니다. 저는 포트는 따로 변경하지 않고 기본 설정으로 하였습니다.
# ssh 설정
sudo vim /etc/ssh/sshd_config;
# --- VI 에디터(sshd_config) ---
Port <port> # 포트변경
PermitRootLogin no # root의 ssh 접속 차단
MaxAuthTries 5 # 로그인 최대 재시도 횟수
위 설정을 완료후 서비스를 재시작 합니다.
sudo service sshd restart; #서비스 재시작
시간대 설정 ⏰
초기에 서버의 시간대 설정이 필요로한다. 로그 분석이나 예약작업 실행시 정확한 시간 정보가 필요로 하므로 시간 정보를 설정한다.
# 현재 시간대 확인
timedatectl
# 사용 가능한 시간대 목록 확인
timedatectl list-timezones
# 시간대 변경 (예: 서울)
sudo timedatectl set-timezone Asia/Seoul
사용자 계정 생성 및 관리 👥
보안을 위해서는 root 계정 대신 일반 사용자 계정을 만들어 사용하는 것이 좋다. 일반 사용자 계정은 제한된 권한을 가지므로, 위험을 줄이고 시스템을 안전하게 유지할 수 있습니다. 필요한 경우 sudo 명령어를 사용하여 권한을 얻을 수 있습니다.
# 사용자 리스트 확인
cat /etc/passwd
# 새 사용자 생성
sudo adduser <username>;
# 사용자에게 sudo 권한 부여
sudo usermod -aG sudo <username>;
# 사용자 삭제
sudo deluser <username>;
방화벽 설정 🛡️
서버의 보안을 강화하려면 방화벽 설정이 필수적입니다. Ubuntu Server에서는 UFW(Uncomplicated Firewall)를 통해 간단하게 방화벽을 설정하고 관리할 수 있습니다.
# UFW 활성화
sudo ufw enable
# SSH 접속 허용 (포트를 변경했다면 그에 맞게 설정)
sudo ufw allow 22/tcp
# HTTP, HTTPS 트래픽 허용
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 현재 UFW 상태 및 규칙 확인
sudo ufw status verbose
마무으리
이번 블로그에서는 그동안 고민해왔던 개발 환경 초기 세팅을 체계적으로 정리해보았습니다. 설정과 문서화를 동시에 진행하다 보니 생각보다 힘든 부분도 많았지만, 그만큼 많은 것을 배우고 정리할 수 있었습니다.
앞으로도 개발 환경을 지속적으로 개선하며, 더 나은 작업 효율을 위해 노력할 계획입니다 💪
이 내용이 필요한 분에게 도움이 되기를 바랍니다 🙏
'Dev > Linux' 카테고리의 다른 글
[Linux] 우분투(Ubuntu) 설치 (0) | 2025.01.24 |
---|