SCP,SFTP,Vncserver
3일차 포스팅은 Remote Service : SSH 를 이용한 SCP,SFTP 와 모니터링 원격이 가능한 VNC에 대해서 포스팅 할겁니다.
기존 CP(Copy), FTP와는 다르게 SCP와 SFTP는 S가 붙어있습니다.
여기서 S는 'Secure' 을 의미합니다.
말 그대로 안심하고 안전하다는 이야기죠..
CP와 FTP는 2일차에서 봤던 Telnet과 같은 '평문전송' 입니다. 평문전송은 정말 보안에 취약하기 때문에 왠만한 기업 리눅스 서버에서는 사용하지 않고, SCP와 SFTP를 사용합니다.
SCP와 SFTP는 SSH와 같이 암호화 전송으로 해킹으로 부터 보다 안전합니다.
그럼 본격적으로 포스팅 하겠습니다.
scp 명령어 : scp 해당파일컴퓨터아이피:/경로/ /자기컴퓨터경로
위 사진으로 설명을 하면
client(clone)서버에 test 폴더를 만든 후 parkchangwoo 라는 파일을 생성해줍니다.
그 다음 server 컴퓨터에서 아까와 같은 명령어를 입력합니다.
scp 100.100.100.101:/test/parkchangwoo /test
처음 접하는 아이피이기 때문에 계속 연결할꺼냐고 물어봅니다. yes를 입력해준 후
해당 컴퓨터 패스워드를 입력해줍니다.
위와 같이 파일이 전송되는 것을 눈으로 볼 수 있습니다.
(test 폴더를 뒤늦게 만들었습니다. 사진을 늦게찍었네요..ㅠ)
이렇게 서버컴퓨터에서 파일을 복사해오는 방법이 있고,
파일을 웹서버에 올려서 다운받게 할 수 있는데요. (웹하드원리)
기존 FTP를 보완한 SFTP 사용법을 이어서 알아보겠습니다.
일단 파일의 용량을 어느정도 있는 것을 업로드 하기위해서 /etc/passwd 파일을 /test 밑에 kkkk 라는 파일로 복사해줍니다.
sftp 사용법 또한 간단합니다.
sftp 아이피 or sftp 계정명@아이피
여기서 계정명@아이피 를 사용하는 이유는 sftp 아이피로는 바로 관리자 계정으로 로그인 할 수 없기 때문입니다. (텔넷도 바로 불가)
그리하여 sftp root@100.100.100.102 를 입력해줍니다.
패스워드를 입력하고
sftp> 라는 라인이 생기게 되는데요/.
여기서
put : 파일을 업로드함
get : 파일을 다운로드함
서버에다가 파일을 지금은 올리는 것이기 때문에 put을 사용합니다.
put /test/kkkk /tmp
(클라이언트 컴퓨터 파일 kkkk 를 서버 /tmp 폴더 아래에 다운로드 시킨다)
그러면
서버 컴퓨터 /tmp 폴더에 kkkk 라는 파일이 자리잡게 됩니다.
실제 기업에서는 방화벽(firewall) 이 항상 리눅스 서버에 붙어 있기 때문에
방화벽을 우회(?) 하는 방법도 포스팅해보겠습니다.
방화벽이 외부에서 내부로 오는 아이피 포트는 차단시켜 줄 수 있지만, 내부에서 외부로 나가는 포트는 차단하지 않습니다.
서버관리자가 엔지니어의 원격지원이 필요한데 포트는 막혀있습니다.
들어오는 포트가 막혀있기 때문입니다.
그렇기 때문에 방화벽의 원리를 이용하여 서버관리자가 엔지니어 컴퓨터의 포트에 세션을 맺게 설정한 후 엔지니어는 포트에 접속만 해주면 엔지니어는 해당 리눅스 서버에 원격으로 접속 할 수 있게 됩니다.
서버관리자가 쳐야하는 명령어 :
* ssh -R 엔지니어포트:localhost(127.0.0.1):22(원격포트) 엔지니어아이피
* netstat -atunup | grep 엔지니어포트 (접속상태 확인)
위와 같이 입력!
LISTEN (ON) 체크!
엔지니어가 쳐야하는 명령어 :
ssh localhost(127.0.0.1) -p 세션맺은포트(엔지니어포트)
엔지니어 컴퓨터에서 1004번 포트를 세션으로 맺었습니다.
방화벽 설정이 되있는데도 불구하고 정상적으로 원격접속이 이루어졌네요.
관리자만 칠 수 있는 ifconfig 명령어도 정상적으로 작동합니다.
마지막으로 vnc 에 대해서 알아볼텐데요.
vnc도 원격 서비스중에 하나입니다.
vnc가 다른 remote 서비스와 다른것은 바로 윈도우 끼리의 원격처럼 데스크의 모든환경 (gnome-desktop) 을 볼 수 있다는 점입니다.
vnc에 대해서 알아보겠습니다~
yum -y instal vnc* 명령어를 이용해 클론과 기존 리눅스 서버에 vncserver을 설치해주세요.
항상 말했듯이 service 해당서비스 restart 명령어를 입력해줍니다.
service vncserver restart (클론도 입력)
리눅스와 리눅스클론에서 vncserver 명령어를 입력하여 비밀번호를 설정해줍니다. (클론도 설정해줘야함)
(설정을 해야 디렉토리와 로그피알이 /root 밑에 폴더에 생김)
원격을 할 리눅스에서는 vncviewer 원격받는컴퓨터아이피:세션번호 를 입력해주세요.
그러면 아까 설정한 6자리의 비밀번호를 입력하라고 합니다. 입력하고 원격을 시도합니다.
위와 깉이 정상적으로 원격이 이루어 지는 것을 확인 할 수 있습니다.
여기서 잠깐!! 분명히 gnome-desktop 환경으로 볼 수 있다고 했는데요 저는?
네 그렇습니다. 또 다른 설정을 해주셔야 합니다.
서버(원격받는리눅스)와 클라이언트(원격하는리눅스) 둘다 위 명령어를 입력하여 줍니다.
unsert ~~~~ 라인과
exec ~~~~ 라인 맨 앞에 있는 # (주석) << 주석처리된 부분을 지워준 후
esc > : > wq 를 입력 후 저장시킨 다음 vi 편집기를 종료시킵니다.
vncserver 를 재 실행해주신후
Xvnc 프로세서를 끝내게 합니다. (위 사진은 미리 찍어서 그런지 Xvnc가 잡히질 않네요)
vncviewer 서버아이피:2 (아까 tui 모드가 1번이므로 2번을 사용해줍니다. 2번: gui)
네이트온 원격과 같이 모든 화면을 볼 수있는 vnc 원격제어가 완벽하게 이루어집니다.
여기까지 클라이언트 서버에서 서버로 혹은 서버에서 클라이언트 쪽으로 업로드,다운로드 하는 sftp,scp (ssh를 기반으로하는) 를 알아보았구요.
네이트온과 같은 vncserver 를 이용해 gui 모드로 서버 컴퓨터를 원격 해보았습니다.