[Linux] IBM Cloud Setup 과정

문연수·2024년 5월 28일
0

Linux (Fedora)

목록 보기
20/20
post-thumbnail

 클라우드는 사람을 화나게 만든다. 설정 하나 하나 사람의 발목을 붙잡는다. 특히 Linux 를 잘 모르는 사람에게는 더 엄혹하다. 당장 SELinux 만 해도 그렇다. 처음 접하는 유저가 이를 통해 얻을 수 있는 경험은 놀라움과 절망감 뿐이다. 이뿐만이랴? 설정 파일을 만지고, 패키지를 설치하는 과정(없는 패키지도 있다) 또한 만만치 않다. 하지만 걱정치 마라,

우리는 답을 찾을 것이다. 늘 그랬듯이.

1. 실행 환경

  • CentOS Stream 9
  • bx2-4x16
  • ssh 키 사용
  • 유동 아이피 지정
  • In-bound 규칙: 80 포트 추가 (군대에서 사용하기 위함)

 원래는 Fedora 를 쓰려고 했으나 설치해보니 패키지 매니저조차 없는 완전 퓨어한 배포판이었다. 바로 지우고 CentOS Stream 으로 갔다.

2. 셋업

 언제 어디서나, 항상 가장 먼저 입력해야 할 명령어.

dnf update -y
dnf upgrade -y

- 유저 생성

useradd <username> -m
passwd <username>
usermod -G wheel <username>

root 계정은 잠궈두고 새롭게 만든 유저 계정으로 사용하면 된다.

- ssh 관련 설정

# SSH Port 변경 (필요 시)
sed -e '/^#Port/{s/#//; s/22/80/}' -i sshd_config

# Root Login 비허용 (필요 시)
sed -e '/^PermitRootLogin/s/yes/no/' -i /etc/ssh/sshd_config

# Password Login 허용
# (이걸 안 해주면 비밀번호 로그인이 안된다.)
sed -e '/^#PasswordAuthentication/{s/no/yes/; s/#//}' -i /etc/ssh/sshd_config

# Redhat 기본 설정 및 Cloud 에서 제공하는 설정 제외
# (이걸 안 해주면 GSS 문제로 로그인이 안된다.)
sed -e '/^Include/s/^/#/' -i sshd_config

# 변경 사항 적용 (SELinux 라면 `setenforce 0` 으로 변경 후에 작업)
systemctl restart sshd

 이렇게 설정해줘야 80 포트로 외부에서 ssh 로 접속할 수 있다.

- EPEL 저장소 설치

dnf config-manager --set-enabled crb
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm		\
            https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm

 이게 없으면 사용 가능한 패키지가 많이 제한된다.

3. Two-Factor Authenticator 적용

- Two-Factor 생성

# Two-Factor 생성
dnf install google-authenticator
google-authenticator # 이 명령어 입력하고 전부 다 yes
mv .google_authenticator ~/.ssh/google_authenticator

 핸드폰에 Two-Factor 앱을 아무거나 설치한다. 필자는 Google Authenticator 를 설치했다. 나머지는 아래에서 진행하면 된다.

핸드폰 앱은 화면 캡쳐가 안되기 때문에 풀어서 설명하면,

  1. Your new secret key is: 다음 부분의 코드를 앱에서 입력하거나
  2. 아니면 위에 링크를 타고 들어가서 나온 이미지를 카메라로 캡쳐한다.
  3. Two-Factor 가 생성되면 앱의 숫자를 시간 내에 입력한다.
  4. 성공하면 이하와 같이 마저 진행된다.

여기에서 Your emergency scratch codes 는 반드시 손으로 적어서 백업해두길 바란다. 뭐가 됐든 Two Factor 를 날리면 아예 접근할 방법이 없다.

- 설정 파일 수정하기

# PAM 설정 파일 내용 추가
sed -e '/#%PAM-1.0/a\auth required pam_google_authenticator.so secret=\$\{HOME\}\/.ssh\/google_authenticator' \
    -i /etc/pam.d/sshd

# ssh 설정 파일
sed -e '/^#UsePAM/{s/no/yes/; s/#//}' -i /etc/ssh/sshd_config
sed -e '$aChallengeResponseAuthentication yes' -i /etc/ssh/sshd_config

systemctl restart sshd

 이걸로 인증키 대신 Two-Factor 로 로그인 할 수 있다. 인증키는 관리하기 귀찮지만 핸드폰은 언제나 들고 다니므로 훨씬 편하게 먹힌다. 그리고 너무 당연하지만 위에 보여준 예시의 코드는 필자가 그냥 임의로 만든 것이므로 이걸로 해킹을 한다거나 하는 짓은 헛수고임을 밝힌다.

profile
2000.11.30

0개의 댓글