이룰수 없는 꿈을 꾸고 이길수 없는 적과 싸우며, 이룰수 없는 사랑을 하고 견딜 수 없는 고통을 견디고, 잡을수 없는 저 하늘의 별도 잡자. - 세르반테스

리눅스/우분투

[사용자추가] 우분투 20.04

별구르미 2023. 4. 20. 20:14

안녕하세요.

제가 서비스하려고 하는 사이트가 하나 있어서 가상서버 호스팅 하나 요청했어요. 

전 Nginx + PHP-FPM + MariaDB 와 몽고DB 와 python 설치하려고 하는데 

기본적으로 설치해주는 것이 APM 으로 아파치와 php 버전도 너무 낮은 버전으로 설치를  기본으로 해줘서 제가 서비스하고자하는 환경과는 맞지 않아서 아래와 같이 제가 작업을 하면서 알게되는 지식 등을 정리하고자 합니다. 

카테고리는 우분투이긴 한데 본 카테고리에 글이 몇개나 올라갈진 모르겠어요. 

그 때 그때 올리게 될 것 같아요. 

호스팅 업체에서 서버를 생성해주셨는데 소요되는 시간은 약 30분 정도 소요되었습니다. 

OS만 설치되었고, 우분투로 설치되었어요. 

먼저 root 로만 접속할 수 있는 상황이라 제일 먼저 사용자부터 추가해줬고, root 는 원격접속 불가능하도록 설정을 먼저 잡아보고자 해요. 

그래서 본 글 내용은 사용자 추가부터  및 사용자에게 sudo 권한을 부여하는 것과 기본 방화벽 설정 및 root 로 원격접속불가 설정을 먼저해보려고 합니다.

 

익숙한 ssh client 프로그램으로 서버에 접속하려고 하니 안되네요. 

그래서 먼저 putty 프로그램으로 서버에 접속하여 아래와 같이 진행했습니다.

 

1. 사용자 추가 및 sudo 권한 주기.

Step 1. 사용자 추가하기.

# adduser 사용자명

위와 같이 입력하면 암호를 입력하라는 메시지 나옵니다. 두 번 입력하시면 됩니다.

 

Step 2. 새로 만든 사용자에게 sudo 권한을 주기.

# usermod -aG sudo 사용자명

그룹생성은 나중에 필요하면 추가하려고요. 

 

2. 기본방화벽 설정

ufw를 이용하여 방화벽설정을 할 수가 있어요. 

전 centOS가 익숙했는데 centOS가 더이상 지원을 안한다하여 이번을 계기로 Ubuntu를 이용하고 있는데, ufw 를 보니까 이전에 iptables 이라고 한 방화벽이 있었거든요. 이와 유사한 개념을 가진 것 같네요. 

ufw(?) Ubuntu Firewall 의 약자일까요? ㅎㅎ

ufw 설정을 먼저 잡겠습니다. 

UFW를 이용하여 특정포트는 막고 또 특정포트는 열 수가 있도록 설정이 가능합니다.

 

Step 1. UFW 활성화 하기.

아래와 같이 입력하면 접속가능한 applications를 확인할 수 있습니다.

# ufw app list

위와 같이 입력했더니 OpenSSH 가 하나가 나오네요. 

다음과 같이 입력하여 다시 로그인 할 때 방화벽이 SSH에 대하여 연결을 허용할 수 있도록 설정합니다.

# ufw allow OpenSSH

위와 같이 입력한 후 이어서 아래 명령어로 방화벽을 활성화 시켜줍니다.

# ufw enable

"y" 입력하고 엔터를 입력하시면 활성화 됩니다.

 

Step 2. UFW 상태확인하기.

# ufw status

위와 같이 활성화 되어있음을 확인할 수 있고, OpenSSH 에 대하여 어디서든 접속을 할 수 있다고 설정이 된 모습입니다. 

원래라면 소스IP 와 목적IP를 설정하여 외부 방화벽에서 먼저 1차로 걸고 여기는 2차로 거는걸로 저는 알고 있습니다.

 

3. UFW에 대한 부가설명

※ 특정포트에 대한 허가나 거부 설정하기

UFW를 활용하여 각 포트에 대하여 허용 또는 차단하는 방법 소개합니다. 

예로 웹서비스 포트인 80포트를 예로 들겠습니다. 

기본구성양식 : ufw allow or deny <port>/<optional: protocol>

# ufw allow 80

위와 같이 입력하면 80포트에 대해서 TCP/UDP 모두 접근을 허용한다는 뜻입니다.

위와 같이 룰을 추가했다는 메시지가 나옵니다. 

잘 적용되었는지 확인해보겠습니다. 

위와 같이 적용되었는 것을 확인할 수 있습니다. 

 

※ 특정IP 주소에 대한 허가나 거부 설정하기

기본구성양식 : ufw allow or deny from <ip address>

# ufw allow from 192.168.0.10

위와 같이 특정IP 하나에서만도 가능합니다. 

기본구성양식 : ufw allow from <ip address> to <protocol> port <port number>

# ufw allow from 192.168.0.10 to any port 21

UFW에 대한 내용은 정리해서 별도로 포스팅 진행하겠습니다.

 

TCP(Transmission Control Protocol) / UDP(User Datagram Protocol)에 대해서 짚고가면 좋은데요. 설명을 참 쉽게 잘 해 두신 분이 계셔서 설명은 이 분의 블로그 내용으로 대신합니다. 
https://velog.io/@hidaehyunlee/TCP-%EC%99%80-UDP-%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

TCP 와 UDP 차이를 자세히 알아보자

TCP와 UDP는 TCP/IP의 전송계층에서 사용되는 프로토콜이다. 전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층이다.

velog.io

 

4. root disabled 설정하기

Step 1. sshd_config 를 수정하여 root 계정으로 접속을 못하도록 막습니다.

# nano /etc/ssh/sshd_config

위 파일을 오픈하여 PermitRootLogin 부분을 찾아 yes => no로 변경한 후 저장하고

그리고, 포트도 변경하겠습니다. 22번 포트는 너무 알려져 있어 보안에 취약하니 변경하고 방화벽에도 추가해주시고 sshd 를 재시작 해주세요.

 

바뀐 설정대로 접속 되는지 확인 해보시면 됩니다. 

전 해보니 22번 포트로도 접속불가, root 계정으로도 접속이 안되는 것을 확인할 수 있었습니다.

 

본 포스팅은 여기까지하고 다음 포스팅에 WAS 설정과 관련하여 진행하도록 하겠습니다.

 

'리눅스 > 우분투' 카테고리의 다른 글

MariaDB 설치하기  (0) 2023.04.21
Nginx 설치 및 설정하기  (0) 2023.04.21
composer, nodejs, git 설치하기  (0) 2023.04.21
[vsftpd설치] 우분투 20.04  (0) 2023.04.20
nodejs 버전 업데이트 방법  (0) 2023.04.13