설치 순서
CentOS7(XFCE 설치X)
Edit ➡ Virtual Network Eiditor ➡ (우측 하단)Change Settings ➡ Type이 NAT인 것 선택
➡ Subnet IP (10.0.0.0), Subnet Mask(255.255.255.0) ➡ 우측 DHCP Settings
➡ Starting IP Address (10.0.0.128), Ending IP Address (10.0.0.254) 256 중 3개를 제외한 253 개중 254-128+1 개를 씀
➡ 확인 후 위에 NAT Settings 클릭 ➡ Gateway IP (10.0.0.2) ➡ (cf. Port Forwarding 보이고 있구) OK 클릭 ➡ Apply 클릭 ➡ OK 클릭
VMware - NAT 세팅 |
---|
Create a New Virtual Machine 클릭 - Next 클릭 - 이미지 세팅 맨아래꺼 클릭, Next 클릭 - Linux 클릭, CentOS7 64bit 선택, Next 클릭
VMnet1 : Host-Only, VMnet8 : NAT LAN(VMware는 NAT를 위한 가상의 NAT가 따로 있다.), 10.0.0.1으로 WIN 10에 셋팅되어있음.
VMware 가 WIN 10 NAT을 관리 (HOST와 통신할 수 있도록 LAN이 지원된다.)
💥 누구한테 줄일이 있다면 NAT 기능으로 주는 것이 좋다!
Power On - 네트워크 활성화 - 타임존 설정 - I will configure partition 클릭 - Click here to create them automatically 클릭 - home 영역 삭제 후 '/' 영역에 합침
SELinux 끄기 설정 vi /etc/sysconfig/selinux (enforcing -> disabled; setenforce 0 바로 적용되는것도 같이 )
yum update -y
yum install -y bash-completion
스냅샷 찍고 (VM 클릭 - Snapshot - Take Snapshot)
내보내기 (File - Export to OVF... - .oaf => .ova 로 변경후 저장)
키도 할 수 있으면 미리 보내 놓는 것으루..
VM 우클릭 - Manage - Clone - Next - Next - Create a full clone 선택, Next - 이름설정(WEB02_NFS, ...) 후 마침
ssh-copy-id -i KEY_PATH root@10.0.0.128
vi /etc/ssh/sshd_config
/PasswordAuthentication
PasswordAuthentication no
systemctl restart sshd
hostnamectl set-hostname web01(web02, ...)
httpd 설치
http 방화벽
wget 설치
SAMBA 설치
NFS 서버 등
systemctl restart network
\# vi /etc/sysconfig/network-scripts/ifcfg-ens32
# 네트워크 매니저는 네트워크의 기능이다.
# CentOS 7 까지는 둘다 있는데 CentOS 8,9는 네트워크 매니저만 존재한다.
# ggdG: 전체 라인 지우기
## /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=none # dhcp 유동, none 수동/고정
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.0.46 # 💥 본인의 IP로 변경, 변경되면 안되니 하나 지정하는 것임...
NETMASK=255.255.248.0 # 💥 24(255) -> 21(248)
GATEWAY=192.168.0.1 # 💥 본인의 IP 대역대의 Gateway IP 로 설정
DNS1=8.8.8.8
DNS2=8.8.4.4
\# vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 자기 자신이 게이트웨이라 게이트웨이 설정이 없다.
## /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=10.31.0.1
NETMASK=255.255.255.0
\# systemctl restart network
# 변경 확인
\# ip a
\# systemctl status firewalld
\# firewall-cmd --get-active-zone
# c 채인지, mod 변경, NIC 카드, 어떤 존인지
\# nmcli c mod ens32 connection.zone external
\# nmcli c mod ens33 connection.zone internal
\# firewall-cmd --get-active-zone
sysctl
명령으로 수행시 재부팅하면 변경이 취소되는 경우가 있음.\# vi /etc/sysctl.conf
-----------------------------------------
net.ipv4.ip_forward=1
-----------------------------------------
# 재부팅 풀리는지 아닌지 확인
reboot
# cat /proc/sys/net/ipv4/ip_forward
nmcli [OPTIONS] OBJECT {COMMAND}
nmcli con
== nmcli c
mod
: modify 변경[root@nat ~]# nmcli con mod --help
Usage: nmcli connection modify { ARGUMENTS | help }
\---------------------------------------------------------------------------------
ARGUMENTS := \[id | uuid | path] <ID> ([+|-]<setting>.<property> <value>)+
\---------------------------------------------------------------------------------
Modify one or more properties of the connection profile.
The profile is identified by its name, UUID or D-Bus path. For multi-valued
properties you can use optional '+' or '-' prefix to the property name.
The '+' sign allows appending items instead of overwriting the whole value.
The '-' sign allows removing selected items instead of the whole value.
nmcli c mod ens32 connection.zone external
: 네트워크 장비 "ens32"의 'connection'의 'zone'속성 값(value)을 external 로 connection(c) modify(mod) 하겠다.yum install dhcp -y
\# vi /etc/dhcp/dhcpd.conf
-------------------------------------------------
# /etc/dhcp/dhcpd.conf 수정
ddns-update-style interim;
subnet 10.31.0.0 netmask 255.255.255.0 {
# = 10.31.0.0/24
option routers 10.31.0.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 10.31.0.100 10.31.0.110;
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 7200;
max-lease-time 86400;
}
-------------------------------------------------
systemctl enable --now dhcpd
WEB01_SAMBA 10.31.0.100
WEB02_NFS 10.31.0.101
DNS_DATABASE 10.31.0.102
ip route
id_rsa
privatekey 업로드scp 업로드
MobaXterm 에서 업로드
id_rsa가 권한이 너무 많아서 줄여달라
# chmod 400 id_rsa
# yum -y install bind bind-chroot bind-utils
cp /etc/named.conf /etc/named.conf.bak
\# vi /etc/named.conf
----------------------------------------------------------
options {
# /21, 21 비트이다!
listen-on port 53 { 127.0.0.1; 192.168.0/21; 10.31.0/24; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { localhost; 192.168.0/21; 10.31.0/24; };
forwarders { 8.8.8.8; 8.8.4.4; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view "internal" {
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/var/named/bakjisu2.shop.zones"; # 호스팅 영역 생성
};
----------------------------------------------------------
\# vi /var/named/bakjisu2.shop.zones
----------------------------------------------------------
zone "bakjisu2.shop" IN {
type master;
file "bakjisu2.shop.db";
allow-update { none; };
};
zone "0.31.10.in-addr.arpa" IN {
type master;
file "0.31.10.in-addr.arpa.db";
allow-update { none; };
};
----------------------------------------------------------
\# vi /var/named/bakjisu2.shop.db
----------------------------------------------------------
$TTL 86400
@ IN SOA bakjisu2.shop. root.bakjisu2.shop.(
2022041401 ; Serial
3h ; Refresh
1h ; Retry
1w ; Expire
1h ) ; Minimum
IN NS ns.bakjisu2.shop.
IN MX 10 ns.bakjisu2.shop.
ns IN A 10.31.0.102
web01 IN A 10.31.0.100
web02 IN A 10.31.0.101
----------------------------------------------------------
# IP가 역순이다
\# vi /var/named/0.31.10.in-addr.arpa.db
----------------------------------------------------------
$TTL 86400
@ IN SOA bakjisu2.shop. root.bakjisu2.shop.(
2022041401 ; Serial
3h ; Refresh
1h ; Retry
1w ; Expire
1h ) ; Minimum
IN NS ns.bakjisu2.shop.
102 IN PTR ns.bakjisu2.shop.
100 IN PTR web01.bakjisu2.shop.
101 IN PTR web02.bakjisu2.shop.
----------------------------------------------------------
\# systemctl start named && systemctl enable named
\# systemctl enable --now named
vi /etc/dhcp/dhcpd.conf
후 option domain-name-servers 맨 앞에 10.31.0.102
추가systemctl restart dhcpd
\# firewall-cmd --permanent --add-service=dns
\# firewall-cmd --reload
# 도메인 정보
\# cat /etc/resolv.conf
# 각각의 VM HOST에 실행, MobaXterm의 MultiExec을 이용해도 된다. (정 중앙)
\# systemctl restart NetworkManager
# Ubuntu 에서의 명령어
$ sudo systemctl restart networking
# Windows Server - PowerShell/CMD
> ipconfig /renew
# 도메인 정보 변경 확인
\# cat /etc/resolv.conf
포워드 서버를 통해 인터넷 밖으로 나갈수 있다.
# DNS1=내부_도메인_서버_IP,
\# vi /etc/sysconfig/network-scripts/ifcfg-ens32
\# systemctl restart NetworkManager
# nameserver 서버 정보 확인하기
\# cat /etc/resolv.conf
\# ping web01.bakjisu2.shop
\# yum install -y haproxy
\# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
\# vi /etc/haproxy/haproxy.cfg
----------------------------------------------------------
global
daemon
defaults
mode http
frontend http-in
bind *:80
acl firefox hdr_sub(User-Agent) Firefox
acl chrome hdr_sub(User-Agent) Chrome
default_backend backend_servers
use_backend bk_firefox if firefox
use_backend bk_chrome if chrome
# 서버를 그룹으로 묶어서 우리는 2개 web03(X)
backend backend_servers
balance roundrobin
# cookie SVID insert indirect nocache maxlife 10s
server web01 10.31.0.100:80 cookie w1 check
server web02 10.31.0.101:80 cookie w2 check
# server web03 10.31.0.103:80 cookie w3 check
backend bk_firefox
server web01 10.31.0.100:80
backend bk_chrome
server web02 10.31.0.101:80
----------------------------------------------------------
\# systemctl enable --now haproxy
# 192.168.0.126, NAT-GW의 80번포트 접속시, 안됨...
\# ss -ant # *:80 포트 번호 확인됨
# 열린 것 확인
\# firewall-cmd --list-all --zone=external
# NAT-GW는 내부/외부 구분되어있어서 외부라고 꼭 넣어주기
\# firewall-cmd --permanent --add-port=80/tcp --zone=external
\# firewall-cmd --reload
# 192.168.0.46 접속!
firewall-cmd --permanent --zone=external --add-forward-port=port=3306:proto=tcp:toport=3306:toaddr=10.31.0.102