리눅스 네트워크 명령어
-> ifconfig : ip 확인 명령어
> Interface configuration: interface의 정보 확인 및 제어
인터페이스 : 장치에 랜선 꽂는 소켓 하나하나를 의미
> CentOS 6 버전까지는 시스템 설치 시 기본적으로 설치되는 명령어였으나 CentOS 7 버전부터는 추가로 설치해야 사용 가능 (현재는 ip addr 명령어가 기본 설치, net-tools 패키지 설치 후 ifconfig 사용 가능)
> 설치 할 때 ' 개발용 툴' 체크 하면서 자동적으로 위의 패키지는 설치 되었다.
# 형식
ifconfig : 현재 장치가 인식한 모든 interface의 정보 출력
ifconfig <interface 이름> : 특정 interface의 정보만 출력

{ a | b | c ... } : 안의 내용 중 하나를 사용해라.
ifconfig <interface 이름> { up | down} : interface의 상태 제어(on/off)

-> 현재 ens32는 up 상태로 ip 정보가 출력된다. down 옵션을 준다면?
-> ip 정보가 출력되지 않는 것을 볼 수 있다.
ifconfig <interface 이름> <IP address> netmask <subnetmask> : interface의 IP 주소 등을 변경(일시적인 변경, 설정이 변경 되는 것은 X)
>> network 데몬이 다시 실행되면서 원래의 설정을 불러와서 원래대로 변경


※ 데몬 프로세스 제어
- 운영체제에는 각종 서비스들이 동작 되고 있고, 각 서비스들은 데몬 프로세스로 제어
# 형식
systemctl { start | stop | restart | status | enable | disable } 데몬명
start : 실행
stop : 정지
restart : 재실행(정지 -> 실행, 정지 상태에서도 사용 가능)
enable : 부팅 시 자동으로 해당 데몬 프로세스 실행
disable : enable 해제
※ ifconfig 명령 입력
ens32 :
lo : loop back -> 127.0.0.1 -> 실제로 사용할 수 없는 사설 ip(어제 네트워크 이론) - 어느 운영체제를 사용하던 동일함
loop back-> 내가 어떤 네트워크에서 어떤 ip를 사용하던 무조건 나 자신을 찾아가게 하는 ip
virbr0 : 가상화 환경 구성 시에 필요함 (지금은 필요 없음)
ip 설정 파일 존재 경로
cd /etc/sysconfig/network-scripts/
ls -> ifcfg-ens32 여기에 인터페이스에 대한 파일이 저장되어 있음
vi ifcfg-ens32 확인

※ 네트워크 관련 명령어 - ping
- 내 장치와 목적지 장치 간의 네트워크 통신 상태 확인
- 거의 모든 운영체제에 ping 명령어가 존재
> Linux에서는 무한정 지속
# 형식
ping [옵션] [값] ... [옵션] [값] <목적지 IP>
*옵션
- c : ping 횟수를 지정해주는 명령어
- i : ping 간격 지정 가능(0.5초 아래로는 관리자만 가능하다. -> DOS 공격을 방지하고자 막았음)
-s : ping 크기 지정(무의미한 값을 이용하여 크기를 늘릴 수 있다)
※ 네트워크 관련 명령어 - traceroute
1. 내 장치와 목적지 장치 사이에 몇 개의 네트워크(= router)가 있는지 확인
2. 하나의 네트워크를 지날 때 1 hop씩 계산하여 최대 30 hop까지 확인 가능
3. 전 세계 어디에 있어도 20 hop 안쪽으로 목적지에 도착 가능(우회 안했을 경우)
4. 중간에 있는 router가 자신의 정보를 알려주지 않거나 통신이 안되면 우회를 하면서 hop 추가
# 형식
traceroute <목적지 IP>
원격 접속 - telnet
- 옛날부터 사용되던 원격 접속 protocol
- CLI 환경으로 사용
- 거의 모든 OS에서 사용 가능하지만 가급적 사용 X
> 주고 받는 통신을 암호화 하지 않아서 보안성이 낮음(평문 통신 or 비 암호화 통신을 한다)
※ CD를 마운트하여 telnet으로 시작하는 패키지 전체 설치 해보기
- yum 명령어 사용하지 않고 rpm 명령어 사용해보기
★ telnet을 사용하기 위해서는 윈도우에서 telnet을 허용해줘야 사용이 가능하다 ★

# 정보
패키지 : telnet-*
데몬 : telnet.socket
방화벽 : port=23/tcp, service=telnet
설정 파일 : X (별도의 service가 아니기 때문에 설정 파일은 존재하지 않는다.)

telnet이 바로 실행 안되는 이유
모든 데몬 서비스들은 최초 설치 후에 동작이 안되어 있는 상태이기 때문에 직접 systemctl과 같은 명령어로 켜줘야 한다.
systemctl status telnet.socket
->Active: inactive (dead)

systemctl restart telnet.socket
systemctl status telnet.socket
-> 켜짐

다시 cmd에서 telnet 192.168.10.128 접속 시도 -> 접속 실패
왜 안되는가? 방화벽 문제!
※ firewall(방화벽)
-장치의 네트워크 통신의 보안성을 높이는 요소
-> 거의 모든 운영체제에서 사용하는 요소
-방화벽은 기본적으로 나에게 들어오는 모든 통신은 차단하고 내가 내보내는 통신은 전부 허용
> 예외 규칙을 작성하여 규칙에 부합하는 통신은 들어오는 것을 허용 한다.
-CentOS 6버전까지는 iptables를 사용하다가 7버전부터 firewalld를 사용

# 사용 방식(형식)
*permanent는 예외 가능하나 거의 필수로 써줌
# 예외 규칙 작성
firewall-cmd [--permanent] <add or remove target>
--permanent : 모든 interface를 대상으로 방화벽 규칙 적용
add or remove target 작성은 add는 추가, remove는 제거를 기본으로 port나 service 등을 방화벽 예외 규칙에 추가/제거
--add-port=23/tcp : tcp 23번 port를 예외 규칙에 추가
--add-service=telnet : telnet service를 예외 규칙에 추가
--remove-port=23/tcp : tcp 23번 port를 예외 규칙에서 제거
--remove-service=telnet : telnet service를 예외 규칙에서 제거
# 예외 규칙 적용
firewall-cmd --reload
# 예외 규칙 확인
firewall-cmd --list-all
firewall-cmd --permanent --add-port=23/tcp
-> 예외 규칙에 telnet 추가
- but root 로그인을 하려고 하면 보안성이 너무 떨어지기 때문에 telnet root로 접속이 안된다. 따라서 일반 사용자로 접속해야한다.
-> 일반 사용자로는 권한이 제한적이 때문에 다른 사용자 권한 획득 명령어 사용이 필요하다.
다른 사용자 권한 획득 명령어
# sudo
특정 작업을 수행할 때 다른 사용자(보통은 관리자)의 권한을 획득해서 동작
sudo 명령어를 사용하는 일반 사용자 계정의 정보를 수정하고 /etc/sudoers 파일 설정
획득한 권한은 해당 동작에서만 적용, terminal이 종료되면 획득한 권한 폐기
# su
현재 접속을 유지한 상태로 다른 사용자(보통은 관리자)로 추가 접속하여 사용
su 명령어만 입력하면 환경변수 등의 개인 환경을 먼저 접속했던 사용자의 개인 환경으로 유지
su - 입력하면 개인 환경을 추가 접속하는 사용자의 환경으로 변경
