[BCI] 관련 자료

2010/03/04 15:33

요즘 두가지 이유 때문에 ASM을 보고 있다.

하나는 모델과 소스(바이너리)의 비교 검증 기능 개발을 위해서,

또 하나는 APM 솔루션 개발을 위해서, 모니터링용 코드를 기존 어플리케이션에 쉽게 심는 방법을 찾기 위해서..

 

사실 첫번째 이유로의 ASM은 오래전부터 봐왔던 바이지만, 두번째는 좀 생소 하기는 하지만, 한번에 두마리 토끼를 잡는 다는 셈치고 열공 및 개발 중이다.

 

관련 자료/링크를 쭈욱 나열해 놓고, 나중에 한번에 정리해 보자.

 

 

The Power of Byte Code Instrumentation in Java 시리즈(From 욱짜의 Oracle 블로그) : http://ukja.tistory.com/17

 

ASM 홈페이지 http://asm.ow2.org/

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스

wsadmin.sh 을 이용하여 아래와 같이 명령을 날리면, MBean 리스트를 받아 볼 수 있다.

 

mbean.jython

-----------------------------------------------------------------------------------------

apps = AdminControl.queryMBeans('NEFSS/SystemLibrary:type=SharedTable,*',None)
appArray = apps.toArray()

for app1 in appArray:
print app1.getObjectName().toString()

-------------------------------------------------------------------------------------------

 

DMGR 서버에 붙어서, 전체 Application Server에 대해서 Query를 날리려면
/app/was/WebSphere/AppServer/bin/wsadmin.sh -username XXX -password XXXX -lang jython -f mbean.jython

 

특정, Application Server Instance에 붙어서 Query를 날리려면

/app/was/WebSphere/AppServer/bin/wsadmin.sh -host XXX -port XXXX -username XXX -password XXXX -lang jython -f mbean.jython

(여기서 포트는 SOAP 포트가 된다.)

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스

1. java.sql.SQLException: XXXXXX Connection authorization failure occurred. Reason: Security mechanism not supported. ERRORCODE=-4214, SQLSTATE=28000DSRA0010E: SQL State = 28000, Error Code = -4,214

 

이런 오류가 나온다면, ID/PW를 의심해 보자, 특히, ID를 새로 만들었을 경우, 초기 한번은 TSO 등으로 로그인해서, 새로운 패스워드로 바꾸라는 메시지가 뜨지는 않는지 확인해 본다.

 

2. Error : DB2 SQL Error: SQLCODE=-805, SQLSTATE=51002, SQLERRMC=XXX.NULLID.SYSLN300.5359534C564C3031;DISTSERV;04, DRIVER=3.50.152

이런 오류가 나온다면,  다음의 명령을 실행하여, jdbc용으로 Bind를 해 줘야 한다.

    java com.ibm.db2.jcc.DB2Binder -url jdbc:db2://XX.XX.XX.XX:446/XXX -user userid -password passw0rd

    실행결과

    Package "XXXXX": Bind succeeded
    Package "YYYYY": Bind succeeded
    .....
    Package "ZZZZZ": Bind succeeded
    DB2Binder finished.

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스

 RRC서버가 깔린 리눅스에 워낙 CLOSE_WAIT가 많이 걸리고,

해제되지 않아 여기 저기 찾다가 발견한 사이트

 

http://tunelinux.pe.kr/bbs/read.php?table=linuxinfo&no=76

 

sysctl 명령어를 이용하란다~~

혹시, 링크가 깨질까봐, 원문을 copy해둔다.

 

## 질문
xxx 작성:

안녕하세요.전번에 netlog에 대한 답변들은 고마웠습니다.
요즘 SYN attack에 대한 생각을 정리중인데,도움을 좀 청할까 해서요..
리눅스나 원도우에서 SYN이 들어오면은최대 접속 SYN 갯수가 있을 것이고,
3상태 연결이 안되었을때, 연결이 취소될때까지의 시간이 있을건데,
이것은 리눅스 상에서 설정을 어디를 보면 되는지.좀 아시는 분 가르켜 주세
요.
그리고, window NT나 유닉스는 기본적인 값이 얼마인지궁금합니다.
아시는 뿐들은 꼭 좀 답변 올려주세요.


## 답변
Linux에서 IP Stack을 관리하는 명령어는 sysctl입니다.
사용법은 간단합니다.
usage:  sysctl -w variable=value ...  ; 설정
            sysctl -a                          ; 조회

timeout관련 정보는 grep으로 찾아보시기를 바랍니다.

그리고, Tuning과 관련하여 몇가지 정보를 추가하면(kernel 2.2기준)

- SYN attack 관련
  sysctl -w net.ipv4.tcp_max_syn_backlog=1280 ; socket queue 증가
  sysctl -w net.ipv4.tcp_syn_cookies=1             ; enable

- Routing table 변경
  sysctl -w net.ipv4.conf.all.send_redirects=0      ; disable
  sysctl -w net.ipv4.conf.all.accept_redirects=0

- Source Routing 관련
  sysctl -w net.ipv4.conf.all.accept_source_route=0  ; source route 패킷
드롭
  sysctl -w net.ipv4.conf.all.forwarding=0                 ; forwarding
disable
  sysctl -w net.ipv4.conf.all.mc_forwarding=0

- Timewait 값 조절 (DDOS 관련)
  sysctl -w net.ipv4.vs.timeout_timewait=60       ; 60초 이하로 설정 권


- Broadcast ECHO Response (smurf Attack 관련)
  sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1    ; 응답안함

등이 있습니다. 이외에 추가적으로 확인해 보시기 바랍니다.

자료참조: Rob Thomas, 이강석 "Unix IP Stack Tunig Guide"-센터내부자료 참
조.

.FIN.
 

## 추가답변
안녕하십니까?

저는 xxxxx의 홍석범입니다.


아래 메일로 말씀하신 부분에 조금만 추가를 하면....


1. 최대 접속 SYN 갯수에 대해

시스템에서 수용할 수 있는 최대 접속  SYN 패킷의 개수는 backlog queue 와
관련이 있습니다. 즉 backlog_queue 를 크게 늘렸을 경우에는 그만큼 많은
SYN 패킷을 수용할 수 있는 것이지요...

리눅스뿐만이 아니라 대부분의 시스템에는 이 값(kb 단위) 이 매우 낮게 설정
되어 있는데,
적절히 재설정하실 필요가 있습니다.
(현재 설정치는 sysctl -A|grep backlog로 확인해 보세요..)
일반적으로는 RAM 이 128M 이상일 경우 1024를 설정하면 되고
이하일 경우에는 128 을 설정하는데, 리누스의 부하가 많이 걸릴 경우에는
이 값을 적절히 늘려주면 됩니다.
그런데, 이 값을 무한정 늘릴 수 있는 것은 아니고 값이 1024 이상일 경우에

include/net/tcp.h 를 수정하여야 한다고 알고 있습니다..
그리고 경험적으로 이 값을 너무 크게 설정하였을 경우에는 syncookie 가
잘 적용되지 않는 것으로 알고 있습니다.
(그러니 syncookie 설정을 하였을 경우에는 backlog queue 를 그리 크게
하실 필요는 없습니다.)
아울러 말씀하신 자료에는

sysctl -w net.ipv4.tcp_syn_cookies=1  로 되어 있는데
sysctl -w net.ipv4.tcp_syncookies=1 이 맞습니다..
 


2. 연결이 취소될때까지의 시간에 대해

이 설정은  
sysctl -w net.ipv4.vs.timeout_synrecv=10    와
관련이 있는것 같습니다.
(syn 패킷을 받은후 half open 상태 대기는 10초정도가 적당합니다.)
이 설정을 하시려면 바로 이용하실 수는 없고 커널 패치를 하셔야 합니다.
vs 라는 것은 Virtual Server 의 뜻으로 말 그대로 clustering 등을
구성할 때 필요한 커널 패치입니다.
이는 http://linuxvirtualserver.org/ 에서 패치하시면
됩니다.
그런데, 제가 테스트해보기로는 이 설정이 그대로 잘 적용은 되지 않더군
요,..,.
(이외 vs 커널 패치를 하면 drop_entry, drop_packet 등 다른 몇가지 정책을
추가로
   설정할 수 있습니다.)




3. NT 등 Windows 계열의 SYN_Attack 에 대해

NT에서는 Registry값을 수정함으로써 튜닝이 가능합니다.
이 값에 대한 튜닝은 microsoft 의 technical page 나
http://packetstorm.securify.com/groups/rhino9/synflood.doc
참고하시기 바랍니다.



4. 그러나, 가장 확실한 방법은.....
제가 보기에는 서버 level 에서의 튜닝은 단지 공격을 감소시킬 수 있을뿐
근본적인 대책은 아닙니다.
이를 위해 라우터 level 에서 차단하는 것이 권장할만한 방법인데,
제가 테스트해 보기로는 몇가지 방법이 있더군요....
이 방법은 시간이 되는대로 정리를 해 보도록 하겠습니다.
 
 

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스

COBOl 공부 관련

2009/11/17 16:18

 XX화게 BMT를 하다가, COBOL to Java 변환 소스를 보게 되었는데,

변환된 소스를 분석하다 보니, COBOL에 대한 짧은 지식을 한탄하게 되었다.

 

그래서, 찾아보니, Teach Your Self의 COBOL 시리즈가 웹에 올라와 있었다..

 

Teach Yourself COBOL in 21 days, Second Edition : http://podgoretsky.com/ftp/docs/cobol%20in%2021%20days/index.htm

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스

DB의 문자셋 관련

2009/10/12 23:23

 

요즘 BF, CQ의 UTF8 지원 관련해서, 시끄럽다.. (2009.10.12)

 

오라클의 NLS 정보에 관한 좋은 글로 위로를 삼아 볼까?

 

http://www.oracle.com/technology/global/kr/pub/columns/oracle_nls_1.html#mozTocId671523

 

 

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스

Oracle이나 Sysbase등에는 당연(?)히 있는 truncate table 명령이 DB2에는 없다. (V9.1까지는)

 

그래서, delete from을 이용하지 않고, 테이블 내용을 싹 지우고 싶을때는 다음의 편법(?)을 사용하면 된다.

 

 

 

Authorization : SYSADM, DBADM or CONTROL on the table

On Unix :

db2 connect to <dbname>
db2 import from /dev/null of del replace into <table-name>

On Windows:
Create a blank file C:\temp\blank.txt
db2 connect to <dbname>
db2 import from C:\temp\blank.txt of del replace into <tablename>


db2 import from d:\blank.txt of del replace into BUILD.BF_STORE

 

출처 : http://www.tek-tips.com/viewthread.cfm?qid=405708

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스

XX 증권에서 Build Forge 때문에, DB를 총 2번 옮겼다. 마이그레이션은 3번

Windows DB2 9.1 --> AIX DB 9.5

AIX DB 9.5, BF 7.0.2 --> AIX DB 9.5 BF 7.1.1 (마이그레이션 2회)

 

이때마다, 큰 도움을 받은 것이 ixl 형태로의 export/import였다.

이를 위해, 기존 DB에서 export/import의 script를 만들어주는 스크립트는 다음과 같다.

 

 %1 DB name
%2 schema name

echo "connect to %1;" > export`date +%m%d`.ddl
db2 "connect to %1"
db2 "select 'export to %2.'||tabname||'.ixf of ixf messages exp.msg select * from %2.'||tabname||';' from syscat.tables where tabschema='%2' and type='T' order by tabname" >> export`date +%m%d`.ddl
echo "connect reset;" >> export`date +%m%d`.ddl
echo "terminate;" >> export`date +%m%d`.ddl
db2 connect reset
db2 terminate


echo "connect to %1;" > import`date +%m%d`.ddl
db2 "connect to %1"
db2 "select "import from %2.'||tabname||.ixf of ixf commitcocunt 10000 messages imp.msg insert into %2.'||tabname||';' from syscat.tables where tabschema='%2' and type='T' order by tabname" >> import`date +%m%d`.ddl
echo "connect reset;" >> import`date +%m%d`.ddl
echo "terminate;" >> import`date +%m%d`.ddl
db2 connect reset
db2 terminate

 

당시(2009년 4월) 어디선가에서 찾아낸 것인데, 지금은 어디서 찾았는지를 알수가 없어서, 출처를 밝히지 못함을 죄송하게 생가합니다.

 

 

실행할 때는 편하게.. db2 -xvf

 

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스

 

Perl문법을 알아보다가 찾은 사이트, 간략하게 잘 설명이 되어 있다.

 

http://terzeron.net/computer/perl.html#control

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스

DB2 CLP 옵션

2009/08/12 21:04

db2를 사용하기 위한 Basic 코스

 

http://www.ibm.com/developerworks/data/library/techarticle/dm-0503melnyk/ 

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스

BLOG main image

공지사항

카테고리

분류 전체보기 (155)
Architect이야기 (1)
Rational Products (94)
Patterns (0)
JEE Technologies (3)
Methodology (0)
Apache Project (0)
Open Project (4)
Knowhow (52)
Etc (0)