klaus

[KDT-DAY_8] Linux (feat. 커널 업그레이드_1차) 본문

수업/KDT

[KDT-DAY_8] Linux (feat. 커널 업그레이드_1차)

klus! 2023. 1. 4. 16:47

 

centos /ubuntu/ BT

==> promisc mod를 

wireshark 툴

내부 통신 일 때 (LAN)

- ARP프로토콜을 사용하여 통신중 

- S/W 아래  OS 3개가 있는데 BT를 통해 centos와 ubuntu

- IP를 통해 통신을 하는 것보다 ARP를 통해 MAC주소로 변환여 통신한다.

- RARP : IP주소가 없는 상황(OS X )

 

 

외부 통신

 

-GW를 통해 밖으로 나가게 됨

 

네이버 

AAAA ipv6

- ip 주소를 확인 할 수 있다.

 ==> http://223.130.195.95/ 를 알수 있다. (네이버)

 

 

 

 

메타

 

msfadmin / msfadmin

 

 

 

 

sudo su

passwd root

rootoor

nano /etc/network/interfasce

ifconfig

serviec networking restart

서비스가 안될 때 /etcinit.d/networking restart 

 

 

 

[+] host

host -v 문자열 과정

로컬에서는 호스트끼리는 MAC 주소로 통신하기 때문에 사람이 IP주소로 통신하더라도 내부적으로

IP_addr=>MAC_addr로 변환해주는 ARP 프로토콜로 서로 인식하게 된다.

인터넷(외부)로 나가는 게이트웨이도 로컬 LAN에 속한다.

==> 내부에서 외부로 나가기 위해서는 게이트웨이를 통해야 하는데 내부 호스트들은 게이트웨이의 MAC주소를 알고 있어야 한다.

 

MAC주소는 48Bits의 Hard cored된 물리적 주소 (공장에서 만들어진 변경 X )

IP 주소는 32Bits의 S/W의 이론적인 주소로 언제든 변경 가능

==> 하지만 MAC 주소를 임의적으로 변경할 수도 있다.

 

 

[+]MAC주소 변경

ifconfig eth0 down

ifconfig eth0 hw ether [aa:bb:cc:dd:ee:ff MAC주소(임의로)]

ifconfig eth0 up

ping 192.168.100.131로 핑을 보냈을 때

131(centos)에서 arp -a를 통해 접속중인 MAC이 변경된 것을 알 수 있다.

 

 

 

Macchanger라는 도구를 사용하여 MAC주소를 변경할 수 있는 취약점이 있다.

 

[+] 

보안적으로 중요한 서버나 장치의 MAC주소가 변경되지 않게  static으로 해주어야 한다.

arp -i [NAC] -s [IP] [MAC add]

 

rc.local 사용하려면 해당 페이지에는 지시만 기록!!

실제 내용은 따른 파일에 저장하여 불러오도록한다

작성 : 

 

확장명 /파일위치 으로 작성

예 ) python /home/centos/abc/asd.py 파일로

 

chmod +x ifcon.sh으로 실행 권한을 줌

 

 

chmod +x /etc/rc.d/rc.local 

 

단, static 옵션을 줄 경우 변경 불가

 

 

 

 

[+]/etc/sudoers파일

 

 

 

 

 

 

 

2. 커널(Kernel)

리눅스 운영체제의 핵심

시스템 리소스를 하드웨어와 소프트웨어에게 할당하고 관리하는 역할을 한다.

커널종류 위치 설명 특징
모듈라(modular) /lib/modules 용량이 큰 프로그램 (외부 HDD)  느리다.
monolithic    용량이 작은 프로그램 (내부 mem) 빠르다.
microkernel      

 

 

https://namu.wiki/w/%EC%BB%A4%EB%84%90(%EC%9A%B4%EC%98%81%20%EC%B2%B4%EC%A0%9C) 

 

커널(운영 체제) - 나무위키

이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권

namu.wiki

 

 

 

 

lsmod 명령어

메모리에 실행되고 있는 내용 확인 가능 

lsmod |grep cdrom

 

 

insmod 명령어

커널에 새로운 묘듈을 올릴 때 사용

insmod /lib/modules/3.10.0-1160.el7.x86_64/kernel/drivers/cdrom/cdrom.ko.xz

 

modprobe(탐침) 명렁어

 

일괄적으로 올릴 때에는 /etc/modprobe.d 내용을 수정

 

rmmod 제거 / modprobe -r (종속성 제거)

[실습]

 

 

[+] 컴파일(COMPILE)의 개념은 보통 두가지로 해석이 된다.

- Kernel complie : H/W 컴파일 리눅스 버전(커널)을 올리는 작업

- Software complie : 어느 소프트웨어를 디폴트로 설치하지 않고 다른 소프트와 연계해서 환경설정을 해서 설치하는 방법

예) AMP == Apache, mysql, php와 같은 웹 개발을 말한다.

 

 

[+] 커널 업그레이드 

 

1) 다운로드 받아 직접 설치

 

- 현 시스템의 커널 버전 확인 

 

- uname -a 를 사용하여 현 시스템의 커널 버전 확인

 

 

- 커널 사이트에서 4.10.10 버전을 다운받아 설치

 

https://kernel.org/

https://mirrors.edge.kernel.org/pub/linux/kernel/

 

kernel.org

[+] 커널 다운로드 및 묶음(tar)/압축(gz) 해제

 

터미널을 통해 다운로드

wget --no-check-certificate [http://] 명령어 (웹에서 다운로드)

 

https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.10.12.tar.gz

 

컴파일도 설치

yum -y install gcc-c++

 

커널 설치

tar xvfz linux-4.10.10.tar.gz 

 

~.tar.gz로 끝나는 파일은 tarball source라고 부르며 리눅스에 특화된 파일

==> tar로 파일을 묶고 gz로 압축되어 있다.

 

[+]커널 구성

 

 

 

[TUI]

yum -y install ncurses-devel

 

system v ==> UNIX

 

[GUI] yum -y install qt-devel

 

 

 

 

- 저장된 

 

앞에서 생성한 커널의 정보를 가지고 있는 .config파일을 기반으로 해서 /usr/src/linux 

[에러] 커널 설치시 openssl/error 

 

참고

 

 

 

ls arch/x86/boot/

 

ls -l /usr/src/linux/arch/x86/boot/

 

 

make modules

make modules_install

 

 

 

 

인스톨이 완료가 되면 

 

ls /lib/modules

mkinitrd /boot/mykernel.img 4.10.10 & ls /boot/

 

 

 

(확인) nano -c makefile

839번쯤의 주석이 되어 있다면 주석을 풀어 정상 작동하도록 한다.

- 인스톨 패치는 업되이트된 커널 및 시스템 맵 # 이미지

make install

 

cat /etc/grub2.cfg

해당 파일에 4.10.10 버전이 있는 지 확인

shutdown -r now

부팅될 때 4.10.10이 있는 것을 확인 할 수 있다.

 

2) yum -y install ncurses-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel qt-devel

 

yum -y install gcc-c++

 

 

 

01-04.txt
0.01MB

 

커널 업그레이드하기.hwp
0.99MB

 

Comments