[Linux] Ubuntu 서버 초기 설정하기

whatSup CheatSheet·2022년 9월 23일
3
post-thumbnail

본 설정은 Ubuntu 22.04.1 LTS 환경에서 진행하였습니다.

관리자(root) 계정 활성화

root 계정은 Linux 설치 시 기본적으로 생성되지만, 비밀번호를 생성해주기 전까지 비활성화 상태입니다.

  • root 계정 활성화(비밀번호 설정)
    sudo passwd root
    • 비밀번호를 2번 동일하게 입력하여 root 계정을 활성화합니다.

패키지 업데이트

  • apt-get update: 설치되어 있는 패키지들이 새로운 버전이 있는지 확입합니다.
  • apt-get upgrade -y: update를 통해 확인한 패키지들의 최신 버전에 따라 패키지를 업그레이드합니다.

vim 설치

  • vi로 방향키를 눌렀을 때, 의도치 않은 문자가 입력될 때가 있습니다.
  • vi의 차기버전인 vim을 설치해 이를 해결할 수 있습니다.
    sudo apt-get update && sudo apt-get install vim
  • vim ~/.vimrc에 아래 내용을 입력하여 더 좋게 표시되게 할 수 있습니다.
    • set number : 줄 번호 표시
    • set tabstop=4 : tab을 4칸으로
    • set ignorecase : 검색 시 대소문자 구별 x
    • set hlsearch : 검색 내용 하이라이트
    • set bs=indent,eol,start : backspace 키 사용
    • set ruler : 상태표시줄 커서 위치 표시
    • set title : 제목 표시
    • set showmatch : 매칭되는 괄호 표시
    • set nowrap : 자동 줄바꿈 해제
    • set wmnu : tab 자동완성 목록 표시

Apt 저장소 미러 변경

Apt 저장소 미러를 한국의 카카오 미러 서버로 변경하여 속도를 향상시킵니다.

  • sudo vi /etc/apt/sources.list로 설정파일을 열어서, Last line mode로 다음 명령어들을 입력합니다.
  • : %s/kr.archive.ubuntu.com/mirror.kakao.com
  • : %s/security.ubuntu.com/mirror.kakao.com

시스템 언어 설정

  • locale: 현재 locale 설정들을 조회합니다.
  • locale -a: 현재 설치되어있는 locale들을 조회합니다.
  • sudo apt-get install language-pack-ko -y: 한국어 패키지를 설치합니다.
  • 한국어 설정을 해줍니다.
    • sudo vi /etc/default/locale

(선택)한글 입력기 관련 설정

시스템 시간 설정

  • date: 현재 시각을 출력합니다.
  • timedatectl: 자세한 timezone 설정을 조회합니다.
    • timedatectl list-timezones: 사용가능한 timezone 목록을 조회합니다.
    • timedatectl set-timezone Asia/Seoul: 아시아/서울로 timezone을 설정합니다.

SSH 관련

SSH 접속 허용하기

  • openssh-server가 없다면, 설치해줍니다. 설치가 완료되면 SSH 서비스는 자동으로 시작됩니다.
    sudo apt-get update && sudo apt-get install openssh-server
  • sudo systemctl status ssh로 SSH 가 잘 작동되는지 확인할 수 있습니다.
  • (필요하다면) 우분투 방화벽 시스템에서 SSH포트를 열어줍니다.
    sudo ufw allow ssh
  • (필요하다면) ssh 서비스를 재시작해줍니다.
    sudo service ssh start > /dev/null
  • ip a로 내부 아이피를 확인하고, ssh username@ip로 접속할 수 있습니다.

외부 아이피로 SSH 접속하기(feat. LG유플러스 공유기)

  • 외부 ip에서 접속하기 위해서는 [외부ip -> 내부ip]로 포트포워딩해주어야 합니다.
  • 위치: LG 공유기 설정 페이지 -> 네트워크 설정 -> NAT 설정 -> 포트포워딩
  • 외부에서 ssh username@공개ip:port로 접속하면, 접속이 되는 것을 확인할 수 있습니다.

SSH key를 생성 & 등록하여 원격 서버에 간편히 접속하기

신뢰할 수 있는 서버에 공개키를 등록하여 간편히 SSH로 접속할 수 있도록 합니다.

  • [로컬에서] ssh-keygen -t rsa으로 SSH key를 생성합니다.
    • default경로는 (/home/{user}/.ssh/id_rsa)입니다. 그냥 엔터를 누르면 defult로 지정됩니다.
    • passphrase(추가 암호)는 굳이 입력하지 않아도 됩니다.
    • cat ~/.ssh/id_rsa.pub: (defalut경로에서) public 키를 출력할 수 있습니다.
    • 다음과 같이 ssh 권한을 설정해줍시다.
      chmod 700 ~/.ssh && \
      chmod 600 ~/.ssh/id_rsa && \
      chmod 644 ~/.ssh/id_rsa.pub
  • [서버에서 방법 1]
    • 서버에 접속하여 /.ssh폴더가 없다면mkdir ~/.ssh로 만들어줍니다.
    • touch ~/.ssh/authorized_keys로 authorized_keys 파일을 만들어주고, chmod 755 ~/.ssh/authorized_keys로 권한을 설정합니다.
    • 컴퓨터의 ~/.ssh/id_rsa.pub에 있는 모든 내용을 복사하여 서버의 ~/.ssh/authorized_keys에 붙여넣고, 저장합니다.
  • [서버에서 방법 2]
    • 로컬에서 다음 명령어로 .pub 파일을 전송합니다.
      ssh-copy-id -p <port-num> user@000.00.00.000
  • 만약, (서버) 계정의 폴더 권한이 755를 초과한다면, chmod 755 $HOME으로 권한을 변경해주어야 합니다.

SSH 접속정보를 설정파일로 저장하기

  • vi ~/.ssh/config로 사용자의 .ssh 폴더에 config 파일을 만들어줍니다.
  • 다음과 같은 형식으로 작성하고 저장합니다.
  • 이제 터미널에서 별칭으로 간단히 SSH접속을 할 수 있습니다.

etc/ssh/sshd_config 주요 기능(사용해본 것들 정리)

sshd_config는 리눅스 SSH 설정파일입니다.
변경이 끝나고 난 뒤에는 systemctl restart ssh 로 SSH를 재부팅 시켜주어야 합니다.

  • Port 22 : SSH 서비트 포트 번호를 변경할 수 있습니다. 변경 시 /etc/services 파일에서 SSH 포트값도 변경해주어야 합니다.
  • Allowusers user1 root : 로그인 허락할 계정을 기록합니다.
  • ListenAddress 0.0.0.0 : sshd 데몬이 통신가능한 주소입니다.
    • 0.0.0.0은 모든 네트워크입니다.
  • LoginGraceTime 600 : 유저의 로그인이 성공적으로 이루어지지 않았을 때, 해당하는 시간 후에 서버가 연결을 끊습니다. 값이 0이면 제한이 없습니다.
  • PermitRootLogin no : root로 로그인 허용 여부를 결정합니다.
    • 하지만 이보다는 일반계정으로 로그인한 뒤, su로 전환하는 것이 더 안전합니다.
  • PasswordAuthentication yes: 패스워드 인증을 허용합니다.
  • PermitEmptyPasswords no: 패스워드 인증 시 서버가 비어있는 패스워드를 인정할지 결정합니다.

패키지 & 기타 설치

  • sudo apt-get install net-tools -y : 네트워크 제어 command를 포함하고 있는 net-tool 패키지입니다.
  • sudo apt-get install tree -y : tree구조로 디렉토리를 조회할 수 있는 tree패키지입니다.
  • sudo apt-get curl: 웹 서버에 요청을 보내는 패키지입니다.

(선택) vscode 설치

  • 패키지 업데이트와 필수 패키지를 설치합니다.
    sudo apt update && sudo apt upgrade -y
    sudo apt install software-properties-common apt-transport-https wget -y
  • 설치 패키지의 신뢰성을 확인하기 위해 Microsoft GPG 키를 가져옵니다.
    wget -O- https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor | sudo tee /usr/share/keyrings/vscode.gpg
  • Microsoft Visual Source Repository를 가져옵니다.
    echo deb [arch=amd64 signed-by=/usr/share/keyrings/vscode.gpg] https://packages.microsoft.com/repos/vscode stable main | sudo tee /etc/apt/sources.list.d/vscode.list
  • 추가 사항을 반영하도록 apt 패키지 관리자 소스 목록을 새로고침하고, vscode를 설치합니다.
    sudo apt update
    sudo apt install code -y
  • code .로 실행되는지 확인합니다.

vscode 제거

  • 소프트웨어 제거: sudo apt remove code --purge
  • 저장소 제거: sudo rm /etc/apt/sources.list.d/vscode.list
  • GPG 키 제거: sudo rm /usr/share/keyrings/vscode.gpg

Reference

profile
AI Engineer : Lv 0

0개의 댓글