Source : http://blog.naver.com/jhseo1225?Redirect=Log&logNo=80016797672

 

▨ NTP Server List (국내 시간서버 목록)

time.nuri.net ==> 211.115.194.21
time.bora.net ==> 203.248.240.103

▨ router ntp server (시간서버) 설정하기.

Cisco Router에서 show clock 명령어를 쳐보면
현재시간과 라우터와의 시간이 전혀 엉뚱하게 나타날 경우 설정 방법.

1. 수동으로 시간을 설정하는 방법.

Router#clock set 22:33:10 2 jul 2003

단점 : 이렇게 임의로 라우터의 시간 설정을 변경할수도 있지만 만약 라우터가 재부팅되면 위의 시간 설정은 다시 지워져 버림.

2. 시간서버와 맞추워 시간을 설정하는 방법.

Router#
Router#conf t
Router(config)#ntp server 203.248.240.103
Router(config)#exit
Router#wr

위와 같이 설정하면 203.255.112.96의 ntp서버와 라우터의 시간이 동기화되어 현재의 대한민국 시각으로 표시 됨.
show log했을때도 정확한 시간으로 출력 됨.

3. 시간서버 설정 후 한국시간 맞추기 gmt +9.

Router#
Router#conf t
Router(config)#clock timezone gmt +9
Router(config)#exit
Router#wr

신고

'Network > Miscellaneous' 카테고리의 다른 글

Router Timer Set  (0) 2009.05.17
Netflow Configuration Command  (0) 2009.05.17
Netflow Setting  (0) 2009.02.19
Netscreen Troubleshoot  (0) 2009.02.19
[netscreen] OS의 백업과 업그레이드  (0) 2009.02.11
넷스크린 장비 공장출고상태로 돌리기  (0) 2009.02.10

Source : http://kldp.org/node/104430

 

router#enable
Password:*****
router#configure terminal
router-2621(config)#interface FastEthernet 0/1
router-2621(config-if)#ip route-cache flow
router-2621(config-if)#exit
router-2621(config)#ip flow-export destination 192.168.10.5 9996
router-2621(config)#ip flow-export source FastEthernet 0/1
router-2621(config)#ip flow-export version 9
router-2621(config)#ip flow-cache timeout active 1
router-2621(config)#ip flow-cache timeout inactive 15
router-2621(config)#snmp-server ifindex persist
router-2621(config)#^Z
router#write
router#show ip flow export
router#show ip cache flow

신고

'Network > Miscellaneous' 카테고리의 다른 글

Router Timer Set  (0) 2009.05.17
Netflow Configuration Command  (0) 2009.05.17
Netflow Setting  (0) 2009.02.19
Netscreen Troubleshoot  (0) 2009.02.19
[netscreen] OS의 백업과 업그레이드  (0) 2009.02.11
넷스크린 장비 공장출고상태로 돌리기  (0) 2009.02.10
Source : http://cafe.naver.com/codeway



Chapter 2

초간단 채팅 클라이언트 작성

본 강좌는 “델파이로 만드는 네트워킹 게임”을 목적으로 작성하던 것을 다시 수정 보안하여 만들어 가고 있는 것입니다.

네트워킹의 기본적인 기술 및 지식은 설명하지 않을 생각입니다. 이러한 기본 정보가 필요하신 분들은 네트워킹에 관한 인터넷 자료나 서적을 미리 한 번 읽어보시길 권장합니다.

우선은 채팅 프로그램을 작성하면서 델파이로 작성되는 네트워킹 프로그램의 기본적인 개념을 단계별로 설명하고, 추후 게임까지 연장해 보도록 하겠습니다.

http://cafe.naver.com/codeway 로 가시면 부족하지만 그 동안의 작업들을 보실 수 있습니다.

2004년 2월 25일, 류종택 드림.



본 강좌에서 사용되는 콤포넌트는 Indy 콤포넌트 입니다. http://www.nevrona.com/indy 로 가시면 해당 콤포넌트에 대한 상세한 정보를 얻으실 수 있습니다. 이 강좌에서는 인디 콤포넌트 중에서도 TCP/IP 통신용 콤포넌트를 중심으로 설명하게 됩니다.

l 강좌 대상 : 델파이로 네트워킹(소켓) 프로그래밍을 처음 해보시는 분

l 강좌 목적

- C/S (클라이언트/서버) 방식의 1:n 네트워킹 프로그램의 개념적 이해

- Indy 콤포넌트의 TCP/IP 콤포넌트의 기본적인 사용 방법 연습

프로퍼티 설정

Array

[그림 2.1] 메인폼(TForm1)

1: object Form1: TForm1
2: Width = 580
3: Height = 340
4:
5: object Panel1: TPanel
6:   Align = alBottom
7:   BevelOuter = bvNone
8:
9: object edUserName: TEdit
10: Left = 8
11: Top = 8
12: Width = 121
13: Height = 21
14: Text = '
15: end
16: object edMsg: TEdit
17: Left = 136
18: Top = 8
19: Width = 345
20: Height = 21
21: Text = '
22: OnKeyPress = edMsgKeyPress
23: end
24: object Button1: TButton
25: Left = 494
26: Top = 8
27: Width = 75
28: Height = 25
29: Anchors = [akTop, akRight]
30: Caption = '??¼?'
31: OnClick = Button1Click
32: end
33: end
34:
35: object moMsg: TMemo
36: Align = alClient
37: ReadOnly = True
38: end
39:
40: object IdTCPClient1: TIdTCPClient
41: Host = '127.0.0.1'
42: Port = 1234
43: end
44:
45: object IdAntiFreeze1: TIdAntiFreeze
46: end
47:
48: object Timer1: TTimer
49: Interval = 300
50: OnTimer = Timer1Timer
51: end
52:
53: end


전반적인 프로퍼티 설정 방법 및 순서는 동영상 자료를 참고하시기 바랍니다. (http://cafe.naver.com/codeway)

22: 라인에서 사용자가 대화 내용을 입력하고 엔터키를 치면 대화내용을 서버로 전송하기 위해 키가 눌려질 때 발생하는 이벤트를 사용하였습니다. 이벤트 핸들러에서는 눌러진 키가 엔터키일 경우에는 서버로 메시지를 전달하고 현재 대화내용은 다음 대화내용을 작성하기 위해 공백으로 바꿔버리도록 코딩하기로 하겠습니다.

31: 라인에서는 채팅을 하기 위해 서버에 접속하기 위한 버턴이 클릭되었을 때 실행될 이벤트를 사용하였습니다. 이후 버턴이 눌러지면 서버로 접속하도록 코딩하겠습니다.

37: 라인은 대화내용을 순서대로 화면에 표시할 TMemo 콤포넌트를 읽기전용으로 변경하는 것입니다.

40: 라인에서 내려놓은 TidTCPClient 콤포넌트는 TCP/IP 클라이언트용 컴포넌트 입니다. 서버로 접속하여 메시지를 전달하거나 수신할 수 있는 기능을 갖추고 있습니다.

41-42: 라인에서는 서버로 접속하기 위하여 서버의 주소와 포트 번호를 지정하였습니다. ‘127.0.0.1’은 자신의 컴퓨터로 접속할 때 사용하는 IP 주소입니다.

45: 라인에서 TidAntiFreeze는 인디 콤포넌트가 송수신을 할 때 사용자 인터페이스를 멈추게(얼도록)할 수가 있습니다. 즉, 채팅 클라이언트 프로그램이 잠시 “응답없음” 상태와 같이 정지된 상태가 되는 것을 말합니다. 해당 콤포넌트는 이러한 현상을 방지하여 줍니다. 사용법은 내려놓기만 하면 스스로 작동합니다.

48: 라인에서 서버로부터 메시지가 전달 되었는지 수시로 점검하기 위해서 TTimer 콤포넌트를 사용하였습니다.

49: 라인에서는 서버로부터 메시지가 전달 되었는지 점검하는 시간을 300ms (300/1000초) 간격으로 지정하였습니다.

50: 라인에서는 타이머가 지정된 시간마다 발생하는 OnTimer 이벤트를 이용하여 서버로부터 메시지가 전달되었는 지 확인하게 됩니다.

소스 분석

1: unit uClient;
2:
3: interface
4:
5: uses
6: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7: Dialogs, StdCtrls, ExtCtrls, IdAntiFreezeBase, IdAntiFreeze,
8: IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient;
9:
10: type
11: TForm1 = class(TForm)
12: moMsg: TMemo;
13: Panel1: TPanel;
14: edUserName: TEdit;
15: edMsg: TEdit;
16: IdTCPClient1: TIdTCPClient;
17: IdAntiFreeze1: TIdAntiFreeze;
18: Button1: TButton;
19: Timer1: TTimer;
20: procedure Button1Click(Sender: TObject);
21: procedure Timer1Timer(Sender: TObject);
22: procedure edMsgKeyPress(Sender: TObject; var Key: Char);
23: private
24: { Private declarations }
25: public
26: { Public declarations }
27: end;
28:
29: var
30: Form1: TForm1;
31:
32: implementation
33:
34: {$R *.dfm}
35:
36: procedure TForm1.Button1Click(Sender: TObject);
37: begin
38: IdTCPClient1.Connect;
39: end;
40:
41: Function ReceiveText(IdTCPClient:TIdTCPClient):String;
42: Var
43: Data : Pointer;
44: DataSize : Integer;
45: ssData : TStringStream;
46: Begin
47: DataSize:= IdTCPClient.ReadFromStack(True, 5, False);
48: If DataSize = 0 then Begin
49: Result:= ';
50: Exit;
51: End;
52:
53: GetMem(Data, DataSize);
54: ssData:= TStringStream.Create(');
55: Try
56: IdTCPClient.ReadBuffer(Data^, DataSize);
57: ssData.Write(Data^, DataSize);
58: ssData.Position:= 0;
59: Result:= ssData.DataString;
60: Finally
61: FreeMem(Data);
62: ssData.Free;
63: End;
64: End;
65:
66: procedure TForm1.Timer1Timer(Sender: TObject);
67: Var
68: stText : String;
69: begin
70: If IdTCPClient1.Connected = False then Exit;
71:
72: stText:= ReceiveText(IdTCPClient1);
73: If stText <> ' then moMsg.Lines.Add(stText);
74: end;
75:
76: procedure TForm1.edMsgKeyPress(Sender: TObject; var Key: Char);
77: begin
78: If Key = #13 then Begin
79: Key:= #0;
80: IdTCPClient1.WriteLn(Format('%s> %s', [edUserName.Text, edMsg.Text]));
81: edMsg.Text:= ';
82: End;
83: end;
84:
85: end.


38: 라인은 서버로 접속하는 부분입니다. 이미 주소와 포트를 프로퍼티 설정 부분에서 지정해 주었기 때문에 우리는 단순히 Connect 메소드만 실행하는 것만으로도 충분합니다.

41-64: 라인은 TidTCPClient 콤포넌트의 ReadLn 메소드의 버그를 피하기 위해서 필자가 작성한 함수 입니다. 지금은 버그가 패치된 버전이 있으니 http://www.nevrona.com/indy에서 새로운 버전을 다운 받아 설치하시면 이 함수는 굳이 작성하지 않으셔도 됩니다. 이것저것 귀찮거나 헛갈리시는 분들은 우선 ReceiveText 함수를 사용하시기 바랍니다.

66-74: 라인은 주기적으로 서버로부터 메시지가 전송 되었는지 확인하고, 메시지가 수신되었으면 화면(TMemo)에 표시하는 부분입니다.

72: 라인은 버그가 패치된 인디를 설치하였을 경우에는 stText:= IdTCPClient1.ReadLn(', 5); 로 변경하셔도 됩니다.

76-83: 라인은 사용자가 대화내용을 입력하고 엔터키를 입력할 때 서버로 메시지를 전송하는 부분입니다.

78: 라인에서는 눌러진 키값이 엔터키와 같은 지 비교합니다. 엔터키가 눌러지면 Key 변수는 #13 즉, 13번 아스키 문자가 입력됩니다.

79: 라인에서는 엔터키 일 때에는 키값을 아무것도 안눌러졌음으로 변경했습니다. 이는 TEdit 콤포넌트에서 엔터키를 치면 “팅”하는 소리가 나는 것을 방지하기 위해서 입니다. 대화내용을 전송할 때 마다 “팅”, “팅”하는 소리가 난다면 그다지 대화하고픈 분위기가 되지는 않을 테니까요 ^^

80: 라인에서는 입력된 메시지와 입력된 사용자 이름을 “이름> 대화내용”과 같은 방식으로 서버에 전송합니다. 이후 모든 클라이언트에 해당 형식으로 전송되어 화면에 나타나게 됩니다.

81: 라인에서는 입력창을 비워서 다음 대화내용을 입력 받을 수 있도록 준비합니다.

실행 및 테스트

Array

[그림 2.2] 채팅 프로그램을 실행한 화면

서버를 실행한 후 클라이언트 프로그램 두 개를 띄우고 각각 접속 버턴을 누르시기 바랍니다. 이후 각각의 클라이언트의 왼쪽에 있는 입력창에 자신의 대화명을 각각 입력하고 오른쪽 옆에 있는 메시지 입력창에 대화내용을 입력하고 엔터키를 치면 위의 화면처럼 서로 대화를 나눌 수 있게 됩니다.

원거리에 있는 사용자들 끼리 사용하고자 할 때에는 서버의 IP 주소를 다시 입력하시고 컴파일 한 후에 사용하시기 바랍니다.

끝으로

다음에는 1:1 메시지 전달, 귓속말 그리고 로그인 처리 등과 같은 기능을 하나씩 추가해 나가며 강좌를 진행해 나가도록 하겠습니다.
신고

Source : http://cafe.naver.com/codeway

Chapter

1

초간단 채팅서버 작성

본 강좌는 “델파이로 만드는 네트워킹 게임”을 목적으로 작성하던 것을 다시 수정 보안하여 만들어 가고 있는 것입니다.

네트워킹의 기본적인 기술 및 지식은 설명하지 않을 생각입니다. 이러한 기본 정보가 필요하신 분들은 네트워킹에 관한 인터넷 자료나 서적을 미리 한 번 읽어보시길 권장합니다.

우선은 채팅 프로그램을 작성하면서 델파이로 작성되는 네트워킹 프로그램의 기본적인 개념을 단계별로 설명하고, 추후 게임까지 연장해 보도록 하겠습니다.

http://cafe.naver.com/codeway 로 가시면 부족하지만 그 동안의 작업들을 보실 수 있습니다.

2004년 2월 23일, 류종택 드림.

 

본 강좌에서 사용되는 콤포넌트는 Indy 콤포넌트 입니다. http://www.nevrona.com/indy 로 가시면 해당 콤포넌트에 대한 상세한 정보를 얻으실 수 있습니다. 이 강좌에서는 인디 콤포넌트 중에서도 TCP/IP 통신용 콤포넌트를 중심으로 설명하게 됩니다.

l 강좌 대상 : 델파이로 네트워킹(소켓) 프로그래밍을 처음 해보시는 분

l 강좌 목적

- C/S (클라이언트/서버) 방식의 1:n 네트워킹 프로그램의 개념적 이해

- Indy 콤포넌트의 TCP/IP 콤포넌트의 기본적인 사용 방법 연습

초간단 채팅 프로그램의 동작 설명

Array

[그림 1.1] 초간단 채팅 프로그램의 동작 설명

우리가 만들어야 할 초간단 채팅 프로그램은 [그림 1.1]에서 처럼 사용자 A가 서버에게 대화 메시지를 전송하면, 그 메시지를 접속된 모든 사용자에게 그대로 전달하는 것입니다. 어떤 한 사용자의 대화내용이 동시에 다른 접속자들에게 항상 전달되어 채팅방의 가장 기본적인 기능을 구현해 보는 것입니다.

동영상 강좌 및 소스

http://cafe.naver.com/codeway에 예제 프로그램의 작성과정을 동영상으로 제작하여 올리도록 하겠습니다. 우선 동영상으로 전반적인 흐름과 프로퍼티 설정 등에 관한 수순을 익혀두시고, 본 강좌를 따라서 직접 프로그램을 작성하시기를 권장합니다.

예제에 필요한 소스도 필요하신 분들은 카페에 방문하여 다운 받아 가시길 바랍니다.

프로퍼티 설정

Array

[그림 1.2] 메인폼(TForm1)

1: object Form1: TForm1

2: Width = 270

3: Height = 160

4:

5: object IdThreadMgrDefault1: TIdThreadMgrDefault

6: end

7:

8: object IdTCPServer1: TIdTCPServer

9: DefaultPort = 1234

10: Active = True

11: ThreadMgr = IdThreadMgrDefault1

12: OnExecute = IdTCPServer1Execute

13: end

14: end

동영상 강좌에서 작업한 속성 변경내용을 순서대로 정리해둔 것들입니다.

2-3: 라인은 메인폼의 크기를 작게 조정한 것 입니다.

9-11: 라인은 인디의 TCP 서버 소켓 콤포넌트인 IdTCPServer1의 속성을 설정한 것입니다. 포트 번호는 1234번으로 설정하였습니다.

11: 라인에서는 서버에서 생성되는 쓰레드를 관리할 메니저 콤포넌트를 지정하였습니다. 인디 콤포넌트의 쓰레드 메니저는 두 가지가 있으며, 클라이언트 접속에 따라 쓰레드가 너무 많이 증가되기를 원하지 않을 때에는 TIdThreadMgrDefault 대신 TIdThreadMgrPool 콤포넌트를 사용하시면 됩니다. 잘 모르시는 분들은 우선 예제처럼 TIdThreadMgrDefault를 사용하셔도 무난합니다.

12: 라인에서는 클라이언트에서 메시지가 도착하면 이어서 서버에서 해야 할 동작을 구현할 함수를 OnExecute 이벤트에 지정합니다. 해당 함수는 이벤트 핸들러라고 불리며, 이벤트가 발생하면 실행될 함수라고 생각하시면 됩니다.

소스 분석

1: unit uServer;

2:

3: interface

4:

5: uses

6: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

7: Dialogs, IdThreadMgr, IdThreadMgrDefault, IdBaseComponent, IdComponent,

8: IdTCPServer;

9:

10: type

11: TForm1 = class(TForm)

12: IdTCPServer1: TIdTCPServer;

13: IdThreadMgrDefault1: TIdThreadMgrDefault;

14: procedure IdTCPServer1Execute(AThread: TIdPeerThread);

15: private

16: { Private declarations }

17: public

18: { Public declarations }

19: end;

20:

21: var

22: Form1: TForm1;

23:

24: implementation

25:

26: {$R *.dfm}

27:

28: procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);

29: Var

30: List : TList;

31: Loop : Integer;

32: stReceivedText : String;

33: IdPeerThread : TIdPeerThread;

34: begin

35: stReceivedText:= AThread.Connection.ReadLn(', 5);

36: If stReceivedText = ' then Exit;

37:

38: List:= IdTCPServer1.Threads.LockList;

39: Try

40: For Loop:= 0 to List.Count-1 do Begin

41: IdPeerThread:= TIdPeerThread(List.Items[Loop]);

42: Try

43: IdPeerThread.Connection.WriteLn(stReceivedText);

44: Except

45: IdPeerThread.Stop;

46: End;

47: End;

48: Finally

49: IdTCPServer1.Threads.UnlockList;

50: End;

51: end;

52:

53: end.

 

35: 라인에서는 클라이언트 에서 어떤 메시지가 도착했다는 이벤트가 발생하고, 이어 그 메시지를 읽어낸 후 문자열 변수 stReceivedText에 메시지를 저장합니다. 여기서 AThread는 각 클라이언트에서 날아드는 메시지를 처리할 쓰레드를 지칭합니다. ReadLn(‘’, 5)에서 5의 의미는 5ms(5/1000 초) 동안만 메시지를 기다린다는 뜻입니다.

36: 라인에서는 클라이언트에서 전송된 메시지가 없을 때는 현재의 함수를 빠져나가서 아무것도 처리하지 않겠다는 뜻입니다.

여기서 의문점이 생길 것입니다. OnExecute 이벤트가 클라이언트에서 메시지가 전달되어 올 때 발생한다고 하였는데도, 클라이언트에서 날아온 메시지가 있는 지 없는 지를 판단해야 한다는 점입니다.

38: 라인에서는 현재 접속된 클라이언트 컨넥션의 목록을 받아오면서 해당 목록을 잠가 둡니다. LockList는 목록을 잠그면서 목록을 TList 타입으로 반환하여 줍니다. 따라서 어떤 클라이언트들 연결되어 있는 지의 정보가 TList에 저장됩니다.

목록을 잠그는 이유는 만약 10 개의 접속이 있었고 10 번째 접속된 클라이언트에게 메시지를 보내려고 하는데, 클라이언트가 접속을 종료하여 연결 상태의 변동이 생기면 존재하지 않는 접속에 코드가 진행되면서 에러가 발생하기 때문입니다. 마치 식당에서 아직 다 먹지도 않았는데 접시를 치워서 식탁에 포크를 처박아 버리는 것과 같은 일이 발생합니다.

실제 상황에서 웃고 말일이지만, 네트워크 프로그래밍에서는 서버가 죽어버리는 현상이 발생합니다. 특히 1:n 접속이 이루어 지는 서버에서는 치명적인 에러의 대부분은 이와 같은 교통정리의 문제가 많습니다.

LockList로 잠긴 상태에서는 클라이언트가 접속을 끊어도 서버는 해당 연결을 삭제하는 것을 유보하게 됩니다. 물론 연결이 이미 끊어진 클라이언트로 메시지는 갈 수 없다는 상황은 변하지 않습니다.

40-47: 라인에서는 클라이언트 연결 수만큼 반복하면서 모든 연결된 클라이언트에 메시지를 전송하게 됩니다.

41: 라인에서는 지정된 쓰레드를 다룰 수 있는 클래스 TIdPeerThread를 목록에서 받아옵니다.

43: 라인에서는 TIdPeerThread.Connection의 메소드 WriteLn을 이용해서 실제 메시지를 전송하는 구현이 되어 있습니다.

45: 라인은 이 과정에서 에러가 발생하면 해당 연결을 종료하고자 쓰레드를 종료하도록 설정합니다. 이때 쓰레드는 당장 사라지지는 않습니다. 아까 우리가 잠가 놨으니까요.

49: 라인에서는 잠가 뒀던 목록을 풀어줍니다. “Try Finally End”를 사용한 이유는 목록이 잠긴 채 에러가 발생하여 영영 목록이 잠가 지는 것을 방지하기 위함입니다.

끝으로

간단하게 1:n 네트워크 서버 프로그래밍의 기본적인 설명을 마치도록 하겠습니다. 이어서 다음 강좌에서는 클라이언트를 작성하고 테스트하는 과정을 설명하도록 하겠습니다.

신고

Source : http://jaewook.net/entry/router-net-flow-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

 

라우터의 인터페이스에서 발생하는 네트웍트래픽을 추적하고 리포트하고자할때...
net flow를 설정하여 사용할수있습니다.


먼저 라우터를 CEF 스위칭 모드로 작동시킵니다.
CEF란 Cisco Express Forwarding의 약자입니다.
아래와 같이 설정합니다.
router(config)#ip cef

1. 확인해야할 인터페이스로 이동하고나서 아래의 명령을 실행합니다.
router(config)#int Hssi1/0
router(config-if)#ip route-cache flow
router(config-if)#ip accounting output-packets  (아이피사용현황을 확인할때 씀, net flow와 무관)
router(config-if)#interface FastEthernet0/1
router(config-if)#ip route-cache flow

2. export할 소스인터페이스와 버전을 선언하고 destination및 해당포트를 설정합니다.
router(config)#ip flow-export source FastEthernet0/1
router(config)#ip flow-export version 5
router(config)#ip flow-export destination 121.131.87.190 9995

신고

'Network > Miscellaneous' 카테고리의 다른 글

Router Timer Set  (0) 2009.05.17
Netflow Configuration Command  (0) 2009.05.17
Netflow Setting  (0) 2009.02.19
Netscreen Troubleshoot  (0) 2009.02.19
[netscreen] OS의 백업과 업그레이드  (0) 2009.02.11
넷스크린 장비 공장출고상태로 돌리기  (0) 2009.02.10

Source : http://jaewook.net/entry/netscreen-트러블-슈팅하기

 

netscreen장비에서 트러블슈팅할때 다음과 같은 순서로 하면 큰 도움이 됩니다.
get clock   (이외로 이것때문에 장비가 정상작동하지않을수있습니다.)
get system,get interface (uptime,version)
get chassis (온도 , 모듈구조)
get session info (몇번수)
get perf sess det
get perf cpu
get perf cpu det
get couters stat int eth1
get sess proto 6
    get session 명령실행시 재빨리 Ctr+C 누르지않으면 엄청난 라인을 보게됩니다. ^^
get sess proto 17
get sess proto 1
(평소에 사용하는 프로토콜별 비율을 체크하세요)
get sess proto 17 dst-port 1026 (예제)

평소의 정상적인 상황에서의 위 항목의 수치들을 반드시 체크하고 계시기 바랍니다.
비정상 상황에서의 문제를 빨리 파악할수있게되고 조치도 빨라집니다.

IPS를 두는것보다  아래와 같은 카테고리로 네트웍을 관리하면 정말 튼튼한 네트웍을 구축할수있습니다.
▶ profilling
▶ behavior-based
▶ anomaly

신고

'Network > Miscellaneous' 카테고리의 다른 글

Netflow Configuration Command  (0) 2009.05.17
Netflow Setting  (0) 2009.02.19
Netscreen Troubleshoot  (0) 2009.02.19
[netscreen] OS의 백업과 업그레이드  (0) 2009.02.11
넷스크린 장비 공장출고상태로 돌리기  (0) 2009.02.10
Mixed Ethernet and USB networks  (0) 2009.01.06

Source : http://www.jaewook.net/entry/nestcreen-screening

 

netscreen에서 튼튼하면서 성능을 보장하는 정책을 펼치려면 어떻게 해야할까요..
아래의 3단계의 순서로 보안을 하시면 됩니다.

라우팅 -> Screening -> 필터링


1.
라우팅 (Routing)
적절한 라우팅이 먼저 우선해야합니다.
특히 직접연결된 네트웍대역에 대해 Null라우팅을 사용해야합니다.
웜이 창궐할때 또는 내부 네트웍 일부에 문제가 생겼을때 Null라우팅은 위력을 발휘하게 됩니다.
직접연결된 네트웍은 가장 우선시되기때문에 실제로 연결된 네트웍에 Null라우팅을 넣어도
평시엔 작동하지않습니다.  내부네트웍에 문제가 생겼을때만 직접연결된 네트웍에 대한 Null라우팅이
작동하게 됩니다.  이렇게 준비하지않으면 문제발생시 엄청난 루핑이 발생하게 됩니다. 이로 인해
네트웍장비의 CPU가 올라가고 네트웍대역을 더욱 많이 소모하게 되는 것이죠..
또한 내부에서 사용하지않는 사설대역에 대한 Null routing도 만들어주세요...
외부 사이트들에 민폐를 끼치지않는 적절한 습관이라 할수있답니다.
아래 그림을 참조하세요



2. 스크리닝 (Screening)
적절한 스크리닝을 사용해야합니다.  일반적인 항목들을 표시한 상태를 캡춰해서 올렸습니다.
내부에 서비스하는 서버가 있을 경우 세션제한을 적절히 조정해야합니다. 기본값으로 할 경우
이유없이 트래픽들이 끊기는 일들이 있을수있습니다.



3. 정책 (filtering Policy)
정책수립시 꼭 지켜야할 원칙 (Principle of Making Ruleset)
1) 출발지주소로 any사용금지 (permit일 경우)
2) 서버에서 인터넷사용금지,  outbound 제어  (dmz->untrust로 나가는것 금지)
3) 공인서버망 -> 사설내부망 접속금지
4) positive rule 의 적용성 검토
5) rule순위 조정 (log count가 많은것을 위로 올려라) ->장비성능의 30%올릴수있음

신고

Source : http://jaewook.net/entry/netscreen-OS의-백업과-업그레이드

 

쥬니퍼 넷스크린은 콘솔 또는 telnet 이용하여   OS업그레이드작업하는것을 추천합니다.
다른 네트웍장비들도 마찬가지이구요....^^
▶ 작업절자
1. OS이미지를 올릴 tftp서버를 준비한다. (3comdeamon 같은 프로그램 사용)
2. 새로운 OS이미지를 tftp서버의 정해진 폴더에 복사해둡니다.
3. 작업중  netscreen과  tftp서버의 네트웍이 절대 끊어지면 안되므로 사전에 철저히 확인해야합니다.
  (원래의 OS가 지워지고 새로운 OS가 쓰여지고있는 상태에서 에러가 나서 중단되면.. 골치아파집니다.)
--> 특히 노트북에 tftp서버를 돌릴려고 하시면 노트북의 배터리상태도 꼭 확인해야합니다.
4. 콘솔이나 telnet에서  save software명령으로  새로운 OS이미지를 올립니다...
  (이때 수많은 느낌표들이 지나가게되는데 잘 참고.. 성공할때까지 기다려주세요..^^)  

▶ 명령사례
이미지 파일의 이름을 ns5xp.5.0.0r11.0 라고 해봅니다.
- OS를 tftp로 부터 업그레이드(복원)할때
save software ftom tftp 3.3.3.5 ns5xp.5.0.0r11.0 to flash
- OS를 백업할때 
save software from flash to tftp 3.3.3.5 ns5xp.5.0.0r11.0

신고

'Network > Miscellaneous' 카테고리의 다른 글

Netflow Setting  (0) 2009.02.19
Netscreen Troubleshoot  (0) 2009.02.19
[netscreen] OS의 백업과 업그레이드  (0) 2009.02.11
넷스크린 장비 공장출고상태로 돌리기  (0) 2009.02.10
Mixed Ethernet and USB networks  (0) 2009.01.06
- Paper for simple router configuration -  (0) 2008.11.14

Source : http://hackersnews.org/hn/read.cgi?board=hn_hack3&y_number=34

 

인터넷 인구가 급증하면서 인터넷은 일상생활에서 중요한 부분을 차지하고 있다. 지난해 12월말 현재 국내 유무선 인터넷 이용자는 1904만 명으로 전체인구의 2.5명당 1명이 한 달에 한 번 이상 인터넷을 사용하는 것으로 조사됐다. 이렇게 많은 사람들이 인터넷을 활용하고 생활화되고 있지만 보안에 대한 생활화는 아직 미흡한 부분이 많다. 지난해에 해킹바이러스상담지원센터에 신고되는 해킹신고중 개인pc의 경우 악성프로그램을 이용한 공격이 75%이고 사용자도용이 24%를 차지하고 있다. 사용자도용 또한 악성프로그램을 이용해서 사용자의 ID와 password를 빼내가는 경우가 많기 때문에 악성프로그램에 대한 대책이 시급한 실정이다. 그러나 대부분의 개인 pc사용자들이 보안에 대한 마인드 부족으로 별 다른 대책 없이 인터넷을 사용하고 있다. 악성프로그램은 사용자 본인이 설치하지 않아도 인터넷이나 통신상에서 자료를 다운 받을 때 숨어서 들어오는 경우도 있기 때문에 그런 악성프로그램에 대한 주의도 필요하다.

이러한 악성프로그램에 대한 대비책으로 요즘 들어 개인 사용자들에게 유용한 보안툴들이 많이 나오고 있고 돈을 주고 구입을 하는 프로그램들도 있고 그 중에는 한 달 동안 무료 사용할 수 있도록 배포하는 것들도 많이 있다. 그중 많은 사람들이 사용하고 있는 "블랙아이스"에 대해서 이야기 하고자 한다.

해킹바이러스상담지원센터에 신고되는 개인pc사용자들 중에서 블랙아이스를 사용하는 사용자들이 43%를 차지하고 있다. 블랙아이스는 자신의 컴퓨터를 외부의 사용자로부터 보호할 수도 있고 침입ip에 대해 자료도 수집할 수 있고 옵션 설정 등이 복잡하지 않아서 초보자들도 쉽게 사용할 수 있다는 장점이 있다. 우선 블랙아이스의 옵션 설정에 대해서 살펴보자.

블랙아이스의 main화면에서 Tool을 클릭해서 Edit BlackICE Settings으로 들어가면 옵션을 설정할 수 있다. 우선 블랙아이스의 가장 강력한 기능을 가진 Back Trace 부분이다.



여기에서는 다른 사용자가 자신의 컴퓨터로 침입을 했을 경우 그에 관련된 정보를 수집하고 역추적하는 기능을 가지고 있다. 이 항목에서 침입자에 대한 역추적의 방법은 Direct Trace 와 Indirect Trace로 나뉜다.

먼저 Indirect Trace는 침입자의 시스템에 접속하지 않는 프로토콜을 사용하여 침입자의 정보를 다른 자료를 통해 간접적으로 정보를 수집하는 것을 말한다. 침입자의 패킷이 사용자의 시스템까지 올 때 여러 라우터를 거치게 되는데 이런 라우터에 남아있는 정보를 수집하는 방법이다. Indirect Trace에 있는 DNS lookup 이 체킹되면 BlackICE는 침입자에 대한 정보를 DNS로 변환하여 보여준다. Direct Trace는 침입자의 시스템으로부터 정보를 직접 가져오는 것으로 Indirect Trace보다 좀더 믿을 수 있는 자료를 수집할 수 있다. Direct Trace에 있는 NetBIOS nodestatus를 설정해놓으면 침입자의 컴퓨터가 로컬 시스템의 구성원으로서 각각의 컴퓨터와 구별을 하기 위해 컴퓨터 이름이나 작업그룹 같은 것을 체크하여 정보들을 불러온다. Threshold는 Indirect Trace와 Direct Trace에 모두 존재하는데 BlackIce에서 침입자의 위험도 레벨은 0∼20/20∼40/40∼80/80∼100의 4개의 등급으로 표현되는데 위험도를 사용자가 설정해놓은 수준을 넘을 경우에만 침입자의 정보를 수집한다.



Packet Log는 모든 Packet을 저장하게 되는 항목이다. Logging enabled에 체킹이 되면 시스템으로 들어오는 모든 log 파일을 기록하게 된다. File prefix에서는 로그 파일의 이름을 다른 이름으로 저장할 수 있게 해준다. Maximum size 에서는 로그 파일의 최대 크기를 설정할 수 있다. Maximum number of files에서는 로그 파일의 최대 생성 개수를 설정할 수 있는데 기본값으로 10개의 로그 파일을 설정할 수 있게 된다.


Evidence Log Tab 에서는 일단 침입이라고 예상하면 BlackIce는 침입에 대한 정보수집 작업에 들어가고 이러한 정보들은 모두 Evidence 파일에 기록된다. File prefix 항목에서는 로그 파일의 이름을 다른 이름으로 저장할 수 있게 해준다. Maximum size 에서는 Packet Log에서와 같이 로그 파일의 최대 크기를 설정할 수 있는 곳이다. Maximum number of files역시 로그 파일의 최대 생성 개수를 설정할 수 있는데 기본값으로 10개의 로그 파일을 설정할 수 있게 된다. Maximum number of secs 에서는 좀더 세부적인 옵션을 제공하고 있다. Evidence 파일을 계속 생성하면 방대해지기 때문에 이곳에 설정된 시간만큼만 기록을 하고 그 시간이 지나면 Evidence 파일은 지워지고 다시 생성된다. 화면에 있는 86400은 86400초로 24시간이다.



Protection 에서는 BlackIce의 보안수준을 설정하는 곳으로 보안수준은 4개로 설정할 수 있고 일반적인 경우는 Cautious 수준으로 체크해 놓고 사용하면 된다.

Trusting로 설정해놓으면 BlackIce는 기본적으로 모든 공유 및 접촉에 대해 관대한 수준이다. Allow Internet file sharing를 체킹하지 않는 다면 외부의 시스템에서 사용자 시스템 파일을 다운로드 불가능하게 하는 것 외의 작업은 허용한다. Cautious로 설정해놓으면 시스템 포트와 TCP어플리케이션 포트로 침입하는 모든 작업을 방해하는 것으로 일반 사용자들이 쓰기에 적당한 수준으로 설정할 수 있다. Nervous 항목은 침입을 당했던 사용자가 설정하기에 적당한 항목으로 BlackIce는 시스템 포트와 TCP 어플리케이션 포트로 접근하는 모든 접속을 제한한다. 또한 이 항목을 설정하고 웹서핑을 하면 몇몇 인터넷 웹사이트는 접속이 불가능할 수도 있다. Paranoid 는 최상위 수준의 보안설정이다. 공격이 지속적으로 이루어질 때 Paranoid 설정하면 BlackIce는 모든 접속을 금지시킨다. 또한 매우 제한적인 시스템으로 설정되어 인터넷 웹서핑이나 TCP, UDP의 모든 포트를 제한하게 된다.

ICEcap 특정 URL에 접속하는 침입자를 감시할 수 있는 기능이다. 일반 사용자들은 거의 사용하지 않는 항목이다.



Blocked Addresses 항목은 특정 IP주소의 접근을 원천적으로 봉쇄하는 역할을 한다. 만약 어느IP주소를 거부항목에 추가해 놓으면 추가된 IP는 사용자의 컴퓨터로의 모든 접근이 거부된다. Attacks으로 침입IP가 들어 왔을 때 오른쪽 마우스를 누르게되면 Block Intruder에서 For an Hour, For a Day, For a Month, Forever로 하부 메뉴가 나오면 골라서 선택하면 특정 IP에 대한 접근을 봉쇄하도록 설정할 수 있다.

Trusted Addresses 는 지정된 주소에 대하여 BlackIce의 모든 방화벽 기능을 적용시키지 않게 한다. Blocked Addresses 와는 반대되는 기능이다.


Attack 에서는 BlackICE가 탐지한 침입자의 정보를 나타내 주는 역할을 한다. 위와 같이 침입이 시도되었을 때 해당 IP를 클릭하고 오른쪽 마우스를 누르면 침임에 대해서 무시하거나 Blocked Addresses에 추가가 가능하다. 침입의 수준에 따라 Informationa Event, Suspicious, Serious, Critical 의 4가지 아이콘으로 구분된다. 먼저 Informationa Event 는 녹색 아이콘으로 안전한 수준을 의미하고, Suspicious 는 노란색 아이콘으로 사용자의 시스템으로 접속을 시도할 가능성을 보이는 것을 나타내준다. Serious는 오렌지색 아이콘으로 심각한 피해를 입은 것은 아니지만 어느 정도 공격을 받았다는 신호이다. 가장 위험한 Critical는 빨간색 아이콘으로 침입수준이 어느 정도 심각한 수준으로 시스템이 크랙킹 되거나 데이터의 손실을 초래할 수 있다는 것을 보여준다. 사용자는 아이콘의 색깔만으로도 위험정도를 한눈에 알아 볼 수 있기 때문에 사용자의 편의를 제공하고 있다. 위의 화면에서는 Serious Event를 나타내고 있다.

위 화면의 오른쪽 하단에 있는 advICE는 각 공격메시지에 대한 도움말을 상세히 제공하고 있다. 해킹바이러스상담지원센터로 BlackICE에 나오는 메시지가 어떤 말인지 모르겠다는 문의가 상당히 많이 들어오는데 advICE가 많은 도움을 줄 것이다.

Attack 옆에 있는 Intruders 는 침입자에 대한 정보를 제공하고 특정IP의 거부도 할 수 있는 기능을 지니고 있다.



History 에서는 시간대별로 침입자를 알 수 있고 Attacks 과 Network Traffic 에 관해서도 도표로 보여주고 있다. Information 은 설치한 BlackICE에 대한 정보를 보여주고 있다.

지금까지 BlackICE의 옵션과 사용방법 등에 대해서 설명했는데 위에도 말한 것처럼 누구나 쉽게 사용할 수 가 있다. 보안툴의 사용도 중요하지만 보안툴을 설치했다고 해서 해킹으로부터 안전할 것이라고 믿는 것은 위험하다. 사용자의 컴퓨터에 해킹툴 서버가 설치가 되지 않는다면 실제적인 공격이 일어나기 어려우므로 해킹툴 서버가 설치되지 않도록 주의를 기울이고 최신 버젼 백신으로 컴퓨터를 주기적으로 점검해주는 것이 필요하다. 일반 컴퓨터 사용자들은 백신을 대수롭지 않게 생각하는 경향이 많은데 최근 나오는 백신은 바이러스뿐만 아니라 해킹툴 에 대한 점검도 가능하다. 물론 최신 버전으로 지속적인 업데이트가 필요하다. 개인pc사용자들이 인터넷에 대한 관심만큼 보안에도 관심을 조금만 기울이면 해킹을 예방할 수 있다.

신고

Source : http://jaewook.net/index.php?pl=507

 

Netscreen은 대표적인 방화벽 장비중의 하나입니다....
다른곳에서 재사용하려할때 공장에서 출고된 상태로 돌리고싶습니다.
커맨드를 사용해서... 초기화하는 방법을 적어봅니다.

콘솔케이블이 연결된 상태에서..하이퍼터미널로 접속한다...
netscreen> unset all
netscreen> reset
(이때 save할거냐고 물어보는데 NO라 대답할것)
장비가 리부팅되면 공장에서 출고된 처음 상태로 리셋된다.
(trust포트: 192.168.1.1/ DCHP가동....)
그럼 이제부턴 web이나 telnet으로 192.168.1.1로 접속해서..세팅하시면됩니다.

신고

+ Recent posts