-
[산대특] YUM, tar, /porc[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/Linux 2024. 8. 29. 19:46
0829
YUM(Yellowdog Updater Modified)
yum 명령어를 통해서 간편하게 종속적인 패키지 문제를일괄적으로 해결해 가면서 작업할 수 있는 이유는 리포지터리(Repository: 저장소)가 있기 때문이다.
rpm 명령어의 단점은 앞에서도 rpm -Uvh ~ 에서 본 바와 같이
RPM 패키지를 설치/삭제, 업데이트할 때 종속성 문제가 매우 귀찮다.
이런 패키지 종속성 문제를 해결하면서 패키지를 설치해주는
패키지 관리시스템이 바로 YUM, RedHat 계열 시스템의 rpm 패키지를 위한 패키지 관리도구이다.
RedHat 계열의 YUM 은 Debian Linux 계열에서의 APT(Advanced Packaging Tool)와 비슷한 역할.
YUM 이나 APT를 사용했을 때 소프트웨어 리포지터리인 CentOS의 /etc/yum.repos.d/나
Ubuntu의 /etc/apt/sources.list/ 디렉터리에 대부분 패키지 사이트에 관한 경로 정보를 가지고 있는
*.repo 확장자의 리포지터리 파일들이 들어있기 때문이다.
리포지터리는 로컬/네트워크 디렉터리일 수도 있고 외부 HTTP나 FTP 서버일 수 있다.
디폴트 리포지터리인 CentOS-Base.repo 이외에
nginx.repo 같은 특정 패키지에 대한 리포지터리 파일을 사용,
EPEL, REMI, 그리고 IUS 등 추가적인 리포지터리 설정을 시스템에 해두면 소프트웨어 관리를 더욱 풍부하게 할 수 있다.
yuminstall/check-update update erase(OR remove) info provides groupinstall list installed(OR nmap) yum/apt 실습
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
확장자가 deb 니까
root@ubuntu10-1:/home/ubuntu# nano /etc/apt/sources.list
리포지터리에 대한 내요이 있다.
dpkg -i google-chrome-stable_current_amd64.deb
-> apt-get install -f
-> dpkg -i google-chrome-stable_current_amd64.deb
-> google-chrome --version 해서 버전이 나오면 설치된겨
혹은 종속성 빠진 애를 따로 설치하고 설치
77 apt-get install libvulkan1
78 dpkg -i google-chrome-stable_current_amd64.deb
root@ubuntu10-1:/home/ubuntu# google-chrome --version
Google Chrome 128.0.6613.113
설치됨
우분투에서 google-chrome 설치 안되던거 해결
하면 들어가짐~~
센토스로 간다.
[root@centos7-10-1 yum.repos.d]# yum -y install subversion
yum update
[root@centos7-10-1 yum.repos.d]# yum -y install wget yum-utils
한번에 두개 설치도 가능하다.
[root@centos7-10-1 yum.repos.d]# mount /dev/sr0 /media
mount: /dev/sr0 is write-protected, mounting read-only
[root@centos7-10-1 yum.repos.d]# cd /media/Packages/
rpm yum 으로 설치 가능
[root@centos7-10-1 Packages]# yum -y install zsh-5.0.2-34.el7_8.2.x86_64.rpm
rpm 정석이 이것이나 yum으로도 가능하다
nmap 설치 되어 있냐~~
잘 안깔렸던 이유 -
지우는 법
[root@centos7-10-1 Packages]# yum -y remove nmap-ncat
yum update 를 자동으로 수시로 되게 만들기 실습
[root@centos7-10-1 Packages]# yum -y install yum-cron
# gedit /etc/yum/yum-cron.conf => 설정 여기 있는듯..??
nginx 잠깐 실습
[root@centos7-10-1 Packages]# yum -y install nginx
설치 내용을 보면, epel repository 에서 깐것이다.
이걸 설치안했다면, 설치가 안 되었을 것
조직(organization)의 리포지터리 구축
일종의 형상서버와 같은 개념이다.
형상서버(Configuration Management Server)로 리포지터리를 도메인 네트워크 노드 중
한 서버에 생성해두고 도메인 사용자들이 이곳에서 패키지를 다운받아 설치하게 되면
네트워크 노드들에 대한 일괄적인 소프트웨어 버전을 유지할 수 있고,
인터넷과 연결되지 않으므로 네트워크 WAN 대역폭을 절약할 수 있으며,
그 만큼 보안에 도움이 되고, 관리자의 소프트웨어 유지관리도 편하게 된다.
로컬 도메인 내의 형상 서버에 로컬 클라이언트들은 웹으로 들어오게 되므로 브라우저를 사용하게 된다.
로컬에서만 들어오면 Intranet이고, 외부에서도 인터넷을 통해서 들어온다면 Extranet이 되어서
원격 진료, 원격 수업, 재택 근무, ....등이 가능하게 된다.
형상서버를 도메인상의 서버로 만들어 두면 내부나 외부에서
웹 브라우저를 통해서 FTP나 HTTP로 들어와서 필요한 파일을 다운받아서 설치할 수 있다.
/etc/yum.repo.d/AppStream.repo 파일을 열어보면
[appstream] ## 이름으로 파일_명과 일치
name=Rocky Linux $releasever - AppStream ## 이 부분도 일치
mirrorlist=https://~~r
#baseurl=http://~~os/
gpgcheck=1 # 이 사이트에서 다운받는 파일에 대해서 키로 인증한다. 0이면 인증 안해도 된다.
enabled=1 # 이 사이트가 활성화이다. 0이면 이 사이트는 있지만 무시된다.
countme=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial ## gpgcheck=1일 때 인증해주는 위치이다
*** /var 디렉터리는 중요한 각 서버에 대한 로그(log)가 있는 곳이며,
외부에서는 브라우저로 연결되는 ftp, http 등의 위치이다.
로컬 리포지터리 구성 실습
로키에서 해보겠습니다.
mirror.rosalab.ru/rosa/red/repository/i586/media/contrib/updates/
=> 이런 곳이 웹에 있는 리포지터리
우리만의 도메인 리포지터리를 만들어서 실습해보겠습니다.
현재 사용하는 것이 로키 8
[root@rocky10-1 rocky]# yum update
로컬에서 리포지터리 구성은 프로젝트에서도 많이 한다.
[root@rocky10-1 rocky]# yum -y install vsftpd ftp createrepo
이 두개가 ftp 의 대표적인데 rebhat 에서는 vsftpd 가 기본
[root@rocky10-1 rocky]# yum -y install nmap
[root@rocky10-1 rocky]# cd /etc/yum.repos.d/
[root@rocky10-1 yum.repos.d]# ls
Rocky-AppStream.repo Rocky-HighAvailability.repo Rocky-ResilientStorage.repo
Rocky-BaseOS.repo Rocky-Media.repo Rocky-RT.repo
Rocky-Debuginfo.repo Rocky-NFV.repo Rocky-Sources.repo
Rocky-Devel.repo Rocky-Plus.repo
Rocky-Extras.repo Rocky-PowerTools.repo
[root@rocky10-1 yum.repos.d]# nano server.repo
다른애들 repo 흉내 낼거다
다른 콘솔에서
[root@rocky10-1 yum.repos.d]# cat Rocky-AppStream.repo
확인. 이름은 이렇게 되어있고 ~ 사이트는 어디고~
nano 안에 [ ] 안 이름은 파일 이름과 일치해야 한다.
밑에거도 일치해야함
var 에는 로그와 외부 웹을 통해 들어가는 내용이 있다.
파일인데 세줄이다 브라우저에서 들어올 때
여튼 하고 nano 로 새로 파일을 만들어
요렇게 넣는다.
[server]
name=Server Repo - SERVER
baseurl=file:///var/ftp/pub/server
gpgcheck=0
enabled=1
저장하고 나왓
여기 DVD 가 물려있어야 한다.
/media/BaseOS/Packages/
요기에 우리가 복사하려는거 있음
# mkdir /var/ftp/pub/server
[root@rocky10-1 yum.repos.d]# rm -rf /var/ftp/pub/server/*.*
[root@rocky10-1 yum.repos.d]# cp -arp /media/BaseOS/Packages/[a-z]/*.* /var/ftp/pub/server/
하고 y 로 a~z 오버라이트 한다… 그럼 마지막에 z 만 남는게 아닐까?
=> cp /media/BaseOS/Packages/*/* /var/ftp/pub/server/
이러면 디렉터리별로 복사 된다.
overwrite 하는 파일은 DVD 에서 맵핑 용도로 쓰여서 리포지토리에서는 큰 필요가 없어서 괜찮을듯
[root@rocky10-1 yum.repos.d]# ls /var/ftp/pub/server/*.* | wc -l
1717
이제
테스트 하기 위해 나머지 repo 들을 enabled=0 만들어 무시되게 만든다.
혹은 위치를 옮겨준다.
혹은 priority 우선순위를 조정하여 보게 하는 방법도 있다.
[root@rocky10-1 yum.repos.d]# mv ./*.* /tempp
[root@rocky10-1 yum.repos.d]# ls
[root@rocky10-1 yum.repos.d]# cp -arp /tempp/server.repo .
[root@rocky10-1 yum.repos.d]# ls
server.repo
이런것도 있다는 것을 알고 있어라
AppStream 리포는 보지말고 찾아줘
이런것도 가능하다.
[root@rocky10-1 yum.repos.d]# createrepo -v /var/ftp/pub/server/
서버를 리포로 만들면서 과정을보여라(v)
[root@rocky10-1 yum.repos.d]# yum clean all
이전에 있던 리포들이 캐쉬메모리가 있었는데, 이러면 다 지워짐
[root@rocky10-1 yum.repos.d]# firewall-cmd --permanent --zone=public --add-port=21/tcp
success
[root@rocky10-1 yum.repos.d]# firewall-cmd --reload
success
[root@rocky10-1 yum.repos.d]# setenforce 0
[root@rocky10-1 yum.repos.d]# systemctl start vsftpd && systemctl enable vsftpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.
[root@rocky10-1 yum.repos.d]# netstat -nltp | grep 21
tcp6 0 0 :::21 :::* LISTEN 6999/vsftpd
잘 되었고
센토스로 간다
[root@centos7-10-1 Packages]# cd /etc/yum.repos.d/
[root@centos7-10-1 yum.repos.d]# ls
CentOS-Base.repo epel.repo epel-testing.repo
[root@centos7-10-1 yum.repos.d]# mkdir /tempp
[root@centos7-10-1 yum.repos.d]# mv ./*.* /tempp
[root@centos7-10-1 yum.repos.d]# nano client.repo
[root@centos7-10-1 yum.repos.d]# firewall-config
root@centos7-10-1 yum.repos.d]# firewall-cmd --reload
success
[root@centos7-10-1 yum.repos.d]# setenforce 0
[root@centos7-10-1 yum.repos.d]# yum clean all
잘 나와따
[root@rocky10-1 rocky]# yum -y install zsh
로키에서는 잘 된다
[root@centos7-10-1 yum.repos.d]# yum -y install zsh
센토스에서는…
센토스에 ftp 설치가 되어있지 않아 이렇게 되는 것 같다
[root@centos7-10-1 yum.repos.d]# cp -arp /tempp/* .
다시 리포를 가져오고
[root@centos7-10-1 yum.repos.d]# yum -y install ftp --disablerepo=client
하고 ftp 설치하고 해도 오류가 뜬다.
=> 넘겨
priority 실습
t@centos7-10-1 yum.repos.d]# yum -y install yum-plugin-priorites --disablerepo=client
priority=3
Linux 에서 어느 서버 서비스를 시작하려면 [이거 외워]
/etc/services 에 등록되어 있어야 하고
systemctl start backdoor & systemctl enable backdoor.service
service backdoor start
/etc/init.d/backdoor start (위 두개가 다 안되면 이걸 해야 한다)
중 하나를 사용하면 된다.
가상 파일시스템인 /proc 파일 조정하기
Linux 시스템은 시스템이 부팅할 때하드디스크에 저장된 /etc/sysctl.conf 안에 설정된 커널 값을 사용해서 시스템을 운영한다.
그리고 시스템은 하드디스크에서 정보를 읽는 것보다 메모리에서 정보를 읽는 것이 1,000배는 빠르므로
하드디스크 /etc/sysctl.conf 파일에 설정된 커널 값을 메모리의 /proc 디렉터리에 올려두고 사용하면
효율이 훨씬 좋게 된다.
하지만 이 커널 값들은 메모리에 있는 정보이므로시스템에 전원이 없으면 /proc 디렉터리의 값은 Volatile(휘발성)해서 모두 사라지고,
하드디스크에 있는 /etc/sysctl.conf 파일의 설정만 존재하게 된다.
메모리에 있는 /proc 디렉터리 파일시스템은 하드디스크에 있는 /etc/sysctl.conf 파일의 복사본이라고 볼 수 있다.
HDD의 /etc/sysctl.conf 파일에서 어느 커널의 설정값을 변경하면 메모리의 /proc 파일시스템에 바로 변경이 반영된다.
따라서 시스템 설정파일 /etc/sysctl.conf에서의 각 설정 값과 가상 파일시스템 /proc 디렉터리에서의 각 파일에서의 설정 값은 동일하다.
/proc 파일시스템은 메모리상에서 실행되고 있는 모든 Linux 커널 자원들에 대한 정보를 PID로 구별해서 보관이 /proc 파일의 값은 머신이 실행되는 동안만 메모리에 일시적으로 존재하기 때문에
/proc를 '가상 파일 시스템'으로 부른다.
ls /proc
하면 파일 졸라 많고
도 졸라 많다
졸라 많아
=> true
여기 있던 애들 저기로 옮겨졌다
필요한 내용이 있으면 여기에 적어주면 된다.
슨생님이 파일 내용 복붙해주신데 (개인필기)
저기 파일 아래에 붙여넣어라
이거시 뭐시냐
멀라 대충 설정들인듯 저장하고 나와
필요한 내용 추가~ 도 가능하다
sysctl -p 하면 설정한 값들이 나온다.
촤르르륵~
위는 하드디스크 아래는 메모리
하드디스크에 있는 애가 메모리에 반영된다는 뜻!
메모리의 값을 0 으로 바꿔주고
메모리에 확인해보면 반영된 것이 보인다.
하드디스크 확인해보니 안 바뀌었다.
메모리의 총량이 대략 요로코롬이고
cat /proc/meminfo
있는 것처럼
보이지만 실제론 없다
위는 proc 아래는 하드에 저장된 값이다.
크기는 전혀 없지만 반영되는..
cat /proc/devices 하면 또 쫙 나온다.
이부분을 0 으로 바꾼다 최하단에서 두번째
하드웨어에서 변경된 것은 소프트웨어에 즉시 적용된다.
proc sys 빼고
메모리에서 임시 바꾸기
-w 옵션: 지정한 파라미터의 값을 설정(write)하는 옵션입니다.
'[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정 > Linux' 카테고리의 다른 글
[산대특] nmap,IDS, IPS 도구들 (0) 2024.09.02 [산대특] 가상파일시스템[/proc], 보안 관련 이야기 (0) 2024.08.30 [산대특] 소프트웨어 관리, LVM, RAID 0~10, RPM (2) 2024.08.29 [산대특] 리눅스 명령어의 바다 탐색 3, disk quota (0) 2024.08.27 [산대특] 리눅스의 명령어의 바다 탐색 2 (1) 2024.08.26