- XFCE를 Minimal로 바꾸자
- 강의실환경도 Minimal로 구성을 다시 세팅한다.
- 외부 랜카드, 내부 랜카드 이렇게 2개가 필요하다.
- 외부 랜카드 : 어댑터의 브릿지, 실무에 가깝지만, 실습시 IP주소를 제대로 할당 못받을 가능성이 있다.
- 내부 랜카드 : 내부네트워크(내부스위치가 생긴다.)
- VM설정에 들어가서 네트워크설정에서 어댑터2를 끄고, 어댑터1에 내부네트워크
vSwitch
로 설정해준다.
- ip주소가 있는지, 또
ping google.com
해서 핑이 나가는지 확인한다.- 고정 ip를 만들어준다.
- 윈도우의 경우 : 제어판 -> 네트워크 및 인터넷 -> 네트워크 연결 -> 랜카드 속성 -> 인터넷 프로토콜 버전 TCPID 클릭 후, 속성 -> IP자동이 아닌 수동으로 변경
- DNS서버 8.8.8.8 은 구글에서 기본으로 제공하는 DNS서버이다.
- 보조 DNS는 8.8.8.4- 명령프롬프트로 가서 NAT GW_DHCP_HAproxy에 SSH(NAT GW IP)로 접속한다.
mkdir /root/.ssh
: 키를 넣을 폴더 만들어 놓음- 명령프롬프트,
ssh-keygen -t rsa
cd %UserProfile%\.ssh
: 위치 이동dir
명령어로 키 생성확인한다.ren id_rsa my-key.pem
: id_rsa를 my-key.pem으로 이름을 바꿔준다.scp id_rsa.pub root@[NAT GW IPaddress]:/root/.ssh/authorized_keys
: 자물쇠(id_rsa)를 NAT GW로 보내준다.
ssh -i my-key.pem root@[NAT GW IPaddress]
: 로 접속해본다.vi /etc/ssh/sshd_config
: 를 확인한다.
- ssh : 22, Http : 80, 등 서버, 프로토콜마다 주로 사용하는 port가 따로있다.
- 이 포트를 우리가 바꿀 수 있다.
vi /etc/ssh/sshd_connfig
- 아래 #port 22 -> 2222로 바꿔준다.
- 또,
:/
으로 PasswordAuthentication을 no로 해준다.systemctl restart sshd
: 리스타트 해준다.- 만약 port번호를 바꿔 에러가 나면,
sestatus
를 확인해서 disable되어있는지 확인한다.
vi /etc/sysconfig/selinux
SELINUX=disabled
로 바꿔준다.ss -ant
: 연결된 port번호를 확인한다.
- well-known 알려진 포트번호 : 0~1024 (서버포트)
- unknown 알려지지 않은 포트 :1025~65535 (클라이언트 포트)
- port변경 후에 exit로 명령프롬프트로 나간 후, 다시 접속을 시도하면 들어갈 수 없다.
ssh -p 2222 -i my-key.pem root@172.30.1.59
:-p
옵션을 주어 포트를 시정하고 접속한다.- 그러나 방화벽을 설정하지 않아 접속할 수 없다.
- 명령프롬프트로 접속할 수 없지만 다행히도 우리에겐 Redhat으로 열 수 있다.
firewall-cmd --permanent --add-port==2222/tc[
: 방화벽에 port 2222를 추가해준다.firewall-cmd --reload
firewall-cmd --list-all
- 현재 key없이 passwd로 접속하는 방법은 permisson deny가 된다. 만약 된다면,
vi /etc/ssh/sshd_connfig
요기서PasswordAuthentication
을 no로 바꿔줘야 한다.
scp를 이용한 파일전송
-notepad hello.txt
: 로 텍스트파일 하나를 만들어준다.scp -i my-key.pem hello.txt root@[ipaddress]:/root/
: /root/에 hello.txt를 복사해준다.del hello.txt
: 또 다시 다운로드 받기위해 삭제해준다.scp -i my-key.pem root@172.30.1.59:/root/hello.txt ./
: 반대로./
경로로 다운로드 받는다.
scp를 이용한 dir전송mkdir test-folder
: 명령프롬프트 폴더생성scp -i my-key.pem -r test_folder root@172.30.1.59:/root/
: 폴더 옮기기
- 네트워크 주소 변환(NAT; Network Address Translation)은 컴퓨터 네트워킹에서 쓰이는 용어로서, IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다.
- 공인IP = Public IP
- 사설IP = Private IP
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
- 강의실 네트워크 (Public 네트워크라고 가정)
- 192.168.0.0/24
- 192.168.0.0 ~`192.168.0.255 ( 256개의 IP - 2개 = 154개)
- 각각 고정되어 허락된 범위에서 첫번째, 시작 IP : 네트워크 주소
- 허락된 범위에서 마지막IP : 브로드 캐스팅 주소 (컴퓨터 전원 On 신호, DHCP에 IP주소 처음 받기)
localhost 이름 바꾸기hostnamectl set-hostname nat
: localhost이름을 nat으로 바꾸기
강의실 네트워크
Public Subnet
192.168.0.0/24
192.168.0.0 ~ 192.168.0.255 (256개 IP - 2개 = 254개)
192.168.0.0 네트워크 주소(시작 IP)
192.168.0.255 브로드캐스팅 주소(마지막 IP)Private Subnet
172.31.0.0/24
172.31.0.0 ~ 172.31.0.255 (256개 IP - 2개 = 254개)
172.31.0.0 네트워크 주소(시작 IP)
172.31.0.255 브로드캐스팅 주소(마지막 IP)
ip a
해서 ip를 받는 랜카드를 설정한다.vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet BOOTPROTO=none :원래 "dhcp"로 되어있다. NAME=[브릿지연결 랜카드 이름(enp0s3)] DEVICE=[브릿지연결 랜카드 이름(enp0s3)] ONBOOT=yes IPADDR=192.168.0.85 NETMASK=255.255.255.0 GATEWAY=172.30.1.254 DNS1=8.8.8.8 DNS2=8.8.4.4
- 내부네트워크도 꾸며준다.
vi /etc/stsconfig/network-scripts/ifcfg-enp0s8
TYPE=Ethernet BOOTPROTO=none NAME=[내부네트워크 랜카드 이름(enp0s8)] DEVICE=[내부네트워크 랜카드 이름(enp0s8)] ONBOOT=yes IPADDR=172.31.0.1 NETMASK=255.255.255.0
systemctl restart network
: 위 설정을 마치고 restart를 한다.
- 내부 : private, internal, backend
- 외부 : public, external, frontend
firewall-cmd --get-active-zone
: 현재 방화벽이 작동하고 있는 랜카드 반환, 아래와 같이 출력되어야 한다.
nmcli c mod enp0s3 connection.zone external
: enp0s3을external
외부를 바라보는 랜카드로 설정nmcli c mod enp0s8 connectino.zone internal
: enp0s8을 내부 네트워크로 설정firewall-cmd --get-active-zone
: 다시 확인하면 아래와 같이 나뉜 것을 볼 수 잇다.
sysctl -w net.ipv4.ip_forward=1
: 리눅스 시스템을 라우터로 만드는 세팅, 뒤에 1은 활성(Active), 0이면 비활성(Deactive)이다.cat /proc/sys/net/ipv4/ip_forward
: 출력으로 1(Active)이 나온다.
- 동적 호스트 구성 프로토콜(Dynamic Host Configuration Protocol, HDCP)은 호스트 IP 구성 관리를 단순화 하는 IP 표준입니다. 동적 호스트 구성 프로토콜 표준에서는 DHCP서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP 사용 클라이언트에게 동적으로 할당하는 방법을 제공합니다.
1. DHCP Discover
- 출발지 주소(SIP=MAC주소), 목적지 주소 (DIP=255.255.255.255)로 DHCP Discover신호를 보낸다.
2. DHCP Offer
- 아직 단말이 IP주소가 없기 때문에, Discover신호를 받은 DHCP의 MAC주소를 출발지주소로 브로드캐스트 한다.
3. DHCP Request
- 단말이 1번과 같이 출발지 = MAC 으로 브로드캐스트 하여 2에서 받은 MAC주소를 넣어 IP주소 할당 요청을 한다. 이때, DHCP의 IP주소와 2번에서 받은 IP주소 및 임대할 시간을 넣어 보낸다.
4. DHCP Ack
- DHCP에서 출발지=MAC으로 브로드캐스트하여 임대할 IP주소와 기타 정보를 전달한다.
yum install dhcp -y
: dhcp 설치vi /etc/dhcp/dhcpd.conf
ddns-update-style interim; subnet 172.25.0.0 netmask 255.255.255.0 { option routers 172.25.0.1; option subnet-mask 255.255.255.0; range dynamic-bootp 172.31.0.2 172.31.0.254; ##우리 네트워크는 많아봤자 3개 뿐이다. 그래서 IP부여 범위를 정해준다. option domain-name-servers 8.8.8.8, 8.8.4.4; ## DNS정보까지 같이 넣어줄 수 있다. default-lease-time 7200; ## 기본 IP대여 시간, 만약 대여가 끝나도 그 IP를 다른사람이 사용하고 있지 않으면 그대로 다시 부여한다. (사용자가 적음 집에서는, 왠만해서는 같은 IP가 부여된다.) max-lease-time 86400; ## 반대로 사용자가 IP대여 요청한다면 최대 이시간 만큼 요청할 수 있다. }
- DHCP 네트워크를 생성할 때, DHCP에 대한 요청이 한번에 몰릴경우 DHCP에 부하가 가게된다.
systemctl enable --now dhcpd
- 설치 후 탭-> 오른쪽마우스 -> 복제하여 4개로 늘린다.
- 각 탭에 4가지 서버들을 연결한다.
- DNS : ns
rsa키 복제
- nat에서
/root/.ssh
로 이동하여, 각 서버에 키를 복사해준다.- 먼저 NAT GW에 key를 복사해야 하고, .pub도 각 서버에 올라와있어야 한다.
- 그러나 키로 SSH로 접속하니 접속이 안되어 비밀번호를 입력해야 한다.
- 이때,
chmod 400
한 후, 다시 접속을 시도하면 제대로 된다.- NAT GW에 key가 올라와있어야 한다.
# cp authorized_keys authorized_keys.pub
# ssh-copy-id -i authorized_keys.pub root@172.31.0.101
# chmod 400 my-key.pem
# ssh -i my-key.pem root@172.31.0.101