CH.8 원격지 시스템 관리
8.1 텔넷 서버
텔넷은 오랫동안 전통적으로 사용되어 온 원격접속 방법이다.
원격접속: 멀리 있는 장소의 PC에서 내 리눅스 서버에 접속하는 행위이다. (케이블 대신 네트워크 망을 사용)
8.1.1 텔넷 서버 개요
텔넷은 프로토콜로 운영체제와 관계없다.
텔넷의 포트 번호는 23번이다.
서버-클라이언트의 특징
서버 프로그램이 작동할 때 그 서버에 접속하려면 클라이언트 프로그램이 필요하다.
(네이버 웹 서버 - 집에서 웹 클라이언트(웹 브라우저))
- 서버에 접속하려면 클라이언트 프로그램이 반드시 필요하다.
- 서버의 운영체제와 클라이언트의 운영체제가 같아야 하는 것은 아니다.
- 각각의 서버 프로그램에 접속하려면 그에 맞는 별도의 클라이언트 프로그램이 필요하다.
8.1.2 텔넷 서버 구축
1. 텔넷 서버 설치
2. 텔넷 서비스 시작
3. 텔넷 전용 사용자 생성
4. 방화벽 설정(포트 열기)
5. 텔넷 서비스 상시 가동
6. 클라이언트에서 접속
연구 과제 1
Server B를 초기화하시오.
nmcli con mod ens33 ipv4.addr "" ipv4.dns "" ipv4.gateway "" ipv4.method auto connection.autoconnect yes //IP 자동 할당
nmcli con down ens33
nmcli con up ens33
nmcli con sh
rpm -qa | grep telnet //telnet 확인
dnf -y install telnet-server //서버 설치
dnf -y install telnet //클라이언트 설치
systemctl start telnet.socket //telnet 서비스 시작
systemctl status telnet.socket //telnet 상태 확인
//systemctl --now enable telnet.socket //telnet 서비스를 시작하면서 재부팅시에도 상시 가동
firewall-cmd --add-service=telnet --permanent //telnet 서비스를 허용하도록 방화벽 설정, permanent 옵션은 영구적 반영
// firewall-cmd --add-port=23/tcp --permanent //port 번호로 개방
firewall-cmd --reload //방화벽 설정 후 reload 필수
useradd teluser
passwd teluser
telnet IP주소 //클라이언트 프로그램으로 접속
NOTE
원격 접속 시에는 root를 사용하지 않는 것이 보안 상 좋다
설치 시의 패키지 이름과 제어 시의 서비스 이름이 다를 수 있으므로 주의
systemctl : CentOS 7 버전부터 변경된 서비스 제어 명령
IP주소: 컴퓨터의 주소
Port번호: 컴퓨터의 서비스 접근 구역 [0~1023번 포트 = Well-Known Port]
- port 할당 파일: less /etc/services
8.2 OpenSSH 서버
8.2.1 OpenSSH 서버 개요
8.2.2 OpenSSH 서버 구축
연구 과제 2
rpm -qa | grep openssh //server B에 서버와 클라이언트 설치 확인
systemctl status sshd //sshd 상태 확인
firewall-cmd --list-all //방화벽 확인
//클라이언트에서//
ssh-keygen //키 생성
ls ~/.ssh //키 확인
ssh-copy-id root@원격지IP //키 전송
ssh root@원격지IP //원격지 접속
NOTE
보안상 원격접속시 root 로그인은 막고 sudo 권한을 받은 일반사용자와 키를 교환하여 SSH 원격접속하는 것이 이상적이다.
서로 다른 네트워크에서 키를 전송할 경우 1대1로 전송됨(=1:1로만 연결됨, root로 전달할 경우 제한이 덜해짐(?))
전달받은 공개키는 원격지에서는 authorized_keys라는 이름으로 변경되어 저장
키는 총 2개(보내는 키(공개키), 가지고 있는 키(비밀키))
user@blizzard.com
사용자@도메인
연구과제 3
Server B를 초기화한 후 작업하시오.
팀 원간 상호 키 교환을 통한 접속을 할 수 있도록 하시오. 단, 다음과 같이 계정을 연결하시오.
본인의 서버(집이라고 가정)
이니셜_ssh이라는 이름으로 자신의 계정을 생성, 이후 해당 계정이 모두 비밀번호 없이 sudo 권한을 사용할 수 있도록 root에서 설정
출발지는 자신의 이니셜_ssh 계정으로 상대방 서버의 내 이름으로 된 이니셜_ssh 계정으로 키를 전송
이후 root 원격 로그인 및 비밀번호 접속을 막는 보안 조치를 취하여 키로만 SSH가 접속되도록 하시오.
//설정은 연구과제 2에서 이어짐
//원격지
useradd sshuser
passwd sshuser
visudo //111행에 sshuser ALL=(ALL) NOPASSWD: ALL , 일반 사용자(sshuser) sudo 권한 부여
systemctl restart sshd
//클라이언트
useradd csy_ssh
passwd csy_ssh
su - csy_ssh //csy_ssh 접속
ssh-keygen
ls -a ~/.ssh
ssh-copy-id sshuser@IP주소
ssh sshuser@IP주소
//원격지
cat ~/.ssh/authorized_keys
vi /etc/ssh/sshd_config //43행 PermitRootLogin no, 70행 PasswordAuthentication no
//root 보안 설정, password 입력 설정(password 입력을 원천적으로 막기 때문에 원격접속을 할 수 없음)
systemctl restart sshd
NOTE
- /etc 는 전반적인 설정파일
- vi 행 번호 붙이기 :set nu
- vi /etc/sudoers로 파일을 직접 수정하는 것이 아닌 visudo 명령어로 수정
- visudo -> 101행에 sshuser ALL=(ALL) ALL을 추가할 경우, sudo사용시 password 입력 필요
8.3 XRDP 서버
최근 추세에 따라 X 윈도 환경에서 사용되는 유틸리티나 명령이 많으므로 X 윈도 환경 자체를 원격지에서 사용할 수 있게 세팅할 필요가 있다.
8.3.1 XRDP 서버 개요
XRDP 서버란 그래픽 모드로 원격 관리를 사용할 수 있게 도와주는 서버 프로그램이다.
XRDP의 경우Windows의 '원격 데스크톱 연결' 프로그램을 사용해 편리하게 그래픽 환경으로 리눅스를 접할 수 있다는 장점이 있지만 텔넷과 비교했을 때 속도가 느리다는 단점이 있다.
8.3.2 XRDP 서버 구축
1. XRDP 서버 설치
2. 서비스 시작
3, 방화벽 설정
4. 원격 데스크톱에서 접속
연구 과제 4
Server A를 초기화 한 후 작업하시오.
윈도우 호스트 OS에서 XRDP로 상대방의 Server A에 원격 접속하시오.
이후 상대방의 해당 서버 내부에서 설치 디스크를 통해 dnf 명령이 작동할 수 있도록 구성하시오.
단, 설치 디스크가 마운트되는 경로는 /media/mycdrom 디렉터리로 하시오.
이후 dnf -y install mc help2man mariadb 명령어를 통해 작동을 확인하시오. (XRDP 포트번호: 3389)
dnf -y install epel-release
dnf -y install xrdp
systemctl --now enable xrdp
firewall-config
//원격 프로그램 접속
//rocky에게 sudo 권한 부여 or rocky로 로그인 후 su
mkdir /media/mycdrom //마운트할 디렉터리 생성
umount /dev/sda0 //기존 마운트 해제
mount /dev/sda0 /media/mycdrom
mount | tail -1 //마운트 정보 확인
cd /etc/yum.repos.d/
mkdir temp
mv *.repo temp
vi test.repo
dnf -y install mc help2man mariadb
지금까지 구축한 3가지 원격 접속 서버를 비교해 정리하면 다음 표와 같다.
텔넷 서버 | SSH 서버 | XRDP 서버 | |
속도 | 빠름 | 빠름 | 약간 느림 |
그래픽 지원 | X | X | O |
보안 | 약함 | 강함 | 보통 |
사용 가능 명령 | 텍스트 모드의 명령 | 텍스트 모드의 명령 | 제한 없음 |
클라이언트 프로그램 | 대부분의 운영체제에서 기본 제공 | 리눅스에서 기본 제공 Windows에는 별도 설치 필요 |
Windows에서 기본 제공 |