리눅스
웹사이트 mini-Howto
이 셋은 구분이 애매하나 구별해서 사용해야 한다.
웹사이트란 웹 데이타를 서비스하는데 관련된 모든 하드웨어 및 소프트웨어, 데이타 등을 총칭한다. 즉 컴퓨터, 통신망, 웹서버 프로그램, HTML문서 등을 모두 합한걸 말한다.
웹서버란 좁은 의미로는 웹형태의 정보를 제공하는데 필요한 프로그램(httpd : 즉 Apache)을 말하나 넓은 의미로는 이 프로그램이 돌아가는 컴퓨터까지 포함한다.
홈페이지는 단순히 웹서버에 올려진 HTML문서만을 말한다고 보면 된다.
웹사이트를 구축하려면 인터넷을 연결하고 서버용 컴퓨터를 갖추어야 한다. 아래에 웹사이트 구축을 위한 사전 준비사항을 자세히 설명한다.
본인의 생각으로 동시 사용자수가 20여명 정도라면 구태여 수천만원씩 소요되는 호스트급 컴퓨터를 쓰기보다는 몇 백만원하는 펜티엄급 PC를 사용하는게 낫다. 속도나 안정성면에서도 큰 차이가 없다고 본다.
외국의 여러 사이트를 보면 우리나라의 대기업 정도되는 큰 회사가 아니면 거의 PC에 웹서버를 구축하는데 우리나라는 중소기업에서도 호스트급에 웹사이트를 개설하는 경우가 많다. 한마디로 너무 자원낭비가 심하다고 할까.
본인이 이제까지 PC와 리눅스로 웹서버를 설치해준 경험을 토대로 웹서버를 설치하려는 PC의 사양을 권한다면,
그러나 인텔리전트형의 경우 전원이 나간 후 지정한 시간내에 전원이 복귀하지 않으면 서버에 명령을 주어서 자동으로 서버를 다운시키므로 무인 운전이 가능하다.
따라서 인텔리전트형 UPS의 경우는 UPS와 서버가 케이블로 연결되고 UPS를 모니터하는 소프트웨어가 서버에 설치된다. UPS 중 가장 성가가 높은 제품은 미국의 APC사 제품이다.
모뎀업체로 비교적 좋은 평가를 받는 업체는 USRobotics, Practical Periperals, BOCA 등이다.
참고
----
팩스서버란 리눅스에
팩스모뎀을 장착해서 리눅스와 랜으로 연결된 모든 PC의 팩스 송수신을 리눅스에서
처리하는걸 말한다. 팩스 수신의 경우는 수신과 동시에 프린터로 팩스를
인쇄하게 하거나 인터넷 메일로 사용자에게 팩스 도착사실을 알려주기도
하고, 팩스 내용을 GIF파일로 변환하여 PC에서 화면으로 팩스 내용을 확인할
수 있는 등의 장점이 있다.
팩스 송신의 경우는 팩스서버와 랜으로 연결된 win95 PC에서만 가능한데 사용법은 아주 간편하다. 즉 윈95에서 돌아가는 아무 어플리케이션에서든 팩스라는 프린터로 인쇄만하면 바로 전화번호 입력화면이 뜨고 전화번호를 입력하면 팩스 송신이 개시된다.
사용해 본 결과 몇 백 만원씩하는 상용 팩스서버보다 리눅스 팩스서버가 훨씬 안정성이 높다는 것이다.
웹서버 운영체제로 가장 많이 사용되는 운영체제는 리눅스/유닉스이다. 하지만 리눅스/유닉스에서 웹서버를 운영하려면 최소 3개월여 정도는 공부를 해야 한다.
웹서버를 자기 혼자 쓰든가 아니면 사내에서만 사용할 계획이 아니라면 다음은 웹서버를 인터넷과 연결하여야 한다. 웹서버를 인터넷과 연결하려면 인터넷 서비스 업체(ISP)를 통해야 하는데 ISP는 통신망 연결부터 도메인네임을 받는 것까지 모두 처리해 준다. 연결에 필요한 장비는 구매할 수도 있고 ISP에게서 대여받아도 된다.
아래에 대체적인 비용과 장비를 소개하면,
비용 : 월 50-60만원( 128 k : 할인시)
장비 : 라우터, FDSU
비용 : 월 20-30만원(128kbps)
장비 :
업체에서 빌려줌.
비용 : 월 20만원
장비 : VDM
비용 : My IP(월 90,000원), Multi IP(월 190,000원)
장비 : 한국통신에서 대여해줌.
필자의 견해로는 속도 대 비용 관점에서 ADSL이 가장 낫다. 단지 안정성에서 떨어진다. 피시가 많지 않은 경우 추천할 만하다.
만약 네트웍에 자신이 있다면 주위에 LAN to LAN으로 인터넷을 사용 중인 다른 업체에 전용선이나 TT선을 연결하여 인터넷을 나누어 쓰는 방법이 있다. 하이텔 OSC 랜 강좌/정보란에 이에 대한 자세한 글을 쓴 적이 있으니 참고 하기 바란다. 이 경우는 비용은 월 25,000원(TT선)부터 125,000원(56k 전용선)이다.
웹서버 프로그램은 운영 체제에 따라 다르지만 쉐어웨어나 프리웨어를 쓰면 충분하므로 구태여 비싼 상용프로그램을 쓸 필요가 없다. 리눅스에서 웹서버 프로그램으로 가장 많이 쓰이는 프로그램은 apache와 CERN이다.
설치방법은 cern은 http://www.w3.org
apache는
http://www.apache.org 를 참고 하면 된다.
컴퓨터 한대로 여러 도메인 네임에 속하는 웹서버를 돌리는걸 버츄얼 웹서버라고 한다. 즉 www.linuxlab.co.kr 과 www.linuxjournal.co.kr을 한대의 컴퓨터에서 모두 지원되게 하는걸 말한다. 물론 기계만 한대이지 외부에는 전혀 다른 홈페이지가 뜨므로 다른 사람들은 전혀 별개의 기계에서 가동되는걸로 알게된다.
현재 여러 인터넷서비스업체에서 월 일정비용을
받고 웹서버를 운영해 주고 있는데 이때 한 업체마다 별도의 웹서버를 두는게
아니라 바로 버츄얼 웹 기법을 써서 한대의 큰 호스트에 여러 업체의 홈페이지를
모두 가동해주고 있다.
버츄얼웹을 웹 호스팅이라고도 한다.
리눅스에서 버츄얼 웹을 쓰려면 아래 순서를 밟아야 한다.(아래의 경우는 서버 한 대에 여러개의 IP를 부여해 각 IP 별로 별도의 웹서버를 돌리는 방식이다. IP 한 개로 여러개의 홈페이지를 돌리는 도메인네임 버츄얼서버의 경우는 단지 Apache에서의 설정만 필요하다.)
먼저 ISP와 연결된 라우터에 2개 이상의 네트웍 어드레스를 버츄얼웹을 담당할 컴퓨터가 연결된 랜으로 라우트 되도록 라우팅 테이블을 바꾸어야 한다. 네트워크 어드레스가 여러개인 경우 보통 ISP가 이 부분을 설정해주나 직접 라우터를 설치한다면 필요하다.
네트웍이 다르지 않고 단지 ip 주소만 다르게 할 경우(ip aliasing)는 이 과정은 필요없다.
예를 들면
< VirtualHost 10.1.1.6 > ServerName www.test.com ServerAdmin webmaster@test.com DocumentRoot /usr/web/test.docs .. .. < /virtualHost >
이상이다.
웹서버 구축을 위해서 호스트 접속 방식으로
인터넷을 연결한 경우 IP 어드레스는 한개 밖에 나오지 않는다. 그런데 이 한개를
웹서버 PC에 쓰고 나면 이 PC와 랜으로 연결된 다른 PC들은 이 웹서버에 쉘어
카운트로 login하여 인터넷을 써야 하므로 인터넷의 대부분의 서비스를 사용할
수 없다.
즉, 가장 중요한 WEB서비스를 쓸 수 없다.
이걸 해결하는 방법은 아래에 3가지가 있다.
이는 쉘어카운트 상태에서 특정한 프로그램을 실행하여 PPP모드를 흉내내므로서 WEB을 볼 수 있게 한다. 상용으로는 TIA가 있고 프리웨어로는 Slirp가 있다.
현재 리눅스에서만 가능한걸로 알고 있다. 인터넷 정식 어드레스가 부여된 서버의 리눅스에 이 기법을 쓰면 이서버와 lan 또는 PPP로 연결된 다른 PC에서도 리눅스 서버의 인터넷 어드레스를 공유하여 인터넷의 대부분의 서비스를 이용할 수 있다.(WEB, telnet, ftp 등) 자세한건 IP Masquerade-Howto를 참조하기 바란다.
인터넷 정식 어드레스가 있는 서버에 설치된
프로그램(proxy server)이 이서버와 랜으로 연결된 다른 클라이언트 PC의
인터넷 서비스 요청을 받아서 인터넷의 실제 호스트에서 데이타를 가져다
넘겨주는 방식이다.
따라서 인터넷 어드레스는 proxy server가 설치된
PC에만 부여하면 되고 클라이언트 피시는 내부 어드레스를 쓰면 된다.
대부분의 웹서버 프로그램(CERN, Apache 등)은 proxy server의 기능도 갖고 있다. proxy server와 IP masquerade는 그 기능은 유사하나 작동원리는 전혀 다르다. IP masquerade는 서비스 종류에 따라 사용 가능여부가 결정된다. 즉, ftp가 가능하다면 client 프로그램은 어떤 ftp 프로그램을 써도 가능하다. 이에비해 proxy server는 client 프로그램에 의해 서비스 종류가 결정된다. 예를 들면 netscape는 proxy server를 지원하는데 여기서 지원하는 서비스는 http(WEB), FTP, Gopher, WAIS등이다.
본인의 개인적인 견해로는 IP Masquerade가 proxy server 보다 속도도 빠르고 사용도 편하다. 안정성면이나 캐쉬 기능은 proxy server가 낫다.
방화벽이란 인터넷이 연결된 외부망과 사내의 랜을 분리 시켜주는 컴퓨터를 말한다. 두 망이 물리적으로 완전히 분리된다면 방화벽은 존재 이유가 없다. 대부분의 방화벽의 목적은 내부랜에 있는 컴퓨터끼리는 서로 자유로운 억세스가 가능하되, 외부망의 컴퓨터는 내부랜의 컴퓨터로의 억세스가 불가능하도록 하고, 내부랜의 컴퓨터는 외부망에 있는 컴퓨터에 제한적으로 억세스가 가능하도록 하는데 그 목적이 있다.
따라서 방화벽으로는 그 목적에 따라 컴퓨터를
쓰기도 하고 라우터를 쓰기도 한다.
보통은 컴퓨터에 두개의 인터페이스를
설치하여 한개는 내부랜에 다른 한 개는 외부망에 연결한 후 해당 컴퓨터의 라우팅
테이블을 조정하거나, 필요한 소프트웨어를 설치해서 그 목적을 달성한다.
방화벽을 설치할 경우 당연히 내부랜에 있는 컴퓨터의 인터넷 사용은 상당한 제약이 따르는데 이를 완화할 경우 그 만큼 방화벽의 본래 목적인 보안 기능은 약화되고, 반대로 방화벽 고유의 기능을 강화하면 인터넷 서비스 사용 범위는 좁아진다.
리눅스에서 가장 손 쉬운 방화벽 구축은 port fortwarding 기법이다. 더 많은 기능을 요한다면 TIS Firewall Tool Kit을 쓰면 된다.