Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

네트워크 보안 6주차 정리 (리눅스 명령어) 본문

2-2/네트워크 보안

네트워크 보안 6주차 정리 (리눅스 명령어)

김브래 2023. 10. 10. 19:28

계정 환경 설정


로그인 정보

명령: passwd
• 현재 로그인한 계정의 비밀번호를 설정

기본 명령어들

- 경로 변경: cd [경로]
- 파일 생성: touch [파일명]
- 파일 복사: cp [원본] [대상]
- 파일 삭제: rm [파일명]
- 파일 이동: mv [원본] [대상]


파일 내용 보기 명령들


명령어: cat [파일명]

- 지정한 파일의 내용을 화면에 출력

 

명령어: more [파일명]

- 지정한 파일의 내용을 화면에 출력
- 화면 단위로 출력(페이지 넘김: 스페이스바키)

 

명령어: tail [-###] [파일명]

- 지정한 파일에 대하여 에서 ###(숫자)의 행만큼 출력

 

명령어: head [-###] [파일명]

- 지정한 파일에 대하여 에서 ###(숫자)의 행만큼 출력


텍스트 파일 에디터


VI 에디터(editor)

리눅스/유닉스에서는 일반적으로 VI 에디터가 가장 많이 쓰임

 

Bill Joy에 의해 BSD 유닉스용으로 처음 개발

 

대부분의 유닉스계열의 운영체제는 VI가 설치되어 있음
• VI의 사용을 익히는 것을 강력히 추천

 

단, 사용법을 익히는데 다소 시간이 걸리는 문제가 있음

 

명령어: vi {파일명}
• 저장: “:w” (명령모드에서 실행)
• 끝내기: “:q” (명령모드에서 실행)\


GCC


컴파일

- 텍스트 또는 오브젝트 파일을 기계어로 변환

- 상용 UNIX에서는 gcc라는 명령어를 사용
- GNU기반의 UNIX(리눅스 포함)에서는 gcc를 사용

 

- 명령어: gcc [파일명.c…] {-o 생성파일} {-l라이브러리}

GCC 대표 옵션


프로세스 상태 보기


프로세스 상태 보기

명령어: ps

로컬호스트내 프로세스의 동작 상태를 출력하는 명령

 

옵션으로 UNIX(System V)방식과 BSD방식을 모두 지원
• UNIX방식은 바(‘-’)문구를 사용
• BSD방식은 바 없이 바로 파라미터를 사용

명령어: top
로컬호스트내 프로세스의 동작 상태를 주기적으로 갱신하여 출력

프로세스 죽이기

명령어: kill
특정 프로세스에게 신호를 전달

 

대상 프로세스는 소유권이 동일해야 함
• 단, 시스템관리자(root)는 타 소유권의 프로세스의 제어도 가능


전면/후면 프로세스


전면 프로세스(Foreground Process)

- GUI의 경우 운영체제 화면에서 맨 앞에 놓인 활성화 상태의 프로세스
- 현재 입력과 출력을 사용하는 프로세스

 

- 사용자와 상호작용이 가능 = 상호작용 프로세스

 

후면 프로세스(Background Process)

- 사용자와 상호작용이 없는 프로세스
- 사용자의 입력 없이 작동
- 일괄 작업 프로세스라고도 함
- 전면 프로세스 보다 우선순위가 낮음

 

관련 명령어:
• 단축키: [Ctrl + Z] : 정지
• 명령어: jobs : 동일 쉘내 작업들 출력
• 명령어: fg : 전면으로 전환(Run상태 활성)
• 명령어: bg : 후면으로 전환(Run상태 활성)


IP 주소


MAC 주소와 IP 주소의 연결

- 주소 결정 프로토콜
- ARP(Address Resolution Protocol)와 RARP(Reverse ARP)에 의해 서로 연결됨
- 운영체제는 주변 장치들의 IP와 MAC 주소를 내부적으로 테이블에 관리
- 동작 원리:
• ARP: IP가 #.#.#.#인 MAC 주소는 무엇이니?
• RARP: MAC주소 $$$$$$는 IP가 무엇이니?

 

주변 장치의 IP 와 MAC주소 확인

명령어: arp

할당된 IP 확인

- 이더넷 장치에 할당된 IP 주소를 확인
- 이더넷 장치에 다수의 IP 주소 할당도 가능


- 관련 명령:
• 명령어 1: ip address
• 명령어 2: ifconfig


라우팅 정보 보기


라우팅 테이블

운영체제는 목적지주소로 전송할 패킷에 대한 출구 정보를 테이블로 관리


아웃 패킷은 네트워크 주소에 따라 서로 다른 이더넷 장치로 설정할 수 있음
• 인터넷 상의 라우터는 다수의 이더넷을 탑재

 

관련 명령어: route


네트워크 점검


네트워크 이용 상태 확인

시스템내 네트워크에 대한 이용 상태(현황)을 파악할 수 있음

 

출력 정보:
• 네트워크 접속상태(-l: 서버, -t: TCP, -u: UDP, …)
• 라우팅 테이블(-r)
• 인터페이스 통계(-s)
• Masquerade(NAT) 접속(-M)
• 멀티케스트 맴버십(-g) 등

원격 호스트의 네트워크 접속 상태 확인

ICMP를 통해 네트워크의 상태를 확인


명령어: ping
명령어: traceroute


주소 검색


IP 탐색

주어진 도메인명을 이용하여 IP 주소를 조회하기 위한 명령어
• 네임서버에 접속하여 도메인명과 IP주소의 관계를 조회

 

명령어 1: nslookup
명령어 2: host


도메인 소유자 검색


도메인 소유자 검색

지정한 도메인명에 대하여 현재 등록된 소유자의 정보를 조회

 

명령어: whois


 

서버 타입


데몬

Daemon: 악마

서비스(Service)라고도 함

 

UNIX 계열의 운영체제시스템에서 활동중인 백그라운드 프로세스의 일종

 

주로 서버 프로세스를 지칭
• 주로 클라이언트의 접속 요청을 대기하고 무한대로 대기하고 있는 프로그램

 

타입
• Standalone
• Inetd

Standalone

시스템에 독자적으로 프로세스가 구동되어서 서비스를 제공하는 데몬
• 예 : 웹서버 (httpd), DB서버(mysqld), 센드메일서버(sendmail) 등

 

실행 및 종료는 대개 “service 데몬이름 start/stop/restart”로 사용
• 시스템 실행시 자동은 “systemctl enable 데몬이름”

 

Standalone 타입 데몬의 실행 스크립트는 주로 “/etc/init.d/” 디렉토리에 주로 존재

 

inetd

일명 “슈퍼데몬”이라고도 부름
• 데몬 자신이 독립적인 프로세스로 직접 서비스를 하지 않음
• 외부에서 특정 서비스를 요청할 경우에 자신에게 종속된 데몬을 구동
• inetd이 해당 데몬에게 서비스를 하도록 연결시켜줌


운영체제에 따라 inetd 또는 xinetd으로 제공
• 설정파일: /etc/inetd.conf


 UNIX 명령 파라미터


System V 계열의 UNIX 옵션

단일문자 옵션 인식 : ‘-’ 활용(single dash)
• 값 필요 시 바로 다음 파라미터를 값으로 인식
• 하나의 ‘-’에 모든 문자 같이 활용이 가능(단, 값 필요 옵션 제외)
• 예1: ls -al -i
• 예2: gcc hello.c –o hello

 

단어단위의 옵션 인식: ‘--’ 활용(double dashes)
• 값 필요시 “=”를 사용


명령 파라미터 추출


파라미터 추출

함수: getopt()
• 옵션 및 설정 값 추출이 가능
• 단, 단일 문자(‘-’) 형태의 옵션만 처리
• 반복 호출하는 방식으로 이용됨


인자:
• argc : main() 함수의 argc값(명령어를 포함한 파라미터 개수)
• *argv[] : main() 함수의 *argv[]에 해당하는 값
• *optstring : 인식할 옵션들(문자열 형태로 지정)


결과값:
• 성공: 옵션 문자
• 실패: -1