1. Ampere A1 인스턴스 생성
Tip. 본 강좌는 초보가 아닌 분들을 위한 캡처 설명없는 text only 가이드라서
Ubuntu 22.04로 ARM A1 인스턴스 생성하는 과정은 본 가이드에서 생략합니다.
참고가 필요하시면 제가 이전에 작성한 글을 참고하세요.
https://sonhc.tistory.com/948
2-1. 인스턴스 Ubuntu 22.04 초기 설정 (기본 ubuntu 계정)
1) 기본 패키지 설치
$ sudo apt update
$ sudo apt install net-tools
2) SSH 포트 및 로그인 방식 변경
// SSH 설정 편집
$ sudo vim /etc/ssh/sshd_config
// 수정 15라인: 기본 22 포트와 새로운 11122 포트 2개 지정 Port 22 Port 11122 // 수정 58라인: no -> yes 수정 (ssh key 파일대신 패스워드 입력 방식) PasswordAuthentication yes // 수정 59라인: # 주석 제거 (암호 없는 유저 로그인 불가) PermitEmptyPasswords no |
3) iptables 에 새로운 ssh 포트 허용 및 저장
// 11122 포트를 input 허용으로 등록
$ sudo iptables -I INPUT 6 -m state --state NEW -p tcp -m tcp --dport 11122 -j ACCEPT
// 변경한 내용 저장
$ sudo netfilter-persistent save
// 현재 iptables 설정 확인
$ sudo iptables -L
4) 오라클 클라우드 인스턴스 방화벽에서 추가/변경한 ssh 포트 오픈
5) 유저 계정 생성 및 sudo 권한 추가
// 유저 계정 생성
$ sudo adduser <USER_ID>
// sudo 권한 추가
$ sudo usermod -aG sudo <USER_ID>
6) 새로 생성한 <USER_ID> 계정과 추가/변경한 11122 포트로 ssh 접속 확인
// 새로운 유저 계정과 변경한 포트로 ssh 접속 확인
$ ssh <USER_ID>@<IP or DDNS> -p 11122
7) ubuntu 계정에서 ssh logout
// 맨 처음 접속한 ubuntu 기본 계정 ssh 접속 종료
$ exit
2-2. Ubuntu 22.04 기본 설정 (새로운 user 계정)
1) 새로 생성한 bbyongi 계정과 추가/변경한 11122 포트로 ssh 접속
$ ssh <USER_ID>@<IP or DDNS> -p 11122
2) SSH 사용자 접근제한 및 기본 22포트 제거 설정
// SSH 설정 변경
$ sudo vim /etc/ssh/sshd_config
// 추가 14라인: 새로 추가한 test1234는 허용, 기본값 ubuntu, opc는 불가로 설정 AllowUsers <USER_ID> DenyUsers ubuntu opc // 삭제: 기본 포트 22는 # 주석 처리하고 새로운 11122 포트 1개만 지정 (앞으로 22 포트로 접속 불가) #Port 22 Port 11122 |
$ sudo service sshd restart
3) 오라클 클라우드 인스턴스 방화벽에서 ssh 포트 22 제거
4) 타임존 설정
$ sudo timedatectl set-timezone Asia/Seoul
5) 한글 언어팩, 한글폰트 설치
// 나눔폰트 (선호하는 폰트로 설치)
$ sudo apt install -y language-pack-ko fonts-nanum fonts-nanum-coding fonts-nanum-extra
// 은폰트 (선호하는 폰트로 설치)
$ sudo apt install -y language-pack-ko fonts-unfonts-core fonts-unfonts-extra
6) 시스템 언어 한글 설정
$ sudo locale-gen ko_KR.UTF-8
$ sudo dpkg-reconfigure locales
-> 페이지 다운 계속 눌러서 찾기 -> ko_KR.UTF-8 UTF-8 선택 -> 탭키 -> <확인>
-> ko_KR.UTF-8 선택 -> 탭키 -> <확인>
$ vim ~/.bashrc
// 맨 아래줄 추가: 원하는 언어 # 주석 해제 #export LANG=ko_KR.UTF-8 #export LANGUAGE=ko_KR.UTF-8 export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8 |
// 시스템 언어 한글 적용
$ source ~/.bashrc
7) 스왑(swap) 메모리 설정
// 스왑 파일 생성
$ sudo fallocate -l 8G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
// 스왑 설정
$ sudo swapon /swapfile
// 재부팅시 swap 적용되도록 설정
$ sudo vim /etc/fstab
// 맨 마지막줄에 추가 /swapfile swap swap defaults 0 0 |
// 스왑 메모리 확인
$ free -h
8) shell 프롬프트 색상 설정 (필요한 사람만)
$ vim ~/.bashrc
// 수정 46라인: # 주석 제거 force_color_prompt=yes // 수정 60라인: prompt 색생 코드 32m(초록색) -> 31m(빨간색) 변경 (30 ~ 36 사이로 변경 가능) # PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' |
$ source ~/.bashrc
2-3. Ubuntu 22.04 보안 설정
1) fail2ban 설치
$ sudo apt install -y fail2ban python3-pip sqlite3 rsyslog
$ sudo pip3 install pyinotify
// 정책 파일 복사 (필요시 수정)
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
// 서비스 재시작
$ sudo systemctl enable fail2ban
$ sudo systemctl restart fail2ban
$ sudo systemctl status fail2ban
// 현재 ssh 접속 실패 로그 확인 (아무 결과도 없는게 좋은겁니다.)
$ sudo cat /var/log/auth.log | grep "Failed password"
// Bans 테이블에서 차단된 IP 조회
$ sudo sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "select distinct ip from bips;"
2) fail2ban 셋팅
// checkban 명령 alias 추가 (자주 실행해 보기 위해 단축 명령어 설정)
$ vim ~/.bashrc
// 맨 아래줄 추가 alias checkban='sudo sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "select distinct ip from bips;"' alias checkauth='sudo cat /var/log/auth.log | grep "Failed password"' |
$ source ~/.bashrc
$ checkban
$ checkauth
// fail2ban 로그 마지막 100 라인 확인 (필요시에만 사용. CTRL+C 누르면 종료됨)
$ sudo tail -100f /var/log/fail2ban.log
// IP 차단 커맨드 설정/제거
$ sudo fail2ban-client set sshd banip <IP주소>
$ sudo fail2ban-client set sshd unbanip <IP주소>
2-4. Ubuntu 22.04 xRDP 설정 및 원격 데스크탑 연결
1) xRDP 설치
$ sudo apt install -y ubuntu-desktop
$ sudo apt install -y xrdp
2) xRDP 인증서 권한 추가
$ sudo adduser xrdp ssl-cert
3) xRDP 기본 포트 변경
$ sudo vim /etc/xrdp/xrdp.ini
// 수정 22라인: 기본 포트 3389를 변경할 포트 13389 으로 수정 [globals] #port=3389 port=13389 |
4) xRDP 세션 설정 변경 (Ubuntu 22.04 에서는 설정할 필요 없음, 20.04는 # 제거하기)
$ sudo vim /etc/xrdp/startwm.sh
// 추가 32라인: "test -x /etc/X11/Xsession && exec /etc/X11/Xsession" 윗줄에 붙여넣기 // Ubuntu 22.04 에서는 설정할 필요 없음. Ubuntu 20.04는 # 제거하기 #unset DBUS_SESSION_BUS_ADDRESS #unset XDG_RUNTIME_DIR |
5) xRDP 재시작
$ sudo systemctl restart xrdp
$ sudo systemctl status xrdp 6) iptables 에 새로운 ssh 포트 허용 및 저장
$ sudo iptables -I INPUT 6 -m state --state NEW -p tcp -m tcp --dport 13389 -j ACCEPT
$ sudo netfilter-persistent save
// 현재 설정된 iptalbes 확인 ("Chain INPUT (policy ACCEPT)" 참고)
$ sudo iptables -L 7) 윈도우 10 에서 "원격 데스크탑" 접속
- Start Setup -> hangul 선택 -> privacy, 그냥 NEXT -> Start Using Ubuntu
- 언어 지원 -> "언어 지원이 완벽하게 설치되지 않았습니다" -> 설치
8) 언어팩 설치 및 한영키 CTRL + SPACE 전환 설정
2-5. 블록볼륨 연결
- 기본 경로 : /dev/oracleoci/oraclevdb
1) iscsi 등록
$ sudo iscsiadm -m node -o new -T iqn.201?-??.com.oracleiaas:<블록정보> -p <블록IP정보>:<블록포트>
$ sudo iscsiadm -m node -o update -T iqn.201?-??.com.oracleiaas:<블록정보> -n node.startup -v automatic
$ sudo iscsiadm -m node -T iqn.201?-??.com.oracleiaas:<블록정보> -p <블록IP정보>:<블록포트> -l
2) 디스크 확인
$ sudo fdisk -l
$ ls -la /dev/oracleoci/oraclevdb
3) EXT4 포멧
$ sudo mkfs -t ext4 /dev/sdb
$ sudo lsblk -f
$ sudo blkid | grep sdb
// UUID 확인
"11111111-2222-3333-4444-555555555555"
4) 자동 마운트 등록
$ mkdir -p ~/block
$ sudo vim /etc/fstab
// 맨 아래줄 추가 UUID=11111111-2222-3333-4444-555555555555 /home/<USER_ID>/block/ ext4 defaults,_netdev,nofail 0 2 |
5) 마운트 확인
$ sudo mount -a
$ df -h | grep sd
$ ls -l /home/<USER_ID>/block/
$ sudo chown <USER_ID>:<USER_ID> -R /home/<USER_ID>/block/
3-1. docker 설치 및 docker network 설정
1) docker 설치
// ARM VM.Standard.A1.Flex) 인스턴스용
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ sudo apt update
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
$ docker --version
2) docker compose 설치
$ sudo apt-get install -y docker-compose
$ docker-compose --version
3) docker network 설치 (NPM 전용)
$ sudo docker network create npm_common
// docker-compose.yml 맨 아래 추가 (NPM에서 Proxy Host 등록할 컨테이너들을 동일한 network로 지정하기 위함) # Use same docker network with NPM networks: default: external: name: npm_common |
FINISH
PS. 본 포스팅이 도움이 되셨다면 소중한 리플로 후기 공유해주세요. 광고 클릭도 큰 도움이 됩니다.
'Guide_Tip_Tech > Oracle_Cloud_Free_Tire' 카테고리의 다른 글
[OCI] Oracle Cloud Docker 셋팅 : 3-5. Authelia 설치 및 NPM 연동 #3 (0) | 2022.08.21 |
---|---|
[OCI] Oracle Cloud Docker 셋팅 : 3-5. Authelia 설치 및 NPM 연동 #2 (0) | 2022.08.21 |
[OCI] Oracle Cloud Docker 셋팅 : 3-5. Authelia 설치 및 NPM 연동 #1 (0) | 2022.08.21 |
[OCI] Oracle Cloud Docker 셋팅 : 3-4. Nextcloud 설치 및 NPM 연동 (9) | 2022.08.10 |
[OCI] Oracle Cloud Ampere A1 인스턴스 생성 및 Ubuntu 22.04 셋팅 가이드 (1) | 2022.06.24 |
[OCI] Oracle Cloud 인스턴스 응용 : 4-5. 블록 볼륨 용량 변경 (2) | 2022.04.12 |
[OCI] Oracle Cloud 인스턴스 응용 : 4-4. 블록 볼륨 자동 마운트 설정 (0) | 2022.04.12 |
[OCI] Oracle Cloud 인스턴스 응용 : 4-3. 블록 볼륨 인스턴스 연결 (0) | 2022.04.12 |
[OCI] Oracle Cloud 인스턴스 응용 : 4-2. 블록 볼륨 생성 (0) | 2022.04.12 |
[OCI] Oracle Cloud 인스턴스 응용 : 4-1. 블록 볼륨 활용의 필요성 (0) | 2022.04.12 |