<DNS 서버>

네임서버를 DNS서버라고도 부른다.

DNS서버가 무엇일까?

우리는 현재 인기 포털 사이트 daum, naver를 접속할 때 URL창에다가 뭐라고 입력하는가?

네이버를 접속하고자 할 때는 www.naver.com... 다음에 접속하고자 할 때는www.daum.net을 사용한다.

하지만 컴퓨터라는 것은 각종 웹서버에 접속하고자 할때 IP주소로만 접속할 수 있다.

그렇다면 www.naver.com이라는 희기한 문자를 컴퓨터는 어떻게 이해한 것일까?

바로 네임 서버때문이다.

간단하게 말하면 네임서버에는 이러한 URL과 IP주소를 매칭시켜놓는 데이터베이스와 같은 큰 자료가 있다. 그것이 네임서버가 할 일이다.

사용자가 www.naver.com을 입력하면 바로 네이버의 웹서버로 전송되는 것이 아니고, 네임서버에게 먼저 물어본다. "네임서버야 www.naver.com의 IP주소좀 알려줄래?" 이렇게 질문을 하고 받은 IP주소로 여행을 떠나게 된다.

그렇다면 옛날에 컴퓨터가 활성화 되지 않은 시대에 네임 서버같은것이 없었을 것이다.

그렇다면 그때는 어떻게 했을까?

당연히... 거의 모든 IP주소를 외우고 다녔을 것이다. 흠... 지금 곁에 있는 엄마, 아빠의 번호는 쉽게 외우고 다니는 것처럼 네이버도 그만큼 대중적이니... 아마 외우고 다녔을 것이다. (아니면 수첩같은 곳에 메모를 해놓고 다니던가...?)

 

1. 시대를 거슬러 올라가보면 맨 처음에는 정말 수첩이나 머릿속에 수많은 IP를 넣고 다니면서 외웠을 것이다. 아니면... 통신이 안돼기 때문에 (상대방 휴대전화 번호를 모르는데 전화를 어떻게 할것인가?)

 

2. 컴퓨터의 보급이 활발해지고 기하 급수적으로 늘어나는 IP의 수 때문에 수첩에 저장했던 IP들을 컴퓨터에 옮겨서 저장하면 어떨까 라는 생각을 하면서 hosts파일을 만들어낸다.

(어디서 봤을 것이다.) 그렇다! 리눅스에 있는 /etc/hosts파일이다. window에서는 C:\Windows\System32\drivers\etc\hosts이다.

이 hosts라는 파일안에 정리를 해놓았다. 어떻게?

xxx.xxx.xxx.xxx     www.naver.com

xxx.xxx.xxx.xxx     www.daum.net

...

이런식으로!

 

3. 처음에 hosts는 획기적인 방법이었지만 더욱 늘어나는 IP때문에 이런 모든 IP정보들이 하나의 파일에 저장되는 것은 무리가 되었다. 무엇보다, IP가 바뀌면 그 파일을 일일이 수정해줘야 해서 너무 손이 많이 갔다.

그래서 사람들이 고안해낸 방법이 이런 것을 전문적으로 해주는 서버를 만들었다. 그것이 바로 네임서버

흠... 지금 비교하자면... 지금 114를 예를 들면 될것같다. 알고싶은 전화번호가 있을때 114에 전화하면 어떻게 되는가? 바뀐 전화번호도 모두 알고있고, 언제 어디서든 접근할 수 있고 굉장히 비슷한 예군!ㅋㅋㅋㅋㅋ

 

<실습 - 1 네임서버 작동확인>

현재 PC에 어떤 네임서버가 적용되어 있는지 확인해보자.



네임서버의 IP는 192.168.111.2이다. 그렇다면 192.168.111.2의 IP를 가진 네임서버가 잘 작동하고 있는지 알아보자. 당연히 잘 작동하고 있으면 URL에www.naver.com을 입력하면 네이버 홈페이지가 뜰 것이다.



잘 작동하고 있다.

 

<실습 - 2 네임서버 고장>

그렇다면 이번에는 네임서버가 고장났다고 가정해보자. (현재 사용하고 있는 PC환경에서 네임서버 IP주소를 못 받고오거나 읽지 못해 이상이 발생한 것이다.)

단순히 /etc/resolv.conf안에 설정된 nameserver의 IP주소를 주석처리 해보겠다.


다시 홈페이지에 접속을 시도해보자. 접속이 안될 것이다.


<실습 - 3 네임서버를 이용하지 않고 IP로 접속하기>

그렇다면 www.naver.com이 아닌 네어버의 웹서버 주소를 직접 입력해보자. (이 실습을 하는 이유는 오류가 발생한 DNS서버를 거치지 않게 하면 홈페이지가 이상없이 잘 뜨는지 확인하는 것이다.)

네이버의 IP주소는 202.131.30.11이다.(nolookup명령어를 이용해서 확인해보자)


※ 여기서 네임서버를 부정적으로 말해보면, 단순히 우리에게 URL주소를 외우기 힘든 IP주소로 변경시켜주는 편리한 서비스에 불과하다는 것이다.

 

 

<실습 - 4 /etc/hosts를 이용한 접속>

이번에는 /etc/hosts파일에(예전 과거 방식... 수첩에 써놓은 IP주소들을 컴퓨터에 접목시킨것과 같음) IP주소를 넣고 URL창에 naver.com을 입력했을때 잘 뜨는지 확인해보자. 물론 네임 서버는 고장났다고 가정하는 것이다.

먼저, /etc/hosts파일을 수정해보자.


그 후, 웹브라우저를 열어서 www.naver.com을 입력해보자.


이상 없이 잘 뜨고있다.

LIST

'OS > Linux' 카테고리의 다른 글

리눅스 - 메일서버 구축1  (0) 2015.12.23
리눅스 - 마스터 네임 서버 구축  (0) 2015.12.23
리눅스 - 부팅 순서 정리  (0) 2015.12.23
리눅스 - OpenSSH 서버  (0) 2015.12.22
리눅스 - Telnet(텔넷) 서버  (0) 2015.12.22

<OpenSSH>

OpenSSH가 무엇일까?

과거부터 우리는 원격접속을 하기위해 telnet을 많이 사용해왔다. 하지만 telnet에는 단점이 있다.

그것은 바로 보.안이다

ID와 Password가 그대로 네트워크 상에 전송되기 때문에 중간에 해커가 스니핑이나 스푸핑을 통해서 충분히 암호화 되어 있지 않은 ID와 password를 볼 수 있다.

그렇기 때문에 도청당하거나 속여서 얻은 정보라도 ID와 Password를 암호화해서 전송하면 문제가 없을 것이다.

그래서 나온 것이 OpenSSH이다.

클라리언트가 OpenSSH서버로 접속하기 위해서 ID와 password를 전송하게 된다. 중간에 암호화를 해서 OpenSSH서버와 클라이언트 간에만 암호를 읽을 수 있도록 한것이다.

 

OpenSSH 서버 구축 과정에 대해서 알아보자.

1. OpenSSH서버를 설치한다.

yum -y install openssh

 

2. 데몬을 재실행 해준다.

 

3. 포트를 열어준다. (22번)

 

4. 클라이언트에서 접속 할때 ssh [사용자명]@서버IP 이렇게 입력한다.

 

5. windows에서 접속 할때는 한글 푸티를 설치해야 한다.

기본적으로 telnet같은 경우는 windows에서 기본적으로 제공하지만 ssh 클라이언트는 제공하지 않으므로 클라리언트 프로그램인 한글 putty를 설치해야한다.

 

6. ssh접속 끝!

 

 

<실습>

1. OpenSSH를 설치해보자.



2. 데몬을 재실행 시켜준다.

ssh는 xinetd에 종속된 데몬이 아니고 standalone이기 때문에 sshd명을 사용한다.



3. 방화벽에 들어가서 ssh포트를 열어준다.



4. 리눅스 클라이언트에서 접속을 시도해보자.



5. 이번에는 window 클라이언트에서 접속을 시도해보자.

다시 한번 말하지만 window는 telnet에 대한 클라이언트는 지원하지만 ssh에 대한 클라이언트는 지원하지 않기 때문에 한글 puty를 설치해야한다.

끗.

LIST

'OS > Linux' 카테고리의 다른 글

리눅스 - DNS 서버 개념  (0) 2015.12.23
리눅스 - 부팅 순서 정리  (0) 2015.12.23
리눅스 - Telnet(텔넷) 서버  (0) 2015.12.22
리눅스 - FTP서버  (0) 2015.12.22
리눅스 - 환경변수  (0) 2015.12.22

<Telnet>

텔넷이란 과거부터 사용해왔던 (비록 지금은 잘 사용하지않지만...) 원격 접속 방법이다.

예를 들어보자.

독자가 서버 관리자라고 생각해보자. 서울에서 근무하고 있지만, 부산에 있는 서버가 에러를 일으켜 출장을 가야한다. 서울~부산까지의 거리를 매번 왕복하면서 부산에 있는 서버가 고장날 때 마다 직접 이동해서 가야할 것이다. 너무 인력 낭비이다.

요즘같은 IT시대에 너무 시대에 뒤떨어지는 방법이다.

그래서 과거부터 사용하던 것이 telnet이다.

멀리서 서버로 원격접속을 시도하여 소프트웨어 적인 부분을 접근할 수 있고, 수정도 할 수 있는 것이다. (물론 하드웨어적인 부분이 고장나면 직접 가야하겠지만...)

 

텔넷 서버의 설치과정을 잠깐 설명하겠다.

1. 텔넷 서버를 설치한다.

yum -y install telnet-server

 

2. 설정 파일을 telnet을 사용할 수 있도록 변경한다.

/etc/xinetd.d/telnet

 

3. 설정 파일을 수정했으면 당연히 해야하는 것은 뭐? 데몬 재실행!

service xientd restart

 

4. 텔넷이 활성화 되었다. 우리는 게임을 설치하면 무엇을 하나? 계정을 만든다! 이와 깉이 텔넷에 접속하기 위해 계정을 만든다.

adduser 사용자명

passwd 비번

 

5. 텔넷에 접속하기 위한 포트를 열어준다. (23번)

system-config-firewall

 

6. 4번에서 만든 계정으로 접속을 시도해본다.

telnet [서버 IP]

 

<실습>

telnet을 설치해보자.

먼저, VM ware에 server를 하나 만들고, client는 window(VM ware아님)를 활용할 것이다.

1. telnet 설치



이렇게 rpm으로 telnet이 설치되어 있는지 확인 후, 설치되어 있지 않다면 yum으로 설치하자.

 

2. 설치 후, /etc/xinetd.d/telnet 설정 파일을 변경해보자.



왜 yes->no로 변경할까? 그 이유는 disable이 부정의 의미인데 부정의 부정을 해주는 것이다. service telnet을 사용하지 않다고 되어있는 것을 사용하지 않는 것을 취소하겠다. 즉, 사용하겠다 라는 의미이다.

 

3. xinetd 데몬을 재 실행시켜주자.

여기서 잠깐... telnet의 구성파일을 바꿧으면 telnet데몬을 재실행 시켜야하는데 왜 xinetd데몬을 재실행 시킬까?

그 이유는 telnet 서버는 혼자 독립적으로 구동하는 데몬(standalone)이 아닌, xinetd데몬의 하위 종속의 데몬이다.

쉽게 말해 xinetd의 부하라는 의미이다. xinetd 데몬이 실행되면 자동으로 telnet 데몬도 실행된다는 의미이기 때문에 xinetd만 재실행 시켜주는 것이다.


4. telnet서버 설치와 구성까지 끝났다.

방화벽에 들어가서 telnet포트를 열어주자.



5. telnet을 할때 사용하기 위한 계정을 만들어보자.


6. window(client)에서 server로 ping이 잘 나가는지 확인하고, (물론 그전에 ip확인은 필수) telnet을 시도해보자.


끗.

LIST

'OS > Linux' 카테고리의 다른 글

리눅스 - DNS 서버 개념  (0) 2015.12.23
리눅스 - 부팅 순서 정리  (0) 2015.12.23
리눅스 - OpenSSH 서버  (0) 2015.12.22
리눅스 - FTP서버  (0) 2015.12.22
리눅스 - 환경변수  (0) 2015.12.22

<FTP>

File Transfer Protocol로 파일을 전송하기 위한 서비스이다. 요즘은 웹 환경에서 ftp의 기능인 파일 전송을 편리하게 사용할 수 있어서 과거보다는 인기가 많이 떨어졌다.

 

<실습>

1. ftp를 설치해보자.

rpm -qa | grep vsftpd로 ftp가 설치되어있는지 확인 후, 설치되어 있지 않다면 yum -y install vsftpd를 사용해 설치하도록 하자


2. SELinux기능을 꺼줘야한다.

ftp설치 후, system-config-firewall에서 FTP를 체크해주자.

ftp데몬 vsftpd를 restart시켜주자

 

3. /etc/vsftpd/vsftpd.conf에 대해서 알아보자.

anonymous_enable : 익명 사용자가 접속을 허가할지 설정

local_enable : 로컬사용자의 접속 허가 설정

- write_enable : 로컬사용자가 ftp 명령어 중에 접속해서 write명령어를 허용할 것인가를 결정하는 것이다.

- local_umask : 파일들의 기본값을 설정하는 값을 지정해줌

- anon_upload_enable : 익명 사용자의 파일 업로드 허가를 설정

- anon_mkdir_write_enable : 익명 사용자의 디렉토리 생성 허가를 설정

- download_enable : 다운로드의 허가를 설정

- dirmessage_enable=YES : ftp 접속한 사용자가 특정디렉토리로 이동하였을 때 개별 디렉토리의 메시지를 보여주도록 허용할 것인가 허용하지 않을 것인가를 설정하는 부분이다. 주로 pwd를 지정해놓는다. (위치를 출력하게끔...)

- xferlog_enable=YES : 로그 기록을 저장하겠다. 어디에? /var/log/xferlog에

- connect_from_port_20=YES : ftp서비스는 접속과 명령어에 사용되는 포트는 21번이며 실제 데이터 전송에 사용되는 기본포트는 20번이다. 20번 포트의 데이터 전송 연결을 허용할 것인가 아닌가를 설정하는 것이다.

- idle_session_timeout=600 : ftp연결에서 idle 타임에 대한 타임아웃값을 설정한다. ftp 접속후에 600초동안 아무런 작업 없이 놀고있다면 강제 로그아웃시켜버린다.

- data_connection_timeout=120 : ftp 연결시 큰 파일을 업로드 or 다운로드 할 때에 전송도중 접속이 끊기는 상황이 발생한다면 이 설정을 주석처리 하거나 값을 늘리면 된다.

- ftpd_banner : ftp베너 부분을 바꾸는 부분

- max_clients=30

max_per_ip=3 : 동시 ftp 접속자수를 30명까지만 허용하고, 한 ip에서의 동시 접속을 3번까지만 허용하는 것이다.

- listen_port : FTP의 포트번호를 설정 (default=21)

- deny_file : 업로드를 금지할 파일을 지정

ex) deny_file={*.jpg,*.avi}

 

4. /etc/vsftpd/vsftpd.conf로 들어가서 anonymous_enable, local_enable, write_enable, anon_upload_enable, anon_mkdir_write_enable의 주석을 제거한다.

그 후, 데몬을 restart시켜준다.

 

5. ftp명령어 후에, 서버에 접속해보자.



6. 디렉토리를 이동해보자.



7. 디렉토리 이동 후, ftp서버에 있는 c.txt파일을 받아보자.

받을 때 사용하는 명령어는 get [파일명]이고, 한꺼번에 많은 파일을 받고 싶을때는 mget[파일명]이다.


--------------------------------------------------------------------

ftp서버에 접속했을때 사용하면 유용한 명령어

binary mod : 바이너리 파일 전송 모드로 전환(원래는 ascii 모드)

cd : 디렉토리를 변경

디렉토리를 한꺼번에 이동하는 방법은 !cd /home/fedora처럼 맨 앞에 !를 써준다.

dir : 원격 디렉토리의 목록을 출력

get [파일명] : 파일을 내려받음

open : 원격 ftp서버로 접속

put [파일명]: 로컬의 파일을 ftp서버로 전송(업로드)

pwd : 원격 서버의 작업 디렉토리 위치 출력

 

<ftp 접속 제한>

- /etc/vsftpd/user_list파일을 이용하는 방법 -

 

user_list파일에 한 행에 한 계정씩만 등록하는 것이다.

/etc/vsftpd/vsftpd.conf파일에서 userlist_enable=YES로 설정하였을 경우에 이 파일의 설정내용이 활성화됨을 의미하며 이것은 이 파일에 등록된 사용자들은 모두 접속이 거부된다는 것을 말한다.

역으로 /etc/vsftpd/vsftpd.conf파일에서 userlist_enable=NO라고 되면 user_list파일에 등록된 사용자들은 접속이 허가되는 것이다.

 

user_list파일을 보도록 하자.


여기에 보면 많은 사용자들이 있는데 /etc/vsftpd/vsftpd.conf파일에 userlist_enable=YES로 되어있어서 여깄는 사용자들은 전부 접속이 거부된것이다.


LIST

'OS > Linux' 카테고리의 다른 글

리눅스 - DNS 서버 개념  (0) 2015.12.23
리눅스 - 부팅 순서 정리  (0) 2015.12.23
리눅스 - OpenSSH 서버  (0) 2015.12.22
리눅스 - Telnet(텔넷) 서버  (0) 2015.12.22
리눅스 - 환경변수  (0) 2015.12.22

+ Recent posts