Study/리눅스

리눅스 12일차(네트워크 기초 명령어)

됵이 2022. 7. 22. 01:15

네트워크 명령어

systemctl (systemctl [명령] [서비스명])

서비스 제어 명령어

명령어 종류 

  • start : 서비스 시작
  • stop : 서비스 중지
  • status : 서비스 상태 확인(서비스가 구동중인지 아닌지 알 수 있다)
  • restart : 서비스 재시작 (중지 -> 시작) 
  • reload : 서비스를 중지하지 않고 설정 값을 반영
  • enable : 시스템이 재부팅 하면 자동으로 서비스 실행하도록 등록
  • disable : enable 한 서비스 헤제

systemctl status NetworkManager : 네트워크 메니저 실행 상태 확인

 

nmtui (Network Manager Terminer User Interface)

터미널에서 nmcli를 직접 호출 해서 사용자가 보기 편한 그래픽으로 구성 할 수 있도록 해 놓은 것

모든 설정 후에는 항상 ens33을 Down 후 Up 을 다시 해줘야 한다. (ifdown ens33 && ifup ens33)

nmcli (Network Manager command line interface)

Network Manager를 제어 하거나 network 상태를 볼수 있는 명령어이다.

명령어가 길긴 하지만 스크립트를 만들때는 편하다.

사용법 : nmcli [옵션] 오브젝트{커멘드}오브젝트는 nmcli로 실행할 행동을 의미한다. 옵션은 address /maddress(mac)/reoute 등등 여러가지가 있다. 

 

ifcfg 와 비교

 

nmcli connection modify "ens33" ipv4.addresses 192.168.108.3/24 ipv4.method manual

연결을 수정한다. ens33연결 상태를 ipv4 주소를 수정 고정 주소로 설정

=> ip주소를 수동으로 설정 하는 것(쓰고 싶지는..않다)

nmcli connection modify "ens33" ipv4.dns 8.8.8.8

=>dns 설정

nmcli connection modify "ens33" ipv4.gateway 192.168.108.2

=>gateway 설정

 

nmcli connection modify "ens33" +ipv4.addresses 192.168.108.7/24 ipv4.method manual

=>ip를 하나더 추가 설정을 할 수 있다. / 빼고 싶을때는 +를 -로 바꾼 다음 down && up해주면 된다.

 

netstat

네트워크 연결상태 , 라우팅테이블 , 인터페이스 상태등을 보여주는 명령어

옵션

-a (all) 모든 네트워크 상태 출력
-c (continuous) 현재 실행 명령을 매 초 마다 실행
-e (extend) 확장된 정보 출력
-g (goups) 멀티캐스트에 대한 그룹별 정보 출력
-i (interface) 인터페이스별 통계값 출력
-l (listening) 대기중인 네트워크
-n (numeric) 도메인 주소를 숫자로 출력
-o (timers) 연결 대시 시간 출력
-p (program) PID와 사용중인 프로그램명 출력
-r (route) 라우팅 테이블 출력
-s (sttistics) 프로토콜 요약 정보 출력
-t (TCP) TCP 프로토콜만 출력
-u (UDP) UDP 프로토콜만 출력
-v (version) 버전 출력
-w (raw) RAW 프로토콜만 출력
-A (protocol) 프로토콜별 출력
-M (masquerade) 마스커레이딩 정보 출력

ex) netstat -antl

네트워크 연결 상태를 불러와라 -숫자로(n) TCP만(t) 리스닝 상태인 것만(l)

 

NC

TCP 또는 UDP 프로토콜을 사용하는 네트워크 환경에서 데이터를 읽고 쓰는 간단한 프로그램 서버의 포트가 열려있는지 확인 하거나 서버(클라이언트)에서 접속이 가능한지 확인하는 용도

yum으로 설치 해줘야 한다. 

 

사용법 : nc [옵션] [host] [port]

옵션

옵션 설명
-u udp 연결
-p 소스 포트 지정
-l  LISTEN 모드로 포트 띄움
-z 단순 포트 스캔만 진행
-v  더 많은 정보 확인

ex) nc -l 8080 ->8080포트를 열어준다. 

 

socket

네트워크 통신을 하는 표준 방법으로 프로세스간 연결의 종점이라 생각 할 수 있다. 

 

LSOF(List Open Files)

시스템에서 열려있는 파일 목록을 알려주면서 사용하고 있는 프로세스 , 디바이스 정보 , 파일의 종류등 상세 정보를 출력

 

 

원격지 시스템 관리

TELNET SERVER 장.단점 과 PORT넘버

  • 장점 : 사용이 매우 간편하다
  • 단점 : 보안이 취약하다. 
  • 23번 : telnet tcp 
  • 22번 : ssh tcp

Telnet 실습

Telnet 서버의 종류

  • Stand-Alone
    • 서비스가 메모리에 항상 상주하는 방식
    • 서비스 요청이 적은 것임에도 standalone 이면 사용하지 않을때도 메모리,cpu 자리를 차지하고 있다.
  • Xinetd
    • 데몬이 떠 있지 않으면서 xinetd 데몬에 서비스 요청을 하면 띄워주는 방식 
    • xinetd를 거쳐서 서비스 하기 때문에 서비스 요청이 많으면 속도가 느려진다. 

 

Stand-Alone

server computer 셋팅

yum -y install telnet*
#telnet으로 시작하는거 다 설치

systemctl status telnet.socket
#telnet 실행상태 확인 
#Active 상태가 dead 인지 확인한다. 
#Listen 에 23번(telnet)포트가 올라와 있는지 확인

systemctl start telnet.socket
#telnet.socket을 실행 시킨다

firewall-cmd --permanent --add-service=telnet
#방화벽에서 항상 telnet을 허용 시킨다. 
firewall-cmd --reload 
#방화벽 재시작

useradd teluser
#원격접속할 유저를 만든다.
passwd teluser
#teluser에 대한 비밀번호를 만든다.

telnet 192.168.108.3
#자신의 컴퓨터 (서버)에서 접속을 해본다.

 

client computer 셋팅

 

yum -y install telnet
#telnet 설치

telnet 192.168.108.[]
#접근하여 서버에서 만든 유저로 접속

 

Xinetd

서버 설정

yum -y install xinetd 
#xinetd 설치

yum -y install telnet* 
#telnet에 관한거 전부 설치

cd /etc/xinetd.d/
#/etc/xinetd.d/로 이동

touch telnet
#telnet 파일 생성

vim telnet
service telnet
{
        flags =REUSE #소켓작동 플레그
        socket_type =stream #소켓 타입 stream : tcp dgram : udp
        wait =no #접속시 대기시간
        user =root #해당 데몬을 사용할 유저
        server =/usr/sbin/in.telnetd #해당 서비스의 실제 서버 프로그램 위치
        disable =no #해당 서비스 사용 여부
        only_from = 192.168.108.0/24 #Xinetd에서만 사용 가능한것 특정 user만 허용
        access-times =00:00-00:55 #접근할 수 잇는 시간 제한
        per_source = 1 
}

useradd teluser
#원격접속할 유저를 만든다.
passwd teluser
#teluser에 대한 비밀번호를 만든다.

systemctl start telnet.socket
systemctl status telnet.socket

firewall-cmd --permanent --add-service=telnet
firewall-cmd --reload

클라이언트 설정

yum -y install telnet
#telnet 설치

telnet 192.168.108.[]
#접근하여 서버에서 만든 유저로 접속

 

 

TCP wrapper 필터링

호스트 기반의 ACL기술로 네트워크의 접근을 필터링 하기 위해 사용한다. 

기본적으로 deny한다(거부)

방화벽은 기본적으로 모두 거부하고 일부 허용을 한다. 

/etc/hosts.allow => access 를 허가할 대상을 적는다. 

/etc/hosts.deny => access 를 거부할 대상을 적는다. 

 

vi /etc/hosts.allow
#허가할 대상을 적는다. 
#데몬명	:   위치
#ex)in.telnetd : 192.168.108.
#텔넷으로 접근하는 108네트워크에 대해서는 허용

vi /etc/hosts.deny
/etc/hosts.deny
#ex) ALL : ALL #모든 위치에서 모든 데몬 접근 금지

 

알아둘 것

데몬(daemon) 이란 

리눅스 시스템이 처음 가동될때 실행되는 백그라운드 프로세스의 일종

사용자의 요청을 기다리고 있다가 요청이 발생하면 이에 적절히 대응하는 리스너와 같은 역할을 한다. 

즉 메모리에 상주 하면서 특정 요청이 오면 즉시 대응 할 수 있도록 대기중인 프로세스를 말한다. 

 

프로세스

실행중인 프로그램을 의미한다.

 

 

서비스 제어 명령어

 

 

hostname
ls /etc/hostname
sed -i 's/centos/client/' /etc/hostname

cat /etc/hostname

sed -i 's/192.168.108.3/192.168.108.5/' /etc/sysconfig/network-scripts/ifcfg-ens33

init 6 껏다 켜는것
init 0 끄는 것