yum install -y bash-completion
# vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
key-pair 중 공개키를 서버에 저장, 접속하는 사람이 private 키를 가지고 있다. - 아무나 접속 불가능하다.
키 쌍은 특정 인증 프로토콜에 사용되는 공개(Public) 키(자물쇠-서버) 및 프라이빗(Private; *.pem) 키(열쇠-개인 폴더) 파일을 나타냅니다.
SSH 공개 키 인증은 비동기 암호화 알고리즘을 사용하여 "프라이빗" 키와 "공개" 키라는 두 가지 키 파일을 생성합니다. 프라이빗 키 파일은 암호와 동일하며, 모든 상황에서 보호되어야 합니다. 다른 사람이 사용자의 프라이빗 키를 획득하면 사용자가 액세스할 수 있는 모든 SSH 서버에 사용자의 이름으로 로그인할 수 있습니다.
# systemctl restart network
# ssh root@192.168.0.85
# ssh-keygen -t rsa
: -t 옵션: 키 암호 타입, rsa로 지정
저장할 위치 지정 (Enter 저 위치에 생성)
Generating public/private rsa key pair.
Enter file in which to save the key (/home/COM/.ssh/id_rsa): (💥Enter💥)
Created directory '/home/COM/.ssh'.
## 암호 지정을 물어보는것인데 키를 사용할 것이기 때문에 엔터 두번으로 아래꺼 까지 넘어간다.
Enter passphrase (empty for no passphrase): (💥Enter💥)
Enter same passphrase again: (💥Enter💥)
Your identification has been saved in /home/COM/.ssh/id_rsa
Your public key has been saved in /home/COM/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:X+krJ3MnXuYlIw2vW+3zcYYXU4ylG8QerCUBwP4oUmg COM@DESKTOP-L2F7LSG
The key's randomart image is:
+---[RSA 3072]----+
| ......+. .|
| . ..== |
| . . =+.o|
| E . . ...o.|
| . . So + .o |
| . . ...o + oo|
| . . . o X.*|
| + +O.Oo|
| B=+. =|
+----[SHA256]-----+
# ssh-copy-id -i .ssh/id_rsa root@192.168.56.102
: 서버로 위에서 생성한 Key를 전송
# scp -i my-key.pem hello.txt root@192.168.0.85:/root/
# scp -i my-key.pem root@192.168.0.85:/root/hello.txt ./
# scp -i my-key.pem -r test-folder root@192.168.0.85:/root/
# ssh -i my-key.pem root@192.168.0.85
# vi /etc/ssh/sshd_config
PasswordAuthentication no - yes ➡ no로 변경
# systemctl restart sshd
: 패스워드 방식 제거를 적용하기 위해서 sshd 재 실행
# firewall-cmd --permanent --add-port=2222/tcp
: 2222번 포트 활성화--permanent
: 옵션은 영구적으로 규칙 추가한다는 옵션(재부팅해도 적용)# firewall-cmd --reload
: 재실행# firewall-cmd --list-all
Host-Only, NAT Network설정
NAT ➡ NAT 네트워크로 설정해주는 것이 좋다. 서버의 역할 을 수행하는데 똑같은 ip 보다는 서로 다른 ip인 것이 좋음.
파일 > 환경설정 > 네트워크 > NAT 네트워크 추가 |
---|
아래 가상머신과 포트포워딩 참고
NAT |
---|
NAT | NAT Network | 호스트 전용 네트워크 | 어댑터에 브릿지 | 호스트 + NAT | |
---|---|---|---|---|---|
호스트(192.168.0.* 같은 네트워크 대역) -> 가상 | X (포트포워딩 시, O) | X (포트포워딩 시, O) | X | O | O |
호스트(MY PC, 192.168.0.155) -> 가상 | X (포트포워딩 시, O) | X (포트포워딩 시, O) | O | O | O |
가상 -> 호스트 | O | O | X | O | O |
가상 -> 가상 | X | O | O | O | O |
가상 -> 인터넷 | O | O | X | O | O |
\# ssh -i id_rsa root@192.168.56.120
\# sestatus
\# vi /etc/sysconfig/selinux
SELINUX=disabled # SELINUX 설정 끄기
# setenforce 0
# sestatus
# rpm -qa | grep httpd
: httpd가 설치 되었는지 확인
# yum install -y httpd
----# systemctl start httpd
: httpd 서비스 시작
----# systemctl enable httpd
: 재부팅시 서비스 자동활성화 설정
# systemctl enable --now httpd
: start와 enable 두개를 동시에 수행
# systemctl status httpd
# systemctl restart httpd
-- (systemctl start | stop | restart | status | enable | disable | enable --now | disable --now httpd)
# curl 127.0.0.1
# systemctl status firewalld
# firewall-cmd --get-active-zone
# firewall-cmd --zone=public --list-all
# firewall-cmd --permanent --add-service=http
: 서비스 이름으로 활성화 하기
# firewall-cmd --permanent --add-port=80/tcp
: 포트 번호로 활성화 하기
# firewall-cmd --permanent --remove-service=http
: http 서비스 거부(차단)
# firewall-cmd --permanent --remove-port=80/tcp
: 80/tcp 포트 거부
# firewall-cmd --reload
: 방화벽 내역 재적용
# cd /var/www/html
# mkdir images && cd $_
# wget http://192.168.0.3/files/two-rabbit.jpg
# 파일 서버에서 내려받기# wget --http-user USER_ID -http-password USER_PASSWORD http://192.168.0.3/files/two-rabbit.jpg
# cd ..
# vi index.html
: /var/www/httpd/index.html 웹서버 index 페이지 !<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Sample Deployment</title>
<style>
body {
color: #ffffff;
background-color: #0188cc;
font-family: Arial, sans-serif;
font-size: 14px;
}
h1 {
font-size: 500%;
font-weight: normal;
margin-bottom: 0;
}
h2 {
font-size: 200%;
font-weight: normal;
margin-bottom: 0;
}
</style>
</head>
<body>
<div align="center">
<h1>Congratulations</h1>
<h2>This application was deployed using AWS ECS, EKS.</h2>
<p>For next steps, read the <a href="https://aws.amazon.com/ko">AWS Management Console.</a></p>
<p><img src="images/two-rabbit.jpg" alt="두마리 토끼" height="350"></p>
</div>
</body>
</html>
# df -h
# lsblk
# mkfs -t xfs /dev/sdb
# 포멧
# mkdir /data
# mount /dev/sdb /data
# 디스크 마운트
# file -s /dev/sdb
# cp /etc/fstab /etc/fstab.orig
# blkid
# vi /etc/fstab
UUID="3ffe9c91-2ce7-457a-9fbc-07922ff6b652" /data xfs defaults,nofail 0 2
# umount /data
ss -ant
: linux socket 상태를 조회하는 ss(socket statistics)[::]:port
형식은 ipv6\# yum install -y samba
\# mkdir -p /var/samba/share # 폴더 공유 경로 구축
\# chmod 777 /var/samba/share # 공개 자료로 생각해서 777, 보안적 요소가 필요하면 접근 권한 조절하기
\# adduser kosa
\# passwd kosa # kosa0220
# samba(SMB, Server Message Block) 에서 계정을 사용할 수 있도록 연결
\# smbpasswd -a kosa
\# vi /etc/samba/smb.conf
# 수정
# 윈도우의 워크 그룹 지정(작업 그룹)
workgroup = devops # 없어도 된다.
[share]
# comment 공유할 디랙터리 설명
comment = Share Directory
# 파일 서버에서 공유할 경로
path = /var/samba/share
# 공개 설정, kosa 사용자뿐만 아니라 쉽게 접근 가능하게 설정
browserable = yes
# 공유폴더에 데이터를 저장할 수 있는 권한
writable = yes
valid users = kosa
# 디렉터리내에 create 시 기본 권한
create mask = 0777
directory mask = 0777
\# systemctl enable --now smb
\# systemctl enable --now nmb
\# systemctl restart smb
\# systemctl restart nmb
\# systemctl status smb nmb
# 445와 139가 활성화됨
\# ss -ant
# samba 서비스를 활성화 하여 139 와 445 포트를 방화벽에서 규칙 활성화시킴.
# --permanent: 영구적으로 활성화 옵션
\# firewall-cmd --permanent --add-service=samba
# 방화벽에 적용
\# firewall-cmd --reload
## SELinux 꺼져있는지 확인
/*
vi /etc/sysconfig/selinux - disabled
setenforce 0
*/
1번 방식 임시 방식
setenforce 0
2번 방식 영구 방식
vi /etc/sysconfig/selinux - SELINUX=enforcing ➡ disabled
# smb 클라이언트 설치
\# yum install -y samba-client
# 192.168.56.101 파일 공유 서버에 kosa 유저로 접속
\# smbclient //192.168.56.101/share -U kosa
# smb 클라이언트 설치
$ sudo apt install smbclient
# 10.19.0.100 파일 공유 서버에 kosa 유저로 접속
$ smbclient //10.19.0.100/share -U kosa
get [FILE_PATH]
, put [FILE_PATH]
# TCP 포트 확인
\# ss -ant
# UDP 포트 확인
\# ss -anu
# nfs 설치
\# yum install -y nfs-utils
# 루트 경로에 share 디렉터리 만들고 share 디렉터리로 이동
\# mkdir /share && cd $_
\# echo "Hello" > test.txt
# nfs 파일 시스템의 접근할 수 있는 ip 대역 및 권한 설정
\# vi /etc/exports
----------------------------------------------------------------------------------
# /etc/exports 입력 내용(공유할 경로 , IP 대역(권한, sync))
# - (권한, sync) 에 들어갈 내용은 많으나 필요하면 찾아보자
# /etc/exports 는 접근 제어와 권한을 설정하는 파일
/share 192.168.56.0/24(rw,sync)
----------------------------------------------------------------------------------
# 공유 디렉터리 권한 설정
\# chmod 707 /share
# NFS 서비스 활성화, nfs-server.service 로 해도된다.
\# systemctl enable --now nfs-server
## export 하고 있는 NFS 디렉토리 확인
# NFS 서버에 익스포트(Export)된 디렉터리 정보를 관리 해주는 명령
# -v: 설정도니 내용을 자세히 출력
\# exportfs -v
# 방화벽 포트 규칙 설정
\# firewall-cmd --permanent --add-service=nfs # tcp 2049
\# firewall-cmd --permanent --add-service=rpc-bind # tcp 111
\# firewall-cmd --permanent --add-service=mountd
\# firewall-cmd --reload
\# rpm -qa | grep nfs-utils
\# yum install -y nfs-utils
## showmount - NFS/NIS 명령으로 지정한 시스템에서 원격으로 파일시스템을 마운트한 클라이언트 목록들을 보여준다.
# -e 공유되거나 내보낸 파일 목록을 인쇄합니다.
# nfs IP
\# showmount -e 192.168.56.102
/*
Export list for 10.0.0.129:
/share 10.0.0.0/24
*/
\# mkdir my-nfs
# 마운트, nfs 타입의 네트워크로 공유된 디렉터리
# 192.168.56.102:/share 을 /my-nfs 마운트한다.
\# mount -t nfs 192.168.56.102:/share ./my-nfs
# nfs 서버의 구축한 전체 디스크 정보를 가져온다.
\# df -h
/*
192.168.56.102:/share 125G 1.6G 124G 2% /root/my-nfs
*/
\# vi /etc/fstab
# /etc/fstab 입력 내용
## 192.168.56.102:/share(네트워크 정보) 대신 UUID자리이기도 함.
192.168.56.102:/share /root/my-nfs nfs defaults 0 0
$ sudo apt update
$ sudo apt install nfs-common nfs-kernel-server portmap -y
$ sudo mkdir /share && cd $_
$ sudo vi /etc/exports
----------------------------------------------------------------
/share 10.19.0.0/24(rw,sync)
----------------------------------------------------------------
$ sudo chmod 707 /share
$ sudo systemctl restart nfs-server
$ sudo exportfs -v
서버 관리자에서 역할 및 기능 추가 실행
다음
역할 기반 다음
서버 선택 및 다음
다음
NFS용 클라이언트 선택 및 다음
설치
설치 완료 확인
This PC - Computer - Map network drive
nfs 정보 입력 후 Finish
가상 시스템 가져오기 centos7_minimal - ova 이미지 선택 - 다음 - 가져오기
초기 스냅샷 찍기
원본의 가상 mac 주소를 사용할 수도 있기 때문에 ip도 같을 수도 있다?
머신 설정 ➡ 네트워크 ➡ NAT - NAT 네트워크로 변경 ➡ 고급 ➡ 새로고침 ➡ 확인
enp0s3-bridge 외부(public)
enp0s8-internal 내부(private)
yum install -y bash-completion
source /etc/profile.d/bash_completion.sh