본문 바로가기

linux 커널

(4)
netfilter hook을 이용한 fw 만들기 - 2 오늘은 FW만들기 위해 IP와 Port를 출력해볼 것입니다.IP와 Port를 출력할 수 있다면 원하는 IP또는 Port를 차단할 수 있을것입니다. 다음 포스팅은 sqlite를 통해 IP정보와 Port정보를 읽어와 IP와 Port를 확인하고 차단 해볼예정입니다. 먼저 netfilter hook으로 받아온 skb에서 tcp인지 udp인지 protocol에 따라 나누어줍니다.  static unsigned int my_hook_function(void *priv, struct sk_buff *skb, const struct nf_hook_state *state) { struct iphdr *ip_header; // IPv4 프로토콜인지 확인 if (skb->protocol == htons(E..
netfilter hook을 이용한 fw 만들기 안녕하세요 금일 포스팅 할 내용은 리눅스 커널 모듈을 이용해 netfilter hook을 사용하는 방법입니다. netfilter란 커널의 네트워크 프레임워크 중 하나로 hook을 제공하여 원하는 패킷을 drop할 수 있다. netfilter hook등록 netfilter는 hook을 등록하고 등록해제하는 함수가 있다. nf_register_hook 을 이용해 설정한 nf_hook_ops 구조체를 넘겨주면 등록이 됩니다. 해당 함수를 이용하여 함수를 등록하고 해제를 한다. netfilter hook의 예시입니다. #include #include #include #include static struct nf_hook_ops my_nf_ops; static unsigned int my_hook_function..
리눅스 커널 모듈 안녕하세요 오늘은 kernel 드라이버에 대해 포스팅했습니다. 앞으로도 kerenl 드라이버에 대해 계속 포스팅 할 예정입니다. 최종적으로 목표는 linux kernel 모듈을 이용한 IPS를 제작해보는게 최종목표입니다. 오늘은 간단하게 리눅스 커널 모듈을 어떻게 로드하고 간단하게 printk로 dmesg를 출력해볼 예정입니다. 디렉터리 구조 kernel_module/ ├── hello.c └── Makefile Makefile obj-m += hello.o all: $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean..
ubuntu 22.04 커널 빌드 안녕하세요 오늘은 ubuntu 22.04.3 버전에서 커널 빌드 방법을 포스팅했습니다. 빌드 환경 : virtualbox, ubuntu 22.04.3 버전 필요한 패키지 sudo apt update sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev fakeroot 1.현재 커널버전 우선 현재 ubuntu 22.04.3버전의 커널을 확인해줍니다. 1-1. 커널 버전 확인 방법 uname -r 1-2. 커널 버전 읽는법 커널 버전을 볼때 아래 그림을 생각하면 보면 좀 더 자세하게 알 수 있습니다. 2. 커널 설치 minor 버전이 같은 커널버전을 다운 받을 생각입니다. 2-1. 커널 site https://www...