[Linux (리눅스)/#8 nmcli명령어]

SeungWoo·2023년 11월 2일

[Linux(리눅스)]

목록 보기
9/13

네트워크 관리 명령어 정리

  • nmcli device : device 종류를 볼 수 있음.

  • nmcli connection sub-comand

    • add : connection 생성
    • modify(mod) : connection 수정
    • delete(del) : connection 삭제
    • up : connection 활성화
    • down : connection 비활성화
    • reload : connection 수정사항 재설정
    • show : connection 설정 확인

네트워크 관리 명령어 실행

  • 생성
    nmcli con add option argument

option

유동IP & 고정 IP 공통 설정
con-name(connection.id)connection 이름
ifname(connection.interface)connection과 연결할 device
type(connection.type)통신방식 (ethernet, wifi, bluetooth,..)
autoconnect(connection.autoconnect)부팅시 자동 연결 = 설정하지않아도 x 라서 신경 ㄴㄴ

oprion

고정IP
ip4(ipv4.addresses)고정IP 주소 => 반드시 prefix를 적어야된다. /24 적어야됨
gw4(ipv4.gateway)게이트웨이 주소
ex_1)
장치명 : enp0s7
통신방식 : 유선
유동IP 방식(dhcp)
부팅시 자동 연결

nmcli con add con-name dhcp7 
              ifname enp0s7 
              type ethernet 
              autoconnect yes

nmcli con
nmcli con show dhcp7
ipv4.method      auto

ex_2)
장치명 : enp0s7
통신방식 : 유선
고정IP 방식 : 10.100.5.100/24
              10.100.5.2
부팅시 자동 X

nmcli con add con-name static7 
              ifname enp0s7 
              type ethernet 
              autoconnect no 
              ip4 10.100.5.100/24 
              gw4 10.100.5.2

nmcli con 
nmcli con show static7

connection.autoconnect no
ipv4. method           manual
ipv4.addresses         10.100.5.100/24
ipv4.gateway           10.100.5.2
  • 수정
nmcli con modify (mod) connection_name option argument

option

nmcli con show 연결명을 실행 했을 때 나오는 항목이 모두 옵션

기존 연결 dhcp7 에 대해서 아래 와 같이 수정을 한다면

연결 이름 dhcp7  static7-1
유동IP => 고정IP
ip 주소 : 10.100.5.200/24
dns 주소: 10.100.5.100

nmcli con mod dhcp7 connection.id static7-1 
                    ipv4.method manual 
                    ipv4.addresses 10.100.5.200/24 
                    ipv4.gateway 10.100.5.2 
                    ipv4.dns 10.100.5.100


연결명 수정 static7 => dhcp7-1
고정IP => 유동IP
dns 주소 8.8.8.8 10.100.5.100
자동연결 O

nmcli con mod static7 connection.id  dhcp7-1
                      ipv4.method    auto
                      ipv4.addresses ""
                      ipv4.gateway   ""
                      connection.autoconnect  yes
                      ipv4.dns 8.8.8.8
                      +ipv4.dns 10.100.5.100
호스트명 변경

hostnamectl hostname 호스트명




nmcli con reload
nmcli con up (connection.id)
ip addr show eth1

네트워크 실습

초기 설정으로 초기화

* 현재 IP 주소를  2가지 방법으로 확인해보시오.

ifconfig

ip addr

* add로 연결 생성

- dhcp => 유동IP

nmcli con add con-name dhcp \
              ifname eth2 \
              type ethernet \
              autoconnect yes
* 설정 확인
nmcli con reload
nmcli con 

- static1 => ip : 192.168.56.200/24, gw : 192.168.56.1 

nmcli con add con-name static1 \
              ifname eth2 \
              type ethernet \
              autoconnect yes \
              ip4 192.168.56.200/24 \
              gw4 192.168.56.1
* 설정 확인
nmcli con reload
nmcli con

* modify 로 연결 수정

- dhcp 연결을 static 으로 이름 변경 후 
- 192.168.56.120으로 고정 아이피 설정
- 192.168.100.30 주소 추가
- 8.8.8.8 dns 설정 
- 자동 연결 안되도록 수정
- method maual 로 설정 후 네트워크 연결 확인

nmcli con mod dhcp connection.id static \
                   ipv4.method manual \
                   ipv4.addresses 192.168.56.120/24 \
                   +ipv4.addresses 192.168.56.30/24 \
                   ipv4.gateway 192.168.56.1 \
                   ipv4.dns 8.8.8.8 connection.autoconnect no 

* 설정 확인
nmcli con reload
nmcli con 
nmcli con up static

ip addr show eth2

* 192.168.56.200 주소를 제거하시오.

nmcli con mod static -ipv4.address 192.168.56.200/24 
nmcli con reload
nmcli con up static
ip addr show eth2

* hostname을 client 으로 설정
hostnamectl hostname client
hostname

SSH(Secure Shell)

  • 등장이유
    기존 텔넷(telnet)
    packet를 날릴때, 평문 전송(Pinain Text) --> 보안적 결함
  • SSH는 비대칭키 암호화 방식과 대칭키 암호화 알고리즘을 동시에 사용
    • 대칭킹 알고리즘 : 데이터를 암호화 할 때 사용하는 키와 복호화 할때 사용하는 키가 같은 알고리즘
      • 사용되는 키는 비밀 키
        (하나의 키로 복호화 암호화로 이용)
    • 비대칭키 알고리즘 : 데이터를 암호화 하고 복호화 할때 사용하는 키가 다른 암호화 알고리즘
      • 공개키와 개인키
      • 공개키(public) 외부에 공개된 키로 누구나 공개키를 가지고 있어도 됨
        : 공개키는 데이터를 암호화 하여 전달하며 공개키와 쌍으로 이루어진 개인키를 이용해 암호화된 데이터를 복호화 함
      • 개인키(private) : 키 생성자만 갖고있는 키.
        : 공개키(644)로 암호화 -> 개인키로 복호화
        개인키(400)로 암호화 -> 공개키로 복호화 == 양반향성
  • SSH 연결 과정

1 .접속 요청
2. 공개 키 전송
: 서버의 공개키가 클라이언트에 저장되어 있지 않으면 SSH 서버의 공개키를 저장하기 위한 메세지가 출력 ==> 비밀 키(known host) 저장
3. (Client) 비밀 키 생성
: 공개키를 저장하고 난 다음 Client는 대칭키 알고리즘을 사용해 암호화를 위한 비밀키를 생성
4. (Client) 비밀 키 암호화
: 이 비밀키를 다시 서버의 공개키로 암호화 하여 서버에게 전달
5. 비밀 키 전송
6. 비밀 키 복호화


실습 전 과정
SSH 접속 - 그냥접속
시스템에 원격으로 접속할때 기본적으로 사용자 아이디와 패스워드를 알고 있어야 함

SSH 접속 - 키기반 인증
사용자의 암호를 알고 있지 않아도 원격 접속 할 수 있는 인증방법
키기반 인증을 위해 키를 등록하려면 해당 사용자의 패스워드를 알아야 함

키기반 인증 방식

클라이언트 사용자

ssh-keygen
=> 키 기반 인증을 위한 공개키와 개인키 생성

ssh-copy-id id@server ip address
=> 클라이언트가 생성한 공개키를 서버에 등록하게 됩니다.

SSH 실습

client 에 cuser 생성하고 활성화 시키시오.

useradd cuser
passwd cuser

server에 suser 생성하고 활성화 시키시오.

useradd suser
passwd suser

cuser 에서 suser로 ssh 접속
server : 192.168.56.101로 가정

ssh suser@192.168.56.101

cuser 측에서 보관하고 있는 공개키(public key)와 suser가 보유한 공개키(public key) 내용 확인

client
vi ~/.ssh/known_hosts

server
vi /etc/ssh/ssh_host_ecdsa_key.pub

server의 공개키와 개인키 삭제 후 sshd 재실행

server
rm -f /etc/ssh/ssh_host*
ls /etc/ssh
systemctl restart sshd
ls /etc/ssh

cuser 측에서 보관하고 있는 공개키(public key)와 server가 보유한 공개키(public key) 내용 확인

client
vi ~/.ssh/known_hosts

server
vi /etc/ssh/ssh_host_ecdsa_key.pub

내용이 일치 하지 않음

client
ssh suser@192.168.56.101

접속거절

cuser가 suser로 접속할 수 있도록 하시오.

rm ~/.ssh/known_hosts
ssh suser@192.168.56.101
server의 공개를 다시 받음.

cuser가 suser로 암호없이 로그인 되도록 키인증방식으로 설정하시오.

client
ssh-keygen
ssh-copy-id suser@192.168.56.101

cuser에 server의 root 계정으로 접속 할 수 없도록 설정하시오.

server
vi /etc/ssh/sshd_config
/PermitRoot
PermitRootLongin  no로 변경
profile
This is my study archive

0개의 댓글