[KDT-DAY_8] Linux (feat. 커널 업그레이드_1차)
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://mirrors.edge.kernel.org/pub/linux/kernel/
[+] 커널 다운로드 및 묶음(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++