http://www.linux.com/learn/docs/ldp/282996-choosing-the-best-linux-distributions-for-you
어떤 linux를 쓸까 고민하는데 위 링크가 이에 대한 나름의 조언이랄까.. 정리랄까..
use-case 별로 가장 괜찮은 linux를 추천한다.
hanil 서버의용도 best enterprise server라고 해야 하나.. 어떤 카타고리인지도 모르겠지만..
확실한건 fedora 가 많이 언급이 안된다. desktop으로는 ubuntu를 laptop으론 openSUSE를 추천하는데..
괜히 fedora 깔았나.. 난 푸른 계열의 기본 바탕화면이 좋은데..
Tuesday, October 19, 2010
Sunday, October 17, 2010
linux server
--apache server--
일단 hanil 서버를 관찰 결과를 보자면 fedora 13을 깔았는데 기본적으로 모든 서버가 다 작동 되는걸로 보인다.
"keepAlive"에 대한 설명 : http://cafe.rootcenter.com/130079030932
"MPM"(multi_processing modules) : perfork, worker, perchild 방식이 있고, 현제 시스템의 방식은 httpd -l 명령어로 확인가능
1. perfork : 응답 프로세스를 미리 띄어 놓고, 클라이언트의 요청이 있을 때 자식 프로세스가 반응할 수 있도록 하는 설정
2. worker : 프로세스 기반의 서버인 prefork와 스레드로 클라이언트 요청에 응답하는 혼합된 스레드 서버.
3. perchild : 고정 프로세스 개수를 설정한 후 각 프로세스는 특정 스레드를 개수만큼 작동시킴.
"Listen" : 웹서버의 서비스 포트로 80 이 기본이며 다른 포트 번호를 사용할 경우 ServerName 지시자에 명시해야 한다.
"ServerAdmin" : 시스템 관리자 Email 주소
"Directory tag:아파치 서버가 접근하는 각 디렉토리에 아떠한 서비스와 기능들을 허용하고 또는 삭제 할 것인가 설정하는 부분
1.options: "indexes" : 웹사이트에 접속했을 때 index.html이 없을 경우 웹서버 스스로 그 디렉토리의 파일들을 보여 줄것이라는 의미, ExecCGI: CGI 스크립트 실행 허용,
SSI 란? http://blog.naver.com/v_kazel_v?Redirect=Log&logNo=110028893616
2.AllowOverride : 웹문서 디렉토리에서 접근 제한 설정 파일인 .htaccess 파일을 작동시킬 것인지 여부를 결정(접근 제한을 위해선 AllowOverride를 All로 설정하고 .htaccess 만들어 놓는다),
3.order : http://blog.naver.com/hkh119?Redirect=Log&logNo=120021176586
"UserDir" : 루트 이외의 다른 계정으로 홈페이지를 운영하고자 할때 사용자의 웹문서 기본 기렉토리를 UserDir 지시자로 지정 해준다. 먼저 default 로 되어 있는 UserDir disabled를 제거 하고 일반적으로 UserDir public_html 이라고 지정하고 나서 를 지정한다.
"DirectoryIndex" : 클라이언트가 웹서버에 대한 요청이 있을 때 클라이언트에 전달하는 html문서의 순서를 지정해 주는 지시자
"AccessFilleName" : 각 디렉토리에서 접근 제어 정보를 가지고 있는 파일명을 지정하는 지시자.
--보안--
기본적으로 파일이 생성되면 umask에 값을 뺀 값으로 퍼미션이 잡힌다. umask 명령어로 기본 umask 값을 볼수 있다(일반적으로 umak는 0022).
SUID,SGID 프로그램은 보안상 위험하다.
<참고>파일 권한 {'x'1:,'w':2,'r':4}, user,group,other 순, 4자 permission 구조 sticky bit(1000) : 모든 사용자가 쓰고 삭제 할수 있는 디렉토리를 의미, 파일구조 맨마지막에 t가 붙는다, SetGID(2000) : , SetUID(4000)
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=110&docId=64531886&qb=Y2htb2QgU2V0dWlk&enc=utf8§ion=kin&rank=2&search_sort=0&spq=0&pid=g7VyQB331xwssZijnSKssv--138254&sid=TLsxtXIPu0wAAC2@F3g
find / -type f \( -perm -04000 -o -perm -02000 \) : SUID/SGID 프로그램 존재 확인 명령어
find / -perm -2 -print : 누구나 쓰기 가능한 world-writable 파일을 모두 찾는 명령어
find / -nouser - nogroup -print : 유저 권한이 없는 파일 검색
find / -name .rhosts -print : 원격 호스트 파일 (.rhost) 파일 검색. 이는 제거 하는것이 좋다.
charttr : 파일 속성을 변경해주는 유틸리티로 루트 자신도 파일을 변경하지 못하도록하는 것.
lastlog : /etc/passwd에 등록되어 있는 사용자의 최근 로그인 상황을 볼수 있다(자주 사용하지 않을 사용자가 로긴 되어있을 경우 크래킹을 의심).
Nmap : 포트 스캔 도구
yum list : 설치된 패키지와 업데이트 가능한 패키지 보기
yum list installed <패키지 명> : 특정 패키지 설치 확인
yum list available 'somthing*' : yum 가능한 패키지 보기(somthing이란 이름이 들어간 패키지)
yum check-update : 업데이트 가능한 패키지 보기
yum install <패키지 명> : 패키지 설치
yum info <패키지 명> : 패키지 정보 알아보기
yum install nmap 으로 nmap 설치 이후 hanil 서버의 열린 포트를 알아본다
nmap -sS
그뒤 특정 포트에 대한 설정을 iptable이용하여 하면 STATE 필드가 filtered로 변한다.
Snort : 네트워크를 통한 침입에 대한 탐지 및 경고를 시스템 관리자에게 알려주는 네트워크 침입 탐지 시스템으로 libpcap 라이브러리를 이용하여 네트워크상의 패킷과 설정 파일에서 정의된 룰에 의해서 침입 및 공격을 알려주는 도구.
yum install snort
/etc/snort/snort.conf 파일에 설정 내용이 들어 있다(var HOME_NET로 설정).
외부에서 포트 스캔을 하거나 접근 시도가 있으면 /var/log/snort 에 기록이 남는다.
lastlog : 텔넷 접속으로 로그인한 사용자를 추적할때 사용하는 명령어로 /var/log/lastlog의 내용 출력
last : /var/log/wtmp 파일에 저장된 정보를 읽어 들여 로그인한 사용자의 정보를 출력 (last graphy21 : 특정 사용자 로그인 정보)
xferlog : FTP로 파일 전송 기록을 저장하는 파일 (more xferlog)
커널과 시스템에 관련된 로그 메시지들은 syslogd와 klogd 두개의 데몬에 의해서 /var/log/messages에 기록된다.
--SElinux (Security Enhanced Linux)--
a
--TCP/IP 네트워크 (iptable 설정)--
ㅁ
일단 hanil 서버를 관찰 결과를 보자면 fedora 13을 깔았는데 기본적으로 모든 서버가 다 작동 되는걸로 보인다.
apache server의 위치는 /etc/httpd/ 그 안에 conf 폴더가 설정 폴더.
-httpd.conf 파일을 내용: 대부분 주석에 내용으로 파악이 가능.
httpd.conf 를 수정뒤 syntax error가 없는 지 확인하기 위해서 httpd -t 명령어를 이용하면 된다.
"keepAlive"에 대한 설명 : http://cafe.rootcenter.com/130079030932
"MPM"(multi_processing modules) : perfork, worker, perchild 방식이 있고, 현제 시스템의 방식은 httpd -l 명령어로 확인가능
1. perfork : 응답 프로세스를 미리 띄어 놓고, 클라이언트의 요청이 있을 때 자식 프로세스가 반응할 수 있도록 하는 설정
2. worker : 프로세스 기반의 서버인 prefork와 스레드로 클라이언트 요청에 응답하는 혼합된 스레드 서버.
3. perchild : 고정 프로세스 개수를 설정한 후 각 프로세스는 특정 스레드를 개수만큼 작동시킴.
"Listen" : 웹서버의 서비스 포트로 80 이 기본이며 다른 포트 번호를 사용할 경우 ServerName 지시자에 명시해야 한다.
"ServerAdmin" : 시스템 관리자 Email 주소
"Directory tag:아파치 서버가 접근하는 각 디렉토리에 아떠한 서비스와 기능들을 허용하고 또는 삭제 할 것인가 설정하는 부분
1.options: "indexes" : 웹사이트에 접속했을 때 index.html이 없을 경우 웹서버 스스로 그 디렉토리의 파일들을 보여 줄것이라는 의미, ExecCGI: CGI 스크립트 실행 허용,
SSI 란? http://blog.naver.com/v_kazel_v?Redirect=Log&logNo=110028893616
2.AllowOverride : 웹문서 디렉토리에서 접근 제한 설정 파일인 .htaccess 파일을 작동시킬 것인지 여부를 결정(접근 제한을 위해선 AllowOverride를 All로 설정하고 .htaccess 만들어 놓는다),
3.order : http://blog.naver.com/hkh119?Redirect=Log&logNo=120021176586
"UserDir" : 루트 이외의 다른 계정으로 홈페이지를 운영하고자 할때 사용자의 웹문서 기본 기렉토리를 UserDir 지시자로 지정 해준다. 먼저 default 로 되어 있는 UserDir disabled를 제거 하고 일반적으로 UserDir public_html 이라고 지정하고 나서
"DirectoryIndex" : 클라이언트가 웹서버에 대한 요청이 있을 때 클라이언트에 전달하는 html문서의 순서를 지정해 주는 지시자
"AccessFilleName" : 각 디렉토리에서 접근 제어 정보를 가지고 있는 파일명을 지정하는 지시자.
--보안--
기본적으로 파일이 생성되면 umask에 값을 뺀 값으로 퍼미션이 잡힌다. umask 명령어로 기본 umask 값을 볼수 있다(일반적으로 umak는 0022).
SUID,SGID 프로그램은 보안상 위험하다.
<참고>파일 권한 {'x'1:,'w':2,'r':4}, user,group,other 순, 4자 permission 구조 sticky bit(1000) : 모든 사용자가 쓰고 삭제 할수 있는 디렉토리를 의미, 파일구조 맨마지막에 t가 붙는다, SetGID(2000) : , SetUID(4000)
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=110&docId=64531886&qb=Y2htb2QgU2V0dWlk&enc=utf8§ion=kin&rank=2&search_sort=0&spq=0&pid=g7VyQB331xwssZijnSKssv--138254&sid=TLsxtXIPu0wAAC2@F3g
find / -type f \( -perm -04000 -o -perm -02000 \) : SUID/SGID 프로그램 존재 확인 명령어
find / -perm -2 -print : 누구나 쓰기 가능한 world-writable 파일을 모두 찾는 명령어
find / -nouser - nogroup -print : 유저 권한이 없는 파일 검색
find / -name .rhosts -print : 원격 호스트 파일 (.rhost) 파일 검색. 이는 제거 하는것이 좋다.
charttr : 파일 속성을 변경해주는 유틸리티로 루트 자신도 파일을 변경하지 못하도록하는 것.
lastlog : /etc/passwd에 등록되어 있는 사용자의 최근 로그인 상황을 볼수 있다(자주 사용하지 않을 사용자가 로긴 되어있을 경우 크래킹을 의심).
Nmap : 포트 스캔 도구
yum list : 설치된 패키지와 업데이트 가능한 패키지 보기
yum list installed <패키지 명> : 특정 패키지 설치 확인
yum list available 'somthing*' : yum 가능한 패키지 보기(somthing이란 이름이 들어간 패키지)
yum check-update : 업데이트 가능한 패키지 보기
yum install <패키지 명> : 패키지 설치
yum info <패키지 명> : 패키지 정보 알아보기
yum install nmap 으로 nmap 설치 이후 hanil 서버의 열린 포트를 알아본다
nmap -sS
그뒤 특정 포트에 대한 설정을 iptable이용하여 하면 STATE 필드가 filtered로 변한다.
Snort : 네트워크를 통한 침입에 대한 탐지 및 경고를 시스템 관리자에게 알려주는 네트워크 침입 탐지 시스템으로 libpcap 라이브러리를 이용하여 네트워크상의 패킷과 설정 파일에서 정의된 룰에 의해서 침입 및 공격을 알려주는 도구.
yum install snort
/etc/snort/snort.conf 파일에 설정 내용이 들어 있다(var HOME_NET
외부에서 포트 스캔을 하거나 접근 시도가 있으면 /var/log/snort 에 기록이 남는다.
lastlog : 텔넷 접속으로 로그인한 사용자를 추적할때 사용하는 명령어로 /var/log/lastlog의 내용 출력
last : /var/log/wtmp 파일에 저장된 정보를 읽어 들여 로그인한 사용자의 정보를 출력 (last graphy21 : 특정 사용자 로그인 정보)
xferlog : FTP로 파일 전송 기록을 저장하는 파일 (more xferlog)
커널과 시스템에 관련된 로그 메시지들은 syslogd와 klogd 두개의 데몬에 의해서 /var/log/messages에 기록된다.
--SElinux (Security Enhanced Linux)--
a
--TCP/IP 네트워크 (iptable 설정)--
ㅁ
Thursday, October 14, 2010
linux command
--send message in linux:
* 메세지 브로드캐스트
* 메세지 브로드캐스트
wall 메세지
ctrl+D
*개인에게 메세지 보내기
write userid pts/number
ctrl+d
--display cpu information:
cat proc/cpuinfo
--mail in linux (when sendmail server is running) :
-check mail : mail
-writing mail :
mail graphy21@gmail.com
subject: something
something
.
2*(ctrl+c) mean cancel.
-writing mail by file : mail -s 'subject' graphy21@gmail.com < some_file.ext
--check running demon in kernel:
ps acx
-check zombi process & kill that:
ps axj # 'z' in STAT field in output mean zombi
kill -l # list of signal which can be send to process
kill [-signal number || signal] PID # example : kill -9 973
--display cpu information:
cat proc/cpuinfo
--mail in linux (when sendmail server is running) :
-check mail : mail
-writing mail :
mail graphy21@gmail.com
subject: something
something
.
2*(ctrl+c) mean cancel.
-writing mail by file : mail -s 'subject' graphy21@gmail.com < some_file.ext
--check running demon in kernel:
ps acx
-check zombi process & kill that:
ps axj # 'z' in STAT field in output mean zombi
kill -l # list of signal which can be send to process
kill [-signal number || signal] PID # example : kill -9 973
Tuesday, October 12, 2010
리눅스 운영체제의 이해와 개발
병렬 프로그래밍을 보다가 thread를 이용해서 posix에서 알아서 cpu를 조정하는 것을 알았다(우스워 보일지 모르지만 나름 굉장한 흥분된 발견이였다. python 예제에서 나왔을 때 아무 생각 없이 따라 했는데 연대 핸드아웃 프린트 물 보다보니 확실히 이해하는 순간... 여튼). 그러면 순간 드는 생각이 아니 그럼 os는 어떻게 알아서 thread를 관리하지? 라는 생각. 그래서 os가 어떻게 돌아가는지 알아야 겠다는 생각에 선택한 책.
상품평에 의하면 완전 쉬운 해설과 친절한 최고의 책과 같이 되어있지만... 나와 같은 허접덩이한테는 그저 외계어에 가깝다.
그런데 재밌는건 이해가 거의 안되지만(하다못해 처음 kernel을 다운 받아서 컴파일 하는 과정 조차 이해되지 않음) 왠지 모르게 재밌게 읽고 있다는 것이다. 신기..
내 목표는 이해와 개발이 아니라 끝까지 정독과 개념 잡기 정도 이다. 끝을 꼭 보자. 끝을 보도 책에 대한 나의 평가를 다시 붙이도록 한다.
상품평에 의하면 완전 쉬운 해설과 친절한 최고의 책과 같이 되어있지만... 나와 같은 허접덩이한테는 그저 외계어에 가깝다.
그런데 재밌는건 이해가 거의 안되지만(하다못해 처음 kernel을 다운 받아서 컴파일 하는 과정 조차 이해되지 않음) 왠지 모르게 재밌게 읽고 있다는 것이다. 신기..
내 목표는 이해와 개발이 아니라 끝까지 정독과 개념 잡기 정도 이다. 끝을 꼭 보자. 끝을 보도 책에 대한 나의 평가를 다시 붙이도록 한다.
Sunday, October 10, 2010
evolution of methylome
영건씨랑 이야기 하다 좀더 정리가 된거 같아서 관련 내용을 기록한다.
목표 : methylation의 evolution의 경향
기존의 논문은 dna sequence로 phylogeny tree를 만들고 그걸 기준으로 methylation pattern을 정리 한다. 정해진 트리에 맞춰서 transposon (repeat sequence) 과 genebody (혹은 exon과 intron 부위를 나눠서) methylation pattern(여러종을 보기때문에 CpG 뿐만 아니라 CHH등)을 보고 DNMT의 homologue 의 존재 여부와 연관을 지어 phylogeny의 어느 branch는 어떤 시퀀스(CG나 CHH)가 많이 methylation되어 있고 어느 부분은 그렇지 않다라는 식으로 정리한다.
우리는 아예 phylogeny를 methylation이 들어간 정보로 새로히 그려보고자 한다. 그리고 그 tree를 그리기 위한 genomic region을 크게 gene body 와 transposon으로 나누고 두 영역으로 그린 tree가 같은가를 본다.
FFP를 선택한 이유에 대해서는 기존의 multiple alignment를 통한 phylogeny tree를 그리는 것은 homology가 있는 시퀀스를 선택해서 그려야 하는데(특정 부위에 의한 biased가 있는게 아닐까 생각한다) 이러한 제약이 없다.
목표 : methylation의 evolution의 경향
기존의 논문은 dna sequence로 phylogeny tree를 만들고 그걸 기준으로 methylation pattern을 정리 한다. 정해진 트리에 맞춰서 transposon (repeat sequence) 과 genebody (혹은 exon과 intron 부위를 나눠서) methylation pattern(여러종을 보기때문에 CpG 뿐만 아니라 CHH등)을 보고 DNMT의 homologue 의 존재 여부와 연관을 지어 phylogeny의 어느 branch는 어떤 시퀀스(CG나 CHH)가 많이 methylation되어 있고 어느 부분은 그렇지 않다라는 식으로 정리한다.
우리는 아예 phylogeny를 methylation이 들어간 정보로 새로히 그려보고자 한다. 그리고 그 tree를 그리기 위한 genomic region을 크게 gene body 와 transposon으로 나누고 두 영역으로 그린 tree가 같은가를 본다.
FFP를 선택한 이유에 대해서는 기존의 multiple alignment를 통한 phylogeny tree를 그리는 것은 homology가 있는 시퀀스를 선택해서 그려야 하는데(특정 부위에 의한 biased가 있는게 아닐까 생각한다) 이러한 제약이 없다.
Wednesday, October 6, 2010
python 3부 : 모듈
이부분은 chapter의 순서와 상관없이 나가겠다. 보고 싶은것 부터..
chapter18 : 보다 견고한 코드 만들기
이부분에서는 unittest 모듈을 사용하는 방법을 알려준다.
일반적으로 unittest의 TestCase의 클래스를 상속 받는 클래스를 생성한다음에 TestSuite 에 넣고 실행. 자세한것은 책 참조
아 보다가 알아낸것 None은 "is" 연산자를 이용해야 한다는데 아래 링크 참조
http://jaredgrubb.blogspot.com/2009/04/python-is-none-vs-none.html
chapter19 : distutils를 이용한 배포
ㅁㅁ
etc
- timeit 모듈 : 실행 시간 재는 모듈
http://man.lupaworld.com/content/develop/diveintopython-html-5.4/diveintopython-5.4/performance_tuning/timeit.html
chapter18 : 보다 견고한 코드 만들기
이부분에서는 unittest 모듈을 사용하는 방법을 알려준다.
일반적으로 unittest의 TestCase의 클래스를 상속 받는 클래스를 생성한다음에 TestSuite 에 넣고 실행. 자세한것은 책 참조
아 보다가 알아낸것 None은 "is" 연산자를 이용해야 한다는데 아래 링크 참조
http://jaredgrubb.blogspot.com/2009/04/python-is-none-vs-none.html
chapter19 : distutils를 이용한 배포
ㅁㅁ
etc
- timeit 모듈 : 실행 시간 재는 모듈
http://man.lupaworld.com/content/develop/diveintopython-html-5.4/diveintopython-5.4/performance_tuning/timeit.html
Subscribe to:
Posts (Atom)
