ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [산대특] YUM, tar, /porc
    [산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정 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 등 추가적인 리포지터리 설정을 시스템에 해두면 소프트웨어 관리를 더욱 풍부하게 할 수 있다. 

    yum 

    install/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)하는 옵션입니다.

     

     

연의 취업 도전기.