1. SSH 서버 설정
Linux 네트워크 기능을 실습할 시간에 온 걸 환영해! 오늘은 네트워크 지식을 시험에 올려보자! 여기서 너는 SSH 서버 설정, 클라이언트를 통해서 접속하기, 인기 명령어로 네트워크를 진단하기, 그리고 포트 접속 가능 여부를 확인하는 법을 배울 거야. 진짜 네트워크 엔지니어처럼 느껴볼 준비 됐지?
SSH (Secure Shell)란 서버에 안전하게 원격 액세스하기 위한 도구야. 이걸 통해 서버에 접속하고 서버를 마치 바로 앞에 있는 것처럼 관리할 수 있어. 파일 전송도 가능하구.
1단계: SSH 서버 설치
먼저 SSH 서버를 설치하자. Ubuntu나 Debian을 사용 중이라면 다음 명령어를 실행해봐:
sudo apt update
sudo apt install openssh-server -y
만약 Fedora나 CentOS를 사용 중이라면:
sudo yum install -y openssh-server
설치가 끝나면 SSH 서비스가 실행 중인지 확인해봐:
sudo systemctl start ssh
sudo systemctl enable ssh # SSH를 시스템 시작 시 자동으로 실행되게 설정함
sudo systemctl status ssh # 서비스 상태 확인
모든 게 잘 진행됐다면, 서비스가 작동 중인 걸 볼 수 있을 거야.
2단계: SSH 서버 설정
SSH 서버의 설정 파일은 다음 경로에 있어:
sudo nano /etc/ssh/sshd_config
유용한 설정 몇 가지:
PermitRootLogin no—root사용자로의 로그인을 금지함.PasswordAuthentication yes— 비밀번호 인증 활성화.PubkeyAuthentication yes— 키 인증 활성화.
설정을 변경한 후에는 SSH를 재시작해야 해:
sudo systemctl restart ssh
이제 서버는 연결을 받을 준비가 됐어.
3단계: SSH를 통해 서버에 접속하기
다른 컴퓨터에서 (또는 localhost로 로컬 머신에서) 접속 시도해봐:
ssh your_username@your_server_ip
로컬에서 작업 중이라면 your_server_ip를 127.0.0.1로 바꿔. 너의 사용자 비밀번호를 입력하면 터미널을 통해 시스템 안으로 들어갈 수 있어.
2. 키를 사용한 인증 설정
비밀번호 인증은 편리하지만, 보안 측면에서 보면 SSH 키를 사용하는 것이 더 나은 선택이야.
1단계: SSH 키 생성
클라이언트 머신에서 다음 명령어를 실행해:
ssh-keygen
어디에 키를 저장할지 물어볼 거야. 기본적으로 키는 ~/.ssh/ 디렉토리에 저장돼. 그냥 Enter를 눌러.
2단계: 서버에 키 복사
공개 키를 서버로 복사해:
ssh-copy-id your_username@your_server_ip
이제 비밀번호 입력 없이 접속할 수 있어:
ssh your_username@your_server_ip
만약 모든 설정이 올바르게 되어 있다면 축하해! 이제 SSH 서버가 키 인증으로 보호되고 있어.
3. 네트워크 진단 ping 사용
우리는 이미 이 명령어에 대해 알고 있어. 이제 우리 SSH 서버의 연결 가능 여부를 빠르게 검사해보자!
ping -c 4 your_server_ip
서버로부터 응답이 보여야 해. 응답이 없다면, 서버가 실행 중인지 그리고 설정이 올바른지 확인해봐.
4. nslookup와 dig를 사용한 DNS 검사
서버에 도메인 이름이 있으면 DNS를 통해 정상 작동 여부를 확인할 수 있어. 예를 들면:
nslookup 명령어:
nslookup your-domain.com
도메인에 해당하는 IP 주소를 볼 수 있을 거야.
dig 명령어:
이제 전체 정보를 얻어보자:
dig your-domain.com
여러 데이터를 보게 될 텐데, 우리가 관심 있는 부분은 ANSWER SECTION에 있는 IP 주소야.
5. netstat와 ss를 활용한 네트워크 연결 분석
SSH 서버는 기본적으로 포트 22를 리슨하고 있어. netstat를 사용해서 확인해보자:
sudo netstat -tln | grep 22
또는 더 현대적인 툴인 ss를 사용해서 확인할 수도 있어:
sudo ss -tln | grep 22
포트 22가 "LISTEN" 상태라면 (클라이언트 연결을 기다리고 있다면), 서버가 클라이언트를 받을 준비가 된 거야.
6. nc를 사용한 포트 접근성 확인
netcat (또는 nc) 명령은 포트 접근성을 테스트할 수 있게 해줘. 우리 SSH 서버에 연결을 시도해 보자:
nc -zv your_server_ip 22
아마 "Connection to your_server_ip 22 port [tcp/ssh] succeeded!" 같은 메시지를 볼 거야.
연결이 실패했다면, 포트가 방화벽에 의해 차단되었거나 서버가 지정된 포트에서 기다리고 있지 않다는 의미일 수 있어.
7. 실습 과제
이제 모두를 하나의 실습 시나리오로 합쳐보자. 여러분은 다음이 필요할 거야:
- 자신의 컴퓨터나 WSL2 같은 가상 환경에서 SSH를 활성화하기.
- 키를 생성하고 키 기반 인증 설정하기 (비밀번호를 금지하는 방식).
- SSH를 통해 서버에 연결하기.
- 서버 접근 가능성을 확인하기 위해
ping사용하기. nslookup과dig를 사용해 IP 주소 확인하기 (도메인 이름이 있는 경우).netstat,ss,nc를 사용해 서버의 포트 22 확인하기.
이제 원격 액세스를 설정할 수 있을 뿐만 아니라 네트워크 문제를 해결하고, 서버를 진단하고, 진짜 pro처럼 서버를 보호할 준비가 되었어! Linux 구루로 불릴 날도 머지 않았어~
GO TO FULL VERSION