본문 바로가기
  • AI (Artificial Intelligence)

Skills/Unix, Linux36

다양한 OpenSource 가 존재 Ubuntu and RedHat/CentOS Packages We offer nightly builds of most applications in binary package (x64 only) for avoid compiling the code from source. The package repository is available here. ntopng ntopng is distributed under the GNU GPLv3. It should virtually compile on any Unix/Win32 platform. Source Code Stable Download » Development SVN » Demo Binaries Win32 (including Win7/8) demo snapshot.. 2014. 5. 22.
Programming with pcap Tim Carstens timcarst at yahoo dot com Further editing and development by Guy Harris guy at alum dot mit dot edu Ok, let's begin by defining who this document is written for. Obviously, some basic knowledge of C is required, unless you only wish to know the basic theory. You do not need to be a code ninja; for the areas likely to be understood only by more experienced programmers, I'll be sure t.. 2014. 5. 22.
Tcpdump와 WireShark를 이용한 패킷 분석 왜 리눅스에는 wireshark 같은 물건이 없을까 ? 네트워크 관리자는 아니라서 tcpdump를 달고사는 건 아니지만 간혹 네트워크 프로그램 디버깅 목적으로 사용하곤 합니다. 그 때마다 드는 생각이 있죠. "왜 리눅스에는 윈도우의 wireshark와 같은 GUI 기반의 분석툴이 없을까. ?". 클라우드 관련일을 하다보니, 패킷을 분석해야할 일이 많아진 요즘에는 그런 생각이 좀 더 간절해 집니다. tcpdump로 분석하는 건 인간적으로 너무 짜증나고. windows vm에서 wireshark를 실행해야 하나 ? 라는 생각도 하게 됐구요. 그거 분석하자고 vm 띄우는건 짜증이야 라는 생각에 wine으로 실행해 볼까라는 생각도 하게 됐죠. wine으로 wireshark를 실행하는건 실제 시도했습니다. 잘 돼.. 2014. 5. 22.
Socket 옵션 목차 1 소켓옵션 1.1 SO_REUSEADDR 1.2 소켓 버퍼 1.3 TCP_NODELAY 1.4 SO_LINGER 2 참고문헌 3 히스토리 1 소켓옵션 네트워크 환경은 복잡 다양하며 예측하기 힘든 일들이 많이 발생한다. 이런 이유로 네트워크프로그램의 종류에 따라서 소켓(:12)의 세부사항을 조절해야 할 때가 있다. 소켓은 소켓옵션을 조작해서 세부사항을 조절할 수 있는데, 이를 위해서 getsockopt()와 setsockopt()두 개의 함수를 제공한다. 이름에서 알 수 있듯이 getsockopt는 현재의 소켓옵션값을 가져오기 위해서, setsockopt는 소켓옵션값을 변경하기 위해서 사용한다. 다음은 이들 함수의 사용방법이다.#include #include int getsockopt(int s, .. 2014. 5. 22.
RTS의 단점 보완 목차 1 소개 2 개요 3 소개 4 이벤트 전달 방식 4.1 다중 연결의 처리 5 리눅스 커널 매커니즘 5.1 select() 시스템 콜 5.2 poll() 시스템 콜 5.3 POSIX. 4 Real Time Signals 6 이벤트 통지에서의 효율성 7 RTS의 단점/해결방법 7.1 Linux에서의 Signal Queue 크기 7.2 Siganl queue Overflow 문제 7.3 Signal-per-fd의 사용 8 2.4.x에서의 signal-per-fd 커널 패치 8.1 kernel 다운로드 및 패치 하기 8.2 2.6에서의 signal-per-fd 8.3 간단한 셈플 프로그램 9 프로젝트 진행 10 참고 문헌 이 문서는 일부 2.6의 내용을 포함하고 있지만 전체적으로 커널 2.4를 기준으로 작.. 2014. 5. 22.
Real Time Signal 02 차례 1절. 소개 2절. 네트워크 프로그램과 RTS 2.1절. 프로그램 작동 방식 2.2절. RTS 대기열의 크기에 따른 문제 2.2.1절. RTS 대기열 Overflow 2.3절. 예제 1절. 소개 지난번 Real Time Signal에 이은 두번째 기사이다. 지난 기사가 RTS의 개념설명에 중점을 두었다면 이번 기사는 RTS의 실질적인 응용에 중점을 두고 있다. 2절. 네트워크 프로그램과 RTS 지난번 기사는 UDP를 이용한 네트워크 프로그래밍 예제 였는데, RTS의 개념을 설명 하는데에는 유용했지만 많은 수의 네트워크 프로그램이 주로 TCP를 이용해서 작성된다는 것을 감안하면 그리 실용성 있는 예는 아니었다. 이번에는 RTS를 이용한 그럴듯한 TCP기반의 네트워크 프로그램을 작성 하도록 하겠다. 작.. 2014. 5. 22.
Real Time Signal 01 차례 1절. 소개 2절. poll(2)을 이용한 이벤트 통지 2.1절. poll(2)의 인터페이스 2.1.1절. poll(2)의 문제점 3절. POSIX RTS 3.1절. RTS란 3.2절. RTS와 표준 시그널(signal)과의 비교 3.3절. RTS 대기열의 크기 3.4절. RTS와 poll과의 비교 3.5절. RTS지원 확인 3.6절. RTS를 이용한 네트워크 입출력 처리 3.7절. RTS 네트워크 예제 작성 3.8절. 프로세스간 신호전달 4절. 결론 1절. 소개 이 사이트의 네트워크 프로그래밍 관련 문서들을 몇개 읽어 보았다면 분명 RealTime signal(이하 RTS)에 대해서 들어 보았을 것이다. 지금까지의 네트워크 프로그래밍에서 사용되었던 기술들은 polling기반이였다. 즉 메시지가 도.. 2014. 5. 22.
Port Scannig 검사툴 차례 1절. 소개 2절. JPSD 제작 2.1절. 프로그램에 대한 개략적인 기능명세 2.1.1절. Port Scanning 탐지및 PORT 통계 2.1.2절. DOS공격 탐지 2.2절. 구현 프로세스 3절. 예제 4절. 결론 1절. 소개 이번에는 두번에 걸쳐 다루었던 libpcap기술을 응용해서 각 서비스 포트에 대한 네트워크 통계및 포트스캐닝을 검사하는 프로그램을 만들어 보도록 하겠다. 2절. JPSD 제작 이번에 작성하고자 하는 프로그램은 JPSD라는 다소 촌스러운 이름을 가진 프로그램이다. 눈치 챘겠지만 Joinc Port Scanning Decter의 첫 글자를 따서 이름을 지었다. 다소 거부감이 느껴지더라도 그러려니 하고 넘어가주기 바란다. 2.1절. 프로그램에 대한 개략적인 기능명세 2.1.1.. 2014. 5. 22.
Pcap 을 이용한 패킷캡쳐응용 차례 1절. 소개 2절. ID 및 패스워드 검색 프로그램 2.1절. 이거 크래킹 프로그램 아닌가요? 2.2절. 구현 방법 2.3절. id, password 전달문자열 확인하기 2.4절. 예제코드 2.5절. 정보 누출을 막는 방법 1절. 소개 지난번에는 pcap 소개문서인 libpcap 프로그래밍 libpcap 프로그래밍을 통해서 기본적인 패킷캡쳐 방법에 대해서 알아보았었다. 이번에는 실질적인 응용에 대해서 간단한 예제와 함께 공부해 보도록 하겠다. 지난번 libpcap 에 대한 이해를 마쳤다면, 이 문서는 가벼운 마음으로 읽어나갈수 있을것이다. 2절. ID 및 패스워드 검색 프로그램 이번에 만들고자 하는 응용은 LAN 상에서 특정 사이트에 접속하고자 하는 유저의 ID와 패스워드를 가져오는 프로그램이다. .. 2014. 5. 22.
libpcap 를 이용한 프로그래밍 차례 1절. 소개 2절. Libpcap 기본 2.1절. Libpcap 에 대하여 2.2절. libpcap 의 설치 2.3절. 패킷 캡쳐의 기본이해 2.4절. 패킷 캡쳐의 응용 3절. libpcap 프로그래밍 3.1절. 디바이스&네트웍 정보 관련 API 3.1.1절. int pcap_lookupnet() 3.1.2절. char* pcap_lookupdev 3.1.3절. pcap_datalink 3.1.4절. 예제 3.2절. 패킷 캡쳐 초기화 관련 API 3.2.1절. pcatp_t *pcap_open_live 3.2.2절. pcap_t *pcap_open_offline 3.3절. 패킷 캡쳐(Read) 관련 API 3.3.1절. TCP,IP,Eternet 구조체 3.3.2절. u_char *pcap_next.. 2014. 5. 22.
권한(Permission) 과 chmod & chown [Environment] OS : Cent OS 6.4 리눅스에서 제일 중요한걸 꼽으라면 권한을 들수있겠다. 오늘은 권한과 그에 대한 명령어들을 알아볼것이다. 위 속성들을 표를 통해 알아보겠다. d r-xr-xr-x 2 root root 4096 2013-03-25 ~ bin 파일유형 파일허가권 링크 수 파일 소유자 파일 소유그룹 파일크기 마지막 수정날짜 파일/디렉터리이름 참고로 d는 디렉토리일때 d이다. 일반 파일일때는 - 로 나오니 참고할것. 이제 권한에 대해 알아볼것이다. 권한 설정명령어는 chmod이다. 예를들어 chmod 777 exam 이런식으로 명령을 준다면 exam이란 파일/디렉터리에 모든허가를 준다는뜻이다. rwx/rwx/rwx이런식으로 끊어서 봐야한다. 맨앞 rwx 는 파일소유자를 뜻하.. 2014. 5. 22.
UNIX Kernel 이해를 돕기위한 그림 3종.. 1. UNIX의 발전과정 명료하고 한눈에 볼 수 있어서 좋다. 2. Kernel의 구조라 할까 하드웨어에서 커널을 통해 쉘까지.. 3. System Call 과정이라 표현하면 될까? 그림을 보고 이해를 하는게 더 빠르지 않나? 4. 마지막으로 이건 개인적으로 공부하려고 올린 것. 2014. 4. 22.
kernel system call - do_brk() DPDK 문서를 보다가 커널이 프로세스에게 메모리를 동적으로 할당하는 데 쓰이는 do_brk() 라는 System call 이 kernel 2.4 이하에서 취약점이 발견되어 이것을 이용하면 시스템의 root 를 획득할 수 있다고 하는 흥미로운 기사를 발견했다. 아래는 그 내용이다. ::: 버전 2.4.22 이하 리눅스 커널의 do_brk() 취약점 ::: 작성일 : 2003년 12월 6일 작성자 : iSEC Security Research (http://isec.pl) 번역 : 해커스쿨 (http://hackerschool.org) 이 문서는 지난 12월 초에 발견된 새로운 리눅스 커널 결함에 대하여 외국의 iSEC Security Research사에서 분석한 문서를 번역한 것입니다. 번역과 배포의 목적.. 2014. 4. 16.
What makes an operating system “Unix-Like”? I frequently come across the term "unix-like" on the internet on many sites. There is no standard; it is just in the way it behaves. But if I were to develop a kernel from scratch, what would make it considered "unix-like"? Basically, what are the things that make written code like Unix? 출처 : http://unix.stackexchange.com/questions/87686/what-makes-an-operating-system-unix-like 2014. 4. 16.
NCURSES Programming HOWTO 원문 위치 : http://www.ibiblio.org/pub/Linux/docs/HOWTO/NCURSES-Programming-HOWTO 첫 번역이라 많이 미흡합니다 모자란 점이 있으면 지적해 주시기 바랍니다. --gsong 번역 gsong gsong_at_hanmail.net 작성 Pradeep Padala p_padala_at_yahoo.com v1.9, 2005-06-20 Revision History Revision 1.9 2005-06-20 Revised by: ppadala ncurses는 MIT 라이센스로 변경되었습니다. 프로그램은 이에 따라 재 허가 됩니다. Revision 1.8 2005-06-17 Revised by: ppadala Lots of updates. Added refere.. 2014. 4. 16.
pscp로 파일 전송하기 서버를 이용하다 보면 ftp 서버 없이 ssh을 통하여 작업을 하는 경우가 있다. 이러한 경우 서버와 파일을 간단하게 주고 받는것도 힘들다.. 이때는 putty에서 나온 pscp를 이용하여 파일을 이동해보자. 아래 사이트를 이용하면 putty 관련 프로그램을 다운로드 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html pscp를 다운 받으면 cmd를 이용하여 해당 파일 위치에서 명령어 내린다 명령은 기존 scp 명령과 동일 ex) pscp test.txt ubuntu@23.456.787.123:~/home/ubuntu 아마존 서버에 경우 비밀번호 없이 키파일을 이용하여 본인인증을 하기 때문에 옵션을 주면된다. 이때는 옵션을 -i ex)pscp.. 2014. 4. 15.
context switching 오늘날 우리가 사용하는 컴퓨터는 동시에 단 한 개의 명령어만을 처리할 수 있다. 하지만, 이 부분의 처리 속도는 매우 빠르기 때문에 순간 적으로 여러 개의 명령어를 처리하는 것처럼 보이게 되는데, 우리가 개발한 프로그램 역시 매우 빠른 속도로 처리된다. 때문에 두 가지 이상의 작업이 거의 동시에 발생되고 처리 되어지게 할 수 있다. 이렇게 작업을 병렬로 처리하는 것은 그 만큼 작업 시간이 줄어드는 것이므로 효율은 높아지게 된다. 우리가 구성할 네트워크는 매우 많은 패킷들을 순간적으로 처리해주어야 한다. 때문에 병렬 처리가 필수적이라 할 수 있는데, 쓰레드라는 개념을 사용하여 이 것을 구현할 수 있다. ■ Thread란? - 하나의 작업 프로세스를 진행시키는 단위라고 이해하면 된다. 우리가 프로그램 하나를.. 2014. 3. 31.
리눅스 커널의 이해(2): 리눅스 커널의 동작 저자: 서민우 출처: Embedded World 1. 리눅스 커널의 기본적인 동작 이제 리눅스 커널이 어떻게 동작하는지 들여다 보자. 리눅스 커널은 그 소스량은 엄청나지만 역시 커널의 기본적인 동작은 우리가 지금까지 보아온 커널의 동작과 별로 다르지 않다. 덧붙이자면 다른 RTOS도 역시 마찬가지다. system call에 의해 시작하는 리눅스 커널의 일반적인 동작 [그림 1]은 system call에 의해 시작하는 리눅스 커널의 일반적인 동작이다. [그림 1] system call에 의한 리눅스 커널의 일반적인 동작 [그림 1]에서 커널은 process의 system call에 의해 수행을 시작한다. 먼저 커널의 시작 부분에서는 현재 process의 사용자 영역에서의 register의 내용을 stack.. 2014. 3. 31.