'분류 전체보기'에 해당되는 글 99건
- http long polling 구현시 참고할 사항 1 2012.09.16
- Authentication(인증) vs Authorization(권한) 2012.09.16
- lucene & nutch 2012.09.16
- [linux] log files & how to see 2012.09.16
- [linux] sshd 보안 설정 2012.09.16
- [openssl] OpenSSL API를 이용한 보안 프로그래밍 2012.09.16
- [openssl] command line sample 2012.09.16
- [ubuntu] open files limit 변경하기 2012.09.16
- [Ubuntu] downgrade subversion 1.7 to 1.6 2012.09.16
- json editor 2012.09.16
http long polling 구현시 참고할 사항http long polling 구현시 참고할 사항
Posted at 2012. 9. 16. 14:01 | Posted in ServerLongPolling 구현이 문제된 경우
- 서버를 직접 만들고 경험한 내용이다.
- Parent창이 longpoll 세션을 하나 열고, Child창을 띄워 별도의 longpoll 세션을 또 하나 열었다.
- 각 세션에 논리 세션ID를 부여하고 서버측에서 데이터를 관찰.
- 몇번 데이터가 왔다갔다 하면, Parent창과 Child창이 서로 다른 소켓으로 데이터를 보냄.
- 브라우저가 물리 소켓을 pool 처럼 사용하는 것으로 추측. ?> pool처럼 사용한다고 함.
브라우저 동작 방식
- 브라우저별 OS별 설정이 다르긴 하지만, 브라우저 프로세스 내에서 같은 도메인에 대해 열 수 있는 소켓 수는 제한적이다.
* http 1.1 버전에서는 default=2 개라고 함. (사실 여부는 표준 문서 등 확인 필요)
* 도메인별로 기본적으로 하나는 브라우저 메인이 사용하고, 나머지는 추가로 열어서 쓸 수 있다. 제한수가 2라는 의미는 추가로 열 수 있는 소켓수가 1이란 뜻이다.
* 제한수를 넘어서 소켓을 열면 이전 소켓중 하나가 닫힌다고 함(역시 표준 문서 등 확인 필요)
- 요즘 브라우저는 창을 여러개 띄우더라도 프로세스는 하나이고 쓰레드를 여러개 띄우는 형태.
- 따라서, 창을 여러개 열어도 도메인이 같으면 제한된 소켓만 오픈할 수 있다.
- 구글은 이런 브라우저 특성 때문에 빠른 로딩을 위해서 이미지 서버 도메인을 여러개 두고 한 화면 안의 img 태그에 여러개의 이미지 서버 도메인을 넣어 사용한다고 함. 병렬로 동시에 로딩 가능하다.
※ 위의 LongPolling구현의 문제는 Parent창이 추가로 longpoll 세션을 열었는데(2개), Child창이 뜨면서 세션을 하나더 연 경우(3개)가 됨.
해결
- Child창을 띄우지 말고, Parent창 하나만 longpoll을 사용하거나,
- Child창은 다른 도메인으로 longpoll 세션을 연다. (세션서버에 도메인을 여러개 등록) --> 잘 됨!
※ 더 정확한 내용 아시는 분은 댓글 부탁드립니다.
Authentication(인증) vs Authorization(권한)Authentication(인증) vs Authorization(권한)
Posted at 2012. 9. 16. 13:57 | Posted in 개발이야기자주 헷깔리는 용어.
Authentication(인증)
자격을 부여 (the mechanism whereby systems may securely identify their users)
* who ?
Authorization(권한)
자격이 있는 경우 사용할 수 있는 범위 (the mechanism by which a system determines what level of access a particular authenticated user should have to secured resources controlled by the system)
* access resource ?
* perform operation ?
참고: http://www.duke.edu/~rob/kerberos/authvauth.html
lucene & nutchlucene & nutch
Posted at 2012. 9. 16. 13:55 | Posted in OpenSourcelucene (검색엔진)
Apache Lucene(TM) is a high-performance, full-featured text search engine library written entirely in Java.
http://lucene.egloos.com/1386072
http://www.ibm.com/developerworks/kr/library/tutorial/os-apachelucene/section2.html
nutch (크롤링)
Apache Nutch is an open source web-search software project.
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Search/Document/nutch/Crawling
[linux] log files & how to see[linux] log files & how to see
Posted at 2012. 9. 16. 13:53 | Posted in OS/Unix/Linux
/var/log/wtmp : 사용자 login & logout & reboot 로그
$ last
/var/log/btmp : 로그인 실패 로그
$ lastb
짱깨들이 로그인하려고 돌린 흔적으로 용량이 300MB가 넘었다.. -rw------- 1 root utmp 309M Jun 11 11:55 btmp test ssh:notty 119.10.114.184 Mon Apr 16 19:37 - 19:37 (00:00) test ssh:notty 119.10.114.184 Mon Apr 16 19:37 - 19:37 (00:00) oracle ssh:notty 119.10.114.184 Mon Apr 16 19:37 - 19:37 (00:00) oracle ssh:notty 119.10.114.184 Mon Apr 16 19:37 - 19:37 (00:00) root ssh:notty 119.10.114.184 Mon Apr 16 19:37 - 19:37 (00:00) root ssh:notty 119.10.114.184 Mon Apr 16 19:37 - 19:37 (00:00) root ssh:notty 119.10.114.184 Mon Apr 16 19:36 - 19:36 (00:00) root ssh:notty 119.10.114.184 Mon Apr 16 19:36 - 19:36 (00:00) unabv ssh:notty 119.10.114.184 Mon Apr 16 19:36 - 19:36 (00:00) unabv ssh:notty 119.10.114.184 Mon Apr 16 19:36 - 19:36 (00:00) rramirez ssh:notty 119.10.114.184 Mon Apr 16 19:36 - 19:36 (00:00) $ whois 119.10.114.184 [Querying whois.arin.net] [Redirected to whois.apnic.net] [Querying whois.apnic.net] [whois.apnic.net] % [whois.apnic.net node-3] % Whois data copyright terms http://www.apnic.net/db/dbcopyright.html inetnum: 119.10.0.0 - 119.10.127.255 netname: XinnetIDC country: CN descr: XinNet Technology Corp. descr: 1st Floor, 2nd Building Section A, descr: BDA BeiGongDa Soft-ware Area, Beijing China. <-- 중국애들 맞네..
파일 비우기(clear btmp)
cat /dev/null > /var/log/btmp
/var/log/messages : 시스템 에러 및 하드웨어 에러 로그
$ vi messages
/var/log/secure : 사용자 인증관련 로그
$ vi secure
/var/log/lastlog : 사용자 최종 로그인 정보
$ lastlog
현재 접속자 정보 보기
$ w
$ who
[linux] sshd 보안 설정[linux] sshd 보안 설정
Posted at 2012. 9. 16. 13:48 | Posted in OS/Unix/Linux출처: http://mrain7.egloos.com/2391163
/etc/ssh/sshd_config
Root 로그인 차단
공격자 또는 내부 사용자가 root로 접근 가능할 경우 암호 무작위 입력으로 권한을 획득할 수 있습니다. 따라서, root 로그인을 차단, 일반 계정을 통하여 접근토록 하여야 합니다.Root 로그인 허용이 yes로 되어 있으면 no로 수정합니다.
#PermitRootLogin no
- 주석처리를 지우면 된다.
Forwarding 막기
만약, TCP 포트와 X11에 대한 포워드 기능을 사용하지 않는다면 비활성화 하시기 바랍니다.
AllowTcpForwarding no
X11Forwarding no
호스트 기반 인증 차단
Rhosts 사용이나 hosts.equiv를 통한 인증을 차단합니다. Rhost는 보안상 취약함으로 비활성화 합니다.
IgnoreRhosts yes
HostbasedAuthentication no
RhostsRSAAuthentication no
Port 변경하기
Port <변경할포트번호>
ssh port를 변경한 경우 클라이언트 측에서는 다음과 같은 설정을 해두고 사용하면 편하다.
http://blog.naver.com/deepblue28?Redirect=Log&logNo=140157240471&from=postView
해당 IP만 접속 허가 또는 거부
/etc/host.allow 와 host.deny
* 그 외 상세 설정은 evernote에 정리돼 있다. (어디에 적었뒀는지 까먹어대서..)
* ssh brute force attack을 막기 위해 fail2ban 을 사용해보자.
[openssl] OpenSSL API를 이용한 보안 프로그래밍[openssl] OpenSSL API를 이용한 보안 프로그래밍
Posted at 2012. 9. 16. 13:42 | Posted in 개발이야기OpenSSL API를 이용한 보안 프로그래밍, Part 1: API의 개요
http://www.ibm.com/developerworks/kr/library/l-openssl.html
OpenSSL API를 이용한 보안 프로그래밍, Part 2: 안전한 핸드쉐이크(handshake)
http://www.ibm.com/developerworks/kr/library/l-openssl2.html
OpenSSL API를 이용한 보안 프로그래밍, Part 3: 보안 서비스 제공하기
http://www.ibm.com/developerworks/kr/library/l-openssl3.html
[openssl] command line sample[openssl] command line sample
Posted at 2012. 9. 16. 13:41 | Posted in 개발이야기DES encript/descript
$ openssl enc -e -des -in aaa.c -out bbb.pem
$ openssl enc -d -des -in bbb.pem -out 111.c
$ diff aaa.c 111.c
Base64 encript/descript
$ openssl enc -e -base64 -in aaa.c -out bbb.b64
$ openssl enc -d -base64 -in bbb.b64 -out 111.c
$ diff aaa.c 111.c
DES+Base64 encript/descrip
$ openssl enc -e -des -base64 -in aaa.c -out bbb.pem
$ openssl enc -d -base64 -des -in bbb.pem -out 111.c
$ diff aaa.c 111.c
[ubuntu] open files limit 변경하기[ubuntu] open files limit 변경하기
Posted at 2012. 9. 16. 13:40 | Posted in OS/Unix/Linuxredhat(centOS 등)계열은 ulimit -n 으로 쉽게 설정 가능하나,
우분투는 잘 안되네..
다음과 같이 해서 해결.
system-wide limit on the number of open files for all processes
$ cat /proc/sys/fs/file-max
148608
계정별 open file limit
$ ulimit -n
1024
다음 2개 파일을 수정 (box안의 내용을 추가)
/etc/pam.d/common-session ==> 안해도 됨 (/etc/pam.d/login 에 설정돼 있네..)
session required pam_limits.so
/etc/security/limits.conf
* ? nofile 6000
<reboot>
$ ulimit -n
6000
[Ubuntu] downgrade subversion 1.7 to 1.6[Ubuntu] downgrade subversion 1.7 to 1.6
Posted at 2012. 9. 16. 13:37 | Posted in OS/Unix/Linux이클립스 subclipse를 깔았다가, javaHL 버전이 안맞느니 어쩌고 해서
인터넷을 뒤져 1.7.x로 업그레이드 했더니, 기존 repository와 호환이 안되는 문제 발생.
다시 1.6으로 다운그레이드 했다..
(1) 1.7 버전 제거
저장소 정보는 subversion 1.7.x로 맞춰진 상황..
시냅틱 패키지 관리자로 들어가서 subversion, libsn-java, libsvn1 을 삭제.
(2) 1.6 다운로드
패키지 다운로드: http://ppa.launchpad.net/anders-kaseorg/subversion-1.6/ubuntu/pool/main/s/subversion/
다음 3개를 다운로드 받고 순서대로 설치하면 된다.
libsvn1_1.6.5dfsg-1ubuntu1~hardy1~andersk1_amd64.deb
libsvn-java_1.6.5dfsg-1ubuntu1~hardy1~andersk1_amd64.deb
subversion_1.6.5dfsg-1ubuntu1~hardy1~andersk1_amd64.deb
(3) 설치
그냥 설치하면, libneon27, libdb4.6 의존성 어쩌고 하면서 안될텐데, 이 라이브러리들도 의존성 문제로 안된다.
강제로 설치해준다.
$ sudo apt-get -f install libneon27 libdb4.6
그리고, 위에서 다운 받은 3개를 순서대로 설치해준다.
$ sudo dpkg -i libsvn1_1.6.5dfsg-1ubuntu1~hardy1~andersk1_amd64.deb
$ sudo dpkg -i libsvn-java_1.6.5dfsg-1ubuntu1~hardy1~andersk1_amd64.deb
$ sudo dpkg -i subversion_1.6.5dfsg-1ubuntu1~hardy1~andersk1_amd64.deb
$ svn --version --quiet[버전 확인]
json editorjson editor
Posted at 2012. 9. 16. 13:32 | Posted in 개발이야기http://jsoneditor.appspot.com/ ? 기능 막강
http://www.thomasfrank.se/json_editor.html ? 다운로드 가능(PC에 다운 받아서 쓰면 됨). 대체로 쓸만함.
http://jsonlint.com/ ? 크롬 확장프로그램으로 설치 가능 (But, “바로가기” 라는거..)