티스토리 툴바


분류없음 2011/05/25 19:26

11

저작자 표시
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
기억에 남길 글 2011/05/16 21:53


111

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
영어 2009/04/06 21:36
http://www.npr.org
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
영어 2009/02/03 17:33

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
영어 2009/01/06 01:35

미드 대본사이트 링크 공부좀하까~??

2007/12/24 09:27

복사 http://blog.naver.com/lej0108/110025700220

* 대본사이트

   http://www.twiztv.com/

   http://www.simplyscripts.com/tv_all.html

   http://script-o-rama.com/tvscript.shtml

 

* 24(Twenty-Foru)

  http://www.geocities.com/scripts_for_free/transcripts.html


* W.A.T(Without A Trace)

   http://www.twiztv.com/scripts/withoutatrace/


* CSI

   http://www.twiztv.com/scripts/csi/


* 그레이아나토미(Gray's Anatomy)

  http://www.tvtdb.com/greysanatomy/ 


* 길모어걸스(Gilmore Girls)

  http://www.twiztv.com/scripts/gilmoregirls/


* 내 이름은 얼(My Name Is Earl)

  http://www.twiztv.com/scripts/mynameisearl/


* 다크엔젤(Darkangel)

   http://www.darkangelfan.com/episode/


* 도슨의 청춘일기(Dawson's Creek)

  http://www.twiztv.com/scripts/dawsonscreek/


* 로스트(Lost)

   http://www.lost-tv.com/transcripts/


* 미녀마법사 사브리나(The Sabrina)

   http://www.bccnet.force9.co.uk/transcripts/


* 배틀스타 갤럭티카(BattleStar Galactica)

  http://www.twiztv.com/scripts/battlestar/


* 버피와 뱀파이어(Buffy, The Vampire Slayer)

  http://www.twiztv.com/scripts/buffy/


* 베로니카 마스(Veronica Mars)

  http://www.twiztv.com/scripts/veronicamars/


* 보스톤 리갈(Boston Legal)

   http://bostonlegal.wetpaint.com/page/Episodes

 

* 세인필드(Seinfeld)

   http://www.seinfeldscripts.com/

 

* 소프라노스(Sopranos, The)

  http://www.sopranoland.com/episodes/season1.html


* 심슨가족(The simpsons)

   http://www.snpp.com/episodes.html


* 앨리맥빌(Ally Mcbeal)-영어는 아니지만..

  http://membres.lycos.fr/nfsallymcbeal/guide/


* 앨리어스(Alias)

  http://www.twiztv.com/scripts/alias/


* 엑스파일(X-File)

   http://www.clivebanks.co.uk/X-Files%20Timeline.htm

   http://www.insidethex.co.uk/scripts.htm#transcripts


* 엘워드(L Word, The)

  http://www.l-word.com/transcripts/transcripts.html

     

* 오렌지카운티(The O.C.)

  http://www.twiztv.com/scripts/oc/


* 위기의 주부들(Desperate Housewives)

   http://desperatehousewives.ahaava.com/episodes.htm

     

* 웨스트윙(West Wing)

  http://communicationsoffice.tripod.com/index1.html

  http://www.twiztv.com/scripts/westwing/


* 참드(Charmed)

  http://www.charmedscripts.tv/scripts.htm


* 카우보이 비밥(Cowboy Bebop)

  http://westweb1.net/~resslor/

 

* 프렌즈(Friends)

  http://www.geocities.com/friends_greatestsitcom/script.htm

   

* 히어로즈(Heroes)

  http://www.kilohoku.com/heroes.html 

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
내가누구게 2008/12/23 22:55
봉사정신으로 무장한 천사형.
바른생활의 당신은 남을 챙겨주는데서 보람을 느낀다.
   또 주위환경에 더 잘 적응하기 위해서
   끊임없이 노력하고 탐구하는 스타일이다.
   남들보다 이해력은 3배, 섬세함은 2배이상.
   학교나 유치원 교사, 한의사, 애완동물 미용사,
   간호사, 심리상담 치료원, 사회사업가 등이 어울릴 듯.
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/11/27 16:36

사용자 삽입 이미지
create table 부서(부서번호 char(2) primary key, 부서명 char(20))

create table 사원(사번 char(3) primary key, 이름 char(10) not null, 주민등록번호 char(15) unique, 성별 char(2) check(성별 in ('남','여')),
     입사일자 smallint, 월급 int, 자격증갯수 smallint DEFAULT '0', 부서번호 char(2) foreign key references 부서(부서번호))


create table 자격증(사번 char(3) not null, 일련번호 smallint not null, 자격증ID char(20),
     자격증명 char(20), 취득일자 smalldatetime, 유효일자 smalldatetime, check(취득일자 < 유효일자)
     )

drop table 사원
drop table 자격증

alter table 자격증
add constraint pk_사번_일련번호 primary key(사번,일련번호)

alter table 자격증
add constraint fk_사번 foreign key(사번) references 사원(사번)


alter table 부서 alter column 부서명 char(25)

create view MYVIEW01
as
select  *
from 자격증
where 자격증명 like '%2급%'


create procedure MYPROC01
   @PARA01 nvarchar(10)
as
select *
from 사원
where 이름 like '%'+@PARA01+'%'


exec MYPROC01 '홍'


create procedure MYPROC02
 @PARA01 nvarchar(10),
 @PARA02 int
as
select avg(월급)
from 사원
group by 부서번호


create trigger MYTRIG01 on 자격증 for insert
as
declare @사번 char(3)
select @사번=사번 from inserted
update 사원 set 자격증갯수=자격증갯수+1 where 사번=@사번


create trigger MYTRIG02 on 자격증 for delete
as
declare @사번 char(3)
select @사번=사번 from deleted
update 사원 set 자격증갯수=자격증갯수-1 where 사번=@사번


update 사원 set 월급=1000 where 사번='A01'
begin tran
update 사원 set 월급=2000 where 사번='A01'
save tran savepoint
update 사원 set 월급=3000 where 사번='A01'
select 월급 from 사원 where 사번='A01'
select @@TRANCOUNT   -- a
rollback tran savepoint
select @@TRANCOUNT   -- b
select 월급 from 사원 where 사번='A01' -- c
rollback tran -- d
select 월급 from 사원 where 사번='A01' -- e
select @@TRANCOUNT



select * from 부서
insert into 부서 values('1','총무부')
insert into 부서 values('2','기획부')
select * from 사원
insert into 사원 values('A01', '전태우','890000-0000000','남',2009-01-21,3210000,3,'2')

select * from 자격증

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/11/20 17:16

use sqldb2a

select * from 부서
select * from 사원
select * from 자격증

1.

insert into 부서 values('10','영업부')
insert into 부서 values('20','관리부')
insert into 사원 values('A001','홍길동','1111','남', 0, '10',NULL)
insert into 사원 values('A002','조조','2222','남', 0, '20',NULL)

2.

begin try
begin tran
insert into 자격증 values('A001', 1, '가나01','산업기사1급', '2001/01/01',
       '2005/01/01')
update 사원 set 자격증갯수=자격증갯수+1
where 사번='A001'
commit tran
end try
begin catch
rollback tran
end catch

3.
begin try
begin tran
delete from 자격증 where 사번='A001' and 일련번호=1
update 사원 set 자격증갯수=자격증갯수-1
where 사번='A001'
commit tran
end try
begin catch
rollback tran
end catch

4.


begin try
begin tran
update 자격증 set 사번='A002' where 사번='A001' and 일련번호=1
update 사원 set 자격증갯수=자격증갯수-1 where 사번='A001'
update 사원 set 자격증갯수=자격증갯수+1 where 사번='A002'
commit tran
end try
begin catch
rollback tran
end catch

5.
create trigger jtrig01 on 자격증 for insert
as
declare @snum nvarchar(5)
select @snum=사번 from inserted
update 사원 set 자격증갯수=자격증갯수+1
where 사번= @snum

insert into 자격증 values('A001', 2, '가나22','컴활1급', '2005/01/10',
       '2010/01/10')

select * from 부서
select * from 사원
select * from 자격증


6.

create trigger jtrig02 on 자격증 for delete
as declare @snum nvarchar(5)
select @snum=사번 from deleted
update 사원 set 자격증갯수=자격증갯수-1
where 사번=@snum

delete from 자격증 where 사번='A001' and 일련번호=2

7.

select * from 부서
select * from 사원
select * from 자격증

alter trigger jtrig03 on 자격증 for update
as declare @snum nvarchar(5), @snum2 nvarchar(5)
select @snum=사번 from deleted
select @snum2=사번 from inserted
update 사원 set 자격증갯수=자격증갯수-1 where 사번=@snum


update 자격증 set 사번='A002' where 사번='A001' and 일련번호=2


delete from 자격증 where 사번='A002' and 일련번호=2


insert into 자격증 values('A001', 2, '가나22','컴활2급', '2005/01/10',
       '2010/01/10')

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/11/20 16:33
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/11/20 16:32

기말고사는 테이블 뷰, 스토어드 프로시저, 트랜잭션과 트리거 <-- 유인물

그리고 sql파일중에 트랜잭션과 잠금 <-- 공부 <-- 객관식 7문제



칸 채우기 23문제

총 30문제

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/11/13 17:45
ㅇㄹㅇㄹㅇㄹ
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/11/13 17:42
dㅇㄹㅇㄹ
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
rm -rf /var/run/yum.pid
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
snort


설정 파일 : snort.conf

network
preprossesor
rule


rule의 구성

#헤더
#body


헤더부분에는 alert udp $EXTERNAL_NET any
->  $HOME_NET 161

161은 포트번호

EXTERNAL_NET은 소스다 -> 모든 포트로 들어오는 포트 (UDP를 사용하는)
161으로 나가는 패킷에 대해서 경고를 울려라고


body는
msg:"SNMP public access ...."
content:"Public"    Classtype
reference :ee... <- 공격에 대한 자세한 정보를 어디서 참고하라
sid <- 룰번호 어떤 룰을 참고 했는지
rev <- 룰의 버전정보

스니퍼모드 : snort -v

snort -vde

d: 응용프로그램수준까지 가서 Hex 나 binary로 변환해서 로그에 남겨라
e: MAC주소도 포함시켜라


BPF 모드 : 화면에 출력하지 않고 원하는 패킷만 골라서 볼 수 있는 버클리 패킷 필터 모듈을 제공한다
snort -vde port 110 and host 192.12831~~

화면에 출력하지 않고 로그에만 남기도록 : snort -l /var/log/message



IDS모드

Full과 Fast

Full : 아무런 옵션없이 -> 모든 헤더의 정보들이 다 출력되게
Fast : 시간, 경고 메시지, 소스/목적지 IP & 포트


IDS모드 실행
snort -d -l -c /usr/local/snort/snort.conf -A full

full이나 fast쓰려면 -A로 한다.



snort는 오용탐지,,, 오용탐지는 rule에 기반한다.

공개 open rule



rule 설정시

화설표가 항상 -> 이 방향으로만 하게 되어있다

소스 -> 목적지

<- 는 안쓴다


책 보시게나

URIContent





크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/10/30 16:54


크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/10/23 17:52
ㅎㅎ
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/10/23 14:31


1.

create table 부서(
부서번호 nchar(2) constraint PK_부서번호 primary key,
부서명 nchar(10)
)
select * from 부서
create table 사원(
사번 nchar(4) primary key,
이름 nchar(10),
주민등록번호 nchar(10),
성별 nchar(1) check(성별 in ('남','여')),
자격증갯수 smallint,
부서번호 nchar(2) foreign key references 부서(부서번호),
지원부서번호 nchar(2)
)


create table 자격증(
사번 nchar(4) not null,
일련번호 smallint not null,
자격증id nchar(10) not null,
자격증명 nchar(20) not null,
취득일자 smalldatetime not null,
유효일자 smalldatetime not null
)

2. 자격증 테ㅐ이블에 PRIMARY KEY PK_사번_일련번호를 추가하시오.

alter table 자격증
 alter column 일련번호 nchar(4) not null
 

alter table 자격증
 alter column 사번 nchar(4) not null

위의 2개를 먼저 해야함


alter table 자격증
 add constraint PK_사번_일련번호
 primary key(사번,일련번호)
select * from 자격증

 

3. 사원테이블의 지원부서번호가 부서테이블의 부서번호를 참조하는 외래키 FK_부서번호를 추가하시오.
단, 이미 입력된 지원부서번호가 제약조건에 위배되더라도 무시하고 넘어가고자 한다.
alter table 사원 with nocheck
 add constraint FK_부서번호 foreign key(지원부서번호)
 references 부서(부서번호)


4. 자격증 테이블의 사번이 사원테이블의 사번을 참조하는 외래키 FK_지원부서번호를 추가하시오.
단, 사원테이블의 사원데이터가 삭제되면 자격증테이블의 해당 사원의 자격증 데이터도 삭제된다.
alter table 자격증
 add constraint FK_지원부서번호
 foreign key (사번)
 references 사원(사번)
 on delete cascade
 
select * from 사원
5. 사원테이블에 주민등록번호에 UNIQUE 제약 조건 UK_주민등록번호를 추가하시오.
alter table 사원
 add constraint UK_주민등록번호 UNIQUE(주민등록번호)

6. 사원테이블의 이름이 NOT NULL이 되도록 수정하시오.
alter table 사원
 alter column 이름 nchar(10) not null

7. 사원테이블의 자격증개수에 DEFAULT 제약 조건 DF_자격증갯수를 추가하시오.
alter table 사원
 add constraint DF_자격증갯수
 default 0 for 자격증갯수

8 자격증테이블의 취득일자가 유효일자보다 작도록 CHECK 제약조건 CK_취득일자를 추가하시오.

alter table 자격증
 add constraint CK_취득일자
 check(취득일자 < 유효일자)

9번 사원테이블의 주민등록번호의 크기를 +4 증가하시오
alter table 사원 alter column 주민등록번호 nchar(14) null


alter table 사원
drop constraint uk_주민등록번호


alter table 사원
add constraint uk_주민등록번호 unique(주민등록번호)


10번 자격증이 2개 이상인 사원의 사번, 이름, 자격증명만 검색하는 뷰 MYVIEW01을
만드시오.
create view MYVIEW01
as
select a.사번,이름,b.자격증명
from 사원 a  join 자격증 b on a.사번 = b.사번
where a.자격증갯수 >=2




11번 모든 사원의 사번, 이름, 부서번호, 부서명, 지원부서번호, 지원부서명을 출력하는데
필요한 뷰 MYVIEW02을 만들고 그 뷰를 이용하여 출력하는 SELECT문을 쓰시오.
create view MYVIEW02
as
select 사번,이름,b.부서번호,부서명,지원부서번호,지원부서명
from 사원 a join 부서 b on a.부서번호 = b.부서번호

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/10/16 17:51
쿼리 파일들
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
포트 번호 사용 25 SMTP 110 POP3 143 IMAP 220 IMAP3 차이 POP3 보관, 전달 IMAP은 원격지 보관, 보고 끝나는 형태 Sendmail 설치하자
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이

동기화
Critical Section
Semaphore
Mutex

DB -> DBMS -> 오라클, MS-SQL, My-SQL


MySQL Administrator 에서

Catalog에 가서 스키마 mydb1를 추가

user ad~~ 에 가서 user1 , mydb1의 모든 권한을 주고

Apply Changes를 눌러주자

그리고 Query Brower로 가서 user1 - mydb1으로 접속을 하자

여기서 테이블을 만든다.

update tbllog set ip='1.1.1.1' , port=2009 where id=2

제어판 - 관리도구 - ODBC

시스템DSN -> 추가 -> MySQLODBC
Data Source Name : logdb
Server : localhost

MFC
Single Based Document

Header files Only

CFormView


View 클래스에

CDatabase 타입의 m_db 변수를 선언한다.

void CA1013View::OnInitialUpdate()  <--- 이 함수에
{
 CFormView::OnInitialUpdate();
 GetParentFrame()->RecalcLayout();
 ResizeParentToFit();

/// 아래의 내용을 추가

 if(FALSE == m_db.Open("logdb",FALSE,FALSE, "ODBC;", FALSE))
 {
  AfxMessageBox("error");
 }
 if(TRUE == m_db.IsOpen())
 {
  AfxMessageBox("ok open");
 }

}


파일 보고 하돼

중요한 건 기억하기

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/10/02 15:19

use pubs
select * from sales
3-1.
select t.title_id, title, sum(qty) as 합계수량
from titles t join sales s on t.title_id=s.title_id
group by t.title_id, title
having sum(qty) < (select avg(qty)
                   from sales)
3-2.
select stor_id, sum(qty),
       cast(round(cast(sum(qty) as float)/(select sum(qty) from sales)*100,0) as char(3))+'%' as 비율
from sales
group by stor_id
3-3.
[subquery 이용]
select stor_id, stor_name, city,state
from stores
where stor_id in (select stor_id
                  from sales
                  group by stor_id
                  having count(*) >= 2)   
[join 이용]
select t.stor_id, stor_name, city,state
from stores t join sales a on t.stor_id=a.stor_id
group by t.stor_id, stor_name, city,state
having count(*) >= 2
3-4.
select stor_id, title_id,qty
from sales s
where qty = (select max(qty)
             from sales
             where s.stor_id = stor_id)
3-5.
[join 이용]
select distinct pub_name
from publishers p join titles t on p.pub_id=t.pub_id
where type = 'business'
[correlated 이용]
select pub_name
from publishers p
where exists (select *
              from titles
              where p.pub_id = pub_id and type = 'business')
3-6.
select stor_id, stor_name, city, state,'서점'
from stores
union all
select pub_id, pub_name, city, state,'출판사'
from publishers
order by 1

use pubs
select stor_id, stor_name, city, state,'서점'
from stores

union
select stor_id, stor_name, city, state,'서점'
from stores
order by 1





 

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터 2008/09/30 17:07
사용자 삽입 이미지
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이

#include <time.h>

WPCAP
HAVE_REMOTE


wpcap.lib
ws2_32.lib


디바이스 목록 -> open -> filter -> loop


pcap_if_t


 pcap_if_t* alldevs;
 pcap_if_t* d;
 char errbuf[PCAP_ERRBUF_SIZE];
 int i=0;

d=alldevs; d; d=d->next


for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++);



u_int netmask;
char packet_fileter[] = "ip and udp";
 struct bpf_program fcode;

위의 세 개의 데이터 타입을 알아둬라


    netmask=0xffffff;  <-- C클래스의 넷마스크를 말함


pcap_setfilter(adhandle 가 바이너리, filter 을 설치하는거

pcap_loop(adhandle,0, pcap_handler,NULL)?

 ih = (ip_header *) (pkt_data +
        14);

   ip_len = (ih->ver_ihl & 0xf) * 4;

    uh = (udp_header *) ((u_char*)ih + ip_len); <-- 이건 복잡해서 안냈다고 함

sport = ntohs( uh->sport );
    dport = ntohs( uh->dport );

network to host short

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이

iptables

명령어 : 페이지 344
옵션?

table 에 대한 것도 나옴 : 페이지 343

ipchain 에서 부터 iptables 로 커널이 2.4때 바뀌었다.
그렇게 발전해온거지

iptables의 기능이 몇 가지가 있다. 그것에 대한 것이 나오겠다.
1. 기능 : 페이지 330

2. iptables 설정하기 위해서는 리눅스 커널에서 옵션을 선택했지
그 선택하는 부분을 하고나면 컴파일을 해야지
=> 컴파일 과정

////////////////////////////////////////////

리눅스 커널 컴파일 하는 방법 (순서)

1. tar xvjf 파일명

1_2. bunzip2
    tar xvf

2. cd linux ~~

3. make mrproper 기존 걸 지워버린다는거

4. make menuconfig

5. make <-- make; 해주면 ; 때문에 이하과정을 자동으로 해줌

;은 쉘의 기능중 하나인데 뭔가를 연결해줌

6. make modules

7. make modules_install

8. make install

//////////////////////////////////



3. menu 선택에서 "limit" 이것에 대한 기능을 잘 알아둬라

책 333 페이지

"limit" match support

룰에

매칭되는 개수, 비율 제한 기능

DOS 차단, 불필요한 로그 X

iptables -A INPUT -p tcp --tcp-flags SYN,FIN, SYN,FIN -m limit --limit 5/minute -j LOG

inbound 되는 tcp에 대해서 syn,fin이 함께 보일경우 최대 분당 5개까지만 남기겠다는 의미



4.  iptables 에서 사용하는 용어가 있다.

5. iptables 의 tables의 종류

6. tables 를 설정하기 위해서 어떤 것들이 필요한가?

7. 명령어 정책

8. chain 에 대해서

9. chain 을 이용하는 방법

10. chain 에 관한 명령어

11. 매칭 옵션 중 여러분이 가장 많이 쓰는 것
    "     tcp udp 라 든지 그런 종류를 잘 알아두면 되요    "

12. 시간과 관련된 매칭옵션이 있을 겁니다.

13. iptables의 타겟에 대해서 잘 알아둬라

14. chain의 종류

15. 타겟을 사용하는 방법

16. 상태추적 기능에서 필요한 것들이 뭔지? 명령어 내릴 때도 어떻게 하는 지 알아두자

17. 포트 포워딩을 하는 타겟이 있습니다.

18. chain 명령어 중에서 정책을 설정하거나 삭제하거나 하는 명령어

19. 18번과 마찬가지로 공부

20 상태추적기능에서 상태를 표시해주는 부분이 있어요 그거를 잘 알고 있으면 되요


21. 거부 타겟 2가지의 정의와 의미를 읽어라=> 차이점

22 ~ 25 주관식인데 명령어를 완성 시키는 것 => 옵션 , 타겟 9, 10번 제대로하면 이거야 뭐 하겠지?


IP주소 관련된 것과 프로토콜 관련됫것 테겟에 관련된게 나온다는





=========================================================================================

타겟에는 LOG ACCEPT DROP REJECT

DROP
REJECT
는 거부

LOG 타겟에 대한 설명
패킷의 IP주소 및 기나 유용한 정보를 로그에 남김
이 정보는 dmesg의 명령어로 확인
옵션은 --log-level, --log-prefix 가 있음
일반적으로 --log-level은 실제로 꼭 필요한 경우를 제외하고는 룰에 잘 명시하지 않으며
기본값인 warning을 씀

loglevel은 총 7가지 옵션
'debug' information notice warning error crit alert emerg 숫자 7 ~ 0 까지 대응을 시켜서 사용

--log-prefix 옵션
14까지의 별도의 문자로 로그 메세지에 선행
ex) iptables -A INPUT -i eth0 -p tcp -j LOG --log-prefix="IPTABLES TCP:"

-j 타겟을 설정하는 것

LOG는 LOG를 남기고자 하는 정책 위에 세워져야 함
ex) Iptables -A INPUT -p tcp --syn -j LOG --log-prefix 'SYN refuse'
     iptables -A INPUT -p tcp --syn -j REJECT
이렇게 해야 기록에 남는다. 그 다음에 거부하면 됨 [룰 순서]



DROP & REJECT
룰에 매칭되는 패킷을 거부
차이점
DROP은 패킷을 거부한 후 어떠한 추가적인 동작이 없음
REJECT는 패킷 거부와 함께 패킷의 소스 주소로 패킷이 거부되었다는 에러 메시지를 발성
-> 부하가 걸림

그래서 DROP을 선호한


NAT 테이블

vmware 에서 랜카드도 가상으로 할 수 도 있구나

iptables NAT타겟
sprkwl
SNAT
소스 IP 어드레스를 지정된 IP로 변경
DNAT
패킷의 목적지 IP어드레스를 변경
이 서버의 IP를 외부에 알리지 않기 위해서

SNAT DNAT 는 둘다 고정IP를 쓴다는 것이다

MASQUERADE
타겟은 SNAT와 동일
SNAT= 고정IP
MASQUERADE= 유동(dhcp) IP

서살 IP주소를 서버의 IP로 가장하여 서버와 연결되어 있는 네트워크 호스트와 함께 외부 인터넷 자원을
공유할 수 있도록 해주는 네트워크 고급기법
IP를 부여받지 않는 컴퓨터오 인터넷을 쓸 수 있게할 수 있는 기법

동작원리

두 개의 IP가 필요한 데 => 두 개의 네트워크 카드가 필요하다는 말 (리눅스 호스트에 MASQUERADE가 설정되는)
호스트 컴퓨터를 IP MASQUERADE의 게이트웨이로 지정하여....

호스트는 Add -> Custom VMnet2
호스트가 아는 것은 그냥 랜카드 설정을 -> Custom -> VMnet2(내꺼는 원래 VMnet0 였다)

리눅스 호스트에서 system-config-network 명령어
eth0을 더블클릭 바꿀건 없다는
eth1을 클릭해서 몇 가지 셋팅 -> 정적으로 IP 할당 -> IP 셋팅(10.5.5.1), 서브넷 마스트 255.255.255.0
디폴트는 공란으로 비워둠 -> OK

두 장치가 연결되기 위해서 두 장치를 활성화 시킴

service network restart

두번 째 머신에서
system-config-network
eth0 정적 -> 10.5.5.2 -> 서브넷 255.255.255.0 디폴트는 10.5.5.1 (리눅스 호스트가 게이트웨이 역할을 하도록)
-> 활성화

리눅스 호스트에서
명령어
iptables -F FORWARD
iptables -P FORWARD DROP
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -o eth0 -j ACCEPT
-o 는 아웃픗 인터페이스
iptables -A FORWARD -o eth1 -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
=> INPUT, OUTPUT, FORWARD 는 filter
=> POSTROUTING
eth0으로 나가는 패킷을 NAT 테이블안에 사용해서 MASQUERADE해준다는 의미

vim /etc/sysctl.conf 에 7라인의 0을 1로 바꿔 주면 재무팅을 해도 재설정할 필요가 없다
아니면 /etc/rc.d/rc.local 에 쉘 파일 넣어줘라 (/etc/rc.d/init.d/firewall.sh

과제 리눅스에 웹서버 만들고 방화벽 정책 만들고 ftp로 정책들을 적어와라
vi /etc/rc.d/rc.local
룰 명령어 입력

과제는 A4용지에 손으로 써와



WINDOW
XP

ip : 192.168.50.1

<VMNET 8 switch >
[host (centos 1번)] -> 방화벽
eth0 192.....
eht1 10.5.5.2
subnet : 255.255.255.0

<vmnet2 switch>
[host (centos 2번)
eth0 ip 10.5.5.2
subnet 255.255.255.0
gateway 10.5.5.2


재부팅 후리눅스 호스트에서

vim /etc/sysconfig/network-scripts/ifcfg-eth1
여기에 추가한다
BROCADCAST=10.5.5.255
NETWORK=10.5.5.0


로컬에서
vi /etc/sysconfig/network-scripts/ifcfg-eth0

호스느에서
service network restart

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/09/25 17:53

select name, height
from usertbl
where height >= any(select height
     from usertbl
     where mobile1='019')

any는 한가지만 완성되어도 괜찮다
all은 모든 것을 만족해야

in을 쓸 때는 등호를 쓸 수 없다 같은 뜻이라서
in 은 = any 와 같다

그러니까 등호가 나오면 all 이나 any 가 나온다



select name, height
from usertbl
where height in (select max(height)
     from usertbl) or
   height in (select min(height)
     from usertbl)
--group by name

저걸 분리했다. 두 개 같이 쓰면 에러남 피연산자 관계? 때문

*두 번 이상 구매한 모든 회원의 이름, 주소가 나오도록 출력하시오
use sqldb2b
select * from buytbl

select * from usertbl
- join 이용
select distinct u.name, addr
from usertbl u left outer join buytbl b on u.userid = b.userid
where amount >= 2

수량이 2개 이상이니까
값이 없을 때가 없어서
inner join

<answer>
select name, addr
from usertbl u join buytbl b on u.userid=b.userid
group by name, addr
having count(*) >= 2

- subquery 이용
select name, addr
from usertbl
where userid in (select userid from buytbl group by name, addr having count(*) >= 2)

select userid
from buytbl
group by userid
having count(*) >=2

select name, addr
from usertbl
where userid in (select userid
     from buytbl
     group by userid
     having count(*) >=2)

* subquery의 특징
1. 괄호안에 먼저 수행될 내용을 써준다.
2. 서브쿼리내에는 order by 를 쓸 수 없다. 출력될 내용이 아니니까
3. exists 연산자를 제외하고 서브쿼리내에
 두 개 이상의 select list가 올 수 없다.


*한 번 이상(=한번이라도) 구매한 모든 회원의 이름, 주소가 나오도록 출력하시오
-join
select distinct name, addr
from usertbl u join buytbl b on (u.userid = b.userid)

-subquery
select name, addr
from usertbl
where userid in (select userid from buytbl)
--distinct를 안써도 되는 이유 서브쿼리라는 것 때문에
--서브쿼리에서 select 하는 것에서 빼오는 거라서?

- correlated subquery(상관 하위 질의문): 외부쿼리와 서브쿼리가
 상호 영향을 준다. 외부쿼리가 10건이 있고 서브쿼리가 20건이
 있다면 10 * 20의 비교횟수가 쇼오되므로 성능이 떨어진다.

select name, addr
from usertbl u
where userid in (select userid
     from buytbl b
     where u.userid=b.userid)

위의 where 다음의 userid 는 exists라고 적어도 된다

select name, addr
from usertbl u
where exists (select *
     from buytbl b
     where u.userid=b.userid)

이게 상관이다


* '박주영'이 산 물건의 평균price보다 더 비싸게 산 물건의
품목명(prodname)과 price를 출력하시오

select * from buytbl

select * from usertbl

select prodname, price
from buytbl
where userid='PJY' and price > (select avg(price) from buytbl where userid='PJY')

select prodname, price
from buytbl b join usertbl u on b.userid=u.userid
where name='박주영' and price > (select avg(price) from buytbl where userid='PJY')

<answer>
select prodname, price
from buytbl b join usertbl u on (b.userid=u.userid)
where name = '박주영' and price > (select avg(price)
    from buytbl b join usertbl u on (b.userid=u.userid)
    where name = '박주영')

<answer> - as correlated subquery
select prodname, price
from buytbl b join usertbl u on (b.userid=u.userid)
where name = '박주영' and price > (select avg(price)
        from buytbl
    where u.userid=userid)


* 모든 회원별로 각 회원이 산 물건의 평균price보다 더 비싸게 산 물건의
품목명(prodname)과 price를 출력하시오

select * from buytbl

select * from usertbl

select u.userid, b.prodname, b.price
from buytbl b join usertbl u on b.userid=u.userid
where exists (select userid
    from buytbl
    group by userid, price
    having price > avg(price)
    )

select userid, avg(price) from buytbl
group by userid


select userid, prodname, price
from buytbl b
where price > any ( select avg(price) from buytbl where b.userid=userid)

<answer>
select userid, prodname, price
from buytbl b
where price > (select avg(price) from buytbl where b.userid=userid)

* 모든 회원별로 각 회원이 산 물건의 수량(amount)의 누적합계를
usertbl의 sumamount의 값으로 변경하시오.
alter table usertbl
add sumamount int
select * from usertbl
select * from buytbl

update usertbl
set sumamount = (select sum(amount)
    from buytbl
    where usertbl.userid=userid)


use pubs
select * from titles
select * from sales

1.
select s.title_id, t.title, sum(qty)
from  sales s join titles t on (s.title_id=t.title_id)
group by s.title_id, title
having sum(qty) <  (select avg(qty) from sales)

2.
select * from sales

select stor_id, sum(qty) as 합계,
cast(sum(qty) as float) /(select sum(qty) from sales)* 100 as 비율
from sales
group by stor_id



select userid, prodname, price
from buytbl b
where price > (select avg(price) from buytbl where b.userid=userid)

3.

서브 쿼리
select stor_id, stor_name, city, state
from stores t
where stor_id in (select stor_id from sales group by stor_id
having count(*) >= 2)


join 이용
select s.stor_id, stor_name, city, state
from stores s join sales a on s.stor_id=a.stor_id
group by s.stor_id, stor_name, city, state
having count(*) >= 2

3-4
select * from sales
select stor_id, title_id, qty
from sales s
where qty = any (select max(qty) from sales where s.stor_id=stor_id)

0736 1389

3-5
select * from publishers
select * from titles

-subquery
select pub_name
from publishers s
where exists (select pub_id from titles t where type='business' and s.pub_id=t.pub_id)

-join
select distinct pub_name, t.pub_id
from publishers p join titles t on p.pub_id=t.pub_id
where t.type='business'


3-6
select * from stores
select * from publishers

select stor_id, stor_name, city, state
from stores
UNION
select pub_id, pub_name, city, state
from publishers

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
컴퓨터/데이터베이스 2008/09/25 16:33

select name, height
from usertbl
where height >= any(select height
     from usertbl
     where mobile1='019')

any는 한가지만 완성되어도 괜찮다
all은 모든 것을 만족해야

in을 쓸 때는 등호를 쓸 수 없다 같은 뜻이라서
in 은 = any 와 같다

그러니까 등호가 나오면 all 이나 any 가 나온다



select name, height
from usertbl
where height in (select max(height)
     from usertbl) or
   height in (select min(height)
     from usertbl)
--group by name

저걸 분리했다. 두 개 같이 쓰면 에러남 피연산자 관계? 때문

*두 번 이상 구매한 모든 회원의 이름, 주소가 나오도록 출력하시오
use sqldb2b
select * from buytbl

select * from usertbl
- join 이용
select distinct u.name, addr
from usertbl u left outer join buytbl b on u.userid = b.userid
where amount >= 2

수량이 2개 이상이니까
값이 없을 때가 없어서
inner join

<answer>
select name, addr
from usertbl u join buytbl b on u.userid=b.userid
group by name, addr
having count(*) >= 2

- subquery 이용
select name, addr
from usertbl
where userid in (select userid from buytbl group by name, addr having count(*) >= 2)

select userid
from buytbl
group by userid
having count(*) >=2

select name, addr
from usertbl
where userid in (select userid
     from buytbl
     group by userid
     having count(*) >=2)

* subquery의 특징
1. 괄호안에 먼저 수행될 내용을 써준다.
2. 서브쿼리내에는 order by 를 쓸 수 없다. 출력될 내용이 아니니까
3. exists 연산자를 제외하고 서브쿼리내에
 두 개 이상의 select list가 올 수 없다.


*한 번 이상(=한번이라도) 구매한 모든 회원의 이름, 주소가 나오도록 출력하시오
-join
select distinct name, addr
from usertbl u join buytbl b on (u.userid = b.userid)

-subquery
select name, addr
from usertbl
where userid in (select userid from buytbl)
--distinct를 안써도 되는 이유 서브쿼리라는 것 때문에
--서브쿼리에서 select 하는 것에서 빼오는 거라서?

- correlated subquery(상관 하위 질의문): 외부쿼리와 서브쿼리가
 상호 영향을 준다. 외부쿼리가 10건이 있고 서브쿼리가 20건이
 있다면 10 * 20의 비교횟수가 쇼오되므로 성능이 떨어진다.

select name, addr
from usertbl u
where userid in (select userid
     from buytbl b
     where u.userid=b.userid)

위의 where 다음의 userid 는 exists라고 적어도 된다

select name, addr
from usertbl u
where exists (select *
     from buytbl b
     where u.userid=b.userid)

이게 상관이다


* '박주영'이 산 물건의 평균price보다 더 비싸게 산 물건의
품목명(prodname)과 price를 출력하시오

select * from buytbl

select * from usertbl

select prodname, price
from buytbl
where userid='PJY' and price > (select avg(price) from buytbl where userid='PJY')

select prodname, price
from buytbl b join usertbl u on b.userid=u.userid
where name='박주영' and price > (select avg(price) from buytbl where userid='PJY')

<answer>
select prodname, price
from buytbl b join usertbl u on (b.userid=u.userid)
where name = '박주영' and price > (select avg(price)
    from buytbl b join usertbl u on (b.userid=u.userid)
    where name = '박주영')

<answer> - as correlated subquery
select prodname, price
from buytbl b join usertbl u on (b.userid=u.userid)
where name = '박주영' and price > (select avg(price)
        from buytbl
    where u.userid=userid)


* 모든 회원별로 각 회원이 산 물건의 평균price보다 더 비싸게 산 물건의
품목명(prodname)과 price를 출력하시오

select * from buytbl

select * from usertbl

select u.userid, b.prodname, b.price
from buytbl b join usertbl u on b.userid=u.userid
where exists (select userid
    from buytbl
    group by userid, price
    having price > avg(price)
    )

select userid, avg(price) from buytbl
group by userid


select userid, prodname, price
from buytbl b
where price > any ( select avg(price) from buytbl where b.userid=userid)

<answer>
select userid, prodname, price
from buytbl b
where price > (select avg(price) from buytbl where b.userid=userid)

* 모든 회원별로 각 회원이 산 물건의 수량(amount)의 누적합계를
usertbl의 sumamount의 값으로 변경하시오.
alter table usertbl
add sumamount int
select * from usertbl
select * from buytbl

update usertbl
set sumamount = (select sum(amount)
    from buytbl
    where usertbl.userid=userid)


크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이



내가 뭘 해야겠는지 모를 때에는

자신이 좋아하는 것을 해라

-
그러면 멈추지 않는 자신을 발견할 수 있다.

- 전태우

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
http://mfiles.naver.net/6fb4588395caa3153348/data23/2008/4/1/158/p6393.pdf
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이

2시에 출석
8호선 평화의 문에 와서 좌측으로 자전거 빌려주는 곳
올림픽 공원


중간고사

시간 다루는 방법

패킷 필터 달기

이 두 가지

크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이

ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot

받은 파일을 압축 풀고

거기 가서
최근 패치를 받자


./runme --download

하고 설치한 커널의 디렉토리를 적어주고

다음에는 다운받은 iptables 의 디렉토리를 적어준다.

그리고

./runme extra

하고 똑같이 디렉토리를 적어준다.

t 명령어로 가능한지 테스트 해보고
설치 가능하면 cleanly로 뜬다 이때 y

가능하지 않다면 n 를 누른다

이걸 계속 반복



iptables 용어

tables => filter table
chain =>INPUT, OUTPUT, FORWARD => rule 정책(ACCEPT, DROP, REJECT)
rule

 filter table
INPUT
OUTPUT
FORWARD

rule
ACCEPT
DROP
REJECT

nat table
POSTROUING...

중간에 지워버렸군.....

교재보자


Network -> mangle  PREROUTING -> nat PREROUTING -> Routing decision

여기서 두 가지고 나뉘는데

INPUT - mangle OUTPUT -> nat ----
                                                  | ->
FORWARD --- ---------------------

아 설명 개떡같애 ㅡㅡ; 뭐 이래;;;



사용형식 : iptables [ -t table 명] 명령어 [매칭옵션][타겟]

-A -append

iptables -A INPUT
Chain의 맨 마지막에 추가한다


-I --insert

-D --delete


iptables -D INPUT -p tcp --dport 80 -j DROP


iptables -F INPUT

iptables -F


"기본 정책"

-P 를 이용하여


-F로 모두 지워도 저 "기본 정책"은 지워지지 않는다.


-N --new-chain : 기존 새로운

-N TEST : 새로운 체인 설정


새로운 체인을 없애는 방법도 있어야겠찌


-X --delete-chain :


기본정책


-P / --policy


iptables -P INPUT DROP


-A

D
I
P
F
N
X

기본 명령어다 외워라


그 다음의 매칭옵션에 대해서

-p --protocol

iptables -A INPUT --protocol tcp


--source


-s --source 192.168.1.0/24 -> CIDR


192.168.1.0/255.255.255.0 -> netmastk


-d --destination


-i ineterface 어떤 장치에 대해서 하겠다는 걸 해주는 것


-sport

iptables -A INPUT -i eth0 -p tcp -s 192.168.5.3 --sport 1024:65535

--dport 161

INPUT 체인을 추가하는데 eth0장치에


--tcp-flags syn ack fin psh rst


syn ack fin 이 가장 중요하나


iptables -A INPUT -p TCP --tcp-flags ACK, FIN FIN

저 공백의 의미는 뭘까?

마지막의 FIN은 ACK없는 FIN 즉 ICMP (ping)을 못 보내게 함


iptables -A INPUT -P tcp --syn -j DROP

--icmp-type


iptables -A INPUT -s 192.168.1.1

-p ICMP --icmp-type echo-request


--limit


iptables -A INPUT -s 192.168.1.0/24 -p icmp -m limit --limit 5/minute

--limit 이란 최대 매칭횟수 -> 서비스 거부 공격 (DOS)


1분에 5번만 허용하겠다는 거임


-m state 상태추적

EST, Related etc..


iptables -A INPUT -p TCP | --syn -m state --state NEW[ESTABLISHED RELATED INVALID] N


ACCEPT DROP REJECT

LOG SNAT DNAT


iptables -A INPUT -p tcp -j LOG

--log-prefix "INPUT tcp packets"



------ 중간고사 -------

주로 iptables 관련

명령어랑
옵션기억하자



크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 펑키아이 펑키아이
<PREV NEXT> 1 2 3 4 5 ... 6