Chapter 12. 원격접속과 FTP
00. 개요 01. 텔넷과 SSH 02. VNC 03. 파일송수신
텔넷서버를설치하고설정할수있다. 수퍼데몬 (xinetd) 의역할을이해하고설정할수있다. 텔넷클라이언트를이용해원격에서리눅스시스템에접속하여작업할수있다. SSH로원격에서접속하여작업할수있다. VNC를설치하고설정하여윈도에서 VNC로접속할수있다. FTP 서버를설치하고설정할수있다. vsftpd 서버를독자형으로설정할수있다. FTP 클라이언트로 FTP 서버에접속하여파일을주고받을수있다.
리눅스실습스터디맵
00 개요 [ 그림 12-1] 12 장의내용구성
01 텔넷과 SSH 텔넷 텔넷 (Telnet) 은원격에서리눅스에접속하는프로그램의이름이기도하지만원래는프로토콜의이름 텔넷을사용하려면텔넷클라이언트와텔넷서버가필요 텔넷클라이언트와텔넷서버가설치되어있는지확인 user1@myubuntu:~$ dpkg -l grep telnet ii telnet 0.17-36build2 i386 The telnet client user1@myubuntu:~$ 텔넷서버설치 우분투에서는텔넷서버가 xinetd 에의해동작 user1@myubuntu:~$ sudo apt-get install xinetd ( 생략 ) user1@myubuntu:~$ sudo apt-get install telnetd ( 생략 ) 다음새패키지를설치할것입니다 : telnetd 0 개업그레이드, 1 개새로설치, 0 개제거및 290 개업그레이드안함. ( 생략 ) telnetd (0.17-36build2) 설정하는중입니다... 사용자 telnetd 을 ( 를 ) utmp 그룹에등록중 user1@myubuntu:~$
01 텔넷과 SSH 텔넷서버활성화하기 1 /etc/xinetd.conf 파일을설정 user1@myubuntu:~$ sudo vi /etc/xinetd.conf ( 생략 ) service telnet disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure = USERID ~ :wq! user1@myubuntu:~$
01 텔넷과 SSH 텔넷서버활성화하기 2 xinetd 데몬을동작시킴 user1@myubuntu:~$ sudo /etc/init.d/xinetd restart * Stopping internet superserver xinetd [ OK ] * Starting internet superserver xinetd [ OK ] user1@myubuntu:~$ ps -ef grep xinetd root 12770 1 0 00:40? 00:00:00 /usr/sbin/xinetd -pidfile /run/ xinetd.pid -stayalive -inetd_compat -inetd_ipv6 user1 12772 11020 0 00:40 pts/6 00:00:00 grep --color=auto xinetd user1@myubuntu:~$
01 텔넷과 SSH 텔넷사용하기 텔넷으로로컬호스트에접속할경우다음과같이바로접속을허용 user1@myubuntu:~$ telnet 0 Trying 0.0.0.0... Connected to 0. Escape character is '^]'. Ubuntu 13.10 myubuntu login:
01 텔넷과 SSH 텔넷사용법 1 텔넷모드사용 : 텔넷을인자없이사용하면다음과같이 > 프롬프트가뜨면서텔넷모드로전환된다. user1@myubuntu:~$ telnet telnet> 여기서 open 명령을사용하여리눅스시스템에접속하거나, quit 명령을사용하여텔넷을종료 user1@myubuntu:~$ telnet telnet> open 192.168.0.2 Trying 192.168.0.2... Connected to 192.168.0.2. Escape character is '^]'. Ubuntu 13.10 myubuntu login:
01 텔넷과 SSH 텔넷사용법 2 직접서버로접속 : 텔넷에인자로접속할서버의주소나호스트이름을지정하면바로해당시스템에접속 user1@myubuntu:~$ telnet localhost Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Ubuntu 13.10 myubuntu login: 주소로접속 user1@myubuntu:~$ telnet 192.168.0.2 Trying 192.168.0.2... Connected to 192.168.0.2. Escape character is '^]'. Ubuntu 13.10 myubuntu login:
01 텔넷과 SSH 윈도에서텔넷사용하기 윈도에서제공하는텔넷클라이언트를이용하거나 한글 putty 같은별도의프로그램을이용 윈도텔넷사용하기 윈도에서는텔넷클라이언트를제공하지만기본적으로설정되어있지는않음 제어판 프로그램및기능 에서 Windows 기능사용 / 사용안함 을선택 Windows 기능 창이뜨는데, 여기서 텔넷클라이언트 를선택하고 확인 을클릭 [ 그림 12-2] Windows 기능사용 / 사용안함창
01 텔넷과 SSH 윈도텔넷클라이언트실행 시작 프로그램및파일검색 에서 telnet 을실행 [ 그림 12-3] 윈도텔넷창 [ 그림 12-4a] 텔넷에서접속할주소지정 [ 그림 12-4b] 텔넷로그인화면
01 텔넷과 SSH iputty 사용하기 iputty는전용원격접속프로그램인 putty가한글화된버전 iputty는문자집합을선택할수있으므로윈도텔넷처럼한글이깨져보이는현상해결가능 iputty는 http://bitbucket.org/daybreaker/iputty/downloads에서다운가능 putty.exe가있는데이파일을실행 : 호스트이름이나 IP 주소를입력하고, 접속형식에서 Telnet 을선택 [ 그림 12-5] iputty 접속창
01 텔넷과 SSH SSH(Secure SHELL) 텔넷클라이언트와리눅스사이에주고받는데이터가암호화되지않는다는단점 SSH는텔넷처럼원격에서시스템에접속할수있도록하지만모든통신을암호화 우분투에서는 SSH 데몬을설치해야함 user1@myubuntu:~$ sudo apt-get install ssh 패키지목록을읽는중입니다... 완료 ( 생략 ) SSH 로처음접속하면암호화기법인 RSA 를사용한인증키를생성할것인지를물어보는데, 이때 yes 를입력하면접속 user1@myubuntu:~$ ssh 192.168.0.2 The authenticity of host '192.168.0.2 (192.168.0.2)' can't be established. RSA key fingerprint is 5a:23:bd:da:aa:aa:bf:d8:b2:04:e6:6b:62:1e:2b:57. Are you sure you want to continue connecting (yes/no)?
01 텔넷과 SSH SSH(Secure SHELL) 윈도에서 SSH 로리눅스에접속하려면 iputty 를사용 : 설정창에서접속형식으로 SSH 를선택 [ 그림 12-7] iputty 롤사용한 SSH 접속화면 [ 그림 12-6] iputty 롤 SSH 접속
02 VNC 원격에서는그래픽환경으로접속 : VNC VNC 서버설치하기 : vnc4server user1@myubuntu:~$ sudo apt-get install vnc4server 패키지목록을읽는중입니다... 완료의존성트리를만드는중입니다상태정보를읽는중입니다... 완료제안하는패키지 : vnc-java 다음새패키지를설치할것입니다 : vnc4server 0 개업그레이드, 1 개새로설치, 0 개제거및 288 개업그레이드안함. ( 생략 ) user1@myubuntu:~$
02 VNC VNC 서버설정하기 1 vncserver 를일단동작 암호와스크립트파일은사용자홈디렉터리의.vnc 디렉터리에생성 user1@myubuntu:~$ vncserver You will require a password to access your desktops. Password: 암호를지정한다. Verify: 암호를다시입력한다. New 'myubuntu:1 (user1)' desktop is myubuntu:1 Creating default startup script /home/user1/.vnc/xstartup Starting applications specified in /home/user1/.vnc/xstartup Log file is /home/user1/.vnc/myubuntu:1.log user1@myubuntu:~$ ls.vnc myubuntu:1.log myubuntu:1.pid passwd xstartup user1@myubuntu:~$
02 VNC VNC 서버설정하기 2 xstartup 파일을열어내용수정 user1@myubuntu:~$ vi.vnc/xstartup ( 생략 ) xsetroot -solid grey #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & # 를추가한다. #twm & # 를추가한다. exec gnome-session & 내용을추가한다. :wq user1@myubuntu:~$ 3 vncserver 를종료했다가다시동작시킴 : 화면의해상도와픽셀의비트수를지정 user1@myubuntu:~$ vncserver -kill :1 Killing Xvnc4 process ID 3922 user1@myubuntu:~$ user1@myubuntu:~$ vncserver :1 -geometry 800x600 -depth 24 New 'myubuntu:1 (user1)' desktop is myubuntu:1 Starting applications specified in /home/user1/.vnc/xstartup Log file is /home/user1/.vnc/myubuntu:1.log user1@myubuntu:~$
02 VNC VNC 서버설정하기 5 방화벽열기 : 5900 번대포트를사용, 5901 과 5902 를등록 user1@myubuntu:~$ sudo ufw disable [sudo] password for user1: 방화벽이비활성되었으며시스템시작시에도시동되지않습니다. user1@myubuntu:~$
02 VNC 리눅스용 VNC 클라이언트설치하고사용하기 user1@myubuntu:~$ sudo apt-get install vinagre ( 생략 ) 다음새패키지를설치할것입니다 : vinagre 0 개업그레이드, 1 개새로설치, 0 개제거및 288 개업그레이드안함. ( 생략 ) vinagre (3.8.3-1) 설정하는중입니다... user1@myubuntu:~$ VNC 클라이언트의명령어는 vinagre vinagre IP 주소 : 디스플레이번호 ( 예 : vinagre 192.168.0.13:1) user1@myubuntu:~$ vinagre 192.168.0.2:1 & TigerVNC Viewer 64-bit v1.3.0 (20130924) Built on Sep 24 2013 at 16:32:56 Copyright (C) 1999-2011 TigerVNC Team and many others (see README.txt) See http://www.tigervnc.org for information on TigerVNC. Wed Oct 9 11:19:23 2013 CConn: connected to host 192.168.0.13 port 5901 Wed Oct 9 11:19:24 2013 CConnection: Server supports RFB protocol version 3.8 CConnection: Using RFB protocol version 3.8
02 VNC 리눅스용 VNC 클라이언트설치하고사용하기 vncviewer 를실행하면암호를물어보는팝업창동작 [ 그림 12-9] VNC 암호입력창 [ 그림 12-10] VNC 클라이언트접속화면
02 VNC 윈도용 VNC 클라이언트설치하기 윈도용 VNC 클라이언트는여러가지가있음 TigerVNC : www.tigervnc.com UltraVNC : www.uvnc.com/downloads/ultravnc.html TigerVNC 설치 [ 그림 12-11] TigerVNC 클라이언트 : 서버설정창
02 VNC 윈도용 VNC 클라이언트접속하기 서버의주소와포트번호를입력하고 Connect 버튼을클릭 [ 그림 12-12] TigerVNC 클라이언트 : 암호입력창 [ 그림 12-13] TigerVNC 클라이언트 : 접속화면
03 파일송수신 FTP 서버설치하기 리눅스에서사용하는대표적인 FTP 서버는 vsftpd user1@myubuntu:~$ sudo apt-get install vsftpd 패키지목록을읽는중입니다... 완료의존성트리를만드는중입니다상태정보를읽는중입니다... 완료다음새패키지를설치할것입니다 : vsftpd 0 개업그레이드, 1 개새로설치, 0 개제거및 287 개업그레이드안함. ( 생략 ) vsftpd start/running, process 7972 ureadahead 에대한트리거를처리하는중입니다... user1@myubuntu:~$
03 파일송수신 vsftpd 독자형동작방식설정하기 1 vsftpd 는설치할때이미동작을시작했다. vsftpd 가동작하는지 ps 명령으로확인해보면 vsftpd 프로세스가동작한다는것을알수있다. user1@myubuntu:~$ ps -ef grep vsftpd root 7972 1 0 17:51? 00:00:00 /usr/sbin/vsftpd user1 8086 3037 0 19:34 pts/5 00:00:00 grep --color=auto vsftpd user1@myubuntu:~$ 2 FTP 서버가정상적으로동작하는지확인 user1@myubuntu:~$ telnet 0 21 Trying 0.0.0.0... Connected to 0. Escape character is '^]'. 220 (vsftpd 3.0.2) quit 221 Goodbye. Connection closed by foreign host. user1@myubuntu:~$
03 파일송수신 FTP 서버접속하기 1 FTP 클라이언트의명령은 ftp: 윈도의 cmd 창에서 ftp 명령으로리눅스시스템에접속 C: >ftp 192.168.0.2 192.168.0.2 에연결되었습니다. 220 (vsftpd 3.0.2) 사용자 (192.168.0.13:(none)): 2 로그인명과암호를정상적으로입력하면로그인되었다는메시지가출력되고프롬프트인 ftp> 가출력 C: >ftp 192.168.0.2 192.168.0.2 에연결되었습니다. 220 (vsftpd 3.0.2) 사용자 (192.168.0.2:(none)): user1 331 Please specify the password. 암호 : 230 Login successful. ftp> 3 만약로그인이름이나암호가틀릴경우다음과같이실패메시지가출력 ( 생략 ) 사용자 (192.168.0.2:(none)): user1 331 Please specify the password. 암호 : 530 Login incorrect. Login failed. ftp>
03 파일송수신 FTP 내부명령
03 파일송수신 파일송수신하기 pwd, dir 명령사용하기 ftp> pwd 257 "/home/user1" ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -r--r--r-- 1 1000 1000 17411 Mar 19 06:36 Packages -rw-r--r-- 1 0 0 408 Mar 26 23:24 dump.out -rw-r--r-- 1 1000 1000 8980 Feb 20 21:19 examples.desktop -rw-rw-r-- 1 1000 1000 5124 Jun 07 2013 gnect_3.8.1-1_all.deb ( 생략 ) drwxr-xr-x 2 1000 1000 4096 Feb 20 21:28?ъ쭊 drwxr-xr-x 2 1000 1000 4096 Feb 20 21:28? 뚯븙 drwxr-xr-x 2 1000 1000 4096 Feb 20 21:28? 쒗뵆由? 226 Directory send OK. ftp: 0.32초 5.91KB/ 초 ftp>
03 파일송수신 get 명령사용하기 : 파일하나가져오기 ftp> cd linux_ex/ch2 250 Directory successfully changed. ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 1000 1000 19436 Feb 22 14:56 data -rw-r--r-- 1 1000 1000 223 Feb 22 12:36 data1.ln lrwxrwxrwx 1 1000 1000 5 Feb 22 14:40 data1.sl -> data1 drwxrwxr-x 3 1000 1000 4096 Feb 22 12:11 one drwxrwxr-x 2 1000 1000 4096 Feb 22 15:10 temp -rw-rw-r-- 1 1000 1000 0 Jan 01 12:00 test 226 Directory send OK. ftp: 0.04 초 8.89KB/ 초 ftp> get data 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for data (19436 bytes). 226 Transfer complete. ftp: 0.16 초 125.39KB/ 초 ftp>
03 파일송수신 mget 명령사용하기 data 와 data1.ln 파일을모두가져오려면 mget 명령을사용 ftp> mget data data1.ln 200 Switching to ASCII mode. mget data? mget 명령을사용할때는각파일을수신할것인지를물어보는데대답하기귀찮으면 mget 명령을사용하기전에 prompt 명령을입력 ftp> mget data data1.ln 200 Switching to ASCII mode. mget data? n mget data1.ln? n ftp> prompt 대화형모드끄기. ftp> mget data data1.ln 200 Switching to ASCII mode. 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for data (19436 bytes). 226 Transfer complete. ftp: 0.00 초 19436000.00KB/ 초 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for data1.ln (223 bytes). 226 Transfer complete. ftp: 0.04 초 5.87KB/ 초 ftp>
03 파일송수신 hash 명령사용하기 : 송수신이진행되고있는지표시 ftp> hash 해시표시인쇄켜기 ftp: (2048 바이트 / 해시표시 ). ftp> get data 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for data (19436 bytes). #########226 Transfer complete. ftp: 0.00 초 19436.00KB/ 초 ftp> bye 명령사용하기 : 접속종료 ftp> bye 221 Goodbye. C: >
03 파일송수신 익명 FTP 사용하기 ID: anonymous, 암호 : 본인의이메일주소 익명 FTP 의허용은 /etc/vsftpd.conf 파일에서설정 user1@myubuntu:~$ sudo vi /etc/vsftpd.conf ( 생략 ) # Allow anonymous FTP? (Disabled by default) anonymous_enable=yes NO 를 YES 로바꾼다. ( 생략 ) user1@myubuntu:~$ sudo service vsftpd restart vsftpd stop/waiting vsftpd start/running, process 8137 user1@myubuntu:~$ 예 : 윈도에서익명으로접속 C: >ftp 192.168.0.2 192.168.0.2 에연결되었습니다. 220 (vsftpd 3.0.2) 사용자 (192.168.0.2:(none)): anonymous 331 Please specify the password. 암호 : 230 Login successful. ftp>