개인 서버 셋팅
저는 현재 개인적으로 서버를 셋팅해서 사용하고 있습니다.
현재는 라즈베리파이 2대, x86 1대 서버를 구성하고 있으며, 추후에는 arm 서버로 모두 돌릴 예정입니다. ㅎㅎ
막상 서버를 지속적으로 셋팅하다보니, 서버 셋팅 후에 필수 구성 요소들을 따로 블로그로 정리해두었습니다.
혹시라도 참고 하실 분들이 있다면, 아래를 봐주시면 됩니다!
ssh 까지 뚫는 작업을 하기 때문에, 지속적으로 따라하시면 내부망에서 접근 가능할겁니다.
완전 외부에 접속하게 하려면 이외 방법이 필요합니다.
- 아래 방법으로 진행한다면, 내부망에서만 접근 가능합니다.
Ubuntu
curl
설치
sudo apt-get install curl
Git
설치
sudo apt-get install git
nvm
설치
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install node # 최신 버전 설치
nvm install --lts # 최신 LTS 버전 설치
nvm install 16.14.0 # 특정 버전 설치
nvm install 16 # 특정 버전 16의 최신 릴리즈 설치
docker
설치
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get install docker-ce docker-ce-cli containerd.io
openssh
openssh 설치
sudo apt-get install openssh-server
# 활성화 확인
sudo systemctl status ssh
ufw
ufw 설치
# ufw 설치
sudo apt-get install ufw
ufw 정책 관리 명령어
# ufw 활성화
sudo ufw enable
# ufw 비활성화
sudo ufw disable
# ufw 상태 확인
sudo ufw status verbose
모든 포트 통신에 대한 일괄 허용 / 차단
# 들어오는 통신 차단
sudo ufw default deny incoming
# 나가는 통신 허용
sudo ufw default allow outgoing
ufw 정책 설정 명령어
# 443포트(HTTPS) 허용
sudo ufw allow 443
# 443포트(HTTPS) TCP 허용
sudo ufw allow 443/tcp
# 443포트(HTTPS) UDP 허용
sudo ufw allow 443/udp
# 443포트(HTTPS) 허용
sudo ufw allow https
ufw 정책 세부 설정 명령어
ip 통신 정책
# 192.168.0.5 IP의 통신 허용
sudo ufw allow from 192.168.0.5
# 192.168.0.5 ~ 200 대역의 IP의 통신 허용
sudo ufw allow from 192.168.0.5/200
IP 및 포트 통신 정책
# 192.168.0.5 IP의 443포트 허용
sudo ufw allow from 192.168.0.5 to any port 443
# 192.168.0.100 IP의 443포트 TCP 허용
sudo ufw allow from 192.168.0.5 to any port 443 proto tcp
ufw 정책 수정 명령어
sudo ufw status numbered
# 1번 정책을 443포트 차단 정책으로 변경
sudo ufw insert 1 deny 443
# 2번 정책을 192.168.0.5 IP의 통신 허용 정책으로 변경
sudo ufw insert 2 allow from 192.168.0.5
ufw 정책 삭제 명령어
# 1번 정책 삭제
sudo ufw delete 1
mysql
설치
sudo apt update
sudo apt install mysql-server
시작
sudo systemctl start mysql
자동 재시작
sudo systemctl enable mysql
SSH Key 로만 접근 가능하게 설정하는 방법
/etc/ssh/sshd_config
# Authentication:
...
PubkeyAuthentication yes
...
PasswordAuthentication no