linux-study-04

리눅스


Group

폴더나 ,파일에게 특정 그룹에게만 사용권한을 줄수있다.

  1. groupadd develops : 그룹을 추가한다. (일반 사용자는 추가를 못한다.)

su - root 한 후 groupadd develops 혹은 sudo groupadd develops

  1. sudo usermod -a -G [그룹명] [사용자명] : 그룹에 사용자를 추가한다.

  2. sudo chown [주인명]:[그룹명] [파일명] : 디렉토리 혹은 파일 권한을 [그룹명]으로 변경한다.

  3. sudo chmod g+w [파일명] : 그룹에 write권한을 준다.


Internet | Network | Server

인터넷은 컴퓨터( Client )와 컴퓨터( Server )간의 request , response의 연속.

Domain-name : 일종의 ip-address에 대한 별명.

우리가 컴퓨터에게 예를들어, 구글의 IP주소를 알려주지 않아도 구글의 ip를 알아서 찾아가는 이유는 우리가 인터넷창에google.com이라고 치는 순간 DNS Server라는 이 세상의 모든 도메인을 저장하고있는 서버에 접속하여 구글에 대한 IP를 받아서 접속하는 형태이다.


ip 확인 명령어

curl ipinfo.io/ip : 외부에 접속할 때 사용하는 아이피 (즉, Public Address 를 알아냄.)

ip addr : 내 컴퓨터에 접속한 실제 아이피 ( 내 컴퓨터에 실제로 할당된 아이피.)


apache 웹 서버

웹서버의 종류 : apache, nginx등등

아파치를 설치하고 실행하면 여러 접속을 분산으로 받기 위해서 여러개가 실행이된다.

elinks : 쉘환경에서 인터넷을 할 수 있도록 하는 프로그램

localhost : 자신의 로컬주소 (127.0.0.1) 에 대한 domain-name

예) Web-Broser에서 10.0.2.15/index.html 로 요청하면 Web-Serverd에서 index.html을 찾게된다.

웹페이지를 찾는 최상위 디렉토리 : document root

/etc/apache2/sites-enabled/000-default.conf 에 document root가 적혀있다.

log 파일 위치 : /var/log/apache2/

서버에 관한 문제 해결시 log가 어디있는지 || root폴더 위치를 먼저 파악하는것이 좋다.


SSH 원격제어

SSH란 Secure Shell Protocol, 즉 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜.

사용조건 : 서버와 클라이언트 구조

  1. 서버에 SSH SERVER를 설치

  2. 클라이언트에 SSH CLIENT를 설치

  3. 클라이언트 -> 서버 접속

    ssh 서버명@아이피주소

  4. 접속이 완료되면, 클라이언트가 내리는 명령은 서버컴퓨터에서 처리되고 그 결과를 클라이언트 컴퓨터에 표시한다.


port

웹서버는 80번 포트로 약속됨.

SSH는 22번 포트로 약속됨.

0~1024 번까지의 포트번호는 ‘’표준’’으로 할당이 되어있다.

기본 포트는 80으로 간주한다. ( 생략시 80이라는 뜻 )

ssh -p [포트번호] 서버명@아이피 : -p [포트번호] 생략시 80포트.


port forwarding

내부 IP는 특별한 작업을 거치지 않는 한 외부에서 접속할 수 없다.

오로지 외부 IP를 통해서만 접속이 가능하다.

따라서 라우터 포트 번호에 사설 ip와 포트를 포워딩 시킬 수 있다.

예를들면 다음과 같다.

공유기의 공인IP가 211.123.123.123

내 공유기에 연결된 호스트가 3개라고 가정

A 호스트 (192.168.1.100)
B 호스트 (192.168.1.101)
C호스트 (192.168.1.102)
라고 가정하자.

C호스트가 A호스트로 접속할 떄 192.168.1.100:22라고 입력을 한다면 A라는 호스트에 22포트로 접속을 한다는것을 알 수 있다.

하지만, 외부 IP 211.123.123.123이 211.123.123.123:22를 입력해도 A호스트의 ssh로 접속할 수 없다.

이유는 저 IP주소가 공유기를 지칭하는지, A,B,C를 지칭하는지 알 수 없기 때문이다.

따라서, 이럴 때 포트 포워딩을 이용한다.

외부에서 A호스트의 ssh로 접속하고 싶다면 공유기에서 구분하면 된다.

“외부에서 특정 포트번호로 들어오게 된다면 A호스트의 22번 포트를 지칭하는것이다” 라는 규칙을 설정하면 된다.

공유기의 공인IP 뒤에 서비스 포트 번호 처럼 특정 포트번호를 입력하면 지정한 내부 호스트의 특정포트로 보내버린다.

공유기의 공인IP가 211.123.123.123이므로 211.123.123.123:1000 또는 1000~1010까지의 숫자를 입력하면 C호스트가 192.168.1.100:22라는 주소를 입력한 것과 동일하게 접속이 가능하게 된다.

이처럼 외부에서 접속 시 어떤 호스트의 어떤 서비스포트에 연결을 해주는지 설정을 해주는 것을 포트포워딩이라 한다.

Share