나의 즐겨찾기 | 블로그홈 | 바로가기 바로가기 | 로그인
헬렐레... @@~*
블로그  |  사진갤러리  |  동영상갤러리 방명록  |   즐겨찾기 추가
Ants (argonat)
프로필     
2009 11월
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
최근 댓글 전체
해당 oracle 커널..
엄청나군
많은 도움이 되었네요 ..
네이버 블로그로 퍼갑니..
주로 사용하는 운영체제..
최근 참조글 전체
Elavil withd..
Brutal porno..
Krystal stea..
Tera patrick..
Midi natale.
전체 글보기(30)
기본폴더
HP-UX
Linux
Windows
잡담
스크랩
HanRSS 로 구독하기Fish 로 구독하기
개설일 : 2005/01/04
 

ftp에서 passive와 active 모드의 차이?[펌]

2006.05.02 14:32 | 기본폴더 | Ants

http://kr.blog.yahoo.com/argonat/47 주소복사

ftp문제로 고생하다가 어느 블로그에서 찼은 것을 메모장에 저장시켜보다가 이렇게 올립니다.
원본링크가 기억이 안나네요.
두 모드의 차이점이 가장 잘된 글이였습니다.
한 두 줄정도 첨언 했습니다.

제 문제는 기본적으로 방화벽에서 서버쪽 20/21밖에 열려있지 않았는데, 클라이언트(리눅스)가 자꾸 passive모드로 접속되어 20 외 다른 포트로 데이터를 받으려고 시도한다는 것이 었습니다. 방화벽에 걸려서 먹통.... ㅡㅜ
아.... 그리고 가장 쉬운 해결방법은 클라이언트의 ftp명령어중(접속후...)
passive라는 명령어로 passive/active를 토글할 수 있습니다.

active connection vs. passive connection

FTP에서 사용되어지는 connection type은 2가지로 나눕니다.

처음 접속시 control connection으로서 FTP client software에 의해 초기화(접속시도)됩니다. 이것은 client:X 에서 server:ftp (port 21)로 접속이 이루어지며 command 전송시 사용되어 집니다.

클라이언트:X -> 서버:ftp

여기서 X 는 1023보다 큰 비사용중인 포트를 말합니다.

다음으로 ls명령어로 리스트를 보거나, 파일을 전송받는 경우, data connection으로서 이것은 active mode와 passive mode로 나누어지며 data(실제 전송될 파일) 전송시 사용되어 집니다. 이때 일반적인 FTP server는 active mode로 data를 전송합니다.

active mode는 다음과 같은 절차로 연결을 진행하게 됩니다.

- FTP client는 data 전송시 passive connection을 사용하는지 요청하게 되고 그렇지 않을 경우 FTP server가 data 전송을 위해 접속하게될 client 자신의 port(Y라고 가정)를 서버에게 알려줍니다.
- FTP 서버는 ftp-data port(20번)를 통해 client가 알려준 포트로 접속을 시도를 요청합니다. (syn packet 전송)
- 해당 client는 요청에 대한 수신 확인 및 허락을 전송합니다.(awk+syn packet 전송)
- server는 client가 보낸 packet에 대한 수신 확인을 전송합니다.(awk packet)
- 이로서 connection은 형성되고 data를 전송하게 됩니다. (자세한 내용은 RFC 문서를 참고하시기 바랍니다)

즉 server:ftp-data -> client:Y 형태로 연결됩니다.

이러한 이유로 방화벽내부에 FTP server를 운영할 경우 command는 전달되나 실제 data가 전송되지 않는 문제가 발생합니다. (ipchains로 설정할 경우, iptables의 경우라면 전송되는 flag에 따라 섬세하게 설정 가능)

또한 firewall 운영시 내부네트웍에서 외부로 나가는 1023 이상의 포트를 모두 열여 주어야 하는 문제도 발생됩니다. (firewall 제품 active mode에 대해 지원하기도 하고 그렇지 않은 제품도 있습니다)

passive mode는 다음과 같은 연결을 진행하게 됩니다.

- FTP client가 data 전송시 FTP server에게 passive connection를 사용하는지 여부를 요청하게 됩니다.
- passive connection를 사용한다면 FTP server는 client가 data 전송을 위해 Server에 접속할 1023이상의 port를 알려주게 됩니다. (이때 사용할 포트를 N 이라고 정하며, N 값은 FTP server 마다 설정이 다릅니다. 즉 active connection에서 사용하는 ftp-data(20번) port를 사용하지 않습니다.)
- FTP client는 Server가 알려준 port N으로 접속을 시도하기 위해 syn packet을 자신의 Z(1023이상의 비사용 중인) port을 열어 전송합니다.
- FTP server는 awk+syn packet을 통해 수신 확인 및 연결을 허락하게 됩니다.
- FTP client는 awk packet을 전송하여 수신 확인을 하고 connection을 맺은 후 data를 전송하게 됩니다.

즉 client:Z -> server:N 의 형태로 연결됩니다.

이러한 경우라면 방화벽에서 FTP server가 passive connection에서 사용하게 될 port를 열어 정상적으로 data 전송이 가능합니다.

active connection의 경우 별다른 설정이 없습니다. 기본적으로 active connection을 사용하게 되어 있지만 방화벽이나 클라이언트의 상태에 따라 passive모드를 사용하게 됩니다.
passive로 사용을 위해서는 서버쪽에서 사용포트를 설정해 주는 것이 좋습니다. 그래야 방화벽등의 네트워크 단에서 컨트롤하기가 쉽겠죠.

FTP server를 passive connection으로 운영하기 위한 설정

Linux에서 운영하는 대표적은 FTP server인 wu-ftpd와 proftpd에 대해서만 언급하겠습니다.

설정 방법은 해당 파일에 passive port로 사용할 port 영역을 명시하게 됩니다. 2000개 이상의 port를 열것을 권장하며, 일반적으로10000번 이하의 포트를 사용합니다.

wu-ftpd의 경우

wu-ftpd에서 제공하는 /etc/ftpaccess 파일에 다음 내용을 추가합니다. standalone type server라면 반드시 restart 합니다.

passive ports 0.0.0.0/0 15000 17000

즉 wu-ftpd를 passive FTP로 운영하기 위해 15000~17000 포트를 사용하는 것으로 설정한 것입니다.

proftpd의 경우

proftpd에서 제공하는 /etc/proftpd/conf/proftpd.conf 파일에 다음 내용을 추가합니다. standalone type server라면 반드시 restart 합니다.

PassivePorts 60000 62000

즉 proftpd를 15000~17000 포트를 이용하여 passive FTP로 운영할 것을 설정한 것입니다.

passive connect시 client에서 주의할 사항

일반적으로 server를 passive connection으로 운영할 경우 client 또한 passive mode 로 사용하여야 합니다. Netscape의 경우 특별한 문제가 발생하지 않으며, ncftp의 경우 접속후 set passive on 명령어를 수행하시면 됩니다. gftp를 사용하신다면 FTP -> Options -> General -> "Passive file transfer" 를 설정하시기 바랍니다.

,NET 관련 교재 3권 무료 배포 by Microsoft

2006.03.27 15:23 | Windows | Ants

http://kr.blog.yahoo.com/argonat/46 주소복사



ASP.NET Step by Step (한글 번역본) 정보문화사
http://www.microsoft.com/korea/msdn/vbrun/staythepath/additionalresources/ASPNETStepbyStep/default.aspx


Visual Basic .NET Step by Step (한글 번역본) 정보문화사
http://www.microsoft.com/korea/msdn/vbrun/staythepath/additionalresources/VBNETStepbyStep/default.aspx


Upgrading Microsoft Visual Basic 6.0 to Microsoft Visual Basic .NET (한글 번역본) Microsoft Press
http://www.microsoft.com/korea/msdn/vbrun/staythepath/additionalresources/upgradingvb6/default.aspx


출처 : hxxp://www.microsoft.com/korea/msdn/ 
 

oracle 9i install on integruty server with HPUX 11iv2

2006.02.22 14:53 | HP-UX | Ants

http://kr.blog.yahoo.com/argonat/43 주소복사

Oracle 9i install on integruty server with HPUX 11iv2
(rxServer에서의 oracle 9i 설치)


MC/ServiceGuard를 할려다 예전에 11i B-class worstation에서 Oracle설치하다 무지 고생한 기억이 나서 정리를 해봄니다. 그때 워크스테이션 사양이 워낙 낫고(256ram...--;) 패치들도 거의 없어서 무지 고생했었습니다.

어쨌던 그때의 기억을 되살려 rx1620 server에 oracle 9i를 설치해보았습니다. 이번에는 다행이 패치도 아무런 문제가 되지 않고, java도 맞는 버전이 설치되어 있어서 바로 설치했는데, 일단 이런 것들 확인해 본다고 시간이 조금 걸린듯....

HPUX 11i에서는 필요한 패치는 설치 disk1의 /doc/unixdoc/a96167.pdf에 있습니다. 2002년 12월후에 출시된 11i버전 사용자는 아래를 참고하시면 될 것 같네요.

1. libc cumulative header file patch Current Revision of Patch: PHCO_24402 :s700_800 11.11 libc cumulative header file patch Patch in latest Support Plus Patch Bundle?
Yes, as PHCO_24402.

2. libc cumulative patch Current Revision of Patch: PHCO_27740 :s700_800 11.11 libc cumulative patch Patch in latest Support Plus Patch Bundle?
Yes, as PHCO_25452.

3. ld and linker tools cumulative patch Current Revision of Patch: PHSS_26560 - s700_800 11.11 ld(1) and linker tools cumulative patch Patch in latest Support Plus Patch Bundle? No.

4. ONC/NFS General Release/Performance Patch Current Revision of Patch: PHNE_26388 - s700_800 11.11 ONC/NFS General Release/Performance Patch Patch in latest Support Plus Patch Bundle?
Yes, as PHNE_26388.

5. asyncio driver patch - slow database startup with large SGAs Current Revision of Patch: PHKL_25506 - s700_800 11.11 asyncio driver patch Patch in latest Support Plus Patch Bundle?
Yes, as PHKL_25506.

6. C++ runtime libs Current Revision of Patch: PHSS_26946 - s700_800 11.11 HP aC++ -AA runtime libraries (aCC A.03.37) Patch in latest Support Plus Patch Bundle?
Yes, as PHSS_22898.
참조> http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=51935
참조> http://h21007.www2.hp.com/dspp/files/unprotected/database/HP3KOracle.ppt
        HPUX에서 Oracle9i 활용 슬라이드입니다.

*) modify links to X11 libs for correct ctx relink
cd /usr/lib
ln -s /usr/lib/libX11.3 libX11.sl
ln -s /usr/lib/libXIE.2 libXIE.sl
ln -s /usr/lib/libXext.3 libXext.sl
ln -s /usr/lib/libXhp11.3 libXhp11.sl
ln -s /usr/lib/libXi.3 libXi.sl
ln -s /usr/lib/libXm.4 libXm.sl
ln -s /usr/lib/libXp.2 libXp.sl
ln -s /usr/lib/libXt.3 libXt.sl
ln -s /usr/lib/libXtst.2 libXtst.sl
참조> http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=749881


하지만 HPUX 11iv2에서는 거의 패치가 필요없는 것 같습니다. oracle9i보다 늣게 나와서 그런것 같은데, 일단 저는 아무런 패치를 설치하지 않고 진행했는데 문제가 없더군요.

그리고 java는 1.3버전을 사용해야 되네요. 1.4는 지원하지 않는다고 하는데....
정확하지는 않네요.... --;
혹시나 java가 필요하면 http://www.hp.com/products1/unix/java/ 에서 다운로드.

권장 커널 파라미터는 아래와 같습니다. 마찬가지로 설치 Disk1의 /doc/unixdoc/a96167.pdf에 있습니다.

KSI_ALLOC_MAX (NPROC * 8)
MAX_THREAD_PROC 256
MAXDSIZ 1073741824 bytes
MAXDSIZ_64 2147483648 bytes
MAXSSIZ 134217728 bytes
MAXSSIZ_64BIT 1073741824
MAXSWAPCHUNKS 16384
MAXUPRC ((NPROC*9)/10)
MSGMAP (MSGTQL + 2)
MSGMNI NPROC
MSGSEG 32767
MSGTQL NPROC
NCALLOUT (NPROC + 16)
NCSIZE ((8 * NPROC + 2048) + VX_NCSIZE)
NFILE (15 * NPROC + 2048)
KSI_ALLOC_MAX (NPROC * 8)
MAX_THREAD_PROC 256
MAXDSIZ 1073741824 bytes
MAXDSIZ_64 2147483648 bytes
MAXSSIZ 134217728 bytes
MAXSSIZ_64BIT 1073741824
MAXSWAPCHUNKS 16384
MAXUPRC ((NPROC*9)/10)
MSGMAP (MSGTQL + 2)
MSGMNI NPROC
MSGSEG 32767
MSGTQL NPROC
NCALLOUT (NPROC + 16)
NCSIZE ((8 * NPROC + 2048) + VX_NCSIZE)
NFILE (15 * NPROC + 2048)

그리고 /var, /tmp 는 512M이상 잡아주시는게 좋구요.설치공간도 넉넉히 잡아주시면 됩니다.

1. 패치설치 - 저는 아무런 patchs설치 없이 통과.
2. 설치할 공간 마련 /u01을 db공간으로 10G를 할당하고, /opt를 binaries공간으로 6G의 여유공간을 두었습니다. /tmp, /var도 용량이 너무 작아 각각 128m로 늘렸습니다.
swap도 너무 작게 잡혀 있어서 2G정도로 늘렸습니다.
# lvcreate -L 10240 -n oradata vg00
# newfs -F vxfs /dev/vg00/roradata
# mkdir /u01
# mount /dev/vg00/oradata /u01

# lvextend -L 16000 /dev/vg00/lvol5
# fsadm -F vxfs -B 16000M /opt

# lvextend -L 512 /dev/vg00/lvol6
# fsadm -F vxfs -B 16000M /tmp

# lvextend -L 512 /dev/vg00/lvol8
# fsadm -F vxfs -B 16000M /var

# lvcreate -L 2048 -n swap vg00
# swapon /dev/vg00/swap
# swapinfo
# vi /etc/fstab
/dev/vg00/swap . swap defaults 0 0

swap만 fstab 파일에 추가했습니다. 새로 만든 u01도 추가해 주면 좋겠죠.... 저는 일단 생략...

3-1. oracle라는 유저와 dba 그룹을 생성합니다.
(10g의 경우는 oracle 유저에 oinstall을 주그룹, dba를 secondary그룹으로 설정.)
   마찬가지로 oracle의 홈 디렉토리 생성.
# groupadd -g 103 dba
# useradd -m -u 103 -g dba oracle           
-> 제가 참조한 문서에 ID를 각각 100이상을 주라고 되어 있더군요...별 영향은 없는 듯 합니다.

3-2. root의 umask를 022로 설정후 ORACLE_HOME, installation files derectory등을 생성합니다. umask는 이때 oracle유저가 디렉토리에 접근가능하게 하기위한 것입니다.
# umask 022
# mkdir -p /opt/oracle/product/9.2.0
# mkdir -p /opt/oracle/oraInventory

3-3. ORACLE_HOME의 소유권을 oracle:dba로 변경.
# chown -R oracle:dba /opt/oracle/product/9.2.0
# chmod 777 /opt/oracle/oraInventory /opt/oracle/product
-> 설치시 실제 위의 두 디렉토리에도 쓰기를 합니다. 쓰기 권한을 미리 주시는게 좋습니다.
    설치후에 다시 제거하면 되겠죠.

3-4. oracle의 .profile를 편집하여 환경변수를 추가해준다.
# vi /home/oracle/.profile
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_TERM=hp    -> 사용하는 term에 따라 변경.
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=openview    -> 취향?/용도에 따라 변경.

3-5. 커널 파라미터의 수정 위쪽에 있는 것은 권장값입니다.
      커스터마이징이 필요하겠죠. 일단 저는 pass

4. 설치 disk1의 runInstaller를 돌리면 되겠지요. 그전에 확인 및 설정.
  이 과정에서 터미널은 2개를 띄워놓구 root와 oracle로 각각 로그인 합니다.(#=root, $=oracle)
# passwd oracle     -> 유저 생성만하고 pass를 안주어서... ^^;
$ echo $ORACLE_TERM
$ export DISPLAY=59.29.xxx.xxx:0.0   
-> xManager를 사용해서 리모트로 했기 때문에 ip로 주었습니다. 로컬에서 하면 hostname주면 되겠지요.
$ Disk1/runInstaller & 또는 /Disk1/install/hpunix/runInstaller &
-> 후자의 폴더에 runInstaller.sh도 있는 것으로 보아... shall에서도 가능하지 않을까....

5. DISPLAY가 제대로 잡혀있다면 아래와 같은 인스톨 화면이 뜨겠죠....
   그래픽환경에서 순서대로 설치를 시작합니다.
원본 크기의 사진을 보려면 클릭하세요
- 넥스트...
원본 크기의 사진을 보려면 클릭하세요
-ORACLE_HOME를 지정한대로 수정...
  /tmp/orainstRoot.sh 를 root권한으로 실행하라고 메세지가 나옵니다. 실행.
원본 크기의 사진을 보려면 클릭하세요
- 기본으로...
원본 크기의 사진을 보려면 클릭하세요
- gogogo
원본 크기의 사진을 보려면 클릭하세요
-...
원본 크기의 사진을 보려면 클릭하세요
-적당히 지정.....
원본 크기의 사진을 보려면 클릭하세요
- 저는 처음에 말한대로, 당연히 퍼미션이 있어야겠죠.
원본 크기의 사진을 보려면 클릭하세요
-쉽게 가볼려구 영어로 언어설정.
원본 크기의 사진을 보려면 클릭하세요
- 켁. /opt/java1.3/jre 입니다. 1.4로 하면 안됩니다. 이것을 바꿔주는게 있는지 모르겠네요.
원본 크기의 사진을 보려면 클릭하세요
-...
원본 크기의 사진을 보려면 클릭하세요
- 설치중.....
원본 크기의 사진을 보려면 클릭하세요
-/opt/oracle/product/root.sh를 root권한으로 실행해야 합니다. bin 폴더를 지정해주어야 됩니다.
  /usr/bin으로 지정.
원본 크기의 사진을 보려면 클릭하세요
- 자기들이 알아서 링크까지....
원본 크기의 사진을 보려면 클릭하세요
- 설치가 끝났네요.

패치설치가 없어서 전에 생각한 것 보다 쉽게 끝났네요. 11i에서는 좀 많이 헤멨었거든요.

xManager 사용시 방화벽 설정 포트.

2006.02.15 14:40 | HP-UX | Ants

http://kr.blog.yahoo.com/argonat/42 주소복사

SCSI Initiator ID change in Itanium Based Systems

2006.02.14 20:43 | HP-UX | Ants

http://kr.blog.yahoo.com/argonat/41 주소복사

SCSI Initiator ID change in Itanium Based System

HPRC에서 받은 기술문서를 바탕으로 RX1620 System에서 테스트를 한 것을 정리한 문서입니다.
범용으로는 아래의 방법이 사용되지만 특정 SCSI HBA에서는 HPUX System 상에서 "mptconfig"명령어를 사용하기도 합니다.

보통 EFI shell 상에서 SCSI Initiator ID를 변경되게 됩니다. 처음 부팅시 인터럽터를 걸어서 EFI Shell으로 빠져 나옵니다.
먼저 EFI shell에서 드라이버들을 보는 명령어를 테스트 합니다.

Shell> drivers
원본 크기의 사진을 보려면 클릭하세요
SCSI Driver를 확인합니다.

Shell> drvcfg
Shell> drv cfg -s 3c[drv_handle] 18[ctrl_handle]


다음과 같은 설정화면이 나타나게 됩니다.
원본 크기의 사진을 보려면 클릭하세요

<53ㅊ1030    20    01    01> 부분에서 'Enter' 를 누르면 아래와 같은 화면으로 전환되어 SCSI ID의 변경이 가능하다.
원본 크기의 사진을 보려면 클릭하세요

변경후 Esc를 통해 저장후 빠져나가게 되면 SCSI HBA는 자동적으로 재시작되면서 EFI Shell로 빠져나가게 된다.
* Secondary Cluster Server 부분을 Yes로 해주어야 MC ServiceGuard가 가능하다.
원본 크기의 사진을 보려면 클릭하세요

[ 1 | 2 | 3 | 4 | 5 | 6 ] 다음 페이지