4장. 서버를 구축하는 데 알아야 할 필수 개념과 명령 (13) - 네트워크 관련 설정과 명령어와 SELinux

728x90
반응형

출처 : https://www.youtube.com/watch?v=yG5h0s1lAr4&list=PLVsNizTWUw7FqN2gq79Cb3R6qkS7mqOJk&index=25

 

네트워크 개념은 네트워크 항목에 자세히 정리해 놓았으니 네트워크 관련 명령어부터 시작하겠다.

 

네트워크 관련 명령어

  • nmtui
    • nmtui(Network Manager Text User Interface) 명령으로 다음과 같은 네트워크 관련 작업을 처리할 수 있다.
      • 자동 IP 주소 또는 고정 IP 주소 사용 결정
      • IP 주소, 서브넷 마스크, 게이트웨이 정보 입력
      • DNS 정보 입력
      • 네트워크 카드 드라이버 설정
      • 네트워크 장치 (ens160)의 설정
    • 텍스트 기반으로 작동함

 

  • systemctl start / stop / restart / status NetworkManager
    • 네트워크 설정을 변경한 후에, 변경된 내용을 시스템에 적용시키는 명령
    • nmtui 명령을 실행 혹은 ens160.nmconnection 파일을 편집한 후에는 반드시 systemctl restart NetworkManager 명령을 실행해야 함
    • restart는 stop과 start 옵션이 합쳐진 옵션
    • status 는 현재 작동 또는 정지 상태를 표시하는 옵션

 

  • ifconfig 장치이름 up / ifup 장치이름
    • 해당 장치를 작동시키는 명령
    • 네트워크 장치가 장착되었으나 작동하지 않으면 해당 명령으로 네트워크 장치를 작동시킬 수 있다.

 

  • ifconfig 장치이름 down / ifdown 장치이름
    • 네트워크 장치를 끄는 명령

 

  • ifconfig 장치이름
    • 해당 장치의 IP 주소와 관련된 정보를 출력하는 명령

 

  • nslookup
    • DNS 서버의 작동을 테스트하는 명령

 

  • ping IP 주소 또는 URL
    • 해당 컴퓨터가 네트워크 상에서 응답을 하는지 테스트하는 명령
    • 상대 컴퓨터가 아무런 문제없이 작동되는지를 네트워크 상에서 체크할 때 사용

 

네트워크 설정과 관련된 주요 파일

nmtui 명령을 실행하고 나서 변경되는 관련 파일

 

  • /etc/NetworkManager/system-connection/ens160.nmconnection
    • ens160 장치에 설정된 네트워크 정보가 기입된 파일이다.
  • /etc/resolv.conf
    • DNS 서버의 정보와 호스트 이름이 들어있는 파일
  • /etc/hosts
    • 현재 컴퓨터의 호스트 이름 및 FQDN이 기입된 파일
  • 이 파일들을 직접 편집하면 nmtui 명령을 사용하지 않아도 된다. nmtui 명령을 실행한 것과 동일한 효과임

 

nmtui 명령 실습

 

실습 목표

  • nmtui 명령의 작동을 이해한다.
  • 네트워크 관련 파일들의 내용을 확인한다.
  • DNS의 작동을 /etc/resolv.conf 파일과 연관해서 이해한다.

 

nmtui 실습

server 가상 머신을 초기화한 다음 진행한다.

 

 

터미널에서 nmtui를 입력하면 위 그림과 같이 네트워크 관리자 TUI가 나타나게 된다.

 

 

연결 편집 -> ens160 을 들어가면 연결 편집으로 들어갈 수 있다.

 

IPv4 주소를 192.168.111.55/24 로, DNS 서버를 8.8.8.8 로 변경한다. 제일 아래로 이동해 확인으로 이동한 후 Enter를 누른다.

 

이전 화면이 나오면 뒤로 -> 종료로 이동하고 Enter를 눌러서 네트워크 관리자 TUI를 종료한다.

 

 

cat /etc/NetworkManager/system-connections/ens160.nmconnection 명령을 입력하면 IPv4 주소와 DNS 서버 주소가 변경된 것을 확인할 수 있다.

 

systemctl restart NetworkManager 명령을 입력해 변경된 내용을 적용한다.

 

 

nano /etc/resolv.conf 명령을 입력해 DNS 서버 설정 파일을 nano 에디터로 실행한다. KT 에서 제공하는 DNS 서버인 168.126.63.1 을 추가한다. 8.8.8.8은 구글에서 제공하는 DNS 서버

 

저장하고 에디터를 종료한다.

 

 

cat /etc/resolv.conf 명령을 입력하면 /etc/resolv.conf 의 내용이 출력된다. 그런데 systemctl restart NetworkManager 명령을 입력하고 다시 확인하면 KT DNS 서버가 사라지고 다시 구글 DNS 서버만 남게된다. 즉, nmconnection의 내용만 복사가 되게 된다.

 

영구적으로 DNS 설정을 변경하고 싶다면 nmtui 명령으로 DNS를 변경하거나 ens160.nmconnection 파일을 편집해야 한다.

 

 

인터넷은 문제없이 잘 동작한다.

 

우리가 자연어인 www.google.com 을 입력해도 DNS 서버가 이것을 원래 주소로 변환시켜주기 때문에 인터넷은 잘 동작한다. 그렇다면 DNS 서버에 문제가 발생하면 어떻게 될까?

 

 

존재하지 않는 DNS 서버 주소 (100.100.100.100)으로 변경해보자.

 

 

www.google.com  의 실제 주소를 알 수 없으니 접속을 못하게 된다.

 

그런데 이렇게 접속이 되지 않으면 DNS 서버의 문제인지 IP 설정이 문제인지 바로 알기 어렵다. 일단 DNS 서버의 문제인지를 확인하는 방법을 알아보자.

 

 

nslookup 명령을 입력한다. 그러면 프롬프트가 > 로 변경된다. 이 상태에서 server 명령을 입력하면 현재 가상 머신에 설정된 DNS 서버 주소가 출력된다.

 

www.google.com  을 입력하면 접속을 시도하지만 되지않으니 connection timed out 이라는 에러 메시지가 출력된다.

 

server 새로운DNS서버IP주소 를 입력하고 다시 구글 주소를 입력하면 성공적으로 접속해서 구글의 IP 주소를 출력한다.

 

이렇게 nslookup 명령을 활용하면 인터넷이 접속이 안될 때 뭐가 문제였는지를 알 수 있다.

 

 

DNS 서버 문제라는 것을 알았으니 다시 nano /etc/resolv.conf 로 들어가서 DNS 서버 주소를 변경해주자.

 

 

다시 인터넷이 정상적으로 작동한다.

 

 

네트워크 보안을 위한 SELinux

  • SELinux(Security Enhanced Linux)는 보안에 취약한 리눅스를 보호하기 위해 탄생. 시스템에서 보안에 영향을 미치는 서비스, 권한 등을 제어할 수 있다.
  • SELinux의 활성화 여부는 sestatus 또는 getenforce 명령을 실행해 확인할 수 있다.
  • 활성 또는 비활성 명령
grubby --update-kernel ALL --args selinux=0 -> 비활성
grubby --update-kernel ALL --remove-args selinux -> 활성

 

  • system-config-selinux 명령으로 [현재 강제 모드]의 작동 방식을 설정할 수 있다.
    • '강제(Enforcing)' 는 시스템 보안에 영향을 미치는 기능이 감지되면 아예 그 기능이 작동되지 않도록 시스템에서 막아준다.
    • '허용(Permissive)' 은 시스템 보안에 영향을 미치는 기능이 감지되면 허용은 되지만 그 내용이 로그에 남게 된다.
    • '비활성화(Disabled)' 은 SELinux를 사용하지 않는다.

 

 

728x90
반응형