Search Results for '전체 분류'
2064 posts related to '전체 분류'
- 2010/05/03 HTTP 서버의 post 테스트 프로그램
- 2010/05/03 GNU utilities for Win32
- 2010/05/02 초간단 XMPP 트위터 봇
- 2010/04/27 xmpp 개요
- 2010/04/27 공개 채팅서버 OpenFire 설치 XMMP 1
- 2010/04/14 tcpdump 명령어 및 ftp 패킷 보기
- 2010/04/14 tcpdump 패킷스니핑
- 2010/04/14 파일질라 (FileZilla) sFTP 사용법
- 2010/04/14 windows 서버에 파일질라 보안 ftp 서버 ( filezilla secure ftp server ) 설치하는 법 3
- 2010/04/14 윈도우 웹로그 분석
- 2010/04/14 인터넷슈퍼데몬(xinetd)
- 2010/04/14 JSP CENT OS 5 세팅법 |
- 2010/04/14 qmail 설치 |
- 2010/04/14 리눅스 iptables 사용법 1
- 2010/04/14 리눅스 iptables 중지하고자 할때
- 2010/04/13 김영삼 TV 에 나오다. - 박혜준이 만난 CEO 9 회 (주)오픈코리아 대표 김영삼 2
- 2010/04/13 김영삼 TV 에 나오다. - 박혜준이 만난 CEO
- 2010/04/12 다음 & 네이버 자동로그인 방법 1
- 2010/04/12 한컴 타자 무설치 버전
- 2010/04/12 아웃룩 익스프레스 (Outlook Express) 시스템에서 삭제하기 1
- 2010/04/09 NATION - 네이트온 4.0.9.8 (1437) 광고 제거 1
- 2010/04/08 [스크립트] 스크립트 한 줄로 IE6 죽이기
- 2010/04/01 컴퓨터 원격 부팅 (Wake on-LAN : WOL)
- 2010/04/01 Windows cmd 명령어 모음 .
- 2010/04/01 Total Commander의 활용 Multi-Rename Tool 사용하기
- 2010/03/30 애플 타블렛 - (가칭) 아이패드, 출시 임박
- 2010/03/30 엑셀 뷰어 Excel_2007 Viewer.exe
- 2010/03/30 AccessFIX V3.70 - MDB파일 복구 프로그램 1
- 2010/03/30 폴더관리 폴더 색상을 자신의 입맛에 맞게~
- 2010/03/30 [포터블] Melloware PlacesBar Editor
서버상에 post 에 필요한 header 및 바디(텍스트만 가능)를 서버로 넘기고 그 응답을 확인 하는 간단한 어플리케이션 입니다.
기본적으로 실행 파일 이외에 다음 파일이 기본적으로 필요 합니다.
set_url.txt - 접속할 서버의 URL 을 저장합니다. C/C++ 형태의 주석을 제한적으로 사용할 수 있습니다.
set_headers.txt - 서버로 넘길 해더의 내용을 정할수 있습니다. 마찬가지고 제한적인 주석을 사용할 수 있습니다.
set_body.txt - 서버로 넘길 body 내용을 저장할 수 있습니다. 주석도 함께 서버로 전송됩니다.
기본적인 파일 이외에도 프로그램 상에서 불러 올수 있으며, 꼭 기본파일이 없더라도 해당 파일을 바꾼 다음 사용하셔도 됩니다.
각 버튼은 다음 역활을 합니다.
Dump Response - HTTP post 후에 넘어온 body 내용을 바이너리 파일로 덤프 합니다.
Save to log(text) - 현재 창에 뜬 로그 정보를 텍스트 파일로 저장합니다.
Try to post .. - 포스트 작업을 시작 합니다.
이중 Dump Response 와 Save to log(text) 의 경우 버튼을 누르면 Dump_ 또는 Log_ 로 시작하면서 날짜 및 시간이 조합된 파일로 저장되며 , 각 버튼의 오른쪽의 [>] 버튼은 다른이름으로 저장하는 기능을 제공합니다.
예) dump_2008-01-01_121200.bin 또는 log_2008-01-01_121200.txt
서버로 부터 응답되는 해더 내용은 로그에만 남기 때문에 바이너리로 저장되지는 않습니다.
각 기능키는 다음과 같습니다.
F1 - 로그상에 간단한 도움말을 출력 합니다.
F2 - 현재 프로그램 버젼을 보여 줍니다.
F3 - 서버로 posting 하기 전에 수행하는 trace 기능을 끄거나 켭니다.
F4 - 로그 화면을 비웁니다.
간단한 기능들로 구성된 초허접 툴 입니다만 ..
post 기능을 테스트 해 보아야 하는 부분이 있다면 이 프로그램을 사용해 보시는 것도 좋을듯 합니다.
기존 1.3.x 대 보다 개선된 점들은 다음과 같습니다.
- 덤프 된 내용을 출력하는 키를 F5 로 변경.
- 덤프된 헤더 내용을 F6 키로 출력하도록 변경.
- Windows Vista 지원. (UAC 경고 적용됨)
현재 최신버전은 1.4.1이네요
이걸 사용하세요.
UNIX의 많은 명령들을 Command Prompt상에서 그대로 사용할 수 있습니다.
좀 아쉬운 점은 한글 사용엔 문제가 있네요.
우선 몇 가지 준비를 하자. 메신저 프로토콜은 오픈 프로토콜인 XMPP를 사용하기로 하자. 부연하자면, XMPP는 예전에Jabber라 불리던 것으로 현재 구글이 GTalk 서비스에 사용하고 있는 XML 스트림 기반의 근사한 메시징 프로토콜이다. 그럼 루비로 간단한 봇 프로그램을 만들어 보자. 코드는 다음과 같다.
require 'rubygems'
require 'eventmachine'
require 'xmpp4r-simple'
require 'twitter'
class TwitterBot
def initialize(jid, j_pass, tw_email, tw_pass)
@logger = Logger.new(STDOUT)
@im = Jabber::Simple.new(jid, j_pass)
@tw = Twitter::Base.new(tw_email, tw_pass)
end
def update_messages
@im.received_messages do |msg|
jid = msg.from.strip
@tw.update(msg.body)
@logger.info "%s update: %s" % [ jid, msg.body ]
@im.add(jid) if !@im.subscribed_to?(jid)
@im.deliver(jid, "업데이트 성공.")
end
end
end
루비의 XMPP 라이브러리인 xmpp4r-simple과 트위터 API wrapper인 twitter 라이브러리를 사용하였기 때문에, 설명할 여지도 없이 간단한 코드가 되었다. 하는 일이라고는 그냥 메신저로부터 메시지를 받아 그 메시지를 다시 트위터로 보내는 게 전부다.
이제 이 봇을 실행해 보자. 간단한 loop문만 돌려도 되지만, 향후 이 봇의 확장성(?)을 고려해서 루비 이벤트 기반 네트워크 라이브러리인 eventmachine을 사용하기로 하였다. 마지막으로 XMPP 서버가 필요한데, 물론 ejabberd 같은 XMPP 서버를 직접 설치하여도 좋겠지만, 굳이 간단한 봇을 위해 그런 수고까지야. 이미 세상에는 아주 훌륭한 XMPP서버가 나와 있으니 그걸 이용하기로 하자. 바로 구글 Talk다! 봇의 구동 코드는 다음과 같은데, 봇의 생성자에 자신의 구글메일ID, 즉 구글토크ID와 패스워드, 그리고 자신의 트위터 접속 정보를 넘겨주기만 하면 된다.
tb = TwitterBot.new(구글메일 주소, 구글메일 패스워드, 트위터 이메일, 트위터 패스워드)
EM.run do
EM::PeriodicTimer.new(1) do
tb.update_messages
end
end
이제 이 봇을 실행하고 봇의 ID, 즉 위에서 사용한 구글메일주소를 자신의 메신저 친구 목록에 등록하자. 그리고 나서는 트위터로 무언가 글을 올릴 일이 있을 때마다 그냥 메신저에서 봇에게 메시지만 보내면 그만이다.
이 봇은 트위터를 예제로 하고 있지만, 사실 조금만 변경하면 API가 오픈된 많은 서비스들에 응용할 수 있을 것이다. 자신의 블로그에 블로깅을 하는데 이용할 수도 있고, 미투데이나 스프링노트에 글을 올릴 수도 있을 것이다. 아, 물론 미투데이나 스프링노트는 이미 근사한 봇들이 많이 만들어져 있으니 굳이 그럴 일은 없겠지만.
그리고 또, 음.. 플라타너스트리에도 적용해 볼 수 있지 않을까.
XMPP란?
RFC3920, RFC3921 등 IETF(Internet Engineering Task Force)에서 제정한 국제 표준 프로토콜로 인스턴트메신저(Instant Messenger)를 위한 프로토콜로 잘 알려져 있다. 국내에서는 몇년 전 구글(google.com)이 XMPP를 채택, googletalk 이라는 인스턴트메신저 서비스를 시작하면서 널리 알려지는 계기가 되었다. XMPP 규격은 2004년 봄에 표준으로 제정되었지만, 사실은 Jabber라는 이름으로 1998년부터 연구가 시작되었고 이 연구의 결과가 표준화라는 결과를 맞이하게 된 것이다.
어떤 규격인가?
이 표준은 인터넷상의 두 지점간의 통신 규격에 관한 것이다. 두 지점은 이메일주소와 같은 방식으로 표현되며 이들 지점간 확장가능한 메시지(message) 그리고 프레즌스(presence)를 거의 실시간(near-realtime)으로 전달해주는 규격이다. 이 규격에 의하면 인터넷상의 지점은 DNS(Domain Name Service) 서비스에 의해 명명될 수 있는 위치들간의 통신으로 예를 들어 yourhost.com 이라는 주소도 하나의 지점이며 yourid@yourhost.com 또한 하나의 주소이다. 결국 DNS에 의해 표현될 수 있는 주소 공간은 새로이 등록되는 도메인 이름에 의해서 계속해서 증가하므로 이론상 무한대의 사용자가 서로 통신이 가능하게 되는 규격인 셈이다.
표준IM을 위한 XMPP?
알려진 대로 XMPP 프로토콜은 표준 인스턴트메신저 서비스를 위한 훌륭한 프레임워크를 제공해준다. 이미 전세계 수 많은 사람들이 XMPP 사용자가 되어 있으며 지금도 계속해서 증가하고 있다. 이것은 XMPP 소프트웨어를 만드는 회사와 단체가 증가하는 것을 보면 알 수 있다. 그러나 인스탄트 메신저 서비스만 가능한 것은 아니다. XMPP라는 규격이 Message와 동시에 Presence라는 것을 정의하고 있기 때문에 그 사용처는 매우 대단하다.
강력한 Presence 기반 응용이 가능
프레즌스(Presence)는 XMPP의 가장 중요한 요소중의 하나이다. DNS에 의해 확장되는 거대한 XMPP 공간에서 각 지점의 상태들을 프레즌스라고 하고 각 지점의 상태가 변경될 경우 이 상태 변경은 즉각 이에 관심있어 하는 지점으로 브로드캐스팅된다. 다른 지점의 상태변경에 관심있는 지점이 되기 위해서는 프레즌스를 구독(subscribe)하는 과정이 필요하다.
XMPP IM
현재 AOL, MSN, Yahoo 메신저등 다양한 메신저들이 개인간 커뮤니티 도구로 널리 사용되고 있으며, 이를 기반한 다양한 차세대 킬러 어플리케이션 개발에 많은 노력을 하고 있다. 이러한 가운데 대형 포탈 또는 통신업체 등의 기업 메이저시장에서도 업체간 메신저 경쟁도 날로 치열해지고 있다. 불과 몇 년 전만 해도 메신저는 젊은 세대간의 간단한 쪽지 수준의 메시지를 전달하는 도구에 불과했었다.
그러나 지금은 메신저가 개인적인 커뮤니티뿐만 아니라 기업내의 협업을 위한 매우 유용한 도구로 활발히 이용되고 있다. 최근 메신저는 이미 수백만 명의 사용자를 가질만큼 규모가 급성장하고 있다. MSN 뿐만 아니라 AOL, Yahoo, ICQ(AOL과 통합되었음) 등 다양한 메신저들이 이미 인터넷 시장에서 ‘작은 포탈’로 주목받고 있다. 이들 메신저는 단순한 메시지 전송 기능과 파일 전송 기능을 넘어서서 교육, 증권, 은행, 음악, 복권 등 다양한 서비스를 함께 제공하고 있어 사용자들에게 인터넷만큼 편리하게 이용된다.
그러나 서로 다른 메신저를 사용하는 사용자간의 대화나 파일 전송은 불가능하다는 단점이 있다. 그 뿐만 아니라 친구 등록에는 한계가 있어서 두 개 이상의 메신저 계정을 가지고 있는 사용자는 동시에 여러 계정을 이용할 수 없다. 초기부터 많은 사업자들이 주요 서비스의 부가적인 사업정도로 인식하여 출발한 결과로 이 기종 메신저간에 커뮤니티를 전혀 고려하지 않았다. 그 결과, 서로 다른 메신저를 사용하는 사용자간에는 불편을 감수하여 여러 종류의 메신저를 설치해서 사용하거나 또는 가장 선호하는 메신저를 제외한 다른 메신저를 포기하는 경우가 대부분이다.
이러한 고객의 불편함을 해소하기 위해 마이크로소프트(MS), 야후, 아메리카온라인(AOL)등이 비즈니스용 통합 메신저 제품을 공동으로 개발하기로 합의하였다. 이를 바라보는 여러 전문가들은 비즈니스의 영역을 확보하기 위한 이 같은 행보를 꼬집어 비판하면서, 이 세 기업이 새로운 메신저 제품을 위해 얼마나 효율적으로 개발협업을 이끌어낼 지 의문을 제기하였다.
다른 한편으로는 여러 업체들이 각기 다른 메시징 소프트웨어를 제작해서 보급함에 따라 메시징 소프트웨어 간의 상호 호환성 문제에 대하여 인터넷기술표준단체 IETF(Internet Engineering Task Force)에서는 메시징 서비스 간의 호환성 문제 해결을 위한 표준 제정을 위해 XMPP(eXtensible Messaging and Presence Protocol) 워킹그룹을 결성하고 표준화를 추진하고 있다. 여기서, XMPP는 XML 스트리밍 기반 확장형 실시간 메시징 기술이다. XMPP는 공개형 프로토콜인 JABBER(http://www.jabber.org) 인스턴트 메신저에 근간을 두고 있으며 HP, SUN 등의 솔루션회사와 AT&T, Orange, France telecom, BellSouth 등의 통신회사가 채택하였다.
또한, IETF가 사람들 또는 기계간의 상태와 컨텍스트 정보를 활용하여 실시간 대화형 기술을 제시하고 있는 XMPP-core 및 XMPP-IM을 제안표준으로 채택함에 따라 XMPP 보안, XMPP-연동 등도 표준으로 채택되리라 예상되며, 향후 XMPP가 세계적 표준으로 자리 잡는데 다가섰다고 평가되고 있다.
IETF의 인스턴트 메신저 표준은 이전에 이메일이나 웹이 SMTP, HTTP로 인터넷 표준화되어 널리 사용되었듯이 향후 실시간 대화형 서비스 확산에 큰 영향을 미칠 것으로 평가되고 있다. IETF에 의해 XMPP영역의 표준으로 채택된 Jabber는 인터넷에 있는 두 지점간의 메시지, 온라인 상태정보, 및 기타 구조적(structured)정보를 실시간으로 교환하기 위한 스트리밍 XML 프로토콜 및 기술을 의미한다.
Jabber 서비스를 이용하기 위해서는 공개된 Jabber 클라이언트를 다운받고 오픈된 공개 서버에 회원가입을 하거나 직접 자신의 서버에 Jabber 대몬을 설치하고 사용할 수 있는데, 일단 가입이 이루어지면 JID라는 식별자를 부여받게 된다. JID는 이메일과 같은 체계로 되어 있다. 예를 들어 씽크테크(thinktek.co.kr)가 재버서버를 설치하고 jklee라는 사용자를 가입시켰다면 이 사용자의 JID는 jklee@thinktek.co.kr이 된다. 이는 공교롭게도 이메일 주소와 동일하다. 즉, JID는 전세계적으로 유일한 ID가 된다.
Jabber의 최대 특징은 JID만 알면 다른 어떤 Jabber 서버의 사용자와도 대화가 가능하다는 점이다. 즉, david@jabber.org 라는 JID를 가진 사용자에게 이메일을 쓰듯 메시지를 날리면 실시간 대화가 가능하다. 이 점이 다른 메신저 사업자들과 비교했을 때 가장 특징적이며 획기적인 것이다.
향후 재버서버가 메일서버만큼 널리 사용되고 많은 사용자들이 JID를 보유하게 될 때에는 Jabber를 바탕으로 하는 수 많은 응용프로그램 수요가 발생하게 될 것으로 예상된다. 사람들이 일단 JID를 이용하여 상대방과 대화를 하기 시작한다면 그 이후는 대화상태 찾기, 게임, 온라인 거래, 계약 등등 수 많은 일들을 Jabber기반의 네트워크에서 처리할 수 있게 된다.
Jabber 프로토콜은 확장성을 고려하여 초기부터 XML이라는 구조적 기술언어를 이용하여 프로토콜이 설계되어 있다. XML의 특성상 풍부한 확장성을 제공하기에 Jabber응용프로그램을 개발하는 개발자는 자신이 새로 설계한 구조적인 정보를 Jabber 네트워크를 통하여 쉽게 전송할 수 있다. 결과적으로 XML에 의해 어떠한 구조적인 정보를 정의하느냐가 Jabber 어플리케이션 개발의 핵심이 되는 것이다.
지원하는 플랫폼은 Windows/Linux/Mac 입니다.
다운로드 URL : http://www.igniterealtime.org/projects/openfire/index.jsp
설치 가이드 : http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/install-guide.html
먼저 java 를 설치 하셔야 합니다.
저는 Windows용 무설치 버전을 받아 C:\openfire 경로에 압축을 해제 하였습니다.
(* 바탕화면에 압축 해제 후 실행시 한글 경로를 찾지 못하는 현상이 있는 듯 합니다.)
압축 해제 후 다음과 같이 실행합니다.
위와 같은 Openfire 창이 뜨면 Launch Admin 버튼으로 초기 세팅을 진행해야 합니다.
화면에 Launch Admin 클릭하면 아래 화면이 나오는데
이곳에서 데이터 베이스 설정 을 하십시오 오라클 MY-SQL , MS-SQL 기타 등등 모두 지원 합니다.
모든 설치과정이 끝나면, 클라이언트를 통해 메신저 서버에 접속 할 수 있습니다.
Spark 또는 SparkWeb을 통해 접속 해 봅니다.
아 참고로 사이트에 접속 하셔서 sparkweb 을 받아서 서버에 업로드 후 HTTP 메신저도 지원 합니다.
--------------------------------------------------------------
추가
웹사이트 작업중 회원 테이블 을 공유 해야할 필요가 생겨서 작업중 알게 되었습니다.
비밀번호가 암호화 되어 있어 MD5 라고 생각했는데 아니더군요 하다 하다 안되서.
이것저것 알아본결과 plainPassword 필드에 암호화 안된 일반 비번을 넣었더니 문제 없이 로그인 되었습니다.
다시 말해 encryptedPassword 에 비밀번호가 없고 널 일경우 plainPassword 에 암호화 안된 비밀번호로 로그인 되는것을
확인할수 있었습니다.
# tcpdump -q \( dst net 1.2.3.0/24 or 1.2.4.0/25 \) and dst port 80
목적지 주소가 1.2.3.x/24 와 1.2.4.x/25 이고 80번포트인 패킷 캡쳐
# tcpdump host A
A 호스트로/부터의 모든 도착/출발 패킷 출력
# tcpdump host A and \( B or C \)
A 호스트와 B 또는 C 사이의 모든 트래픽 출력
# tcpdump ip host A and not B
A호스트와 B를 제외한 호스트 간의 모든 IP 패킷 출력
# tcpdump net ucb-ether
로컬호스트와 Berkeley의 호스트들 간의 모든 트래픽 출력
# tcpdump 'gateway A and (port ftp or ftp-data)'
게이트웨이 A를 통한 모든 ftp 트래픽 출력
# tcpdump ip and not net <localnet>
로컬네트워크로/부터가 아닌 모든 트래픽 출력
# tcpdump 'tcp[13] & 3 != 0 and not src and dst net <localnet>'
로컬네트워크가 아닌 TCP 시작과 마지막 패킷 출력
# tcpdump 'gateway A and ip[2:2] > 576'
게이트웨이 A를 통해 보내지는 576 Bytes보다 긴 IP 패킷 출력
# tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'
이더넷이 아닌 IP 브로드 또는 멀티 캐스트 패킷 출력
# tcpdump 'icmp[0] != 8 and icmp[0] != 0'
echo 요청/응답이 아닌 모든 ICMP 패킷 출력 (ping 아닌 패킷)
# tcpdump src net 1.2.3 or 1.2.4 and not dst net 1.2.3 or 1.2.4
1.2.3 과 1.2.4 IP주소 (내부) 패킷을 제외한 모든 패킷 출력
# tcpdump -i br1
br1 인터페이스의 모든 패킷 출력
=============================================================================================================
tcpdump로 ftp 접속시 발생하는 패킷 내용을 보려면
tcpdump -t -x port ftp
tcpdump -t -x ‘port ftp or ftp-data’
tcpdump -t -x port 21
특정호스트의 특정 포트로 들어오는 패킷을 보는 예제
tcpdump -i eth0 -t -X port xx and host xxx.xxx.xxx.xxx
1. 개요
가. 리눅스 서버에서 패킷 스니핑시 주로 사용하는 tcpdump 의 사용법 입니다.
나. 테스트환경 : 리눅스 CentOS 5.1 (tcpdump version 3.94, libpcap version 0.9.4)
2. tcpdump 사용법
가. 특정 호스트의 특정포트 패킷만 보기
[root@localhost]# tcpdump -nn host 192.168.1.5 and port 80
나. 특정 호스트의 Mac Address 보기
[root@localhost]# tcpdump -e host 192.168.1.6
다. 지정한 디바이스 장치의 특정포트 패킷보기
[root@localhost]# tcpdump -i eth1 dst port 80
[root@localhost]# tcpdump -i eth1 src port 80
라. 특정 호스트를 제외한 패킷보기
[root@localhost]# tcpdump not host 192.168.1.6
마. 복합 조건검색 (192.168.1.2 가 아니며 80번 포트를 사용한 패킷 10줄 출력)
[root@localhost]# tcpdump 'not host 192.168.1.2 and port 80' -c 10
바. 패킷의 헥사코드 출력 및 문자열 일치하는 패킷 스니핑
[root@localhost]# tcpdump -s 1024 -x | grep "password"
(-s lenght 패킷들로부터 추출하는 샘플을 default 값인 68Byte 외의 값으로 설정
하는것으로 프로토콜의 헤더 사이즈에 가깝에 잡아 주어야 합니다. 샘플 사이즈
를 크게 잡으면 패킷하나를 처리하는데 시간이 더 걸리며 패킷 버퍼의 사이즈가
작아지게 되어 손실되는 패킷이 발생할 수 있습니다.)
http://filezilla-project.org/
(파일질라(FileZilla)는 공개용이므로 기업에서도 인증절차 없이 사용이 가능 합니다.)
2. Sftp 서버 정보 를 입력합니다. ① sftp 서버의 IP 또는 Hostname을 입력 합니다.
② sftp 서버의 ftp 계정을 입력 합니다.
③ sftp 서버의 계정에 대한 암호를 입력 합니다.
④ 포트는 꼭 22를 입력 합니다.
⑤ 빠른접속을 클릭 합니다.
3. 메시지 박스의 체크박스에 체크한 후 확인 을 클릭합니다.
4. 파일을 전송 및 다운로드 합니다.
windows 서버에 파일질라 보안 ftp 서버 ( filezilla secure ftp server ) 설치하는 법
프로그래밍/윈도우 & MS-SQL | 2010/04/14 09:57요즘 일반유저도 컴퓨터 보안에 대한 관심이 높아지고 있습니다.
그래서 오늘은 보안에 취약한 서비스, 그 중에서 가장 원초적이면서 쉽게 해킹에 노출 될 수 있는
서비스중에 하나인 ftp 서비스에 대해 글을 올리겠습니다.
telnet 서비스는 오래전부터 ssh 서비스로 바꼈고, 요즘에는 거의 쓰지 않는 서비스가 되었습니다.
그러나 telnet 서비스와 마찬가지로 해킹 sniffer에 쉽게 노출된 ftp서비스는 아직도 많이 쓰고 있습니다.
그나마 다행히 최근부터 호스팅업체나 idc 등에서 sftp 서비스로 대체하고 있는 실정입니다.
아마도 ftp 서비스도 몇년이 지나면 telnet과 같이 거의 사장되는 서비스가 될지 모릅니다.
아래 그림은 알ftp, 파일질라 같은 프로그램으로 일반 ftp 접속을 했을때, tcpdump로 스니핑을 해본 결과
입니다.
그림에 나온것 처럼 ftp id = ftp_user , password = abc 인것을 쉽게 텍스트로 확인 할 수 있습니다.
리눅스 서버에서는 특별한 세팅없이 sftp 서비스를 제공할 수 있고, filezilla-client 같은 프로그램으로 접속해서
sftp를 사용하면 됩니다.
아래 링크는 filezilla client 사용법 입니다.
http://youngsam.kr/1145
오늘은 windows 서버에 filezilla sftp server를 설치하는 법에 대해 설명드리겠습니다.
1. 아래 링크에서 파일질라 서버를 다운 받고 설치를 합니다.
http://filezilla-project.org/
2. 모두 디폴트로 설치하고 실행하면 아래와 같이 FileZilla Server 프로그램이 실행됩니다.
그림 처럼 EDIT > Settings 를 클릭합니다.
3. General Settings에서 Connection Settings > Listen on these ports: 990 으로 Listen port를
990 으로 설정합니다.(다른 포트로 변경해도 상관없음)
4. 왼쪽에 admin interface settings 을 클릭 합니다.
filezilla-server admin과 통신할 포트를 14147 로 디폴트값을 씁니다(변경해도 상관없음)
다음으로 "Change Admin password" 를 체크하고 local에서 filezilla-server admin으로 접속할
password를 새로 설정합니다.(admin 접속시 사용할 비밀번호를 넣습니다)
5. 왼쪽에 "SSL/TLS settings"를 클릭합니다.
아래 그림과 같이 Enable FTP over SSL/TLS support(FTPS) 에 체크 합니다.
sftp 포트가 디폴트로 990으로 되어 있습니다. General settings에서 설정한 Listen port 와
같은 값인지 확인합니다.
Allow explicit FTP over TLS 체크 합니다
Disallow plain unencrypted FTP 체크 합니다.
설정이 다됬으면 아래쪽에 "generate new certificate.."버튼을 클릭합니다.
6. Key size: 4096 bit 를 선택하고 국가번호: 82 ...
정보를 입력한후에 키생성 합니다.
인증키 저장위치를 본인이 설정한 안전한 위치에 저장을 합니다.
확인을 눌러 이전 항목으로 간후에
Key password 에 인증키 암호를 넣습니다.
settings 항목을 빠져 나갑니다.
7. 이제 Edit > Users 항목을 설정합니다. 아래 그림 처럼 Users를 클릭하여 사용자를 등록합니다.
8. 아래 그림처럼 General > Users 항목에서 Add 버튼을 클릭해서 사용자를 추가합니다.
Account Settings 에서
"Enable account" 와 "Password" 에 체크를 하고 password를 넣습니다.(이 패스워드는 ftp접속시 사용됨)
SFTP로만 접속할 수 있도록 설정 하려면
아래에 "Force SSL for user login" 값을 체크합니다.
9. Users > Shared folders 항목에서 오른쪽에 추가한 사용자(ftp_user)를 클릭한후에
공유폴더를 지정합니다. (사용자를 여러개 추가 했으면 각 사용자를 클릭하여 공유폴더를 각각 추가합니다)
아래는 D 드라이버 전체를 공유폴더로 지정한 그림입니다.
설정이 완료 되었으면 확인후 Users 설정을 빠져나갑니다.
10. 이제 filezilla-server 설정이 완료 되었으므로 이제까지 설정한 세팅이 적용되도록 서비스를 재시작 합니다.
아래 그리처럼 작업관리자에서
"FileZilla Server.exe"프로세스를 죽인후 프로그램을 다시 시작하거나
또는 아래 그림 처럼
모든프로그램 > FileZilla Server > Stop FileZilla Server 를 클릭하여 FileZilla server를 정지 시킨후
다시 Start FileZilla Server 를 클릭하여 재시작 합니다.
11. 이제 앞에서 설정한 admin 비밀번호를 입력하고 FileZilla admin으로 접속합니다.
아래 그림은 로컬에서 FileZilla server 에 접속한 경우 이므로
Server Address : 127.0.0.1 ( 외부에서 파일질라 admin 접속하려면 해당 서버의 ip값을 넣습니다 )
port : 14147 (앞에서 admin 설정시 포트값)
Administration Password : (앞에서 파일질라 admin 패스워드 설정한 값)
Always connect to this server 에 체크 합니다
12. 시작 > run > cmd 엔터로 cmd창을 연후에
"netstat -an" 명령어로 FileZilla Server의 990 포트가 열려 있는지 확인합니다.
아래 그림에 보면 TCP 990 번 포트가 Listening 하고 있음을 확인할 수 있습니다.
13. 이제 FileZilla Server 설정은 완료 됬으므로
클라이언트 세팅을 해 봅니다.
Sftp를 사용하려는 pc에 위에 링크로 들어가서 FileZilla Client 프로그램을 다운 받은후 설치 합니다.
설치 후 아래 그림처럼 File > 사이트 관리자 를 클릭합니다.
14. 사이트 관리자 창이 나오면
왼쪽 아래에 "새 사이트"를 클릭해서 파일질라 연결을 만듭니다.
오른쪽에 일반 탭에서 그림과 같이 설정합니다.
호스트: 111.111.111.111 (파일질라 server의 ip address를 입력합니다)
포트 : 990 (파일질라 server에서 설정했던 포트를 입력합니다)
서버종류 : "명시적 TLS/SSL 상의 FPTES-FTP" 를 선택합니다.
로그온 형식 : 비밀번호 요청
사용자 : ftp_user (파일질라 server에서 Users에서 등록했던 ID)
설정후에 확인을 누릅니다.
15. 사이트관리자 열기 아이콘의 아래화살표 표시를 누르면 이제까지 등록한 연결명(vm)이 보입니다.
해당 연결명을 클릭합니다. (여기서는 앞에서 vm으로 이름을 만들었으므로 vm을 클릭합니다)
16. 미리 등록한 연결이름을 클릭하면 패스워드 입력창이 뜨는데
인증키를 만들때 입력했던 "Key Password" 를 입력하면 서버에 접속이 됩니다.
아래그림은 sftp로 990포트로 파일질라 server에 접속한 상태 입니다.
17. 아래 그림은 Sftp로 파일질라 서버에 접속할 때,
tcpdump로 스니핑을 해본 결과 화면 입니다.
그림 처럼 ftps 접속이 이루어지면서 ftp id와 password는 암호화 되어
해커가 ftp 접속 패킷을 도청해도 내용을 알 수 없음을 확인할 수 있습니다.
이런 로그를 조금이나마 보기 쉽게 되어있는 웹로그 분석 툴이 있는데
오늘은 그중 하나인 Awstats 설치를 해보시겠습니다.
====준비 과정===
그럼 우선 재료를 받아보겠습니다.
필요한 자료는Awstats와 윈도우즈용 Perl이 필요합니다.
1. Awstats는 http://awstats.sourceforge.net/ 에서 받아줍니다..(필자 설치 버젼은 6.9)
2. 윈도우즈용 perl은 http://www.activestate.com/ 에서 받아줍니다..
(필자 설치 버젼은 ActivePerl-5.10.0.1004-MSWin32-x86-287188)
3. 다운 받은 perl을 설치합니다..
설치 폴더는 C:\Perl에 설치 되었을 것입니다..
그럼 bin 폴더에서 perl.exe 파일과 perl510.dll 파일을
C:\WINDOWS\system32 폴더로 카피해줍니다..(귀찮으신 분들은 패스로 잡아주시면 됩니다.)
4. 다음은 Awstats를 설치하자 간단하게 설치가 되어질 것입니다.
기본 설치 폴더는 C:\Program Files\AWStats 으로 되어 있을것입니다..
5. IIS 관리에서 웹서비스 확장에서 Perl Cgi Extension을 허용 시켜줍니다.
그리고 해당 웹서버의 웹로그 형식을 수정해 주어야합니다.
IIS에서 해당 서버 속성에 들어가
활성 로그형식을 W3C 확장 로그 형식으로 우선 변경해 주고 속성에 들어가
로그파일 디렉토리를 지정해 주고 고급탭으로 가서 로깅옵션을 아래와 같이 체크해 줍니다.
|
윈도우 웹로그 분석 - 2 윈도우 웹로그 분석 - 3 |
기존 웹로그는 옵션값이 다르기 때문에 Awstats에서 불러 오지 못하기 때문에 이전 로그는 따로 저장하는게 좋습니다.
위와 같이 셋팅을 완료하면 IIS 단에서의 Awstats 설정은 끝났습니다.
다음은 Awstats conf 파일을 설정 해보도록 하겠습니다.
IIS셋팅이 완료 되었으면 Awstats conf 파일을 설정하여야 합니다.
기본적으로 Awstats 설치파일은 C:\Program Files\AWStats 여기에 설치되어 있습니다.
여기서 conf 파일로 필요한 데이터는 wwwroot폴더안의 cgi-bin 에 있는데 편하게 관리하시려면
cgi-bin폴더만 다른 경로에 복사하여 사용 하시면 됩니다.
우선 Awstats 데이터가 저장 되어야 할 폴더가 필요합니다.
필자는 data 폴더를 wwwroot 아래에 하나 더 만들고 분석할 도메인 별로 폴더를 생성하여
데이터를 일괄적으로 관리하고 있습니다. [참고로 데이터 파일은 월별로 awstats042009.도메인.txt 이런 패턴으로 생성 되어집니다.]
데이터를 만드셨다면 본격적으로 conf 파일 생성 및 설정 방법을 설명해 드리겠습니다.
cgi-bin 폴더에 보시면 awstats.model.conf 이라는 파일이 있습니다.
이 파일이 기본 conf 파일인데 이 파일을 편집하면 되겠습니다.
파일명은 awstats.도메인명.conf 이런식으로 복사하셔서 사용하시면 됩니다.
그리고 이파일을 열어서 편집 하시면 되는데
=========================================================================================
해당 로그파일 경로
LogFile="해당 로그파일경로 \ex%YY-24%MM-24%DD-24.log"
ex) LogFile="K:\LogFiles\Awstats.com\W3SVC1313589822\ex%YY-24%MM-24%DD-24.log"
IIS 로그 포맷
LogFormat=2
도메인 명
SiteDomain="3fish.kr"
Awstats Data 폴더
DirData="Awstats Data 폴더"
ex) DirData="K:\Awstats\data\Awstats.com"
Awstats 언어
Lang="ko"
=========================================================================================
Awstats Data update
도스창에서 아래와 같이 입력하시면 업데이트가 됩니다.
[로그파일이 오늘 생성하셨다면 업데이트시 에러가 나올겁니다. 하루 지난후에 해보세요]
perl Awatats 소스 디렉토리\awstats.pl -config=도메인명 -update
ex) perl K:\Awstats\Awstats.com\awstats.pl -config=Awstats.com -update
자동으로 업데이트를 하실려면
bat파일로 만드시고 해당 bat파일을 Windows 스케쥴에서 자동으로 업데이트 되게 스케쥴을 잡아주시면 됩니다.
Awstats 확인 방법
IIS에서 Awstats 를 잡아주시고 아래와 같이 확인해보시면 되십니다.
http://서버주소/awstats.pl?config=도메인명
ex) http://***.***.***.***/awstats.pl?config=Awstats.com
데모는 http://awstats.sourceforge.net/#DEMO 에서 보실수 있으십니다.
*테스트 하셨을때 이미지가 안나오시면 설치 폴더의 icon폴더를 conf 폴더에 복사해 주시면 되십니다.
Awstats 설정 방법은 유동성이 많기 때문에 관리자 입맛에 맛추어 설정해 주시면 됩니다.
# 리눅스 시스템의 서비스관리 방식
- 리눅스 서버에서 서비스를 관리하는 방식에는 여러가지가 있으며 대부분 서비스들은 init
이라는 프로세스에 의해 생성 및 제거 된다
- 특정 스크립트에 의해 시작/종료/재시작되는 것이 있으며 또한 리눅스명령어에 의해
직접 시작/종료되는 것들도 있다
- init 프로세스에 의한 관리
-> 시스템 부팅에서부터 종료할 때까지의 모든 서비스들에 관여하고 있다
-> 모든 독립데몬 서비스들이 init 프로세스로부터 실행됨
-> init 프로세스 설정 파일 : /etc/inittab
- 리눅스 명령어(command)에 의한 관리방식
-> 가장 직접적인 방식으로서 사용자의 명령어 사용에 의해 실행된다
-> 시스템에 존재하는 명령어 또는 사용자가 만든 쉘스크립트(또는 실행파일)
- SYSTEM V 스크립트 방식
-> /etc/rc.d/init.d 디렉토리에 존재하는 각 서비스 제어파일에 의한 관리방식
- xinetd에 의한 관리방식
-> /etc/xinetd.d 디렉토리내의 각 서비스파일들에 의한 관리방식
- chkconfig에 의한 관리방식
-> 부팅시에 자동실행할 서비스들을 설정한다
-> 설정결과는 /etc/rc.d/rcN.d 디렉토리내의 링크파일의 생성과 파일명으로 존재
-> xinetd 서비스는 /etc/xinetd.d 디렉토리내에 있는 파일내의 설정으로 존재
-> ntsysv와 상호 보완적인 관리방식이다
-> ntsysv 방식과 결과는 같지만 command 형식을 이용한 설정방식이다
- ntsysv에 의한 관리방식
-> 부팅시에 자동실행할 서비스들을 설정한다
-> 설정결과는 /etc/rc.d/rcN.d 디렉토리내의 링크파일의 생성과 파일명으로 존재
-> chkconfig와 상호 보완적인 관리방식이다
-> chkconfig 방식과 결과는 같지만 툴을 이용한 설정방식이다
- 서비스명 규칙
-> /etc/hosts.allow 파일과 /etc/hosts.deny 파일내에서 사용하는 서비스이름은
실제 데몬파일명을 지정해야 하며 "sshd : ALL" 에서 sshd 라는 이름은
/usr/sbin/sshd 라는 파일명에서 가져온 것이다
-> chkconfig 와 ntsysv 는 설정하면 자동으로 이름이 명명되어 나타나며 그 이름을
그대로 사용하면 된다
-> /etc/xinetd.d 디렉토리의 파일 내에서 사용하는 services 항목이름은 chkconfig
설정시 사용되는 이름 또는 서비스 데몬명을 그대로 사용한다
# 슈퍼데몬방식과 독립데몬방식의 서비스 차이점
- 독립방식서비스는 자체적으로 항상 메모리에 상주하여 서비스 요청시 실시간으로 응답한다
- xinetd라는 슈퍼데몬에 의해 실행되고 제어된다
- xinetd 서비스와 standalone 서비스의 비교
XINETD 환경 서비스
-> 의미 : xinetd에 의해 제어되는 서비스들의 데몬
-> 실행방법 : 필요할 때에 xinetd에 수행됨
-> 데몬상주여부 : xinetd에 의해 불리워진 후에 서비스완료후에 자동 종료
-> 실행속도 : 독립방식에 비해 느림
-> 자원사용 : 시스템자원사용이 효율적(자원사용 적음)
-> 기타 : /etc/xinetd/서비스명으로 xinetd 제어파일이 존재
-> 접근제어 : tcp_wrapper에 의해 접근제어
/etc/hosts.allow, /etc/hosts.deny 파일로 접근제어 설정을 할수 있다
독립 서비스
-> 의미 : 독립적으로 실행되는 서비들의 데몬
-> 실행방법 : 독립적인 서비스를 위하여 항상 독립적으로 수행된다
-> 데몬상주여부 : 독립적인 서비스를 위하여 메모리에 독립데몬으로 상주한다
-> 실행속도 : xinetd 방식에 비해 빠름
-> 자원사용 : xinetd방식에 비해 자원사용이 비효율적이다(자원사용 많음)
-> 기타 : /etc/xinetd/서비스명으로 xinetd 제어파일이 존재
-> 접근제어 : tcp_wrapper와는 무관하지만 자체
설정파일에 의해 접근제어 할 수 있다
공통 사항
-> 로깅 : /etc/syslog.conf 파일의 설정에 따름, 대부분 /var/log파일에 로깅
-> 참고
1) 독립적으로 실행되는 데몬들도 xinetd 환경으로 변경할 수 있으며
반대로 xinetd 환경에서 서비스되는 데몬들도 독립적인 실행모드로
변경할 수 있다
2) sshd 서비스의 경우 standalone이지만 /etc/hosts.aloow,
/etc/hosts.deny의 접근제어를 받는다 따라서 독립데몬이라도
tcp_wrapper의 영향을 받을 수 있다
-> standalone 모드로 실행이 되는 데몬은 독립적으로 실행되며 항상 메모리에
상주하여 서비스요청이 있을 때 언제든 바로 응답하며 응답속도를 요하는 경우에
이 모드를 이용한다 단점으로는 메모리에 항상 상주해있으므로 메모리점유로
인하여 서버부하를 준다
-> xinetd 모드로 실행이 되는 데몬은 xinetd라는 특별한 데몬(인터넷슈퍼데몬)에
의해 관리되며, 필요한 경우에만 메모리로 적재되어 실행이 되어 응답을 한다
빠른 응답속도를 요하지 않는 경우에 이 모드를 이용한다 단점으로는 응답속도가
standalone 보다는 상대적으로 느리다는 것이고 장점으로는 메모리에 항상 상주해
있는 것이 아니므로 standalone 모드보다는 서버부하를 상대적으로 줄일수 있다
# 인터넷 슈퍼데몬의 특징
- xinetd는 인터넷슈퍼데몬(Internet Super Daemon)을 의미한다
- xinetd는 그 자체적으로는 하나의 독립데몬이지만 xinetd가 하는 역할이 여러가지 다른
서비스들을 관리하는 역할이기 때문이다
- xinetd는 서비스되는 여러가지 데몬들을 제어하면서 각각의 서비스들의 연결을 담당한다
- xinetd의 특징
-> 각 서비스별로 별도의 파일에 설정이 가능하다(/etc/xinetd.d/* 파일들)
-> xinetd에서 가지고 있던 접근제어 기능을 가지고 있다
-> tcp_wrapper를 내장하고 있기 때문에 접근제어를 할 수 있다
-> timeout 설정으로 서비스 접근제어를 할 수 있다
-> 접속시도 횟수로 접근제어를 할 수 있으므로 무차별 서비스거부공격(DoS)을
방지할 수 있다
-> 동일한 IP를 가진 호스트에서 동시 접속수를 제어하여 접근제어를 할 수 있다
-> 로그파일의 크기를 제한 할 수 있다
-> xinetd에서 제어되는 각 서비스들에 대한 syslog 로깅 레벨 설정이 가능하다
-> 서비스를 거부하거나 서비스 접근제어가 되었을 경우에 상세로그를 기록한다
- xinetd는 외부에서 서비스요청이 있을 때 /etc/xinetd.d/ 디렉토리내의 각 서비스파일들에
정의되어 있는 내부 프로그램(데몬)을 실행시켜주는 역할을 한다
# 슈퍼데몬 xinetd방식의 서비스 흐름
- 외부에서 telnet 연결요청(서비스의 요청)이 들어온다
- xinetd 데몬은 외부에서 요청된 서비스를 tcp_wrapper에게 넘겨준다
- tcp_wrapper는 /etc/hosts.allow와 /etc/hosts.deny 파일의 설정을 확인하여 해당 요청자의
접근을 허용할지 허용하지 않을지 결정한다
- 허가된 요청일 경우에는 /etc/syslog.conf에 설정되어 있는 /var/log/secure 파일에
해당 접속에 대한 정보를 기록하고 /etc/xinetd.d/telnet 파일을 불러들여서 서비스를
연결한다 이때 /etc/xinetd.d/telnet 파일내의 server 지시자행에 설정되어 있는 telnet
데몬의 위치를 찾아서 요청을 처리하게된다
- 허가되지 않은 요청일 경우에는 /etc/syslog.conf 파일에 설정되어 있는 /var/log/secure
파일에 허가되지 않은 접속이 있었다는 로그를 남기고 접속요청을 거부하게 된다
# xinetd 서비스 관련 파일
- xinetd 서비스 관련 파일들
-> /etc/xinetd.conf : xinetd 서비스에 공통적으로 적용되는 주된 설정 파일
-> /etc/xinetd.d/파일들 : xinetd 기반 서비스들의 개별 설정 파일들
-> /usr/sbin/xinetd : xinetd 데몬파일
-> /usr/sbin/tcpd : tcp_wrapper 데몬 파일
-> /etc/rc.d/init.d/xinetd : xinetd 시작/종료 스크립트 파일
-> /etc/hosts.allow : 서비스별 허용할 호스트 또는 IP 리스트(tcp_wrapper)
-> /etc/hosts.deny : 서비스별 거부할 호스트 또는 IP 리스트(tcp_wrapper)
-> /etc/syslog.conf : 시스템로그 설정 파일
-> /var/log/secure : tcp_wrapper 로그파일 (접근기록 파일)
-> /etc/services : 서비스포트 설정 파일
-> /etc/protocols : 프로토콜 설정 파일
- /etc/xinetd.conf 파일은 xinetd의 최상위 설정파일로서 "Tcp_Level Configuration File"
라고 한다
- /etc/xinetd.d 디렉토리내의 각 서비스 설정파일들에 대하여 글로벌하게 영향을 주게된다
개별 설정파일에 개별적으로 존재하지않는 설정항목들에 대해서는 기본적으로 적용될
항목들이 설정되어 있는 파일이다
# xinetd 주설정 파일과 /etc/xinetd.d 내의 개별 서비스 설정파일
- xinetd의 메인 설정파일로서 xinetd 데몬이 실행될 때에 설정 내용을 불러와서 적용한다
# cat /etc/xinetd.conf
#
# This is the master xinetd configuration file. Settings in the
# default section will be inherited by all service configurations
# unless explicitly overridden in the service configuration. See
# xinetd.conf in the man pages for a more detailed explanation of
# these attributes.
defaults
{
# The next two items are intended to be a quick access place to
# temporarily enable or disable services.
#
# enabled =
# disabled =
# Define general logging characteristics.
log_type = SYSLOG daemon info
log_on_failure = HOST
log_on_success = PID HOST DURATION EXIT
# Define access restriction defaults
#
# no_access =
# only_from =
# max_load = 0
cps = 50 10
instances = 50
per_source = 10
# Address and networking defaults
#
# bind =
# mdns = yes
v6only = no
# setup environmental attributes
#
# passenv =
groups = yes
umask = 002
# Generally, banners are not used. This sets up their global defaults
#
# banner =
# banner_fail =
# banner_success =
}
includedir /etc/xinetd.d
-> /etc/xinetd.conf 파일의 구성
=> defaults 설정은 /etc/xinetd.d 디렉토리내에 존재하는 xientd 서비스들에
공통적으로 적용하는 설정내용이다
xinetd 기반의 서비스들에 대하여 기본값으로 적용하는 설정으로 개별
설정항목이 별도로 존재할 때에는 이 기본 설정값은 무시되고 개별
설정값이 적용된다
=> includedir /etc/xinetd.d 설정은 xinetd 서비스의 적용을 받는 개별
서비스 설정파일들을 /etc/xinetd.d 디렉토리에서 불러오는 것이다
- xinetd 기반의 개별 서비스 설정파일들은 /etc/xinetd.d 디렉토리 내에 개별 서비스이름과
같은 파일명으로 존재한다
# ls -l /etc/xinetd.d/
total 52
-rw-r--r-- 1 root root 1157 2008-09-18 17:36 chargen-dgram
-rw-r--r-- 1 root root 1159 2008-09-18 17:36 chargen-stream
-rw-r--r-- 1 root root 1157 2008-09-18 17:36 daytime-dgram
-rw-r--r-- 1 root root 1159 2008-09-18 17:36 daytime-stream
-rw-r--r-- 1 root root 1157 2008-09-18 17:36 discard-dgram
-rw-r--r-- 1 root root 1159 2008-09-18 17:36 discard-stream
-rw-r--r-- 1 root root 1148 2008-09-18 17:36 echo-dgram
-rw-r--r-- 1 root root 1150 2008-09-18 17:36 echo-stream
-rw-r--r-- 1 root root 332 2008-09-08 23:11 rsync
-rw-r--r-- 1 root root 1212 2008-09-18 17:36 tcpmux-server
-rw-r--r-- 1 root root 304 2009-07-29 19:17 telnet
-rw-r--r-- 1 root root 1149 2008-09-18 17:36 time-dgram
-rw-r--r-- 1 root root 1150 2008-09-18 17:36 time-stream
- xinetd 기반의 서비스에 대한 개별 설정 파일
# cat /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = yes
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
- /etc/xinetd.conf 파일에 다음 항목이 설정되어 있다면 Global 하게 적용되는 것을
의미하고 /etc/xinetd.d/ 디렉토리 내에 존재한다면 개별서비스 설정이 된다
-> service : 서비스이름으로 /etc/services 파일에 등록된 서비스이름과 동일해야한다
-> disable : 해당 서비스를 서비스할 것인가(no) 아닌가(yes)를 결정한다
서비스를 하도록 설정하려면 no로 설정하고 서비스를 하지 않으려면
yes 로 설정한다
-> socket_type : TCP일 경우에는 stream으로 설정하고 UDP일 경우에는 dgram으로
설정하며 서비스의 성격에 따라 raw, rdm, seqpacket 등이 올수
있다
-> wait : xinetd가 서비스 요청을 받은 경우, 이후에 즉시 또는 다른 요청을
처리할 것인지(no) 아닌지(yes)의 여부를 결정하는 지시자이다
stream일 경우에는 반드시 no 이여야하며 no는 현재 요청외에의
다른 접속요청을 새로운 것으로 시작하여 처리하게 된다
-> user : 서비스를 어떤 사용자 권한으로 서비스할 것인가를 결정한다
-> server : 해당 서비스 요청이 들어왔을 경우에 해당 서비스를 담당하게될
데몬파일의 위치를 절대경로로 지정하는 항목이다
-> log_on_failure : 서버접속에 성공하지 못하였을 때 로그파일에 기록하는 내용을
설정할 수 있다 HOST, USERID 그리고 ATTEMPT, RECORD 등이
추가로 설정될 수 있다.
HOST란 접속을 시도한 클라이언트의 IP 주소를 의미한다
USERID란 접속한 사용자의 ID를 각각 의미한다
+=은 /etc/xinetd.conf 파일의 기본설정항목에 추가할 항목을
지정할 때 사용한다
-=는 /etc/xinetd.conf 파일의 기본설정항목에서 뺄 항목을
지정할 때 사용한다
-> log_on_success : 서버 접속에 성공하였을 경우에 기록할 내용을 설정할 수 있다
PID, HOST, USERID, EXIT, DURATION 등을 기록할 수 있다
PID란 프로세스의 ID를 의미한다
HOSTID란 클라이언트의 IP 주소를 의미한다
USERID란 접속한 사용자의 ID를 의미한다
EXIT란 프로세스의 종료상태를 의미한다
DURATION이란 연결지속시간을 의미한다
-> only_from : 'only_from = 192.168.1.0/24' 와 같은 설정이 가능하며 서버로
해당 서비스 접속이 가능한 네트워크를 지정한다
-> no_access : 'no_access = 192.168.1.100'와 같은 설정이 가능하며 특정
호스트를 접속을 제한 한다
-> instances : 'instances = 60'과 같은 설정이 가능하며 해당 서비스로 접속
가능한 최대 접속자수를 제한한다
-> access_times : 'access_times = 08:00~18:00'와 같은 설정이 가능하며 해당
서비스의 이용가능 시간을 지정할 수 있다
-> per_source : 'per_source = 5'와 같은 설정이 가능하며 동일한 호스트에서
해당 서비스로의 접속시 동시에 접속할 수 있는 횟수를 지정한다
서비스거부공격 (DoS)을 차단하기 위해 사용될 수 있다
# xinetd의 시작과 종료
- xinetd 서비스를 위해서는 xinetd 데몬이 실행되어있어야한다
- xinetd 데몬을 실행하려면 /etc/rc.d/init.d/xinetd 스크립트파일을 이용하면 된다
- xinetd 의 시작
-> xinetd 스크립트에 'start' 옵션을 함께 사용하면 된다
# /etc/rc.d/init.d/xinetd start
Starting xinetd: [ OK ]
- xinetd 의 종료
-> xinetd 스크립트에 'stop' 옵션을 함께 사용하면 된다
# /etc/rc.d/init.d/xinetd stop
Stopping xinetd: [ OK ]
- xinetd의 재시작
-> xinetd 스크립트에 'restart' 옵션을 함께 사용하면 된다
# /etc/rc.d/init.d/xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
# xinetd 서비스의 접근제어 담당 tcp_wrapper
- 특정 IP나 도메인으로부터 서비스의 접속을 차단할 수 있다
- 접속기록이나 접속시도기록을 특정한 파일에 로그로 기록한다
- xinetd는 tcp_wrapper를 내장하고 있기 때문에 xinetd 모드에서 실행되는 서비스들(ftp,
telnet, ssh 등)은 거의 대부분 tcpd라는 tcp_wrapper의 데몬에 의해 접속제어를 받게 된다
- 개별서비스들의 접근 허용을 설정하는 파일은 /etc/hosts.allow이며 접근허용이 되지 않도록
설정하는 파일이 /etc/hosts.deny 이다
- tcp_wapper에 제어파일인 /etc/hosts.allow 파일과 /etc/hosts.deny 파일에 의해 제어되는
서비스가 xinetd 기반 서비스에 한정되어있지 않다는 점이다
- xinetd 기반 서비스뿐아니라 독립데몬들에 대한 서비스들도 tcp_wrapper의 제어파일인
/etc/hosts.allow 파일과 /etc/hosts.deny 파일의 접근제어를 설정할 수 있다는 의미이다
- /etc/hosts.allow와 /etc/hosts.deny 파일의 설정
왼쪽부분 설정 항목
대상서비스 : tcpd에 의해 제어되는 모든 서비스명
xinetd 기반의 서비스들 뿐 아니라 독립데몬들의
서비스들도 설정 가능
오른쪽부분 설정 항목
접근제어 대상 (host, IP주소, 네트워크주소등)
: 특정 도메인명, 특정 호스트명, 특정 IP주소, 특정네트워크
-> 왼쪽 항목과 오른쪽 항목은 콜론(:)으로 구분하며 세번째 항목을 계속 설정할
때에도 콜론으로 구분하여 설정한다
-> /etc/hosts.allow 설정과 /etc/hosts.deny 설정이 중복되었을 경우에는
/etc/shots.allow 파일의 내용이 우선 적용된다
-> '#'으로 시작하면 주석문으로 인식한다
-> 대상 리스트들의 나열은 스페이스나 콤마(,)로 구분한다
- tcp_wrapper에 의해 접근제어(허용 또는 차단)가 된 후에는 그 기록을 /var/log/secure
파일에 남기게 된다
# ntsysv
- ntsysv와 chkconfig는 방법이 조금 다를 뿐 목적하는바가 같다
- 사용법과 실행결과에 조금씩의 차이는 있으나 부팅시에 자동실행할 서비스들을 관리하는
점에서는 같은 목적을 가진 도구이다
- GUI 환경에서 사용하고 있다면 "system-config-services"를 실행하면 동일하게 사용할 수
있다
- ntsysv는 리눅스의 부팅시 각 부팅레벨에 따라서 실행시키거나 실행시키지 않을 서비스들을
설정하는 유틸리티이다
- 0번부터 6번까지의 시스템부팅레벨에 따라서 부팅시에 자동실행 할 여러가지 서비스들에
대한 실행 여부를 설정할 수 있다
- /usr/sbin/ntsysv를 실행하면 실행이 되지만 setup 유틸리티를 실행하여 "System services"
항목을 선택하여 실행할 수도 있다
- ntsysv를 실행하면 "Services" 설정창이 뜨게 되며 시스템 부팅시에 자동실행할 여러가지
서비스들에 대해 설정하는 것이 목적이다
-> ntsysv를 실행한 후에 각 서비스의 앞에 있느 [ ]탭을 빈공간으로 두면 해당
서비스를 부팅시 시작하지 않으며 [*]와 같이 해당서비스를 선택해두면 부팅시에
그 서비스를 자동실행한다
- 개별 서비스들에 간략한 도움말을 ntsysv 실행창에서 확인할 수 있으며 도움말을 보기위해선
'F1' 키를 누르면 된다
- ntsysv를 실행하였을 경우에 현재부팅레벨로 다시 부팅할 경우에 자동 실행할 서비스들을
설정하지만 '--level' 옵션을 이용하여 특정 런레벨로 부팅시 자동으로 실행할 서비스를
설정할 수 있다
형식 : ntsysv --level 3
-> 여러개의 런레벨을 설정할시에 '35' 처럼 런레벨을 설정한다
# chkconfig
- ntsysv와 chkconfig는 부팅시에 자동으로 실행할 각종 서비스들을 설정하는 유틸리티이다
- chkconfig는 /etc/rc.d/rcN.d의 각 디렉토리에 있는 S로 시작하는 링크파일과 K로 시작하는
링크파일을 생성/삭제함으로써 부팅시에 자동 실행할 서비스들을 결정할 수 있다
- '--list' 옵션을 이용하여 ckhconfig로 관리되는 자동실행 서비스 리스트들을 확인한다
# chkconfig --list | more
NetworkManager 0:off 1:off 2:on 3:off 4:on 5:off 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:off 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
-> on은 활성화를 의미하는 것으로 해당 런레벨로 부팅시 자동실행 시키며
off는 비활성화를 의미하는 것으로 해당 런레벨로 부팅시 자동실행하지 않는다
- '--add'로 지정한 서비스를 chkconfig 관리항목에 추가한다
# chkconfig --add httpd
# chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-> '--add'로 서비스를 추가하면 /etc/rc.d/rcN.d 디렉토리에 httpd 링크 파일이
생성된다
- '--del'로 지정한 서비스를 chkconfig 관리항목에서 제거한다
# chkconfig --del httpd
# chkconfig --list | grep httpd
-> '--del'로 서비스를 제거하면 /etc/rc.d/rcN.d 디렉토리에 httpd 링크 파일이
삭제된다
- 'on'으로 서비스를 2, 3, 4, 5 런레벨에서 자동실행 설정을 한다
# chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig httpd on
# chkconfig --list | grep httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
-> 런레벨을 지정하지 않으면 기본적으로 2,3,4,5 런레벨을 의미한다
- 'off'로 서비스를 2, 3, 4, 5 런레벨에서 자동실행을 해제할 수 있다
# chkconfig --list | grep httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# chkconfig httpd off
# chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
- '--level'로 해당 런레벨에서 자동실행을 설정 해제 할 수 있다
# chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig --level 3 httpd on
# chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:on 4:off 5:off 6:off
# chkconfig --level 45 httpd on
# chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
# chkconfig 와 ntsysv, xinetd, /etc/rc.d/rcN.d 파일의 상관 관계
- chkconfig에서 특정 서비스의 ON 의미
-> ntsysv에서 *설정이 되어 부팅시 자동 실행되도록 설정된다
-> /etc/rc.d/rcN.d에서 S로 시작하는 파일이 생성된다
-> xinetd에 속한 서비스라면 해당파일내의 disable 항목이 no로 설정된다
- chkconfig에서 특정 서비스의 OFF 의미
-> ntsysv에서 *설정이 제거되어 부팅시 자동실행되지 않게된다
-> /etc/rc.d/rcN.d 에서 K로 시작하는 파일이 생성된다
-> xinetd에 속한 서비스라면 해당파일내의 disable 항목이 yes로 설정된다
- chkconfig에서 특정 서비스의 add 의미
-> /etc/rc.d/rcN.d에서 해당 서비스의 링크파일이 생성된다
(S로 시작하는 링크파일)
-> ntsysv의 리스트 항목에 해당 서비스 항목이 생성된다
- chkconfig에서 특정 서비스의 del 의미
-> /etc/rc.d/rcN.d에서 해당 서비스의 링크파일이 삭제된다
-> ntsysv의 리스트 항목에 해당 서비스 항목이 삭제된다
# /etc/services 파일
- 리눅스 서버에서 사용하는 모든 포트들에 대한 정의가 설정되어 있다
- 파일에 설정되는 서비스 포트들의 형식
서비스이름 포트/사용프로토콜유형 별칭
-> 서비스이름
=> 설정되는 포트에 대한 서비스의 이름
-> 포트/프로토콜
=> 지정된 서비스에서 사용될 포트번호와 사용할 프로토콜유형
=> 사용되는 포트들은 /etc/protocols란 파일에 정의되어
있으며 프로토콜유형은 일반적으로 tcp와 udp등이 사용된다
=> 사용될 포트번호는 1024번까지는 시스템에서 이미 사용예약이 되어
있으므로 관리자가 만들어 사용할 포트가 있다면 이 번호 이상되는
포트번호를 지정하여 사용해야한다
-> 별칭
=> 지정된 "서비스이름" 외에 다른 이름을 사용할 수 있도록 한다
# cat /etc/services | more
# /etc/services:
# $Id: services,v 1.44 2008/04/07 21:30:33 pknirsch Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
# http://www.iana.org/assignments/port-numbers
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
#
# service-name port/protocol [aliases ...] [# comment]
tcpmux 1/tcp # TCP port service multiplexer
tcpmux 1/udp # TCP port service multiplexer
rje 5/tcp # Remote Job Entry
rje 5/udp # Remote Job Entry
echo 7/tcp
JSP CENT OS 5 세팅법
#########################################################
tomcat + apache + java + php + mysql + zendoptimizer 설치
#########################################################
http://jakarta.apache.org/site/downloads/
http://archive.apache.org/dist/tomcat/
#########################################################
mysql-4.0.27.tar.gz
httpd-2.0.53.tar.gz
php-4.4.2.tar.gz
jdk-1_5_0_04-linux-i586.bin
jakarta-tomcat-5.0.28.tar.gz
jakarta-tomcat-connectors-jk-1.2.6-src.zip
mysql-connector-java-5.0.6.tar.gz
######################################################
1. mysql 설치
######################################################
tar xvfpz mysql-4.0.27.tar.gz
groupadd mysql
useradd -g mysql -M mysql -s /sbin/nologin
-4.1미만
./configure \
--prefix=/usr/local/mysql --localstatedir=/db \
--enable-assembler \
--with-thread-safe-client --with-mysqld-user="mysql" \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \
--with-readline --without-debug \
--without-docs --without-bench \
--with-charset=euc_kr \
--without-innodb # innodb를 비활성화려면 추가.
-4.1이상
./configure \
--prefix=/usr/local/mysql --localstatedir=/db \
--enable-assembler \
--with-thread-safe-client --with-mysqld-user="mysql" \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \
--with-readline --without-debug \
--without-docs --without-bench \
--with-charset=euckr
make && make install
환경설정을 다시해야할 경우 make distclean 실행
ln -s /usr/local/mysql/bin/mysql /usr/bin/
ln -s /usr/local/mysql/bin/mysqldump /usr/bin/
ln -s /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
vi /root/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
BASH_ENV=$HOME/.bashrc
USERNAME="root"
vi /etc/profile
pathmunge /usr/local/mysql/bin
패스워드 지정
/usr/local/mysql/bin/mysqladmin -u root password "암호"
####################################################
apache 설치
####################################################
export CFLAGS="${CFLAGS} -DEAPI -DHARD_SERVER_LIMIT=1024 -DDEFAULT_SERVER_LIMIT=1024"
tar xvfpz httpd-2.0.53.tar.gz
./configure --prefix=/usr/local/apache --enable-rewrite=shared --enable-info=static --enable-so --enable-ssl --with-ssl=/usr --enable-mods-shared=ssl
make && make install
-----------------------------------------------------------------
#ServerName www.example.com:80 ==> #제거후 domain name으로 수정하거나 localhost로 수정
ex) ServerName localhost:80
AddDefaultCharset ISO-8859-1 ==> AddDefaultCharset utf8또는 euc_kr로 수정
ex)
AddDefaultCharset euc_kr
-----------------------------------------------------------------
cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S85httpd
ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd
/etc/rc.d/init.d/httpd start
########################################################
php설치
########################################################
./configure \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-freetype-dir \
--with-png-dir \
--with-gdbm \
--with-db \
--with-gd \
--with-zlib \
--with-iconv \
--with-mbstring \
--enable-track-vars=yes \
--with-mod-charset \
--with-language=korean \
--with-charset=euc_kr \
--disable-debug \
--with-xml \
--enable-inline-optimization \
--enable-memory-limit # 사용자 개별 limit 적용하려면 추가.
make && make install
cp php.ini-dist /usr/local/lib/php.ini
vi /usr/local/apache2/conf/httpd.conf
-------------------------------------------------------
LoadModule php4_module lib/apache/libphp4.so 확인(php4)
LoadModule php5_module modules/libphp5.so 확인(php5)
DirectoryIndex 에 다음사항을 추가
DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php3 index.phtml index.cgi index.jsp
PHP 확장 타입 추가
AddType application/x-httpd-php .php .php3 .htm .html .phtml .inc .ph .jsp
AddType application/x-httpd-php-source .phps
cgi 실행 주석제거, pl추가
AddHandler cgi-script .cgi .pl
<directory /home/> 정책추가
<Directory /home/>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
Deny from env=go_out
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
로그파일 설정(정책 : error_log만 설정)
ErrorLog /usr/local/apache/logs/error_log
-->
ErrorLog /log/httpd/error_log
로 경로변경
CustomLog /log/httpd/access_log common
디렉토리 뷰 삭제(index)
<Directory "/usr/local/apache/htdocs">
Options FollowSymLinks MultiViews
모든 디렉토리에 index를 지워준다.
------------------------------------------------------
php.ini 설정
------------------------------------------------------
vi /usr/local/lib/php.ini
register_globals = Off -> On
allow_url_fopen = Off
upload_max_filesize = 20M
------------------------------------------------------
/usr/local/apache2/bin/apachectl configtest
아파치 문법 테스트
[참고] 아파치 가동시 아래와 같은 에러가 발생할 경우
Syntax error on line 232 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/modules/libphp5.so into server: cal/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission
오류에 대한 해결 방법
vi /etc/sysconfig/selinux
SELINUX=disable
하고 재부팅한다
######################################################
Zend Optimizer 설치
https://www.zend.com에서 Zend 최신버전을 다운
php 5.x대는 Zend 3.2이상에서만 지원된다.
######################################################
cd /usr/local/src
tar zxvf ZendOptimizer-2[1].1.0b-linux_glibc21-i386.tar.gz
cd ZendOptimizer-2.1.0b-linux_glibc21-i386
./install.sh
계속 Enter
########################################################
java설치
########################################################
jdk-1_5_0_04-linux-i586.bin을 다운 받는다.
chmod 755 jdk-1_5_0_04-linux-i586.bin
./jdk-1_5_0_04-linux-i586.bin
ln -s /usr/local/src/jdk1.5.0_04 /usr/local/java
vi /etc/profile
설정
---------------------------------
APACHE2_HOME=/usr/local/apache
JAVA_HOME=/usr/local/java
PATH=$PATH:$JAVA_HOME/bin:$APACHE2_HOME/bin
export PATH
를 맨위에 추가시켜 준다.
---------------------------------
source /etc/profile
변경된 설정을 시스템에 적용
java를 실행
옵션들이 보이면 설치가 성공한것임
##################################################
tomcat설치
##################################################
jakarta-tomcat-5.0.28.tar.gz
tar xvfpz jakarta-tomcat-5.0.28.tar.gz
ln -s /usr/local/src/jakarta-tomcat-5.0.28 /usr/local/tomcat
cd /usr/local/tomcat/bin
./catalina.sh start or ./startup.sh
http://localhost:8080또는 http://설치한주소:8080
정상적으로 tomcat이 작동되고 있다면 브라우저에 tomcat관련 문서가 나온다.
----------------------------
tomcat shutdown
./catalina.sh stop
./shutdown.sh
----------------------------
vi /etc/profile
----------------------------
CATALINA_HOME=/usr/local/tomcat
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$APACHE2_HOME/bin
export PATH
----------------------------
----------------------------
APACHE2_HOME=/usr/local/apache
JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/tomcat
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$APACHE2_HOME/bin
export JAVA_HOME
export CATALINA_HOME
export APACHE2_HOME
export PATH
JAVA_HOME이 정의되지 않았다고 나오고 실행이 안되면
위와 같이 전부 export해주면 해결됨
실행이 되면 상관없음
----------------------------
source /etc/profile
현재 tomcat이 운영중이라면 shutdown하고 다시 실행하자
catalina.sh stop
catalina.sh start
----------------------------
vi /etc/rc.d/init.d/tomcat 실행 스크립트
--------------------------------------------------------------------
#!/bin/sh
TOMCAT_PROG=tomcat
# if TOMCAT_USER is not set, use tomcat like Apache HTTP server
if [ -z "$TOMCAT_USER" ]; then
TOMCAT_USER="root"
fi
RETVAL=0
# start and stop functions
start() {
echo -n "Starting tomcat: "
su -l $TOMCAT_USER -c '/usr/local/tomcat/bin/startup.sh'
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat
return $RETVAL
}
stop() {
echo -n "Stopping tomcat: "
su -l $TOMCAT_USER -c '/usr/local/tomcat/bin/shutdown.sh'
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/tomcat /var/run/tomcat.pid
rm -rf /usr/local/jakarta-tomcat/work/*
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
# Ugly hack
# We should really make sure tomcat is stopped before leaving stop
sleep 2
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $RETVAL
--------------------------------------------------------------------
이렇게 스크립트를 만들어 놓으면 다음부터는
톰캣을 시작할때 명령어 하나면 쳐주면 된다.
시작
service tomcat start
중지
service tomcat stop
참고)데몬 실행순서
톰캣이 기동된후 아파치가 실행되어야 한다.
########################################################
mod_jk 설치하기
mod_jk2는 2004년부터 공식적으로 지원을 중단해서
최신버전 톰캣에서는 적용되지 않는다.
따라서 현재 최신 버전까지 모두 지원되고 있는
mod_jk를 이용해서 톰캣과 아파치를 연결한다.
mod_jk는 가능한 최신버전을 깔아준다.
최신버전 다운
http://tomcat.apache.org/download-connectors.cgi
########################################################
unzip jakarta-tomcat-connectors-jk-1.2.6-src.zip
./buildconf.sh
./configure --with-apxs2=/usr/local/apache/bin/apxs
make && make install
--------------------------------------------------------------------
mod_jk.so 가 /usr/local/apache2/modules 디렉토리 안에 있고, 권한은 755로 설정되어있는지 확인한다.
--------------------------------------------------------------------
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
아파치를 톰캣에 연결하기
(최중요 부분)
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
--------------------------------------------------------------------
아파치와 톰캣을 연결해 주기 위해 설정해야 하는 파일은
세가지이다.
workers.properties
mod_jk.conf
httpd.conf
--------------------------------------------------------------------
1. workers.properties
/usr/local/apache2/conf 디렉토리에 workers.properties
라는 이름의 파일을 만들고 아래의 내용을 입력한 후 저장한다.
--------------------------------------------------------------------
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
ps=/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
--------------------------------------------------------------------
참고
cp /usr/local/src/tomcat-connectors-1.2.23-src/conf/workers.properties /usr/local/apache2/conf/
처럼 복사해서 설정만 바꿔줘도 된다.
2. mod_jk.conf
/usr/local/apache2/conf 디렉토리에 mod_jk.conf
라는 이름의 파일을 만들고 아래의 내용을 입력한 후 저장한다.
--------------------------------------------------------------------
JkWorkersFile /usr/local/apache/conf/workers.properties
JkLogFile /log/jk/mod_jk.log
JkLogLevel warn
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkRequestLogFormat "%w %V %T"
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /servlet ajp13
JkMount /WEB-INF/* ajp13
JkMount /WEB-INF ajp13
JkMount /jsp-examples/* ajp13
JkMount /jsp-examples ajp13
--------------------------------------------------------------------
3. httpd.conf
vi /usr/local/apache2/conf/httpd.conf
제일 밑에
include "/usr/local/apache2/conf/mod_jk.conf"
추가해주고, 아파치 재 시작.
http://Web_server_name_or_IP에 접속해서 성공하면 연결성공.
http://Web_server_name_or_IP/jsp-examples
http://Web_server_name_or_IP/servlets-examples
도 확인해 본다.
########################################################
가상도메인 설정하기
httpd.conf, virtualhost.conf server.xml
이 3파일이 필요하다.
########################################################
1.httpd.conf 편집
NameVirtualHost 222.239.223.109
vi /usr/local/apache2/conf/httpd.conf
제일 아래에
include "/usr/local/apache/conf/virtualhost.conf"
추가해 준다.
2.virtualhost.conf 편집
vi /usr/local/apache/conf/virtualhost.conf
<VirtualHost 222.239.223.109>
ServerAdmin webmaster@aaa.com
DocumentRoot /home/aaa.com
ServerName aaa.com
ServerAlias www.aaa.com
ErrorLog /log/httpd/aaa-error_log
CustomLog /log/httpd/aaa-access_log common
JkLogFile /log/jk/aaa-jk.log
JkLogLevel warn
JkMount /*.jsp ajp13
</VirtualHost>
※주의
/log/httpd/
/log/jk
폴더는 만들어 주어야 한다.
3. server.xml 편집
cd /usr/local/tomcat/conf
vi server.xml
제일 아래로 이동
--------------------------------------------------------------------
<Host name="aaa.com" debug="0" appBase="/home/aaa.com/public_html">
<Alias>www.aaa.com</Alias>
</Host>
--------------------------------------------------------------------
cd /usr/local/tomcat/conf/Catalina
추가할 도메인 이름으로 폴더를 하나를 만든다.
mkdir aaa.com
cd aaa.com
vi ROOT.xml
-----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/home/aaa.com" privileged="true" reloadable="true">
</Context>
------------------------------------
docBase에 서비스 받고자 할 디렉토리를 써준다.
<?xml version='1.0' encoding='utf-8'?>
<Context workDir="work/Catalina/jy.com/_" path="/" displayName="ShoppingShop" docBase="" useNaming="false" reloadable="true">
<Resource type="javax.sql.DataSource" description="Oracle DB Connection" auth="Container" name="jdbc/myoracle"/>
</Context>
#######################################################
Mysql-Connector-Java(JDBC셋업)
#######################################################
tar xvfpz mysql-connector-java-5.0.6.tar.gz
chown -R root.root mysql-connector-java-5.0.6
1) java에 class file 등록하기
cp mysql-connector-java-5.0.6-bin.jar /usr/local/java/jre/lib/ext/.
(물론 /usr/local/java는 $JAVA_HOME로 등록이 되어 있어야 한다.)
2) tomcat에 class file 등록
cp mysql-connector-java-5.0.6-bin.jar /usr/local/tomcat/common/lib/.
(물론 /usr/local/tomcat은 $CATALINA_HOME에 등록되어 있어야 한다.)
------------------------------------
vi /etc/profile
아랫부분을 추가한다
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/ext/mysql-connector-java-3.1.13-bin.jar:/usr/local/tomcat/common/lib:servlet-api.jar
export CLASSPATH
------------------------------------
source /etc/profile
cd $JAVA_HOME/bin 으로 가서,
./javap com.mysql.jdbc.Driver 실행후
------------------------------------------------------------------------
Compiled from "Driver.java"
public class com.mysql.jdbc.Driver extends com.mysql.jdbc.NonRegisteringDriver implements java.sql.Driver{
public com.mysql.jdbc.Driver() throws java.sql.SQLException;
static {};
}
------------------------------------------------------------------------
라는 메시지가 뜨면 정상
------------------------------------------------
jdbc드라이버를 이용한 java와 mysql의 연동 테스트
------------------------------------------------
아래 내용을 저장
vi jdbc.java
------------------------------------------------------------------------
import java.sql.*;
class jdbc {
public static void main(String argv[]) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("jdbc driver load success");
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
try {
String url = "jdbc:mysql://127.0.0.1:3306/mysql";
Connection con = DriverManager.getConnection(url,"root","패스워드");
System.out.println("mysql sucess");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select user from user where user='root'");
System.out.println("Got result:");
while(rs.next()) {
String no= rs.getString(1);
String tblname = rs.getString(1);
System.out.println(" no = " + no);
System.out.println(" tblname= "+ tblname);
}
stmt.close();
con.close();
} catch(java.lang.Exception ex) {
ex.printStackTrace();
}
}
}
------------------------------------------------------------------------
저장하고 나온다.
javac jdbc.java 컴파일해주고
java jdbc 실행시켜주면
아래 메세지가 나오면 성공
jdbc driver load success
mysql sucess
Got result:
no = root
tblname= root
no = root
tblname= root
---------------
jsp 연동 테스트
---------------
/usr/local/tomcat/webapps/ROOT 으로 가서,
vi mysql.jsp
------------------------------------------------
<%@ page import="java.sql.*"
contentType="text/html;charset=euc-kr"%>
<%
String DB_URL = "jdbc:mysql://localhost:3306/mysql";
String DB_USER = "root";
String DB_PASSWORD= "패스워드";
Connection conn;
Statement stmt;
try {
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection(DB_URL, DB_USER,
DB_PASSWORD);
stmt = conn.createStatement();
conn.close();
out.println("MySQL 연결 성공");
} catch(Exception e)
{out.println(e);}
%>
------------------------------------------------
Mysql 연결 성공
이라는 글자가 나오면 성공
마지막으로
vi /usr/local/tomcat/conf/server.xml
이부분으로 찾아서
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="8080" maxHttpHeaderSize="8192"
Connector port="8080" ---> Connector port=""
로 해주어서 8080포트로의 접속을 막아준다.
--------------------------------------------------
/etc/profile 최종
--------------------------------------------------
APACHE2_HOME=/usr/local/apache
JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/tomcat
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$APACHE2_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/ext/mysql-connector-java-5.1.7-bin.jar:/usr/local/tomcat/common/lib:$CATALINA_HOME/common/lib/servlet-api.jar
export JAVA_HOME=/usr/local/java
export CATALINA_HOME="/usr/local/tomcat"
export APACHE2_HOME
export PATH
export CLASSPATH
export LANG="ko_KR.euc-KR"
리눅스 iptables 사용법:
iptables는 리눅스를 설치하면 보통 기본적으로 설치되므로
설치방법은 따로 설명하지 않으며 예제 위주로 간단히 사용법을 알아 보겠습니다.
아래 명령어는 모두 root권한으로 실행해야 됨을 미리 알려 드립니다.
1. 리눅스에서 부팅시 자동으로 iptables 서비스 시작하기:
아래 2가지 방법 중에 하나로 보통 서비스를 자동실행하도록 등록한다.
1) 쉘창에서 3, 5 모드에서 재부팅시 자동으로 iptables 서비스가 시작되도록 하는 명령어
# chkconfig --level 35 iptables on
--> 3: multi console 모드 , 5: X윈도우즈 모드
2) ntsysv 에서 iptalbes 서비스 체크
# ntsysv
2. 먼저 iptables 의 옵션은 아래와 같다.
iptables 에는 3가지 chain 이 존재: INPUT, OUTPUT, FORWARD
1) 필터링 사슬 전체 조작 옵션
-N : 새로운 사슬 만들기
-L : 사슬의 규칙을 보여주기
-X : 비어 있는 사슬을 없애기
-P : 사슬의 규칙을 바꾸기
-F : 사슬에 있는 모든규칙을 지우기
2) 사슬의 규칙을 조작하는 옵션
-A : 사슬에 새로운 규칙을 추가하기(맨아래에 추가됨)
-I : 사슬에 규칙을 삽입하기(맨앞쪽에 삽입됨)
-R : 사슬에 있는 규칙을 다른 규칙과 교환하기
-D : 사슬에 있는 규칙을 없애기
3) 규칙을 정의하는데 필요한 하위옵션
-s : 출발지 주소
-d : 목적지 주소
--sport : 출발지(source) 포트번호
--dport : 목적지 포트번호
-p : 프로토콜(tcp, udp, icmp ..)
-i : 패킷이 들어오는 네트워크 인터페이스(inbound interface)
-o : 패킷이 나가는
-f : 분절된(fragment) packet
-j : 규칙을 지정(jump)
3. 기본정책을 ACCEPT로 설정하는 법:
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
4. 현재 자신의 방화벽 규칙을 볼 수 있는 명령:
# iptables --list 또는 iptables -L
처음으로 명령을 실행하면 아래와 같이 아무 정책도 설정되어 있지 않는 것을 볼 수 있다.
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (0 references)
5. 규칙 추가 후에 저장하기 :
현재 규칙을 저장하는 명령어는 아래와 같다.
# /etc/rc.d/init.d/iptables save
-> /etc/sysconfig/iptables 에 저장됨
위 명령어로 저장후에 실제 저장된 파일을 확인해 보면 아래와 같이 아무 설정이 안된것을 알 수 있다.
# vi /etc/sysconfig/iptables
# Generated by iptables-save v1.3.5 on Thu Jun 25 18:25:02 2009
*filter
:INPUT ACCEPT [11:764]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [320:65885]
:RH-Firewall-1-INPUT - [0:0]
COMMIT
# Completed on Thu Jun 25 18:25:02 2009
이제 간단한 규칙을 추가해 보자.
예를 들어 ip= 192.168.0.111 를 입력단에서 패킷을 drop하는 규칙을 추가하고 현재 정책을 확인한다.
# iptables -A INPUT -s 192.168.0.111 -j DROP
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 192.168.0.111 anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (0 references)
이제 저장을 한 후에 저장된 파일을 확인해 보면 아래와 같이 규칙이 저장되어 있는것을
볼 수 있다.
# /etc/rc.d/init.d/iptables save
# vi /etc/sysconfig/iptables
# Generated by iptables-save v1.3.5 on Mon Dec 7 14:55:45 2009
*filter
:INPUT ACCEPT [6561:820283]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5984:1470873]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -s 192.168.0.111 -j DROP <--- 이부분이 새로 추가한 규칙
COMMIT
# Completed on Mon Dec 7 14:55:45 2009
6. 현재 iptables 규칙을 초기화 하기:
# iptables -F
위 명령어를 실행하고 정책을 보면 아래와 같이 초기화 되어 있는 것을 알 수 있다
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (0 references)
그러나 실제 저장되어 있는 내용을 보면 아래와 같이 초기화가 되어 있지 않는 것을 볼 수 있다.
# vi /etc/sysconfig/iptables
# Generated by iptables-save v1.3.5 on Mon Dec 7 14:55:45 2009
*filter
:INPUT ACCEPT [6561:820283]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5984:1470873]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -s 192.168.0.111 -j DROP <--- 이부분이 새로 추가한 규칙
COMMIT
# Completed on Mon Dec 7 14:55:45 2009
즉, 초기화 명령어는 현재상태에만 적용되며,
iptables 서비스가 재시작되거나 서버가 리부팅되면 /etc/sysconfig/iptables 에 저장되었던
규칙이 다시 적용된다는 것을 알 수 있다.
7. 정책을 빠르게 수정하여 적용하는 법 :
6 에서와 같이 정책을 초기화 하고 서비스를 재시작해야 하는 방법은 상당히 비효율적인것을 알 수 있다.
따라서 현재 적용되는 정책을 특정파일(날짜별)로 저장해서 수정사항이 있다면
바로 그 저장된 파일을 수정한후 바로 정책에 적용하는 방법은 아래와 같다.
1) 현재 적용되고 있는 정책을 읽기 가능한 텍스트파일 형태로 저장하는 명령어는 아래와 같다.
# iptables-save > /root/iptable_091207.save
확인해 보면 똑같이 저장되어 있는것을 볼 수 있다.
# cat /root/iptable_091207.save
# Generated by iptables-save v1.3.5 on Mon Dec 7 14:55:45 2009
*filter
:INPUT ACCEPT [6561:820283]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5984:1470873]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -s 192.168.0.111 -j DROP <--- 이부분이 새로 추가한 규칙
COMMIT
# Completed on Mon Dec 7 14:55:45 2009
2) 이제 저장되어 있는 iptables 파일을 바로 편집기로 수정 한후 저장한다.
# vi /root/iptable_091207.save
# Generated by iptables-save v1.3.5 on Mon Dec 7 14:55:45 2009
*filter
:INPUT ACCEPT [6561:820283]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5984:1470873]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -s 192.168.0.199 -j DROP <--- 편집기에서 111 -> 199 로 변경
-A INPUT -s 222.222.222.222 -j DROP <--- 편집기에서 새로 정책 추가
COMMIT
# Completed on Mon Dec 7 14:55:45 2009
3) 저장된 정책을 바로 적용하는 명령어는 다음과 같다.
# cat /root/iptable_091207.save | iptables-restore
확인해 보면 편집기로 수정했던 부분이 아래와 같이 바로 iptables 정책이 적용되어 있는 것을 알 수 있다
# iptables -L
# Generated by iptables-save v1.3.5 on Mon Dec 7 14:55:45 2009
*filter
:INPUT ACCEPT [6561:820283]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5984:1470873]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -s 192.168.0.199 -j DROP <--- 편집기에서 111 -> 199 로 변경했던 부분
-A INPUT -s 222.222.222.222 -j DROP <--- 편집기에서 새로 정책 추가했던 부분
COMMIT
# Completed on Mon Dec 7 14:55:45 2009
8. iptables 사용예 :
마지막으로 사용예를 몇개 알아보면 아래와 같다.
예1) 소스 ip가 192.168.0.111 인 접속의 모든 접속 포트를 막아라.
# iptables -A INPUT -s 192.168.0.111 -j DROP
예2) INPUT 사슬에 출발지 주소가 127.0.0.1(-s 127.0.0.1) 인 icmp 프로토콜(-p icmp) 패킷을 거부(-j DROP)하는
정책을 추가(-A)하라
# iptables -A INPUT -p icmp -s 127.0.0.1 -j DROP
예3) INPUT 사슬에 목적지 포트가 23번(--dport23)인 tcp 프로토콜(-p tcp) 패킷을 거부하는(-j DROP)규칙을
추가(-A) 하라.
# iptables -A INPUT -p tcp --dport 23 -j DROP
예4) INPUT 사슬에 목적지 포트 번호가 80번(--dport 80)인 tcp 프로토콜(-p tcp)패킷을 받아들이는(-j ACCEPT)
규칙을 추가(-A) 하라
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
예5) INPUT 사슬에 목적지 포트번호가 1023번 보다 작은 모든 포트(--dport :1023)인 tcp프로토콜(-p tcp)패킷을
거부하는(-j DROP)규칙을 추가(-A)하라
# iptables -A INPUT -p tcp --dport :1023 -j DROP
예6) ftp포트를 열어라
# iptables -I INPUT -p tcp --dport 21 -j ACCEPT
예7) imap 서비스를 방화벽에서 열어라
# iptables -I INPUT -s 192.168.0.0/255.255.255.0 -p udp --dport 143 -j ACCEPT
예8) 웹서버 방화벽 열어라
# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
예9) 웹서버 포트 80 -> 8880으로 교체하라( 웹서비스 포트 변경시 /etc/services 에서도 변경 해줘야 함)
# iptables -R INPUT 2 -p tcp --dport 8880 -j ACCEPT
예10) domain-access_log 파일에 있는 모든 ip의 모든 접속 포트를 막아라(DOS공격 방어시 사용)
# cat domain-access_log |awk '{print $1}'|sort |uniq |awk '{print "iptables -A INPUT -s "$1" -j DROP"}'|/bin/bash
기동
/etc/init.d/iptables start
중지
/etc/init.d/iptables stop
다음 네이버 자동로그인 경로 입니다.
아래 주소를 즐겨찾기 추가 하시고 아이디 비밀번호를 변경후 클릭하시면 자동 로그인 됩니다.
네이버 :
https://nid.naver.com/nidlogin.login?url=http://www.naver.com&svctype=2&id=아이디&password=비밀번호
느낌도 그렇지만 참 가볍다.
그중 Outlook Express 삭제 하는 bat 파일 입니다.
아웃룩 익스프레스를 시스템에서 완벽하게 삭제하는 방법입니다.
저도 메일계정이 있긴 하지만 포워딩 상태로 웹에서 메일을 확인하며, 쓸데없는 프로그램이 컴퓨터에서 상주하는걸
좋아하는 편이아니라서 과감히 삭제했습니다.
시스템 파일은 공유된 파일이 있기때문에 삭제하지는 않았습니다.
배치파일로 저장후 사용하세요..
==================================================================================================
reg delete "HKEY_LOCAL_MACHINE\Software\Microsoft\Outlook Express" /va /f
reg delete "HKEY_LOCAL_MACHINE\Software\Microsoft\WAB" /va /f
reg delete "HKEY_CURRENT_USER\Identities" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Outlook Express" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\WAB" /va /f
reg delete "HKEY_LOCAL_MACHINE \Software\Microsoft\Active Setup\Installed Components\{44BBA840-CC51-11CF-AAFA-00AA00B6015C}" /va /f
reg delete "HKEY_LOCAL_MACHINE \Software\Microsoft\Active Setup\Installed Components\{7790769C-0471-11D2-AF11-00C04FA35D02}" /va /f
regsvr32 /s /u Inetcomm.dll
regsvr32 /s /u Msoeacct.dll
regsvr32 /s /u Msoert2.dll
regsvr32 /s /u Msoe.dll
regsvr32 /s /u Msoeres.dll
regsvr32 /s /u Oeimport.dll
regsvr32 /s /u Oemiglib.dll
regsvr32 /s /u Wabfind.dll
regsvr32 /s /u Wabimp.dll
regsvr32 /s /u Csapi3t1.dll
regsvr32 /s /u Directdb.dll
regsvr32 /s /u Wab32.dll
regsvr32 /s /u Wab32res.dll
RD /S /Q "%programfiles%\Outlook Express"
RD /S /Q "%programfiles%\Common Files\Microsoft Shared\Stationery"
RD /S /Q "%allusersprofile%\Local Settings\Application Data\Identities"
RD /S /Q "%userprofile%\Local Settings\Application Data\Identities"
RD /S /Q "%allusersprofile%\Application Data\Identities"
RD /S /Q "%userprofile%\Application Data\Identities"
RD /S /Q "%allusersprofile%\Local Settings\Application Data\Address Book"
RD /S /Q "%userprofile%\Local Settings\Application Data\Address Book"
RD /S /Q "%allusersprofile%\Application Data\Address Book"
RD /S /Q "%userprofile%\Application Data\Address Book"
==================================================================================================
아 추가로 넷 미팅 삭제 방법도 있습니다.
삭제하는법은 시작-실행에서 아래텍스트 입력 또는 cmd 모드창에서 입력합니다.
rundll32 advpack.dll,LaunchINFSection C:\WINDOWS\inf\msnetmtg.inf,NetMtg.Remove
NATION - 네이트온 4.0.9.8 (1437) 광고 제거 프로그램 입니다.
NATEON.zip 이 파일은 그냥 압축한 파일입니다. 네이트온 종료 시키고 C:\Program Files\NATEON
경로에 압축을 풀면 됩니다. 혹시 몰라 자동 압축 풀리도록 설정해 놓았으니.
잘 이해 안되는 분들은 네이트온 종료 시키고 nate4.0.9.8(1437).exe 파일을 그냥 실행 시켜 주면 됩니다.
네이트 로그인 후 핫클립 이나 네이트온 메인 화면이 뜨는걸 해결 하는 방법을 알려 드리도록 하겠습니다.
먼저 네이트온 설정에서 보기 클릭 핫클립 보기 선택 하시고.
익스플로러 설정에서 사이트 차단 쪽에 팝업 URL 을 추가 하시면 해결 되네요.
테스트 해보세요 . IE6 엑서 작동 합니다. 3대 테스트 결과 정상 작동 합니다.
원격 부팅(Wake on-LAN : WOL)에 관해 관심이 많아 지고 있다. 예전에는 고급사양으로 인식되어 일부 고가의 시스템에서만 존재하였으나, 현재는 출시되는 모든 메인보드에 WOL기능이 추가되어, 원격 부팅과 원격 조정을 할 수 있게 된 것이다.
원격 부팅으로 얻을 수 있는 효과는 매우 크다. 집과 사무실에서 인터넷에 연결되어 있는 것 만으로 누구의 도움 없이 컴퓨터를 끄고 켤 수 있으며, 원격으로 안전하게 조정할 수 있는 것이다. 급기야는 대형 포탈 사이트에서 이와 비슷한 원격 부팅, 조정 서비스를 유료로 실시하고 있을 정도이다.
그럼 매력적인 WOL 기능을 구현하기 위한 사전 준비와 활용에 대해 알아보도록 하자.
0. 작동원리
Wake on-LAN 기능은 LAN 상의(WAN 상이 아님)의 PC를 원격에서 켤수 있는 기능이다. 따라서 인터넷을 통해서 원격에 있는 컴퓨터를 켤 수는 없다. 그러나 약간만 응용해도 원격에서 이 기능을 이용해서 컴퓨터를 켤 수가 있다.
1. 구현조건
■ 꺼져 있는 컴퓨터의 메인보드에서 Wake-on-LAN 기능 지원
■ 꺼져 있는 컴퓨터의 랜카드에서 Wake-on-LAN 기능 지원
■ Wake-on-LAN 기능을 지원하는 아이피 공유기
2. PC 메인보드에서의 CMOS 설정
* CMOS 설정 화면은 PC의 CMOS 종류에 따라 차이가 있을 수 있다.
PC의 전원을 켜고 자판의 [Delete] key 를 눌러주면 CMOS(보드설정 내장셋업)으로 접속하게 된다.
보통은 Power Management Setup에서 확인이 가능하나 메인보드별로 차이가 있을 수 있다.
3. LAN 카드에서의 WOL 기능 설정
WOL 설정의 경우에는 CMOS, LAN 카드 설정 ,공유기 설정이 모두 되어있어야 한다. CMOS에서 설정이 되어 있다면 랜 카드의 고급 설정 부분도 확인해야한다.
① [제어판] - [시스템]을 선택한다.
② [시스템 등록정보] 창이 나타나면, [하드웨어]탭을 선택한 후 [장치관리자] 버튼을 클릭한다.
③ [장치관리자]창이 나타나면, [네트워크 어댑터]항목을 더블클릭한 후 랜카드를 선택하여 더블클릭한다.
④ 랜카드의 등록정보 창이 나타나면, [고급] 탭에서 wol, magig frame 기능을 Enable로 변경한다. (설정방법은 랜카드마다 차이가 있다.)
⑤ [전원관리] 탭에서
전원을 절약하기 위해 컴퓨터가 이 장치를 끌 수 있음,
이 장치로 컴퓨터를 대기상태에서 빠져나오게함 (v)체크
두 항목을 v 체크한다.
3.1 LAN 카드 메이커별 설정방법
① Realtek칩셋 :
[전원관리] 탭에서
전원을 절약하기 위해 컴퓨터가 이 장치를 끌 수 있음
이 장치로 컴퓨터를 대기상태에서 빠져나오게함
관리 스테이션에서만 대기 모드 상태의 컴퓨터를 해제 시킬 수 있음
세가지 항목을 모두 '사용'에 체크한다.
② Intel칩셋 :
[고급]탭에서 프레임 설정을 Magic frame으로 설정한다.
[전원관리] 탭에서
전원을 절약하기 위해 컴퓨터가 이 장치를 끌 수 있음
이 장치로 컴퓨터를 대기상태에서 빠져나오게함
두 항목을 모두 '사용'에 체크한다.
3.2 LAN 카드 설정확인 방법
랜 카드의 WOL설정을 하게 되면, PC의 전원이 꺼져있더라도 외부의 패킷을 전달하기 위해서 랜 카드의 전원이 항상 들어와 있고 공유기의 LAN포트에는 불이 들어오게 되어있다.
4. 공유기의 WOL 기능 설정 (공유기의 메뉴얼 참조)
공유기의 Wake on LAN 설정화면에서
① [Mac] 버튼을 클릭하여 사용하는 pc의 맥주소를 입력한다.
② [Mac] 버튼을 클릭하여 하드웨어 주소를 입력하고 [켜기]를 눌러서 저장한다.
* Mac adress란 랜카드의 고유번호로 공유기에서 인식하는 번호이다.
5. 외부에서 pc를 켜는 방법
설정을 마친 후 외부에서 내부PC를 켜기 위해서는 자신의 외부ip (2xx.xxx.xxx.xxx)를 확인하고
http://2xx.xxx.xxx.xxx:8888(원격포트)로 원격접속 한후 WOL 설정 페이지에서 켤 PC를 선택하고 [켜키]를 눌러주면 된다.
6. 원격 조정
원경으로 부팅된 컴퓨터의 원격 조정은 윈도우의 원격 테스크탑 연결, Radmin 등의 프로그램을 이용한다.
명령어의 사용설명은 명령프롬프트를 열어 명령어를 입력후 /? 를 입력하면 자세한 설명이 나옵니다.
ASSOC 파일 확장명 연결을 보여주거나 수정합니다.
ATTRIB 파일 속성을 표시하거나 바꿉니다.
BREAK 확장된 CTRL+C 검사를 설정하거나 지웁니다.
BOOTCFG 부팅 로딩을 제어하기 위해 boot.ini에서 속성을 설정합니다.
CACLS 파일의 액세스 컨트롤 목록(ACL)을 표시하거나 수정합니다.
CALL 한 일괄 프로그램에서 다른 일괄 프로그램을 호출합니다.
CD 현재 디렉터리 이름을 보여주거나 바꿉니다.
CHCP 활성화된 코드 페이지의 번호를 표시하거나 설정합니다.
CHDIR 현재 디렉터리 이름을 보여주거나 바꿉니다.
CHKDSK 디스크를 검사하고 상태 보고서를 표시합니다.
CHKNTFS 부팅하는 동안 디스크 확인을 화면에 표시하거나 변경합니다.
CLS 화면을 지웁니다.
CMD Windows 명령 인터프리터의 새 인스턴스를 시작합니다.
COLOR 콘솔의 기본색과 배경색을 설정합니다.
COMP 두 개 또는 여러 개의 파일을 비교합니다.
COMPACT NTFS 분할 영역에 있는 파일의 압축을 표시하거나 변경합니다.
CONVERT FAT 볼륨을 NTFS로 변환합니다. 현재 드라이브는 변환할 수 없습니다.
COPY 하나 이상의 파일을 다른 위치로 복사합니다.
DATE 날짜를 보여주거나 설정합니다.
DEL 하나 이상의 파일을 지웁니다.
DIR 디렉터리에 있는 파일과 하위 디렉터리 목록을 보여줍니다.
DISKCOMP 두 플로피 디스크의 내용을 비교합니다.
DISKCOPY 플로피 디스크의 내용을 다른 플로피 디스크로 복사합니다.
DISKPART 디스크 파티션 속성을 표시하거나 구성합니다.
DOSKEY 명령줄을 편집하고, Windows 명령을 다시 호출하고, 매크로를 만듭니다.
DRIVERQUERY 현재 장치 드라이버 상태와 속성을 표시합니다.
ECHO 메시지를 표시하거나 ECHO를 사용 또는 사용하지 않습니다.
ENDLOCAL 일괄 파일에서 환경 변경의 지역화를 끝냅니다.
ERASE 하나 이상의 파일을 지웁니다.
EVENTQUERY 지정된 영역에 대해 이벤트 로그 항목을 표시합니다.
EXIT CMD.EXE 프로그램(명령 인터프리터)을 마칩니다.
FC 두 파일 또는 파일의 집합을 비교하여 다른 점을 표시합니다.
FIND 파일에서 텍스트 문자열을 찾습니다.
FINDSTR 파일에서 문자열을 찾습니다.
FOR 파일 집합에서 각 파일에 대해 지정된 명령을 실행합니다.
FORMAT Windows에서 사용할 디스크를 포맷합니다.
FSUTIL 파일 시스템 속성을 표시하거나 구성합니다.
FTYPE 파일 확장 연결에 사용되는 파일 형식을 표시하거나 수정합니다.
GOTO Windows 명령 인터프리터가 일괄 프로그램에서 이름표가 붙여진 줄로 이동합니다.
GPRESULT 컴퓨터 또는 사용자에 대한 그룹 정책 정보를 표시합니다.
GRAFTABL Windows가 그래픽 모드에서 확장 문자 세트를 표시할수 있게 합니다.
HELP Windows 명령어에 관한 도움말을 제공합니다.
IF 일괄 프로그램에서 조건 처리를 수행합니다.
LABEL 디스크의 볼륨 이름을 만들거나, 바꾸거나, 지웁니다.
MD 디렉터리를 만듭니다.
MKDIR 디렉터리를 만듭니다.
MODE 시스템 장치를 구성합니다.
MORE 출력을 한번에 한 화면씩 표시합니다.
MOVE 하나 이상의 파일을 한 디렉터리에서 다른 디렉터리로 옮깁니다.
OPENFILES 파일 공유에서 원격 사용자에 의해 열린 파일을 표시합니다.
PAGEFILECONFIG 페이지 파일 속성을 표시하거나 구성합니다.
PATH 실행 파일의 찾기 경로를 보여주거나 설정합니다.
PAUSE 일괄 파일의 처리를 보류하고 메시지를 보여줍니다.
POPD PUSHD 명령으로 저장된 디렉터리로 바꿉니다.
PRINT 텍스트 파일을 인쇄합니다.
PROMPT Windows 명령 프롬프트를 바꿉니다.
PUSHD 현재 디렉터리를 저장한 후 디렉터리를 바꿉니다.
RD 디렉터리를 지웁니다.
RECOVER 불량이거나 결함이 있는 디스크에서 읽을 수 있는 정보를 복구합니다.
REM 일괄 파일 또는 CONFIG.SYS에서 주석을 기록합니다.
REN 파일 이름을 바꿉니다.
RENAME 파일 이름을 바꿉니다.
REPLACE 파일을 대체합니다.
RMDIR 디렉터리를 지웁니다.
SET Windows 환경 변수를 보여주거나, 설정하거나, 지웁니다.
SETLOCAL 일괄 파일에서 환경 변경의 지역화를 시작합니다.
SC 서비스를 표시하거나 구성합니다(백그라운드 작업).
SCHTASKS 컴퓨터에서 실행할 명령과 프로그램을 예약합니다.
SHIFT 일괄 파일에서 바꿀 수 있는 매개 변수의 위치를 바꿉니다.
SHUTDOWN 컴퓨터의 로컬 또는 원격 종료를 허용합니다.
SORT 입력을 정렬합니다.
START 지정된 프로그램이나 명령을 별도의 창에서 시작합니다.
SUBST 경로를 드라이브 문자로 지정합니다.
SYSTEMINFO 특정 컴퓨터의 속성과 구성을 표시합니다.
TASKLIST 서비스를 포함한 실행 중인 모든 작업을 표시합니다.
TASKKILL 실행 중인 프로세스나 응용 프로그램을 중지합니다.
TIME 시스템 시간을 보여주거나 설정합니다.
TITLE CMD.EXE 세션에 대한 창의 창 제목을 설정합니다.
TREE 드라이브 또는 경로의 디렉터리 구조를 그래픽으로 화면에 표시합니다.
TYPE 텍스트 파일의 내용을 보여줍니다.
VER Windows 버전을 보여줍니다.
VERIFY 파일이 디스크에 올바로 쓰였는지 검증할지 여부를 지정합니다.
VOL 디스크 볼륨 이름과 일련 번호를 보여줍니다.
XCOPY 파일과 디렉터리 트리를 복사합니다.
WMIC 대화형 명령 셸 내의 WMI 정보를 표시합니다.
예를 들어서 파일이름이 있는데 이 순서대로 다시 파일명을 순서대로 붙이고 싶다면..
우선 선택 후, Ctrl+M을 누릅니다.
그리고 변경 하시면 됩니다.
애플社의 신제품 애플 타블렛(가칭. 아이패드)이 다음달에 출시된다는 소식이 들리고 있다.
루머인지 사실인지는 그때가 되봐야 알겠지만...출시된다면 사고 싶다!
아, 지름신 급발동!!!
Excel Viewer는 시스템에 MS Office가 설치되어 있지 않아도 Excel 통합 문서를 열어서 보고 인쇄할 수 있습니다.
Excel 97 뷰어 및 이전의 모든 Excel Viewer 버전을 대신하는 버전으로 Microsoft Office Excel 2007 문서 보기도 가능합니다.
Excel Viewer는 편집 기능은 없지만 MS 엑셀 파일을 완벽하게 열어 보여주고 프린트까지도 가능한 가벼운 프로그램입니다. 또한 Excel Viewer에서 다른 프로그램으로 데이터를 복사할 수도 있습니다. 그러나 데이터를 편집하거나, 통합 문서를 저장하거나, 새 통합 문서를 만들 수 없습니다.
< 지원 가능한 오피스 >
* Microsoft Office Excel 2007
* Microsoft Office Excel 2003
* Microsoft Excel 2002
* Microsoft Excel 2000
* Microsoft Excel 97
☞ 실행 또는 설치방법
다운 받은 프로그램을 실행하시어 지시에 따라 설치를 하면 됩니다.
파일크기 : 1.79 MB
Uninstaller 포함 : 지원
운영체제 : Windows 98/Me/NT/2000/XP/
엑세스 데이터베이스를 복구시켜주는 유틸리티
그 창이름을 공용대화상자라고 합니다
이상자를 공용대화상자라고 합니다 이창은 제가 변경한 후입니다
이 창에 나타나는 왼쪽의 폴더를 위 그림 처럼
자신의 입맛에 맞게 자주 쓰는 폴더를 등록시켜줍니다
Windows의 공용대화상자는 물론 MsOffice의 대화상자도 적용이 가능합니다
요렇게 생겼습니다
왼쪽이 초기 상태이구요 오른쪽처럼 등록 시켜주시면 됩니다
Offce탭에서는 MsOffice에서 사용하는 대화상자를 편집합니다
요건 Office에서 제가 등록해논 모습입니다
무설치이니 더욱 좋습니다