본문 바로가기
모의해킹 침해대응 과정/Liunx 관리

리눅스 네트워크 인터페이스 관리 / day 14

by 알거음슴 2021. 4. 15.

네트워크 서비스 과정 필요한 기술

서비스 enable/disable

네트워크 설정

SELinux

방화벽

 

Network Manager

네트워크 설정을 모니터링 및 관리하는 데몬. /etc/sysconfig/network-scripts 파일을 통해 진행한다.

[용어설명]

장치(Device) : 네트워크 인터페이스 (Network Interface)

nmcli device 또는 ip link 로 확인

연결(Connection) : 장치에 대한 구성할 수 있는 설정 컬렉션이다.

nmcli connection 로 확인.

 

 

네트워크 설정파일

 1. /etc/hosts 

IP 와 호스트네임 또는 도메인 이름을 맵핑하여 ip를 관리한다.

[root@server1 /test101]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

#

#
192.168.10.10 main.example.com mail

192.168.10.20 server1.example.com server1
192.168.10.30 server2.example.com server2

 # ping 192.168.10.10

 # ping main.example.com

 # ping main 

* 모두 같은 의미이다. (telnet, ssh 도 모두 동일)

 

 2. /etc/host.conf

mulit on 과 off 로 관리되며. 기본값은 on 특정 호스트로 접속 시, DNS와 /etc/hosts 를 비교하여 IP주소를 변환해 오는데. 이때 /etc/hosts 를 우선으로 확인 후 DNS 를 확인하겠다는 뜻이다.

 ex) http://www.daum.net -> (1) /etc/hosts -> (2) DNS(/etc/resolv.conf)

 

 

 3. /etc/resolv.conf

DNS 서버를 지정할 때 사용하는 파일이다. 보통 3개까지 등록할 수 있다.

 

[참고]

 대표적인 ISP DNS 주소 확인

코넷 : C:\> nslookup q=NS kornet.net (IP: 211.216.50.150, 211.216.50.160)

보라넷 : C:\> nslookup q=NS bora.net (IP: 164.124.101.31, 203.248.240.31)

파워콤 : C:\> nslookup q=NS powercom.com (IP: 216.69.185.26, 208.109.255.26)

하나로 : C:\> nslookup -q=NS hanaro.net (IP: 210.180.98.85, 221.139.108.194)

 외워 두셔야 하는 DNS 주소

KT : 168.126.63.1

LG : 164.124.101.2

Google : 8.8.8.8

 

 4. /etc/sysconfig/network-scripts

cat ifcfg-[연결이름] 으로 확인가능 네트워크 설정 정보들을 담고 있다

 출력내용 해석

[root@server1 /etc/sysconfig/network-scripts]# cat ifcfg-ens33
TYPE=Ethernet  :  
장치 연결 종류
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none none or static  :  정적 IP, dhcp : 동적 iP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33 : 연결이름
UUID=b1c87085-589b-4947-88b6-2d717dfd963c
DEVICE=ens33  :  장치이름
ONBOOT=yes  :  부팅시 활성화
HWADDR=00:0C:29:AF:C4:C5  :  맥주소
IPADDR=192.168.10.10  :  ip주소
PREFIX=24  :  서브넷마스크
GATEWAY=192.168.10.2  :  게이트웨이
DNS1=8.8.8.8  :  DNS서버
DOMAIN=example.com  :  
도메인 이름
IPV6_PRIVACY=no

 

 

 5. 현재 설정 확인 CMD

ip address (ifconfig)

 장치 별 IP 주소 확인

[root@server1 ~]# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:40:7d:da brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.20/24 brd 192.168.10.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::3914:df22:f922:5bc1/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

 

ip route (netstat -nr)

 라우팅 테이블을 확인 가능하다.

[root@server1 ~]# ip route 
default via 192.168.10.2 dev ens33 proto static metric 100 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.20 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 

 

ethtool [장치이름] 

 NIC카드 설정값 확인하는 명령어 즉 물리적인 연결 상태를 확인할 수 있다.

 

netstat

 포트 및 서비스 정보 출력

netstat an : 모든 정보 출력
netstat ant : tcp 정보만 출력
netstat anu : udp 정보만 출력
netstat antu : tcp udp의 대한 정보 출력
netstat antup : 프로세스 정보까지 출력( PID 또는 프로세스 이름 )

 

tracepath [DNS address]

 트레픽에 의한 수행된 경로 추적

 

 

6. 네트워크 설정 Tool

 1) 환경에 따른 설정 툴 

(CLI) nmcli CMD

(TUI) nmtui CMD

(GUI) nm-connection-editor

 

 2) nmcli CMD

nmcli 를 통해 장치 및 연결 의 정보를 확인해보자.

nmcli device : 장치의 정보 확인. ( =nmcli device status )

nmcli device show : 장치의 설정정보 확인 ( 장비를 입력시 해당장비 값만 확인가능)

 * nmcli device [TAP][TAP] 으로 다양한 옵션 확인

nmcli connection : 연결의 정보 확인

nmcli connection show ens33 : ens33의 상세한 정보 확인

nmcli connection modify ens33:  ens33의 값 수정.

 ipv4.method manual : 동적 정적 IP 정보 변경 

 ipv4.addresses 192.168.10.21/24 : IP 변경

 ipv4.gateway 192.168.10.2 : 게이트 웨이 변경

 ipv4.dns 168.126.63.1 : DNS 서버 변경

 ipv4.dns-search example.com

 * nmcli connection [TAP][TAP] 으로 다양한 옵션 확인

 3) IP 를 변경해보자

nm-connection-editor 툴 사용, 기존 IP 변경

IP 변경: 192.168.10.20 -> 192.168.10.21

[root@server1 ~]# ip address show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:40:7d:da brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.20/24 brd 192.168.10.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::3914:df22:f922:5bc1/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

 * 변경이 안되어있음을 확인할 수 있다. 툴로 설정을 변경할 경우 변경을 저정하는 up을 진행해줘야 한다.
[root@server1 ~]# nmcli connection up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)

[root@server1 ~]# ip address show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:40:7d:da brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.21/24 brd 192.168.10.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::3914:df22:f922:5bc1/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

 4) nmtui tool 을 사용하여 새로운 연결을 만들어보자. (DHCP)

# nmtui

Edit a connection -> <Add> -> Ethernet

profile name : 새로운 연결의 이름

Device : 장치 이름

ETHERNET : MAC 즉 2계층 설정 mac address 등을 설정

IPv4 CONFIGURATION : IP의 즉 3계층 설정 ip address, gateway 등을 설정

[root@server1 /etc/sysconfig/network-scripts]# ls
.  ..  ifcfg-ens33  ifcfg-ens33-new
 * 생성 여부 확인완료
[root@server1 /etc/sysconfig/network-scripts]# nmcli connection 
NAME                      UUID                                     TYPE        DEVICE 
ens33      ac6899f3-8b44-45eb-ba65-ed43a761b363     ethernet   ens33  
virbr0       6620b2c8-2a4f-466c-93f2-de6b7e65afb4      bridge      virbr0 
ens33-new  a4d3ee01-7932-4067-af59-3afdc5cfa0e6     ethernet    -- 

* 역시나 바로 적용되지 않음을 확인할 수 있다.

[root@server1 ~]# nmcli connection up ens33-new
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
[root@server1 ~]# nmcli connection 
NAME                      UUID                                  TYPE      DEVICE 
ens33-new  a4d3ee01-7932-4067-af59-3afdc5cfa0e6  ethernet  ens33  
virbr0         6620b2c8-2a4f-466c-93f2-de6b7e65afb4  bridge    virbr0 
ens33       ac6899f3-8b44-45eb-ba65-ed43a761b363  ethernet  --  

[참고] vi ifcfg-ens33 으로 직접 변경시.

Tool을 통해 변경시 Network manager의 설정값이 바로 변경되지만 

vi 편집기를 통해 변경시 Network manager의 설정값은 바로 변경되지 않는다.

 -> 즉 Network manager 를 재 기동하고 UP을 진행해야한다.

 nmcli connection reload : 재기동

 nmcli connection up ens33 : UP

 

 

7. NIC(Network Interface Card) 추가작업.

 

 1) NIC 장치 추가

systemd-udevd.service 기동여부 확인.

VMware 내 NIC 추가 (nat)

VMware 내 network editor 로 DHCP 여부 확인.

 

 2) NIC 장치 인식

nmcli device (ip link) CMD로 장치 인식여부 확인.

[root@server1 ~]# nmcli device 
DEVICE      TYPE      STATE                   CONNECTION 
ens33       ethernet  connected               ens33        
ens36       ethernet  disconnected            --    

 

 3) NIC 네트워크 설정

3가지 Tool중 nm-connection-editor 활용하여 네트워크 설정을 진행.

[root@server1 ~]# nm-connection-editor 

Ethernet

* Connection name: ens36

* Device: ens36 (00:0C:29:3C:C4:EA)

IPv4 Settins

* Method : Manual

* Address : 192.168.10.21

* Netmask : 24

 

 4) 확인

 NIC 등록여부 및 설정확인

[root@server1 ~]# ls /etc/sysconfig/network-scripts/

[root@server1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens36

 UP설정

[root@server1 ~]# nmcli connection up ens36

[root@server1 ~]# nmcli connection 
NAME                   UUID                                 TYPE      DEVICE 
ens33   ac6899f3-8b44-45eb-ba65-ed43a761b363  ethernet  ens33  
ens36   eeeceeec-b188-46ef-870a-5813bca0ccb4   ethernet  ens36  

 

 

8. 호스트 이름(host name) 변경

 1) 현재 호스트 이름 확인

hostnamectl CMD 를 활용

[root@server1 ~]# hostnamectl
Static hostname: server1.example.com
Icon name: computer-vm
Chassis: vm
Machine ID: 2e197c62b444457e8d86ea622e1441dc
Boot ID: 4a3ed6bd063f477ba362206a134e9ee2
Virtualization: vmware
Operating System: CentOS Linux 8
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-240.22.1.el8_3.x86_64
Architecture: x86-64

 2) 호스트 이름 변경

hostnamectl set-hostname CMD 를 통해서 변경처리를 진행한다.

[root@server1 ~]# hostnamectl set-hostname test.example.com
[root@server1 ~]# 
hostnamectl
Static hostname: test.example.com
Icon name: computer-vm
Chassis: vm
Machine ID: 2e197c62b444457e8d86ea622e1441dc
Boot ID: 4a3ed6bd063f477ba362206a134e9ee2
Virtualization: vmware
Operating System: CentOS Linux 8
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-240.22.1.el8_3.x86_64
Architecture: x86-64

 * 변경이 완료됨을 확인하면 반드시 reboot을 진행해야 오류없는 적용이 가능하다.

 

 9. 티밍(Teming) / 본딩(Bonding)

여러장의 NIC를 논리적으로 하나처럼 이용하는 방식, 장애 극복(Failover)높은 처리량(Load Balancing)효과를 기대하는 기술.

 1) 티밍 구성.

ens33 과 ens36 을 하나의 team0이라는 이름의 티밍으로 구성.