본투비 화이팅!
물리적 하드웨어 시스템에 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상으로 컴퓨터 시스템을 동하는 가상환경 리소스 가상화 프로그램
하나의 물리 서버를 보다 효율적으로 사용하기 위해 vm을 사용.
호스트-게스트로 구성되어있다.
하이퍼 바이저가 무엇일까
apt와 aptitude는 모두 Debian 패키지 관리를 위한 명령행 도구입니다.
apt는 Advanced Package Tool의 약자로, 간단하고 직관적인 인터페이스를 제공합니다. 패키지를 검색, 설치, 업그레이드, 삭제하는 데 사용됩니다. 또한 의존성 문제를 자동으로 처리하므로 사용자가 수동으로 처리해야 하는 작업이 줄어듭니다.
반면에 aptitude는 apt와 같은 목적을 가지고 있지만, 보다 강력한 패키지 관리 기능을 제공합니다. aptitude는 apt와 달리 패키지 의존성을 더 정확하게 추적하고 해결할 수 있습니다. 또한 다양한 검색, 필터링, 정렬 기능을 제공하여 원하는 패키지를 더 쉽게 찾을 수 있습니다. 또한 aptitude는 사용자가 선택한 패키지와 관련된 패키지를 자동으로 설치 및 삭제할 수 있습니다. 그리고 패키지 간의 의존성 그래프를 시작적으로 보여주는 등 패키지 관리를 보다 세밀하게 제어할 수 있는 기능을 제공.
또한 삭제에서도 의존성 문제를 해결하는 데에 차이가 존재하는데, apt의 경우 의존성 패키지를 삭제하고 싶은 경우 따로 옵션을 제공하여야 처리를 하는 반면, aptitude는 자동으로 삭제를 해주는 기능이 존재한다.
따라서, apt는 간단하고 직관적이며 쉽게 사용할 수 있으며 대부분의 패키지 관리 작업을 수행할 수 있습니다. aptitude는 더 많은 기능과 강력한 의존성 처리를 제공하지만, 더 복잡하고 사용하기 어렵습니다.
리눅스 시스템에서 적용되는 보안 모듈 중 하나로, 애플리케이션을 보호하는 보안 프레임워크이다.
리눅스 컨널에 내장되어 있으며, 다양한 배포판에서 기본
할 수 있습니다. 또한 AppArmor은 사용자가 애플리케이션에 대한 보안 규칙을 직접 작성할 수 있도록 도와줍니다. 이러한 규칙은 애플리케이션 실행 파일의 경로, 파일 시스템, 네트워크 액세스 등을 제한할 수 있습니다.
sudo aa-enabled
하드 디스크는 일반적으로 여러 개의 파티션으로 나뉘어져 있습니다. 각 파티션은 하나의 독립된 공간으로 인식되며, 운영체제에서는 각각의 파티션에 대해 별도로 파일 시스템을 생성하고 관리합니다.
하지만 LVM을 사용하면 하드 디스크를 논리적으로 분할할 수 있습니다. 이렇게 분할된 논리 볼륨은 여러 개의 하드 디스크나 파티션에 걸쳐서 구성될 수 있으며, 운영체제에서는 이를 하나의 큰 디스크로 인식합니다.
LVM을 사용하면 하드 디스크의 사용량을 효율적으로 관리할 수 있습니다. 예를 들어, 여러 개의 작은 파티션을 하나의 큰 논리 볼륨으로 합치면, 디스크 공간을 보다 효율적으로 사용할 수 있습니다. 또한, LVM을 사용하면 디스크의 용량을 동적으로 조절할 수도 있습니다.
sudo ufw enable #활성화
sudo cat /etc/ufw/user.rules #rules 조회
sudo ufw allow 8080/tcp # 특정 TCP 포트 허용
sudo ufw deny 8080/tcp # 특정 TCP 포트 차단
컴퓨터 백그라운드에서 실행되는 프로그램입니다. 시스템관리 작업을 수행하거나, 서비스를 제공하거나, 백억을 수행하거나, 자동 업데이트를 제공하거나, 등등 다양한 기능을 수행할 수 있다.
cron이란? → 특정작업을 특정시간에 자동으로 실행시키기 위한 시간기반형 데몬이다. 또한 cron은 crontab이라는 설정파일을 기반으로 작동한다.
sda란 데비안 리눅스 시스템에서 디스크 드라이브를 식별하는방법 중 하나.
오픈소스 경량 웹서버
웹 서버란 우리가 인터넷에서 사용하는 웹 페이지가 들어있는 파일을 사용사에게 제공하는 서버 프로그램이다.
빠른 처리 속도와 가벼운 용량이 장점이다.
서버측에서 실행되는 프로그램 언어로 스크립트 형식으로 작성되어 있다. 웹 개발에 특화된 언어이다.
PHP를 사용하는 이유는 페이지가 요청될 때마다 다른 데이터를 가지고 그 작업을 수행할 수 있다.
CGI : 웹서버와 외부 프로그램을 연결해주는 표준화된 프로토콜
FastCGI : 하나의 요청에 하나의 프로세스를 생성하는 CGI와는 달리 하나의 프로세스로 요청들을 처리하여 프로세스를 생성하고 제거하는 부하를 경감.
이 내용은 단순 데비안을 어떻게 조작하여야 하는지만 설명하는 글입니다. 명령어나 동작원리에 대해서는 설명이 없으니 참고하시길 바랍니당.
https://www.debian.org/releases/stable/debian-installer/
좌측 최상단 amd64 클릭 후 설치
데비안을 처음 설치해보신다면 아래 링크를 참고하여 설정해보기
https://techdebt.tistory.com/18
Defaults authfail_message="권한 획득 실패 메세지" Defaults badpass_message="비밀번호 틀릴때 메세지" Defaults iolog_dir="/var/log/sudo/" Defaults log_input Defaults log_output Defaults requiretty Defaults passwd_tries=3
su -
apt-get install ufw -y
ufw status verbose
ufw enable
ufw default deny
ufw allow 4242
ufw status verbose
su - apt install openssh-server 거의 대부분 이미 깔려있음 vim /etc/ssh/sshd_config #Port 22 -> Port 4242 로 변경 #PermitRootLogin prohibit-password -> PermitRootLogin no 로 변경 systemctl restart ssh systemctl status ssh
ssh <ID>@<IP> -p 4242
PASS_MAX_DAYS 30
PASS_MIN_DAYS 2
PASS_WARN_AGE 7
새로운 그룹 추가 : groupadd <새그룹 이름>
새 유저 추가 : adduser <새 유저 이름>
💡 adduser와 useradd의 차이점 공부해보기그룹에 유저 추가 : usermod -aG <그룹> <이름>
printf "#Architecture: "
uname -a
printf "#CPU physical : "
cat /proc/cpuinfo | grep "physical id" | sort -u | wc -l
printf "#vCPU : "
cat /proc/cpuinfo | grep processor | wc -l
printf "#Memory Usage: "
free -m | grep Mem | awk '{printf"%d/%dMB (%.2f%%)\n", $3, $2, $3/$2 * 100}'
printf "#Disk Usage: "
df -a -BM | grep /dev/map | awk '{sum+=$3}END{print sum}' | tr -d '\n'
printf "/"
df -a -BM | grep /dev/map | awk '{sum+=$4}END{print sum}' | tr -d '\n'
printf "MB ("
df -a -BM | grep /dev/mapper | awk ‘{sum1+=$3; sum2+=$4}END{printf “%d”, sum1 / (sum1 + sum2) * 100}’ | tr -d ‘\n’
printf "#CPU load: "
mpstat | grep all | awk '{printf "%.2f%%\n", 100-$13}'
printf "#Last boot: "
who -b | awk '{printf $3" "$4"\n"}'
printf "#LVM use: "
if [ "$(lsblk | grep lvm | wc -l)" -gt 0 ] ; then printf "yes\n" ; else printf "no\n" ; fi
printf "#Connections TCP : "
ss | grep -i tcp | wc -l | tr -d '\n'
printf " ESTABLISHED\n"
printf "#User log: "
who | wc -l
printf "#Network: IP "
hostname -I | tr -d '\n'
printf "("
ip link show | awk '$1 == "link/ether" {print $2}' | sed '2, $d' | tr -d '\n'
printf ")\n"
printf "#Sudo : "
journalctl _COMM=sudo |grep COMMAND | wc -l | tr -d '\n'
printf " cmd\n"
TCP소켓만을 대상으로 하는 이유 :
TCP 소켓은 연결 기반 프로토콜이기 때문에 클라이언트와 서버 간의 신뢰성 있는 연결을 제공합니다. 따라서 현재 활성화된 TCP 연결을 확인하면 현재 시스템에서 활발하게 사용되는 네트워크 서비스를 파악하는 데 도움이 됩니다.
반면 UDP 소켓은 연결을 생성하지 않고 데이터그램(datagram) 방식으로 데이터를 전송하는 비연결성 프로토콜입니다. UDP는 신뢰성 있는 전송을 보장하지 않으므로, 데이터가 손실될 가능성이 있습니다. 따라서 UDP 연결 정보를 확인하면 현재 네트워크 환경에서 발생할 수 있는 장애 상황에 대한 정보를 파악하는 데 도움이 됩니다.
따라서, 활성화된 TCP 연결을 확인하는 것이 네트워크 상태를 파악하는 데 더 유용하며, 이를 위해서 ss
명령어에서 -t
옵션을 사용하여 TCP 소켓만 대상으로 출력하도록 설정합니다.
처는 유튜브를 참고해서 파티션 설정을 했습니당.
위의 웹페이지는 /var/www/html의 index.lighttpd.html 파일이다.
해당 디렉토리에서 info.php를 작성하여 호스트 ip : 8080/info.php에 접속해본다.
```c
<?php
phpinfo();
?>
```