Upload
oprah
View
56
Download
3
Embed Size (px)
DESCRIPTION
Getting Started. 2007. 3. 9 ( 금 ) 김 희 준 [email protected]. 실습준비. 실습 서버 amg.hufs.ac.kr OS : Red hat Linux 9 Intel x86 220.67.124.140 OS : Red hat Linux 9 Intel x86 220.67.124.129 OS : Solaris 5.8 SPARC 세 개의 계정 배정. 실습 시 주의사항 (1/3). 실습용 서버주소 : amg.hufs.ac.kr - PowerPoint PPT Presentation
Citation preview
실습준비 실습 서버
▲ amg.hufs.ac.kr OS : Red hat Linux 9 Intel x86
▲ 220.67.124.140OS : Red hat Linux 9 Intel x86
▲ 220.67.124.129OS : Solaris 5.8SPARC
▲ 세 개의 계정 배정
실습 시 주의사항 (1/3)
실습용 서버주소 : amg.hufs.ac.kr
[Allocation of port numbers]
자신에게 정해진 port 만 사용▲ port number : ‘5xxxx’ 부터 +10 까지
학번 뒤에 4 자리
ex) 학번이 200430128 일때 50128~50138 까지
Command Line Tool
SSH secure shell▲ 네트워크의 다른 컴퓨터에 로그인 할 수 있으며 원격 시스템에서 명령을
실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 프로그램 ftp://ftp.kreonet.re.kr/pub/security/ssh/SSHSecureShellClient-3.2.9.exe 파일 다운 받아 설치
▲ 기능원격 호스트에 로그인 하거나 호스트끼리 데이터를 복사하기 위해 사용강력한 인증방법과 안전하지 못한 네트워크에서 안전하게 통신을 할 수
있는 기능을 제공SSH 는 두 호스트간의 통신 암호화와 사용자 인증을 위하여 공개 열쇠
암호 기법을 사용세션 하이젝킹 (Session Hijacking) 과 DNS 스푸핑을 방지
SSH secure shell
Main Window
▲ Green : Will connect Remote Host▲ Violet : Register Remote Host▲ Red : New Terminal▲ Blue : New File Transfer
SSH secure shell
Connecting host▲ Click Connect or Quick Connect
Connecting host▲ Input Parameters
Host IP or Domain Name ID, PasswordPort
Connecting host▲ Result
SSH secure shell
File Transfer
UNP Library (1/2)
Wrapper function - W. Richard StevensSolaris, Linux, FreeBSD 등에 설치 가능Libunp.a, libfree.a, libroute.a, libxti.a 로 구성
※ XTI [ X/Open Transport Interface ]OSI 기본 참조 모델의 제 4 계층 (transport layer) 에서의 응용 프로그램 인터페이스 (API) 에 대한 X/Open 의 규정 . 이 API 를 사용하면 제 3계층 이하의 어떤 망 방식을 사용하든 관계없이 망 응용 프로그램을 작성할 수 있다 .
UNP library 의 directory 구조
▲ config*.* : library 설치관련 파일ex> config.h, config.h.in, config.log, config.status, configure.in 등
▲ libunp.a : UNP library archive 파일▲ lib, libfree : library 에서 추가한 함수들의 object 파일
UNP library (2/2)
각 chapter 의 source code (ex> intro, select…)unpv13e
libunp.a
lib
libfree
config*.*
UNP library - install http://www.unpbook.com/unpv13e.tar.gz
SSH Secure Shell 을 이용하여 file upload 압축해제
gunzip unpv13e.tar.gztar xvf unpv13e.tar
설치방법cd unpv13e # into the basic directory that all programs need
./configure # try to figure out all implementation differences
cd lib # build the basic library that all programs needmake # use "gmake" everywhere on BSD/OS systems
cd ../libfree # continue building the basic librarymake
cd ../intro # build and test a basic client program make daytimetcpcli ./daytimetcpcli 127.0.0.1
tar xvfz unpv13e.tar.gz
Source Editing Tool
Source Insight▲ 객체지향의 프로그램 편집기▲ 코드 브라우저로 C/C++, C# 및 Java program 의 분석기를 내장▲ 소스 코드를 분석하여 작업 중에 동적으로 기호정보에 관한 자체
데이터베이스를 유지자동적으로 유용한 문맥 (contextual) 정보를 제공
▲ 소스코드 및 소스정보를 빨리 찾아주는 기능 ▲ 소스편집도중 소스코드와 소스정보를 빠르게 찾아 바로 유용한 정보 및 분석을
제공
Source Insight (Main Window)
Source Insight 사용 (1/4)
Project 를 생성
Source Insight 사용 (2/4)
환경설정 및 Source 가 위치할 디렉토리 선택
Source Insight 사용 (3/4)
참고 및 소스확인이 필요한 파일들 프로젝트에 첨부
Source Insight 사용 (4/4)
소스 에디팅
원격 디렉토리 관리
네트워크 드라이브 연결▲ 한번 등록으로 계속 사용▲ 사용방법
탐색기의 도구창의 네트워크 드라이브 기능
직접 접속 연결▲ 사용시 직접 ip address 입력을 통한 연결▲ 컴퓨터 전원 오프시나 창을 닫은 후에는 다시 연결 필요▲ 사용방법
시작의 실행 창 클릭 Ip address 입력
Netstat
활성화된 연결에 대한 여러 네트워크 관련 데이터 구조의 내용을 표시▲ 열려있는 포트번호 같은 네트워크 상태를 확인하기 위해 사용
Command option
Option Discription
-a현재 다른 호스트와 연결 (Established) 되어 있거나 , 대기 (Listening) 중인 모든 포트번호 확인
-r 라우팅 테이블 확인 및 Connection 되어 있는 포트번호 확인
-n현재 다른 호스트와 연결 (Established) 되어 있는 포트번호 확인 (IP 주소로 화면출력 )
-i 네트워크 의 패킷 전송 상태를 검사
-c Netstat 의 결과를 연속적으로 출력
-l 현재 listen 되고 있는 소켓 정보 출력
-p 실행되고 있는 각 프로그램과 PID 정보 출력
Netstat ( 실행 화면 )
Linux Command
디렉토리 생성 ▲ # mkdir directory_name
Compile Example▲ Makefile 사용▲ Simple Makefile Example
Linux Command
ltrace ▲ Library call tracer▲ 프로세스가 호출하는 공유 library 함수를 출력▲ 사용방법
# ltrace 실행파일명 실행되는 프로그램에서 호출하는 공유 library 함수를 출력
# ltrace –f 실행파일명 Fork 된 자식 프로세스가 요청하는 공유 library 함수까지 출력
# ltrace –p [PID] 현재 실행되고 있는 프로세스의 함수요청을 출력
# ltrace –S 실행파일명 시스템콜과 함수 호출 모두 출력
Program Compile & Run test - Echo client (1/2)
주어진 source 를 참고하여 Source insight 로 echo client 를 작성int main(int argc, char **argv){
int sockfd;struct sockaddr_in servaddr;
/* Echo client 의 argument 확인하는 부분 추가 - argv[1] : server 의 IP address - argv[2] : server 의 port number (default:7) */
sockfd = socket(AF_INET, SOCK_STREAM, 0);bzero(&servaddr, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_port = htons(7);inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr));
/* 사용자의 입력을 받아 echo서버로 전송하고 서버로부터의 데이터를 화면에 출력 (교재 p.88 참고 ) */
exit(0);}
Program Compile & Run test - Echo client (1/2)
▲ 요구사항UNP library 를 사용하지 말것소스 디렉토리는 따로 생성 ( unp 폴더 밑에 생성금지 )실행 옵션
echo_client [Server IP address] [port_number] argument 를 주지 않았을 경우 사용방법 출력
ex) usage : echo_client [server IP address] [port_num]
‘port_number’ argument 를 주지 않았을 경우 기본값 (50007) 으로 처리
각 API 의 에러처리완성된 echo client 를 220.67.124.140 에서 실행하여 amg.hufs.ac.kr
(220.67.124.142) 과 테스트 ▲ 참고자료
David A. Curry, UNIX System Programming for SVR4, O’Reilly
프로그램 Run 이전과 이후의 네트워크 상태 변화 체크 ▲ Netstat 를 이용하여 확인▲ ltrace 를 사용하여 주어진 프로그램의 상태 체크 ( for debugging )