Linux

[Ncloud] Linux 서버 환경 기본 세팅

graph-dev 2024. 1. 29. 19:00
728x90

 
 
리눅스 서버는 종류가 매우 다양합니다. 그 중에서, centos 7.8를 사용하여, 가장 기본적인 리눅스 서버 세팅을 해보겠습니다.
 

서버와 호스트명 바꾸기

먼저, 호스트네임을 설정할 수 있습니다.
 
아래 글을 참고했습니다.
https://youngswooyoung.tistory.com/159

 

[Linux] 리눅스 호스트네임 변경하기 / hostnamectl 명령어

안녕하세요. 이번 포스팅에서는 RHEL, CentOS 환경에서 리눅스 호스트네임을 변경하는 방법을 알아봅니다. 0. hostnamectl 명령어 만약 리눅스를 설치할 때, hostname 설정을 넣지 않았다면 리눅스 환경은

youngswooyoung.tistory.com

 
참고로, 네이버클라우드를 사용했을 때, 별도 호스트 명을 지정하지 않으면 임의의 값이 hostname으로 설정됩니다. 이제 바꿔보겠습니다.

 
 
만약 콘솔 상에서 이름을 변경하려면 아래와 같은 작업을 수행합니다.

hostnamectl set-hostname [변경하려는 이름]

 
 
graph로 바꿔보겠습니다. 바꾼 후에는 reboot 명령어로 재부팅을 해줍니다.

reboot

 

 
 
이제 다시 서버에 접속해보겠습니다.

 
터미널에서 호스트명은 graph로 변경되었습니다. 네이버클라우드 콘솔도 살펴볼까요? 

 
콘솔에서 서버 이름은 그대로입니다. 서버 관리 및 변경에서 고급 설정 > 서버 이름 변경을 눌러서 바꾸면 됩니다.

 
 
이제 graph로 변경되었고, 터미널에서 hostname도 graph로 변경되었습니다.
 
 

사용자 계정 생성 및 sudo 설정

이제 리눅스에는 root라는 유저가 있는데, 최상위 유저로 서버의 거의 모든 권한을 가집니다. 이 계정이 해킹 등으로 노출되면 매우 위험하므로, 리눅스에는 사용자 계정을 별도로 생성합니다. 해당 계정에 sudo 명령어를 통해 root 권한을 획득하여 작업하도록 만드는 것이 좋습니다.
 
 
먼저, guest라는 이름의 사용자 계정을 만들겠습니다. adduser라는 명령어를 사용합니다. 이후, 비밀번호 설정을 위해 passwd 명령어를 사용하고, 재입력해주면 완성입니다.

adduser guest
passwd guest

 
다음으로, guest 사용자로 전환할 때는 su - 명령어를 활용합니다. 

# guest 사용자 계정으로 전환
su - guest

# 루트 사용자 전환
su -

 
다만, su - 를 사용하면 루트 사용자의 비밀번호를 입력해야 전환이 가능합니다.
 

 
앞으로는 이 guest 사용자로 접속하고, 작업하는 것이 좋겠습니다. 그러려면, sudo 명령어를 사용하도록 작업해야합니다. 이 작업은 사용자 계정보다는 루트 사용자에서 처리하는게 편리합니다. 그 이후로는 일반 사용자 계정으로 진행하면 됩니다.
 

vi /etc/sudoers

 
다양한 글이 있지만, 집중해서 봐야할 부분은 두 곳입니다. guest라는 계정을 root 대신 sudo 명령어로 권한을 받아 처리하는 부분이 있고, 마지막에 password를 매번 입력하지 않고도 sudo 작업이 가능하도록 만드는 부분이 있습니다. 모두 추가해주시면 됩니다.
 

 
일단, 저 password 부분에 주석을 친 상태에서 readonly 파일이므로 :wq! 를 입력하여 저장하고, 해당 사용자 계정으로 전환하여 확인해보겠습니다.

 
guest 계정으로 전환하고, sudo 명령어를 입력하면 아래처럼 "password for guest"라는 단계가 추가됩니다. 매번 패스워드를 입력해야하는데, 귀찮겠죠?

 
 
다시 주석을 풀고 저장해서 확인해봅니다.

 
이제 따로 비밀번호를 묻지 않습니다. 편해졌어요!

 
이제 guest 계정으로 전환하고 처음부터 끝까지 작업해볼 수 있습니다.
 

포트 변경을 위한 SSH 설정

클라우드 서버를 구축하면 이제 루트 계정이 아니라 일반 사용자 계정에서 sudo 명령어로 작업하는 것을 알았습니다. 추가로, 접속 포트도 ssh의 기본 포트인 22번이 아니라 원하는 포트로도 변경할 수 있습니다. 또한, 루트 계정으로 접속 자체를 방지할 수도 있습니다. 이 모든 작업이 sshd_config라는 파일에서 이루어집니다.
 
빠른 작업을 위해, su - 명령어로 루트 계정으로 전환합니다. 이후 sshd_config 파일을 바로 편집할 수 있습니다.

su -

 

 

vi /etc/ssh/sshd_config

 
이 주석을 풀고, Posrt를 22000으로 바꾸겠습니다. 이후 저장해줍니다.

 
 
바로 적용하려면, systemctl 명령어로 재시작해줍니다. 또한, status 명령어로 상태를 확인해줍니다.

systemctl restart sshd
systemctl status sshd

 
 
active (running) 상태라면 잘 적용된 것입니다.

 
 
이제 exit으로 나오고, 다시 ssh 명령어로 포트를 22번으로 설정해서, 다시 접속해보겠습니다. 안되는 것이 당연합니다. 포트를 바꿨으니까요. 그런데, 22000번 포트도 접속이 안됩니다. 왜 그럴까요?

 
 
네이버클라우드의 ACG에서 막기 때문이죠. ACG 설정을 통해 22000번 포트를 허용해줘야합니다.
 
Server > ACG로 이동합니다. 인바운드 규칙 설정에서, TCP + 본인 IP주소로 22000번 포트를 허용 포트로 지정합니다.

 
 
다시 22000번 포트로 접속하면 바로 로그인하는 것을 알 수 있습니다.

 
 
이후, root 사용자로 접속을 방지하도록 요구하는 경우가 있습니다. 다시 sshd_config 파일로 갑니다. 가서 PermitRootLogin을 yes에서 no로 변경하고 :wq로 저장합니다.

 
 
이게 적용되려면, systemctl restart sshd > systemctl status sshd로 확인해줘야죠.

 
exit로 로그아웃하고, 다시 root로 접속을 시도합니다.

 
이런, 막혔네요. guest로 로그인합니다.
 

 
문제없이 로그인이 됩니다. 이렇게 포트를 변경하고, root 계정으로는 로그인을 못하도록 방지할 수 있습니다.