리눅스에 대한 원격 접근
- 원격 접근 (텍스트 기반, 윈도우 기반)
- IP 네트워크 기반의 애플리케이션 및 프로토콜 사용(텔넷, ssh, xrdp)
- 연결 권한
-게스트 : 로그인 불필요
-전체 : 사용자 이름과 암호 필요
클라이언트 / 서버
-클라이언트 : 네트워크를 통해 다른 컴퓨터 시스템의 원격 서비스에 액세스하는 프로그램 또는 서비스
-서버 : 네트워크를 통해 클라이언트에게 다양한 서비스를 제공하는 서버 컴퓨터 또는 서버 프로그램
호스트 네임 / 도메인 네임
-호스트 이름 : 시스템 이름, "gethostname"함수나 "hostname"명령어에 의해 리턴
-도메인 이름 : 시스템의 NIS 도메인 이름, 호스트를 도메인으로 그룹화
-NIS : Network Information System
호스트네임 설정법
$ hostname <new_host_name>
: 호스트네임을 "new_host_name"으로 설정
- 일시적이다. 재부팅 후 이전 호스트네임으로 다시 설정된다.
-> "/etc/host" 또는 "/etc/hostname" 파일 편집으로 호스트 네임을 영구적으로 변경할 수 있다.
도메인네임 설정법
$ domainname <new_domain_name>
: 도메인네임을 "new_domain_name"으로 설정
- 일시적이다. 재부팅 후 도메인 이름이 다시 설정된다.
-> "/etc/sysctl.conf"파일 편집으로 도메인 네임을 영구적으로 변경할 수 있다.
서브넷팅
호스트 ID 부분이 매우 커서 클래스 A와 B는 서브 네트워크를 가질 수 있다.
서브넷은 큰 조직 내에서 그룹을 구분하는데 도움된다.
ex) 128.10.10.10과 128.10.200.20
서브넷 마스크
: IP주소의 어느 부분이 네트워크 부분인지 식별하는 역할을 넷마스크라고 함
게이트웨이 : 데이터를 인터넷에 전달하는 IP주소
- 네트워크 인터페이스느 IP주소를 얻는다.
지정 IP어드레스, 유동 IP어드레스
DHCP : Dynamic Host Configuration Protocol
네트워크 인터페이스
: 다른 기계와의 통신을 위한 네트워크 장치
-
표현
enp : enp0s3,...
eth : eth0, eth1,...
lo : loopback
-
확인방법
$lshw -c network
$ip a
$ifconfig
-
NIC(Network Interface Cards)
-네트워크에 연결하려면 컴퓨터에 인터페이스 카드가 있어야함
-NIC에는 고유한 주소(MAC주소)를 갖고 있다.
-MAC주소는 DHCP에 사용된다.
-
사용가능한 네트워크 인터페이스
lshw 명령
-
ifconfig 명령
-커널에 있는 네트워크 인터페이스를 구성
-NIC 활성화 또는 비활성화
-리눅스 시스템의 IP주소, 넷마스크, 브로드캐스트 주소를 변경한다.
-NIC에서 둘 이상의 IP 주소를 허용하는 IP 별칭 생성
-지점 간 연결을 위한 대상 주소 설정
-
루프백 주소 및 인터페이스 : 127.0.0.1
라우트 구성
- "route" 명령어 : 패킷 라우팅을 위해 구현된 라우팅 테이블(메모리 내)을 구축/표시합니다
- route [commands][options] target [parameters]
add/del 명령어 : target을 추가/삭제한다.
"-n" 옵션 : 수치 표현
"default" 옵션 : 기본 게이트웨이로 설정한다.
"-net"또는 "-host" 옵션 : 타겟을 네트워크나 호스트 설정
"gw GW" 파라미터 : gateway GW(IP주소)
"dev if" 파라미터 : 인터페이스
"ip"로 네트워크 인터페이스 구성
- ip addr : 이더넷 인터페이스 식별
- ip link set dev [dev_name] up(down) : [dev_name]을 on/off한다.
- ip addr add(or del) [net_address]/[netmask] dev dev_name : ip주소를 주거나 뺀다
- ip route : 라우팅 테이블을 확인한다.
– ip route add(or del) default(or network) via [gateway] : default 게이트웨이를 준다.
- ip route add(or del) [net_address]/[netmask] dev dev_name : 라우팅 규칙을 준다.
netstat의 옵션
- "netstat –a" : 모든 포트 나열
- "netstat –at" : 모든 TCP포트 나열
- "netstat –au" : 모든 UDP 포트 나열
- "netstat –l" : 모든 수신 소켓 나열
- "netstat –lt" : 모든 TCP 수신 소켓 나열
- "netstat –lu" : 모든 UDP 수신 소켓 나열
- "netstat –lx" : 모든 UNIX 수신 소켓 나열
- "netstat –r" : 커널 라우팅 정보 표시
"ss"로 네트워크 상태 확인
- 옵션
-t, --tcp : tcp 소켓만 표시
-u, --udp : udp 소켓만 표시
-l, --listiong : 수신 소켓만 표시
-n, --numeric : 서비스 이름을 확인하지 않음
-p, --processes : 소켓을 사용하는 프로세스 표시
포트, 서비스
-
IP주소 : 호스트를 식별
-
포트 : 서비스를 식별
-
DNS 사용 : 호스트 네임을 IP주소로 변환
-
"nslookup" 명령어 : 대화형으로 인터넷 네임 서비스 쿼리
-
"/etc/resolve.conf" 파일에 로컬 네임서버 설정 : DHCP사용하는 경우, 자동으로 설정
호스트의 로컬 정보
- "/etc/host" 파일에 로컬호스트의 정보가 포함되어 있다. 일반적으로 내부 서브 네트워크 관리에 사용
- "/etc/host.conf"에 호스트네임의 IP주소를 찾는다.
세션
- 클라이언트와 서버간의 연결 식별
- 서버는 클라이언트의 연결에 세션ID를 할당한다.
- 세션ID가 유효할 때까지 서버는 이전에 서버에 접속한 클라이언트를 식별하고 다시 서버에 접속한다.
Telnet
- 텍스트 기반 원격 접속 프로토콜 : 23포트 사용
- 사용법 : o [IP주소] : 주어진 IP주소로 기계를 연결
SSH
- 안전한 데이터 통신을 위한 Secure Shell : 22포트 사용
- 공용 키 암호화를 사용하여 원격 컴퓨터 인증
원격 데스크탑
: 클라이언트가 데스크톱 환경에서 서버 시스템에 액세스하는 경우
- RDP (Remote Desktop Protocol) : 원격 데스크탑 프로토콜
TCP포트 : 3389
- FTP 서버 : File Transfer Protocol
- Samba 서버
- Apache2 http 서버 : WWW의 초기 성장에 핵심적인 역할을 한 것으로 유명한 웹 서버 소프트웨어 프로그램, 일반적으로 Unix 계열에서 실행
구성 폴더 : "/etc/apache2"