728x90

[1,2교시 - 데이터베이스 구축 보안]

SELECT * FROM DBA_SYS_PRIVS;
SELECT * FROM DBA_ROLE_PRIVS;

DESC DBA_SYS_PRIVS;

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'CONNECT';

 

 


 

[3,4,5교시 - 시스템 운영 보안]

/ ifconfig -a
- 사용안하는 인터페이스가 있으면 보여죠라

- NAT : 사설IP를 공인아이피로 바꾸는 것

리눅스 본딩

/ 세팅
- vmware에서 서버의 세팅 > Add... > Network Adapter 선택 finish

- 서버에서 ifconfig로 확인해본다.

 

/ nmcli
- 옵션 c : 커넥션 정보
- 옵션 d : 연결된 디바이스
# nmcli connection

- UUID : 유니버셜 유니크 아이디. 유니크한 값이다.
- nmcli device

 

/blkid
- 하드디스크에 할당된 정보를 보여준다. (block id)

/ nmtui
- 이름이 한글로 '유선연결'이었는데 밑에있는 'eno33554960'으로 변경햇다.

 

/ centos의 네트워크 설정이 있는곳으로 이동
# cd /etc/sysconfig/network-scripts/
- 아래이미지에서 체크한것이 네트워크 설정이 있는 파일이다.

- 그 외의 파일들은 실행파일들이다.


/ ifcfg-eno16777728파일내용 확인해보기
# cat ifcfg-eno16777728
- BOOTPROTO : 가 none로 되어있음을 확인할 수 있다.
- ONBOOT : 부팅할때 해당 인터페이스가 자동으로 on인지 여부
- PREFIX0 : 프리픽스

 

/ ifcfg-eno33554960 파일내용 확인해보기
# cat # cat ifcfg-eno16777728
- BOOTPROTO : 가 dhcp로 되어있음을 확인할 수 있다.

 

/ 우분투에서 네트워크 설정이 기록된 파일
- /etc/network/interfaces
- centos 는 디렉토리로 되어있고 우분투는 파일로 되어있다.

 

/ 인터페이스 재 설정
# nmcli c
- 로 인터페이스 목록 확인 후
# nmcli c delete eno33554960
# nmcli c delete eno16777728 
- 로 기존 인터페이스를 삭제한다.

- 확인
# nmcli c
# nmcli d


# reboot

- 재부팅 하고 다시 네트워크설정에 보면 다시 다 올라와 있다.
- nmcli c, nmcli d에서는 그대로 보이고
- /etc/sysconfig/network-scripts에서는 보이지 않는다.

 

- 다시 nmcli로 삭제하기
# nmcli c delete "유선 연결 2"
# nmcli c delete "유선 연결 1"

- 삭제하고 나면 오른쪽 위에가 비활성화 된다.



/ 본딩 구성하기
- 네트워크 설정 > + 클릭 > 본딩 > 연결이름을 bond0으로 입력(인터페이스 이름을 그대로 사용)


- 추가 > 연결 종류는 이더넷 > 연결이름은 bond0_slave1 > 장치 MAC주소에서 1677로 시작하는 것을 선택

- 추가 > 연결 종류는 이더넷 > 연결이름은 bond0_slave1 > 장치 MAC주소에서 3355로 시작하는 것을 선택

- 모드를 '액티브 백업'으로 선택
- 감시주기 : slave1과 slave2가 죽었나 감시

- 터미널에서 ifconfig를 하면 물리주소만 있고 아이피 주소는 없을것이다.

- IPv4설정 > 방식을 수동으로 설정 > 추가 > 주소를 192.168.111.99, 게이트웨이는 192.168.111.2, DNS서버는 192.168.111.1로 설정

- 다 하고나면 저장
- 네트워크 설정에서 본딩을 확인할 수 있다.


 

* 라운드로빈 - 여러개가 있을때 순서대로 차례로 분배하는 방식

- 터미널에서 ifconfig 확인 - bond0이 생성되어 있다.

- /etc/sysconfig/network-scripts에서 파일 목록을 확인해도 bond0이 생성되어 있다.

- cat으로 ifcfg-bond0확인

- vi 로 slave1, 2 수정
# vi ifcfg-bond0_slave_1
# vi ifcfg-bond0_slave_2
- ONBOOT를 yes로 수정

- 윈도우의 cmd에서 'ping 192.168.111.99 -t'를 띄워놓고 서버를 재부팅한다.
- ping이 안가다가 재부팅하면 ping이 간다.

- 서버 재부팅 후 ifconfig를 하면 bond0은 마스터, 나머지 인터페이스는 SLAVE로 표시된다.


# ls /etc/sysconfig/network-scripts/


- 오른쪽 상단의 네트워크 매니저 확인

 

- 네트워크 재시작을 하면 본딩이 날라간다.(나중에 세팅할것임)

 

- 네트워크 정보가 저장되는 곳
# cd /proc/net/bonding
- 안에 bond0가 있다.
# cat bond0
- 기존의 1677로 시작하는 것이 Active가 되어 있다.
- 1677이 Primary Slave가 되어잇다.

 

/ 테스트!
- 윈도우의 cmd에서 ping을 '192.168.111.99'에  -t옵션으로 계속 날린다.
- vmware 오른쪽 하단의 네트워크 아답터를 하나씩 끊었다가 연결했다가 해본다.
- 서버에서 'cat bond0'하면 인터페이스의 활성화 여부를 확인할 수 있다.
- NAT1을 끊으면 NAT2가 Active되고, NAT2를 끊고 NAT1을 연결하면 NAT1이 Active된다.
- ping은 1개정도 빠졌다가 바로 다시 들어간다. 

 

- systemctl restart network를 하면 어덯게 될까?
- 본딩이 날라가서 ping이 빠진다.

- cat bond0을 하면 내용을 확인할 수 없다. 본딩 설정했던게 모두 날라갔기 때문이다.

- 우측 상단의 네트워크는 모두 꺼져있고

- 네트워크 설정에서도 모두 날라간것을 확인할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

728x90
728x90

[1,2교시 - 데이터베이스 보안 구축]

/ 프로시저(Procedure)
- 특정한 로직을 처리하기만 하고 결과 값은 반환하지 않는다.

CREATE OR REPLACE PROCEDURE 프로시저이름
(
   파라메터1 IN 타입,
   파라메터n IN 타입
)
IS
변수1 타입(길이)  := 초기화될값;
변수n 타입(길이);

BEGIN

INSERT문이든 UPDATE문이든 SELECT문이든 뭔갈 하는 로직

COMMIT;

END 프로시저이름;

 

/ 함수(Function)
- 특정 연산을 수행한 뒤 결과 값을 반환한다.
- SELECT절에서 변수에 담을 컬럼은 INTO를 이용한다.
- 파라메터에서 특정 테이블 컬럼과 같은 변수타입으로 지정하려면 '테이블명.변수명%type'으로 지정한다.

CREATE OR REPLACE FUNCTION 함수이름
(
    파라메터1 타입,
    파라메터N 타입,
    EX) P_BB NUMBER
) 
RETURN 반활될변수타입
IS 
    변수1 타입(길이)  := 초기화될값;
    변수n 타입(길이);
    EX) V_AA VARCHAR2(10);
BEGIN 
    SELECT문이든 무엇인가를 하는 로직;
    EX) SELECT AA INTO V_AA FROM DEPT WHERE DEPTNO = P_BB; 

    RETURN 반환할변수; 
    EX) V_AA;
END;

 

/ 오늘 보여주셨던 내용

select * from tab;
select * from employees;
desc employees
create or replace procedure up_sal
        (vempid employees.employee_id%type )
is 
--
    begin
        update employees set salary=4000
        where employee_id = vempid; 
    end ;
/
   
exec up_sal(206);    

select employee_id, salary from employees
where employee_id=206;

desc user_source
select text from user_source where name ='UP_SAL';

CREATE or replace function max_sal
 (s_deptno employees.department_id%type)
 return number
as 
    max_sal employees.salary%type ;
begin
    select max(salary) into max_sal from employees
    where department_id=s_deptno;
    return max_sal;
end;
/

select max_sal(50) from dual;

 


 

[3,4,5교시 - 시스템 보안 운영]

 

/ DHCP
- 아이피를 자동으로 할당받는 서비스
- Dynamic Host Configuration Protocol
- 서버에서는 67/udp, 클라이언트는 68/udp로 실습할것이다.
- tftp 69/udp - 연관은 없지만 걍 같이 기억해보자. 인증없이 ftp를 하는것(라우터/스위치에 구동 이미지를 받을 때 사용하는 프로토콜)

/ 설치
# yum -y install dhcp

/ 실행을 하려고 하면 실행이 안된다.
# systemctl start dhcpd

# systemctl status dhcpd로 이유를 확인해본다.

- 설정파일을 확인해본다.
- 이동

# vi /etc/dhcp/dhcpd.conf

- 아무내용도 없어서 새로 만들어야 할것 같다.

 

/ dhcp 설정 파일 수정
- 게이트웨이
- 서브넷 마스트
- 아이피 할당 범위
- dns 서버
- dns 세팅(있다면)
- 아이피 렌탈 시간
- 최대 아이피 렌탈 시간

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#

# dynamic update permit? interim : 0 / none : X
ddns-update-style interim;

subnet 192.168.111.0 netmask 255.255.255.0 {
        option routers 192.168.111.2;                           # gateway
        option subnet-mask 255.255.255.0;                       # subnet mask
        range dynamic-bootp 192.168.111.55 192.168.111.99;      # ip range
        option domain-name-servers 168.126.63.1,8.8.8.8;        # dns   
        option domain-name "john.com";                          # domain setting
        default-lease-time 10000;                               # lease time
        max-lease-time 50000;                                   # max lease time
}

 

/ 실행 & 활성화
- 이제 실행이 된다.
# systemctl restart dhcpd
# systemctl enable dhcpd
# systemctl status dhcpd

- 프로세스 확인
# ps -ef | grep dhcpd
# netstat -antup | grep dhcpd

 

/ dhcp가 되는 과정
- pc가 서버를 찾는 과정(브로드캐스트) : 디스커버(Discover)
- dhcp가 제안하는 과정 : 오퍼(Offer)
- pc가 아이피를 할당해달라고 요청 : 리퀘스트(Request)
- dhcp가 아이피를 주는것 : Ack(Acknowledgement)
- 'DORA'는 위 과정의 준말

/ dhcp 갱신 과정
- 절반정도 기간일때 갱신 할건지 확인하고 갱신
- 임대기간이 거의 다 되었는데 응답없으면 아이피 회수(끝날때)

 

/ 방화벽 열기
- firewall-config에서 서비스(dhcp)fmf 추가하거나
# firewall-cmd --permanent --add-service=dhcp
- 를 해준다.
# firewall-cmd --list-all

 

/ vmware의 네트워크 설정 변경
- vmware에서 할당받으며 안되기 때문에 설정변경(임시)
- vmware의 Edit > Virtual Network Editor > VMnet8 선택 후 'Use local DHCP' 어쩌고를 선택 해제한다.

 

/ 할당받은 내역 확인
# cat /var/lib/dhcpd/dhcpd.leases

 

 

[클라이언트]
/ 할당받은 아이피를 초기화
# ifconfig : 확인
# systemctl restart network
# ifconfig : 재확인

[서버]
/ 할당한 내역 다시 확인
# cat /var/lib/dhcpd/dhcpd.leases

 

/ 로그확인
[서버]
# cat /var/log/messages | grep DHCP


[클라이언트]
# cat /var/log/messages | grep DHCP

 

/ 클라이언트에서 할당받은 아이피를 반납하고 새로 할당받고 싶을때
- 윈도우에서
# ipconfig /release : 반납
# ipconfig /renew : 재할당
# ipconfig /displaydns : dns 왔다갔다 한거 확인하기(여담)
# ipconfig /flushdns : dns 왔다갔다 한거 초기화(여담)

- 리눅스에서
- dhclient -r -아이피버전 인터페이스이름
- -r : 반납 (-r을 안하면 그냥 할당만 다시 받는다.)
# dhclient -r -4 eno16777728
- 인터페이스 이름은 아래 그림의 빨간줄이다.

 

/ 클라이언트에서 반납하고 다시 할당한 내역을 서버에서 확인
# cat /var/lib/dhcpd/dhcpd.leases

# cat /var/log/messages | grep DHCP

 

/ 특정 아이피로 할당을 해줘야 할때
[서버]
- 서버에서 dhcpd.conf 설정
- 할당을 해줘야 하는 pc의 mac address
- 할당을 해줘야 하는 아이피 (60번으로 주기로 함)

- 수정 후 재시작
# systemctl restart dhcpd

[클라이언트]
# dhclient -r -4 eno16777728 : 반납
# dhclient -4 eno16777728 : 재할당
# ifconfig : 확인

 

/ dhcpd.conf에 그룹핑 세팅하는 법
- 아래처럼 여러개를 설정해야 한다고 하자

더보기

host jinsang1 {
    hardware ethernet 00:0c:29:43:be:c1;
    fixed-address 192.168.111.60;
}

host jinsang2 {
    hardware ethernet 00:0c:29:43:be:c2;
    fixed-address 192.168.111.60;
}
host jinsang3 {
    hardware ethernet 00:0c:29:43:be:c3;
    fixed-address 192.168.111.60;
}

 

- 이때 group을 쓰면 묶을 수 있다.

더보기

group {

    host jinsang1 {
        hardware ethernet 00:0c:29:43:be:c1;
        fixed-address 192.168.111.60;
     }
     host jinsang2 {
         hardware ethernet 00:0c:29:43:be:c2;
         fixed-address 192.168.111.60;
     }
     host jinsang3 {
        hardware ethernet 00:0c:29:43:be:c3;
         fixed-address 192.168.111.60;
     }
}

 

/ 할당 범위를 그룹으로 처리하는 법
- 그룹으로 묶으면 그 부분으로 범위가 설정된다.

더보기

subnet 192.168.111.0 netmask 255.255.255.0 {
option routers 192.168.111.2; # gateway
option subnet-mask 255.255.255.0; # subnet mask

group {

    host jinsang1 {
        hardware ethernet 00:0c:29:43:be:c1;
        fixed-address 192.168.111.60;
     }
     host jinsang2 {
         hardware ethernet 00:0c:29:43:be:c2;
         fixed-address 192.168.111.60;
     }
     host jinsang3 {
        hardware ethernet 00:0c:29:43:be:c3;
         fixed-address 192.168.111.60;
     }
}

option domain-name-servers 168.126.63.1,8.8.8.8; # dns
option domain-name "john.com"; # domain setting
default-lease-time 10000; # lease time
max-lease-time 50000; # max lease time
}

 

/ 퀴즈
- DHCP IP 임대 default 기간? 8일
- 재 갱신 시점? 1/2 시점 -> 4일
- dhcp ip 예약시 어떤 주소를 이용하는가? MAC Address(FF:FF:FF:FF:FF:FF)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
728x90

[1,2교시 - 데이터베이스 보안 구축]

-- 1. department 테이블 생성
create table department(
deptno number(2) NOT NULL,
hname varchar2(20) NOT NULL,
ename varchar2(40)
);

-- 1-1. PK_department라는 이름으로 deptno을 primary key로 지정
alter table department
add constraint PK_department primary key(deptno);

-- 2. instructor 테이블 생성
create table instructor (
instid number(4) NOT NULL, 
hname char(10) NOT NULL, 
deptno number(2) NOT NULL, 
instorder varchar2(10),
locate char(4),
telno varchar2(20),
email varchar2(40)
);

-- 2-1. PK_instructor 이름으로 instid primary key로 지정
alter table instructor
add constraint PK_instructor primary key(instid);

-- 2-2. deptno가 department테이블의 deptno을 참조하도록 외래키 생성
ALTER TABLE instructor
ADD CONSTRAINT FK_instructor_department foreign KEY(deptno) references department (deptno);

-- 3. department 데이터 insert
insert into department values (10, '교양과', 'Arts');
insert into department values (20, '건축과', 'Architectural Engineering');
insert into department values (30, '토목과', 'Civil Engineering');
insert into department values (40, '경영과', 'Business Management');
insert into department values (50, '전자과', 'Electronics');
insert into department values (60, '정보통신과', 'Information and Communications');
insert into department values (70, '식품영양과', 'Food Science and Nutrition');

-- 4. instructor 데이터 insert
insert into instructor values (1001, '이준상', 10, '교수', '02', '346-2766', 'skchoi@kkkk.ac.kr');
insert into instructor values (1003, '이강호', 20, '교수', '02', '283-3465', 'khlee@kkkk.ac.kr');
insert into instructor values (1005, '주연강', 30, '부교수', '02', '732-2308', 'ykju@kkkk.ac.kr');
insert into instructor values (1007, '강성호', 10, '강사', '032', 465-3350, NULL);
insert into instructor values (1009, '나경상', 40, '강사', NULL, NULL, NULL);
insert into instructor values (1012, '김선수', 60, '강사' , '031', '975-5778', ' ');

-- department 테이블 조회
select * from department;

-- instructor 테이블 조회
select * from instructor;

-- instructor, department 조인(join) 조회
select inst.*, dept.*
from instructor inst, department dept
where inst.deptno = dept.deptno;

 

 


 

[3,4,5교시 - 시스템 보안 구축]

/ dig로 사용하는 bind의 버전을 확인
# dig @아이피 ch txt version.bind
* named 서버의 버전을 숨기는 이유 : 취약점을 가지고 있는 버전인 경우가 있을 수 있고 나중에 취약점이 발견될 수도 있다. 쨋든 보안을 위해서

/ 클라이언트에서 slaves폴더내의 파일 확인
# ll /var/named/slaves/

 

/ named.conf에 notify 추가
# vi /etc/named.conf
# notify yes;

/ john.com.db에 ns2추가
# IN NS ns2.john.com

$TTL    3H
@       SOA     ns.john.com.    root.john.com. (3 1D 1H 1W 1H)
        IN      NS              ns.john.com.
        IN      NS              ns2.john.com.
        IN      A               192.168.111.101

ns      IN      A               192.168.111.101
ns2     IN      A               192.168.111.136
WWW     IN      A               192.168.111.110
ftp     IN      A               192.168.111.111
web     IN      CNAME           www

- john.com.db 파일 체크
* 파일 체크를 하려면 /var/named위치에서 하거나 파일명을 경로까지 모두 써줘야 한다.
# named-checkzone john.com /var/named/john.com.db 
# systemctl restart named

 

/ 시리얼 번호를 1올려보자
# vi /var/named/john.com.db

- 설정 문제있는지 확인
# named-checkzone john.com /var/named/john.com.db
# systemctl restart named : 재시작
- 전송 내용이 있나 확인
# cat /var/log/messages | grep transfer
- 변경이 된것이 없음..(로그에 안 보임)

/ 클라이언트에서도 확인해보자
# systemctl restart named
# cat /var/log/messages | grep transfer
- 여기에서도 확인이 안된다.
- 클라이언트에도 설정이 필요할것 같다.

/ 클라이언트의 named.rfc1912.zones파일 수정
# vi /etc/named.rfc1912.zones
- 맨밑의 zone "111.168.192.in-addr.arpa" IN부분에 allow-notify추가

- named 재시작
# systemctl restart named

/ 클라이언트의 방화벽 설정 추가
- 53/tcp, dns 서비스 추가
# firewall-cmd --permanent --add-port=53/tcp
# firewall-cmd --permanent --add-service=dns
# firewall-cmd --reload

/ 방화벽 추가하고 allow-notify추가 했으니 슬레이브즈 파일 동기화되는지 확인
#  ll /var/named/slave

 

/ 클라이언트에서 자동으로 확인하기 위해 작성
- 동기화가 되면 자동으로 띄워진다.
# while true
# do
# ll /var/named/slaves
# clear
# done

/ 서버에서 버전 다시 올려보기
# vi /var/named/john.com.db


/ 클라이언트에서 확인
# cat /var/named/slaves/john.com.db

 

/ 로그에서도 확인해보기(서버/클라이언트)
# cat /var/log/messages | grep transfer

서버
클라이언트

 

/ 정리
1. master
- 방화벽 오픈설정(dns | 53/tcp | 53/udp)
- /etc/named.conf : notify yes;
- /etc/named.rfc1912.zones
    > allow-update{ 2차서버ip; };
    > allow-transfer{ 2차서버ip; };

2. slave
- 방화벽 오픈설정(dns | 53/tcp | 53/udp)
- /etc/named.rfc1912.zones
    > allow-notify{ 1차서버ip; };

 

 

 

 

 

 

 

 

 

728x90
728x90

지금 작성하는 포스트는 여러책을 보며 공부하면서 작성하는 것인데
일단 많은 부분은 '이기적 정보기기운용기능사'책을 참고하고 있다.

 

이기적 정보기기운용기능사 실기 기본서

최신 출제기준을 적용한 도서로, 정보기기운용기능사 실기 시험 경향을 분석하여 수험생들이 혼자서도 학습할 수 있도록 한 완벽 대비서다. Packet Tracer 프로그램 사용법과 시행처에서 공개한 샘

www.aladin.co.kr

 

1. 배너 설정

CLI창을 열거나 원격으로 장비에 접속했을때 사용자한테 보여주는 메시지를 설정할 수 있다.
이 내용은 내가 실무에 아직 들어가보질 않아서 모르겠는데 어지간한 책에서는 처음에 다 알려주는것 같다..
많이 쓰나..?

명령어는 이렇다.

더보기

> en
# conf t
(Config) # banner motd 기호

(Config) # 표시하고자하는메시지
(Config-if) # 기호

기호는 "도 되고 !도 되고 #도 되고 암튼 처음에 썻던 기호와 마지막에 끝내는 기호가 같으면 된다.
이런 식이다.

배너가 적용되었는지 확인하려면 exit 명령어를 두어번 써서 완전 나간 후 다시 들어와 보면 된다.

 

 

2. 잘못 쓴 명령어로 DNS 질의 안 하도록 설정

CLI창에서 이것저것 쓰다보면 명령어를 쓰다가 오타가 나기도 한다.
옵션을 쓸때 오타가 나면 바로 고쳐쓰면 되는데 명령어에서 오타가 나면 장비는 이게 또 DNS 문자열인줄 알고 막 열심히 찾는다..(아.. 아닌데...)
이게 금방 찾는것도 아니고 시간을 생각보다 좀 잡아먹어서 오타에 대해서는 DNS질의를 하지 않도록 따로 설정을 한다.

명령어는 이렇다.

더보기

(config) # no ip domain-lookup

이렇게 하고 나면 오타가 나도 바로 명령어를 입력할 수 있다.

 

 

3. 비밀번호 설정

사용자모드에서 관리자모드로 진입할때 인가된 사용자만 관리자로 들어갈 수 있도록 비밀번호를 설정할 수 있다.

더보기

> en
(config) # conf t
(config) # enable password 비밀번호

근데 위에 명령어처럼 password로 암호를 설정하면 'show run'으로 설정된 내용을 확인할때 비밀번호가 암호화가 안된모습으로 다 보인다. (비밀번호가 암호화가 안된 상태로 장비에 저장된다는 뜻)

 

콘솔에 패스워드를 지정하기도 한다.

더보기

> en
(config) # conf t
(config) # line console 0
(config-line) # password 비밀번호    (비밀번호 지정)
(config-line) # login    (비밀번호를 적어야 들어올 수 있게 지정)

 

텔넷설정을 할때도 패스워드를 지정한다.

더보기

> en
(config) # conf t
(config) # line vty 0 숫자     ('0~숫자'까지 텔넷에 들어올 수 있음)
(config-line) # password 비밀번호    (비밀번호 지정)

 

그래서 'secret'이라는 명령어로 비밀번호를 md5방식으로 암호화하여 저장하게 할 수도 있다.
근데 이거는 'line console 0'서는 안 먹힌다..

더보기

> en
(config) # conf t
(config) # enable secret 암호

 

'service password-encryption'명령어를 입력하면 password로 비밀번호를 지정해도 암호화 되어 저장이 된다.

더보기

> en
(config) # conf t
(config) # service password-encryption     (비밀번호를 암호화해서 저장해라)
(config) # enable password 비밀번호     (비밀번호가 암호화되서 저장됨)
(config) # line console 0
(config-line) # password 비밀번호     (비밀번호가 암호화되서 저장됨)
(config-line) # login

 

 

사용자로 들어갈때도 비밀번호를 입력하도록 할 수 있다.
이때는 아이디랑 암호를 둘다 설정한다.

더보기

> en
(config) # conf t
(config) # username 아이디 password 비밀번호     (사용자 아이디랑 비밀번호 생성)
(config) # line console 0     (라인 콘솔 0번 설정 모드 진입)
(config-line) # login local     (사용자 모드 진입 시 로그인 하도록 설정)

 

 

728x90
728x90

지금 작성하는 포스트는 여러책을 보며 공부하면서 작성하는 것인데
일단 많은 부분은 '이기적 정보기기운용기능사'책을 참고하고 있다.

 

이기적 정보기기운용기능사 실기 기본서

최신 출제기준을 적용한 도서로, 정보기기운용기능사 실기 시험 경향을 분석하여 수험생들이 혼자서도 학습할 수 있도록 한 완벽 대비서다. Packet Tracer 프로그램 사용법과 시행처에서 공개한 샘

www.aladin.co.kr

 

 

1. 호스트네임 설정

라우터든 스위치든 장비에 따로 이름을 붙여줄 수 있다.
그냥 심심해서 붙이는게 아니라 나중에 실무에 들어가게 되면 관리하는데 도움이 된다 한다.
hostname을 붙이는 방법은 라우터 스위치 둘다 동일하다.

일단 라우터에 먼저 해보자.
토폴로지는 저번 포스팅에 세팅했던 토폴로지에 진행해볼것이다.

 

패킷트레이서 - 스위치/라우터 연결

1. 라우터-스위치-pc연결 라우터에 스위치를 연결하고 그 스위치에 pc를 연결해보자. 먼저 패킷트레이서의 하단 아이콘에서 라우터, 스위치, pc를 각각 선택하여 빈 화면에 띄워놓는다. 그리고 스

streetdeveloper.tistory.com

 

라우터를 클릭하고 CLI탭으로 들어간다.
맨 처음 들어가면 뭘 설정할꺼냐고 물어보는데 yes누르는 순간 엄청 귀찮아지니까 no를 입력하고 엔터를 친다.
* 만약 CLI탭으로 들어가려고 했는데 에러메시지가 뜨면 전원이 안켜진것이니까 'Physical'탭에 들어가 전원을 켜줘야 한다.
* 전원을 키자마자 CLI탭으로 들어가면 전원이 켜지고 있어서 #이 점점 채워지는 화면이 나온다. 기다리자.

 

'no'를 입력하고 엔터를 몇번 치면 'Router>'라는 곳에 커서가 깜빡깜빡 할것이다.
여기에 명령어를 입력해서 라우터에 이런저런 설정을 하게된다.

무언가 설정을 하려면 '이용자 모드'를 거쳐 '관리자 모드'로 진입해야 한다.
'enable'을 입력하고 엔터를 쳐서 이용자 모드로 들어가고
이후 'configure terminal'을 입력하고 엔터를 쳐서 관리자 모드로 들어간다.
* 참고로 'enable'은 'en'으로 줄여 쓸 수 있다.
* 'configure terminal'은 'conf t'로 줄여 쓸 수 있다.
* 줄여서 쓰는게 좀 더 있어 보이고 손도 덜 피곤해서 다른 명령어들도 많이들 줄여쓴다.
* 'conf t'명령어를 입력하여 관리자 모드로 들어가면 'Router>'에서 'Router (config) #'으로 바뀐다.


이제 호스트이름을 변경하려면 'hostname 이름'으로 명령어를 주면 된다.
이름을 'R1'으로 바꾸려면 'hostname R1'을 입력한다.
* 'hostname'의 단축 명령어는 'host'이다.

hostname R1

 

 

스위치도 동일하다.
스위치를 클릭하고 CLI탭에 들어간 후, 엔터를 몇번 치면 'Switch>'가 보이며 명령어를 쓸 준비가 된다.
여기서도 'en''conf t'명령어를 입력하여 사용자 모드를 거져 관리자 모드로 진입한다.

 

'host SW1'명령어로 호스트네임을 'SW1'로 바꿔보자.



2. 아이피 주소 설정

라우터나 스위치에 케이블을 꽂으면 케이블이 꽂혀져 있는 포트에 ip를 설정할 수 있다.


아래 그림을 보면 각 라우터(R1, R2)가 한쪽은 스위치에 연결되어 있고(Fa0/0) 한쪽은 다른 라우터에 연결되어 있다.(Se0/0/0)

Fa0/0FastEthernet0/0를 뜻하고
Se0/0/0은 Serial0/0/0를 뜻한다.
이때 각 포트를 인터페이스라고 한다.

1) 먼저 스위치쪽에 연결되어 있는 Fa0/0에 ip address를 할당해보자.
라우터를 클릭하여 열고 'en'과 'conf t'명령어를 입력하여 관리자 모드로 진입한다.

 

이 상태에서 아이피를 설정하는 명령어는 아래와 같다.
(Config) # interface fastethernet숫자/숫자  (적용하려는 인터페이스 진입)
(Config-if) # ip address 아이피 서브넷 (아이피 / 서브넷 아이피 입력)
(Config-if) # no shutdown (적용)

더보기

* 단축 명령어 정리
interface > int
fastethernet0/0 > f0/0 or fa0/0
address > addr
shutdown > shut

 

해서

더보기

Fa0/0에 아이피를 '168.126.63.1'로 하고 서브넷 마스크를 '255.255.255.0'으로 지정하려면
(Config) # int f0/0
(Config-if) # ip addr 168.126.63.1 255.255.255.0
(Config-if) # no shut
를 순서대로 입력하면 된다.

 

2) 이번엔 다른 라우터쪽에 연결되어 있는 Se0/0/0에 ip address를 할당해보자.
라우터를 클릭하여 열고 'en'과 'conf t'명령어를 입력하여 관리자 모드로 진입한다.
* '라우터명(Config) #'으로 보이는 경우 이미 '관리자 모드'이므로 en, conf t를 할 필요가 없다.
* '라우터명(Config-if) #'으로 보이는 경우 '인터페이스 관리 모드'이므로 'Ctrl+c'를 눌러 나오거나 'exit'명령어를 입력해 나오도록 한다.

시리얼 인터페이스(Serial Interface)쪽도 똑같다.
인터페이스(Interface)명령어 뒤에 'Serial적용할/인터페이스/번호'를 입력해주면 된다.
Serial0/0/0의 단축 명령어는 s0/0/0 or se0/0/0 이다.

더보기

Se0/0/0에 아이피를 '204.200.7.2'로 하고 서브넷 마스크를 '255.255.255.0'으로 지정하려면
(Config) # int s0/0/0
(Config-if) # ip addr 204.200.7.2 255.255.255.0
(Config-if) # no shut
를 순서대로 입력하면 된다.

이로써 라우터의 각 인터페이스에 ip를 할당해보았다.

 

이번엔 스위치에 ip를 할당해보자.
사실 스위치는 MAC이라는 물리적인 주소를 이용해서 장비가 동작하기 때문에 따로 인터페이스에 ip를 할당하지 않아도 된다.
(그 증거로 아직 아무것도 설정하지 않았는데 아래에 있는 그림에서는 컴퓨터 2대가 초록세모로 연결된것을 볼 수 있다.)
근데 이게 또 이것저것 하다보면 아이피를 설정하는것이 관리하기 편하기때문에 결국엔 ip를 할당하게 된다.

스위치는  근데 또 Fa0/1이나 Fa0/2등 모든 포트가 기본적으로 vlan 1이라는 가상 인터페이스에 소속 되어있다.
해서 특별한 지시나 목적이 없으면 그냥 vlan 1에 ip를 할당한다.
할당하는 방법은 아래와 같다.
> en
# conf t
(Config) # interface vlan 1  (vlan 1 인터페이스 진입)
(Config-if) # ip address 아이피 서브넷 (아이피 / 서브넷 아이피 입력)
(Config-if) # no shutdown (적용)

해서

더보기

vlan 1에 아이피를 '168.126.67.1'로 하고 서브넷 마스크를 '255.255.255.0'으로 지정하려면
> en
# conf t
(Config) # int vlan 1

(Config-if) # ip addr 168.126.67.1 255.255.255.0
(Config-if) # no shut
을 순서대로 입력하면 된다.

 

 

3. 정적할당/동적할당

아이피를 할당할때 정적할당이 있고 동적할당이 있다.
정적할당은 지금까지 한것.
즉 직접 아이피를 입력해 넣는것이 정적할당이고,
동적할당은 자동으로 아이피를 할당받게 하는것이다.

1) 먼저 패킷트레이서의 pc에서 정적할당/동적할당을 보자.
토폴로지에서 pc를 클릭한 후 Desktop탭 > IP Configuration을 차례로 클릭한다.
그러면 아래의 화면이 나온다.

여기서 DHCP를 선택하면 동적할당이고, Static을 눌러서 각 항목에 내용을 입력하면 정적할당이 된다.

 

2) 라우터/스위치의 정적할당은 위에서 지금까지 했던것이니 동적할당을 보자.

동적할당을 하기 위해서는 인터페이스 모드로 들어간 후 ip addr 명령어 뒤에 dhcp를 입력해주면 된다.

더보기

[라우터]
> en
# conf t
(Config) # int f0/0

(Config-if) # ip addr dhcp
(Config-if) # no shut

더보기

[스위치]
> en
# conf t
(Config) # int vlan 1

(Config-if) # ip addr dhcp
(Config-if) # no shut

 

 

728x90
728x90

1. 라우터-스위치-pc연결

라우터에 스위치를 연결하고 그 스위치에 pc를 연결해보자.
먼저 패킷트레이서의 하단 아이콘에서 라우터, 스위치, pc를 각각 선택하여 빈 화면에 띄워놓는다.

 

 


그리고 스트레이트 케이블로 각각의 장비들을 연결할것이다.
스트레이트 케이블, 라우터, 스위치, pc가 무엇인지 잘 모르겠다면 이전 포스팅을 참고하자.
참고 : https://streetdeveloper.tistory.com/72

 

패킷트레이서 사용법

1. 패킷트레이서 다운로드 링크 : https://skillsforall.com/resources/lab-downloads Skills for All Resource Hub Your one-stop for learning resources used within our courses such as hands-on practice ac..

streetdeveloper.tistory.com

 

스트레이트 케이블을 선택하고 먼저 라우터를 클릭해보자.
여러 항목이 나오는데 그 중 'FastEthernet0/0'포트를 선택한다.

그리고 스위치도 클릭해보자.
여기에서도 여러 항목이 나오는데 그 중 'FastEthernet0/24'포트를 선택한다.
참고할것은 스위치를 라우터에 연결할때는 'FastEthernet0/24'부터 꼽기 시작하고
스위치를 pc에 연결할때는 'FastEthernet0/1'부터 꼽기 시작한다는 것이다.('FastEthernet0/0'이 있다면 그것부터 꼽는다.)
꼭 그래야하는것은 아닌데 네트워크 입문 책들을 보면 대부분 그렇게 되어있다..
지금은 라우터와 스위치를 연결하는 것이므로 케이블을 'FastEthernet0/24'포트에 꼽았다.

연결된 모습이다.

이번엔 스위치를 pc 2대에 연결해보자.
이번에도 스트레이트 케이블을 선택하고 스위치를 클릭한다.
그리고 이번에는 'FastEthernet0/1'을 선택한다.

그러고나서 pc를 클릭한다.
pc에서는 'FastEthernet0'을 선택한다.

다른 pc는 스위치의 'FastEthernet0/2'와 연결해보자.

실험정신이 있는 사람이라면 케이블을 눈에 보이는 Console이나 USB0 이런곳에 한번 꽂으려고 시도해볼것이다.
하지만 안될것이다..ㅋㅋ
각 케이블은 맞는 구멍들이 다 있다. 패킷트레이서는 괜히 모든 항목을 보여줘서 헷갈리게 한다...

모두 연결하면 이런 모양이 된다.

케이블에 보이는 '초록 세모'는 뭔가 연결이 되어서 네트워크 상태를 이루었다는 뜻이고
'주황색 동그라미'나 '빨간색 세모'는 아직 네트워크적으로 연결이 안되었다는 뜻이다.
스위치랑 pc는 아무런 조치를 취하지 않아도 케이블로 연결만 하고 시간이 조금 지나면 초록 세모가 된다.

 

2. 라우터-라우터 연결

라우터는 다른 네트워크 대역을 연결할때 쓰이는 장비이다.
조금 있어보이게 말하면 WAN과 WAN을 연결하는 장비이고 그냥 쉽게 이해하자면 부산지역의 네트워크 대역과 서울지역의 네트워크 대역을 연결하는 것이라고 생각하면 된다.

라우터랑 라우터를 연결하려면 DTE나 DCT케이블을 이용해서 연결해줘야 하는데 기본 라우터에는 이 케이블을 꼽을 수 있는 포트가 없다.
그래서 장비뒤편에 '모듈'이라는 것을 추가해서 DTE/DCE 케이블을 꼽을 수 있도록 조치해야 한다.
여기서 모듈이 뭐냐면 필요에 의한 케이블 종류를 꼽을 수 있게 모아둔 것라고 생각하면 된다.

아까 위에서 완성한 토폴로지 옆에 라우터 장비를 하나 더 놓아보자.

 

그러고 이제 라우터 둘중에 하나 아무거나 클릭한 후
Physical탭을 눌러보면 모듈이 이것저것 나온다.
여기서 또 한번 멘붕이 올 수 있다. 이게 다 뭐여..하고..

왼쪽은 이런저런 모듈 목록이고
오른쪽에 뭔가 장비뒷편 처럼 생긴것은 진짜 라우터 장비의 뒷면을 표현한것이다.
까만 공간은 모듈이 꽂아져 있지 않아서 빈것이다.(모듈을 5개 꼽을 수 있는 상황이다.)
장비의 우측하단에는 전원 스위치도 있다.

모듈을 추가하려면 먼저 전원을 꺼야한다.
(1) 전원부분을 한번 클릭하여 전원을 끈다.
(2) 그리고 왼쪽의 모듈 목록에서 'WIC-2T'를 클릭하고 우측 하단의 모듈모양을 드래그해서 위 장비의 빈 공간에 끌어다 놓는다.
(3) 모듈을 잘 넣었다면 전원부분을 다시 눌러서 키면 된다.
* 큰 네모 공간에는 사이즈가 안 맞아서 안들어가고 작은 네모 공간에 놓아야 들어간다.
* 장비를 끄지 않고 진행하거나 사이즈가 맞지 않는곳에 모듈을 넣으려고 하면 에러메시지가 뜬다.
* 만약 모듈을 잘못 넣었다면 다시 드래그해서 빼면 된다.

 

모듈을 넣은 모습이다.

 


작은 네모가 4개인데 아무데나 꼽아도 되는걸까?
아무데나 꼽아도 되긴 하는데 포트 넘버 숫자가 있긴하다.
순서는 아래 그림과 같고, 무슨 차이가 있냐하면 나중에 세팅할때
0번 포트에 꼽으면 'Serial0/0/0'이 되고, 3번 포트에 꼽으면 'Serial0/3/0'이 되는 식이다.
참고로 시리얼 뒤에 붙는 번호는 '슬롯 숫자/모듈 숫자/인터페이스 숫자' 이다.

 

아 그리고 모듈이 종류가 엄청 많은데 뭐가 무엇일까..
모듈에 NM이 들어가면 Network Module이고
WIC는 Wan Interface Card, 
E는 Ethernet, 
FE는 Fastethernet, 
T는 Serial이라고 한다.
방금 우리가 넣은것은 'WIC-2T'이니까 Wan Interface Card가 있고 Serial포트가 2개 있는 것이다.
(다른것은 잘 모름..)
일단 내가 연습할때는 주로 WIC-2T를 썻다..ㅋㅋ

 

라우터에 시리얼 포트가 있는 모듈을 추가해줬으므로 라우터끼리 DTE/DCE케이블을 연결해 줄 수 있게 되었다.
(아, 방금 했던 'WIC-2T'모듈 끼우는 것을 라우터 2개에 모두 끼워줘야 한다.)

이제 라우터끼리 연결을 해보자.

번개모양의 DTE를 선택하고 라우터를 클릭한다.
항목이 여러개 나오는데 이때 'Serial0/0/0'포트를 선택한다.

그리고 다른쪽 라우터도 클릭해서 'Serial0/0/0'을 선택하여 연결해준다.
연결된 모습은 이렇다.

 

심심하니까 연습할겸 1번에서 했던 라우터-스위치-pc연결을 왼쪽에도 해주고 나면 이런 그림이 나온다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
728x90

1. 패킷트레이서 다운로드

링크 : https://skillsforall.com/resources/lab-downloads

 

Skills for All Resource Hub

Your one-stop for learning resources used within our courses such as hands-on practice activities and our network simulation tool, Cisco Packet Tracer.

skillsforall.com:443

위 링크에서 OS에 맞는 프로그램을 다운로드 받아 설치를 한다.

설치 후 프로그램을 실행하기 위해서는 시스코 홈페이지에 가입을 해야할 수 있다.

 

2. 실행

실행을 하고 나면 아래와 같은 화면이 뜬다.(8.1.1 기준)
버전이 다르다고 해도 크게 다르지 않다.
아래 이미지 좌측 하단에 표시해 놓은 숫자는 기기의 큰 카테고리를 뜻한다.
1번 항목에는 라우터, 스위치, 방화벽 장비들이 있고
2번 항목은 pc, server 등
3번 항목에는 케이블들이 있다.

 

실습을 위해 이것저것 장비를 한번 놓아보자.
예를 들어 '라우터'라는 장비를 놓으려면
1. '클릭1'을 누른 후 그 아래칸 원통 모양의 라우터 아이콘(클릭2)을 클릭한다.
2. 그러면 그 오른쪽에 선택할 수 있는 수 많은 라우터 종류들이 나열되는데 지금은 아무거나 마음에 드는것을 선택하여 클릭(클릭3)하고 위의 빈 화면에 끌어다 놓거나 빈 화면을 클릭(클릭4)하면 된다.


결과화면

 

 

3. 장비 및 케이블 종류

맨 처음에는 뭐가 많은데 뭐가 뭔지 몰라서 뭘 놓아야 할지 모른다.
대충 처음에 입문하게 될때 많이 쓰이는 장비 및 케이블을 설명하겠다.

  > 
 
이름 : 라우터
쓰임새 : 다른 네트워크 대역대를 이어줄때 쓰인다.
  > 
이름 : 스위치
쓰임새 : 비교적 가까운 곳에 있는 pc나 server등을 이어줄때 쓰인다.
  > 
이름 : ASA
쓰임새 : 방화벽 장비이다. 라우터랑 거의 비슷하다.
  >
이름 : PC
쓰임새 : 걍 집에 있는 pc를 표현한다. ping을 날려서 테스트하거나 홈페이지에 접속하여 테스트하는 용도로 많이 쓰인다.
  > 
이름 : Server
쓰임새 : 초반에 DNS서버로 많이 나온다.
  > 
이름 : 스트레이트 케이블
쓰임새 : 종류가 다른 장비를 연결할때 쓰인다.
예를 들어 라우터와 스위치를 연결하거나 할때.
  > 
이름 : 크로스 케이블
쓰임새 : 종류가 같은 장비를 연결할때 쓰인다.
예를들어 스위치와 스위치를 연결하거나 할때.
  > 

이름 : DCE 케이블
쓰임새 : 라우터와 라우터를 연결할때 쓰인다.
토폴로지에서 시계 모양이 있으면 이 아이콘을 선택에 연결해주면 된다.
토폴로지에 시계 모양이 없으면 바로옆에 빨간 번개모양인데 시계모양이 없는걸로 선택해 연결해준다.
  > 
이름 : DTE 케이블
쓰임새 : 라우터와 라우터를 연결할때 쓰인다.
토폴로지에 시계 모양이 없으면 이것으로 선택해 연결해준다.

 

 

4. 토폴로지란?

네트워크 수업을 듣기시작했다면 토폴로지 실습을 할것이다.
토폴로지는 컴퓨터 네트워크 요소들을 물리적으로 연결해 놓은것을 뜻한다.

실습을 한다고 하면 직접 모든 장비들을 배치하면서 요구사항에 맞게 세팅하는 작업을 하게된다.

이런식으로 배치를 해놓고 통신이 되도록 각 장비에 세팅을 하는 실습을 한다.

 

 

5. 인터페이스

맨 처음 스위치를 놓고 케이블을 꽂으려고 하면 조금 당황스럽다.
뭐가 되게 많기 때문이다..

저 많은 항목 중 어디에 케이블을 꽂아도 괜찮다.
FastEthernet0/1이든 FastEthernet0/15이든 FastEthernet0/23이든..
나중에 스위치에 세팅을 할때 해당 케이블을 꽂았던 인터페이스에 세팅을 해주면 되기 때문이다.
연습할때는 보통 pc들은 FastEthernet0/1부터 차례대로 꽂는다.

 

728x90
728x90

[1,2교시 - 데이터베이스 보안 구축]

/ 인덱스 정의서
- 인덱스
    > 속도
    > 데이터를 정렬
    > 단점 : 지속적인 유지가 힘들다.
    > insert, update를 하게되면 다시 업데이트가 되어야 한다.

/ 뷰 정의서

/ 테이블 용량 산정서
- 용량 산정 방법

select * from tab;

select table_name, sum(DATA_LENGTH)
FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'EMPLOYEES'
GROUP BY TABLE_NAME;

DESC USER_TAB_COLUMNS;

/*
-- (가정) 하루 등록되는 예상 건수
-- 5,000건 발생
-- 용량 산정
-- 일일 적재 예상 용량(mb) : 
-- (산식) = col전체길이 x 적재예산건수/1024kb/1024mb
*/

 

SELECT TABLE_NAME,
round(SUM(DATA_LENGTH) * 5000/1024/1024, 2) as "1day", 
round(SUM(DATA_LENGTH) * 5000/1024/1024 * 30, 2) as "30 month", 
round(SUM(DATA_LENGTH) * 5000/1024/1024 * 365, 2) as "1 year", 
round(SUM(DATA_LENGTH) * 5000/1024/1024 * 365 * 10, 2) as "10 year"
FROM USER_TAB_COLUMNS 
WHERE TABLE_NAME = 'EMPLOYEES' 
GROUP BY TABLE_NAME;

 

/ 테이블 용량 확인

SELECT 
owner, segment_name, segment_type,
sum(bytes)/1024/1024 as "MB"
FROM dba_segments
WHERE segment_type= 'TABLE' 
AND segment_name = 'EMPLOYEES'
GROUP BY owner, segment_name, segment_type;

 

/ 인덱스 용량 확인

SELECT * FROM USER_INDEXES;

select owner, segment_name, segment_type, sum(bytes)/1024/1024 as "MB"
from dba_segments
where segment_type= 'INDEX'
and segment_name = 'EMP_PK'
GROUP BY OWNER, SEGMENT_NAME, SEGMENT_TYPE;

 

/ 테이블 스페이스 용량 확인

SELECT A.TABLESPACE_NAME,
   ROUND(A.BYTES_ALLOC / 1024 / 1024, 2) CURRENT_SIZE,
   ROUND(NVL(B.BYTES_FREE, 0) / 1024 / 1024, 2) FREE_SIZE,
   ROUND((A.BYTES_ALLOC - NVL(B.BYTES_FREE, 0)) / 1024 / 1024, 2) USED_SIZE,
   ROUND((NVL(B.BYTES_FREE, 0) / A.BYTES_ALLOC) * 100,2) FREE_RATE,
   100 - ROUND((NVL(B.BYTES_FREE, 0) / A.BYTES_ALLOC) * 100,2) USED_RATE,
   ROUND(MAXBYTES/1048576,2) MAX_SIZE
FROM   (
   SELECT F.TABLESPACE_NAME,
   SUM(F.BYTES) BYTES_ALLOC,
   SUM(DECODE(F.AUTOEXTENSIBLE, 'YES',F.MAXBYTES,'NO', F.BYTES)) MAXBYTES
   FROM DBA_DATA_FILES F
   GROUP BY TABLESPACE_NAME) A,
      (SELECT F.TABLESPACE_NAME,
      SUM(F.BYTES)  BYTES_FREE
      FROM DBA_FREE_SPACE F
      GROUP BY TABLESPACE_NAME) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME (+)
UNION
SELECT TABLESPACE_NAME,
   ROUND(SUM(BYTES_USED + BYTES_FREE) / 1048576, 2),
   ROUND(SUM(BYTES_FREE) / 1048576,2),
   ROUND(SUM(BYTES_USED) / 1048576,2),
   ROUND((SUM(BYTES_FREE) / SUM(BYTES_USED + BYTES_FREE)) * 100,2) FREE_RATE,
   100 - ROUND((SUM(BYTES_FREE) / SUM(BYTES_USED + BYTES_FREE)) * 100,2) USED_RATE,
   ROUND(MAX(BYTES_USED + BYTES_FREE) / 1048576, 2)
FROM   SYS.V_$TEMP_SPACE_HEADER
GROUP BY TABLESPACE_NAME
ORDER BY 1;

 

--전체 DB 용량 
select sum(bytes) from dba_data_files;
select sum(bytes)/1024/1024/1024 from dba_data_files; --GB로 표시

-- 사용한 DB 용량
select sum(bytes) from dba_segments;
select sum(bytes)/1024/1024/1024 from dba_segments; --GB로 표시

-- 사용 가능한 DB 용량
select sum(bytes) from dba_free_space;
select sum(bytes)/1024/1024/1024 from dba_free_space; --GB로 표시

 

-- 관련 테이블 검색
-- a) DBA_TABLESPACES 테이블스페이스 목록
SELECT TABLESPACE_NAME, STATUS, CONTENTS FROM DBA_TABLESPACES;
 
-- b) DBA_DATA_FILES 테이블스페이스 파일 목록
SELECT FILE_NAME, BYTES, STATUS FROM DBA_DATA_FILES;
 
-- c) DBA_FREE_SPACE 테이블스페이스 잔여 공간
SELECT TABLESPACE_NAME, BYTES, BLOCKS FROM DBA_FREE_SPACE;

 

---데이터 파일 당 할당된 size와 사용중인 size 확인
--- blksize = 35
select file_name,
       ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) smallest,
       ceil( blocks*&&blksize/1024/1024) currsize,
       ceil( blocks*&&blksize/1024/1024) -
       ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) savings
from dba_data_files a,
     ( select file_id, max(block_id+blocks-1) hwm
         from dba_extents
        group by file_id ) b
where a.file_id = b.file_id(+);

 


[3,4,5교시 - 시스템 보안 구축]

/ Master/Slave DNS 서버 구조
- Master DNS 서버 : 서버 1
    > yum -y install bind bind-chroot
    > vi /etc/named.conf >> any none any  -> 여기까진 기본이다!
        >> 페이지 밑에 john.com 부분을 추가
    > touch /var/named/john.com.db >> zone정보 추가

- Slave DNS 서버 : client(IP고정x)
    > yum -y install bind bind-chroot
    > vi /etc/named.conf >> any none any  -> 여기까진 기본이다!

* dns 서버 이중화 검색


/ 마스터 서버에서
# rpm -qc bind : 설정파일 찾기
# vim /etc/named.conf
* allow-query에 특정 아이피나 아이피대역을 써주면 특정 위치에서만 쿼리를 날리도록 할 수 있다.
- 슬레이브에서 마스터 파일과 동기화 할 수 있게 한줄을 추가한다.
- allow-transfer에 넣는 아이피는 클라이언트의 아이피이다.

- 맨 밑에 추가했던 내용은 잠시 메모장에 옮겨놓고 저장한다.

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { none; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
        allow-transfer     { 192.168.111.136; };

        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.root.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

 

- vi로 /etc/named.rfc1912.zones를 수정한다.
# vi + /etc/named.rfc1912.zones
- 맨밑에 메모장에 옮겨놓았던 내용을 붙여놓고 수정한다.

//new add
zone "john.com" IN {
        type master;
        file "john.com.db";
        allow-update { 192.168.111.136; };
        allow-transfer { 192.168.111.136; };
};

zone "111.168.192.in-addr.arpa" IN {
        type master;
        file "111.168.192.in-addr.arpa.db";
        allow-update { 192.168.111.136; };
        allow-transfer { 192.168.111.136; };
};

# named-checkconf : 설정파일 오류 확인
# systemctl restart named : 재시작

- john.com.db 파일 수정
# vi /var/named/john.com.db
- ns2를 추가해준다. (아이피는 클라이언트의 아이피 번호이다.)

$TTL    3H
@       SOA     ns.john.com.    root.john.com. (2 1D 1H 1W 1H)
        IN      NS              ns.john.com.
        IN      A               192.168.111.101

ns      IN      A               192.168.111.101
ns2     IN      A               192.168.111.136
WWW     IN      A               192.168.111.110
ftp     IN      A               192.168.111.111
web     IN      CNAME           www



- 역방향 파일도 수정해준다.
- 여기에도 ns2에 대한 정보를 추가해준다.
- 클라이언트의 아이피의 끝 번호로 넣어준다.
# vi /var/named/111.168.192.in-addr.arpa.db

$TTL    3H
@       SOA     ns.john.com.    root.john.com. (2 1D 1H 1W 1H)
        IN      NS              ns.john.com.
        IN      A               192.168.111.101

101     IN      PTR             ns.john.com.
136     IN      PTR             ns2.john.com.
110     IN      PTR             www.john.com.
111     IN      PTR             ftp.john.com.



- 확인
# named-checkzone john.com john.com.db 
# named-checkzone 111.168.192.in-addr.arpa 111.168.192.in-addr.arpa.db

 

- 서버 재시작
# systemctl restart named


/ 이제 2차 네임서버로 사용할 클라이언트로 넘어간다.

/ dns서버를 설치한다.
# yum list bind bind-chroot
# yum -y install bind bind-chroot

/ 실행하고 확인한다.
# systemctl start named  : 시작
# systemctl enable named  : 활성화
# systemctl status named  : 상태확인
# ps -ef | gerp named  : 프로세스 확인

 

- 설정정보 수정하러 가기
- any, none, any 작업하기
# vim /etc/named.conf

- 수정 후 'named-checkconf'로 확인

- named.rfc1912.zones파일 수정
- 아래의 내용 추가
# vim + /etc/named.rfc1912.zones

one "john.com" IN {
        type slave;
        file "slaves/john.com.db";
        masterfile-format text;
        masters { 192.168.111.101; };
};

zone "111.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/111.168.192.in-addr.arpa.db";
        masters { 192.168.111.101; };
};

# named-checkconf : 확인
# systemctl restart named : 재시작
# ll /var/named/slaves
- /var/named/slaves위치에 정방향, 역방향 파일이 들어와있는것을 확인해볼 수 있다.

 

/ 마스터서버와 슬레이브서버에서 각각 /var/log/messages | grep transfer를 확인한다.
- 정방향과 역방향 파일이 전송된 내역을 확인할 수 있다.
- AXFR(모든정보 전송), IXFR(부분정보 (incremental늘어난 정보))
- 로그를 보면 뭔가 잘 안되었을때 이유를 알 수 있다.
# cat /var/log/messages | grep transfer
- master

- slave

 


/ named 버전 확인
# named -version
# named -v

- 버전이 안보이게 조치 하는 법
# vi /etc/named.conf

- varsion 하고 문자열을 주면 버전확인 시 설정한 문자열을 표시하게 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
728x90

[1,2교시 - 데이터베이스 보안 구축]

 

데이터베이스 보안 구현

수행 순서

1. 수립된 구현 계획에 따라 보안성이 강화된 데이터베이스를 구현한다.
- 보안 데이터베이스 구현 및 운영 단계의 주안점을 확인한다.
- 접근제어 부문의 구축 및 운영 주안점을 확인한다.
- 운영 관리 활동 분야를 확인한다.
- 직무의 분리, 로그 검토 등의 체크사항을 확인한다.
- 데이터베이스 암호화 부문의 구축 및 운영 주안점을 확인한다.
- 데이터베이스 작업결재 부문의 구축 및 운영 주안점을 확인한다.
- 데이터베이스 취약점 분석 부문의 구축 및 운영 주안점을 확인한다.

2. 데이터베이스 설계 문서를 기반으로 데이터베이스를 구현한다.
- 데이터베이스 설계 문서를 확인한다.
    > E-R 다이어그램, 테이블 정의서, 인덱스 정의서, 뷰 정의서, 테이블 용량 산정서, 인덱스 용량 산정서, 데이터 파일 용량 산정서, 시스템 파일 용량 산정서
    > ERD 참고 링크1, ERD 참고 링크2
    > 엔티티 도출해보기

엔티티 속성
유통회사 회사코드, 전화, 위치, 담당자
물품 가격, 재고량, 입고일자, 물품명

- 데이터베이스 구축 시나리오를 작성한다.
- 데이터베이스를 구축한다.
- 인덱스를 설정한다.
- 사용자 권한을 설정한다.

 

ER 다이어그램

ERD(Entity-Relation Diagram: 개체 관계도) - ER 모델(개체-관계 모델, Entity-Relationship M...

blog.naver.com

 



 


[3,4,5교시 - 시스템 보안 운영]

/ 2차 네임서버가 있을 경우에 데이터를 허용하는 것
- allow-transfer{ any; };

/ john.com.db 수정
# vi john.com.db

$TTL    3H
@       SOA     @       root. (2 1D 1H 1W 1H)
        IN      NS      @
        IN      A       192.168.111.101

WWW     IN      A       192.168.111.110
ftp     IN      A       192.168.111.111

[두번째 줄]
- root.의 점은 그냥 마침표의 점(.)이다.
- 괄호안의 2 : 시리얼번호
- 1D : 동기화의 간격(하루 마다)(정기적인 업데이트)
- 1H : 동기화가 실패했을경우 리트라이 시간(1시간)
- 1W : 계속 리트라이 하다가 이제 안하는 시간
- 마지막의 1H : 동기화된 데이터를 유지하는 시간(마스터네임서버와 슬레이브서버간의)
[세번째 줄]
- IN : 인터넷에서 주고받는 정보라는 뜻
- NS : 네임서버
- @ : 자기자신이다.
[네번째 줄]
- IN :  인터넷에서 주고받는 정보라는 뜻
- A : IPv4 (AAAA는 IPv6버전이다.)

/ 내용 저장 후 'named-checkzone john.com john.com.db'으로 내용에 이상이 없는지 체크한다.

 

/ 다시한번 john.com.db파일을 수정해본다.
# vi john.com.db

$TTL    3H
@       SOA     ns.john.com.    root.john.com. (2 1D 1H 1W 1H)
        IN      NS              ns.john.com.
        IN      A               192.168.111.101

ns      IN      A               192.168.111.101
WWW     IN      A               192.168.111.110
ftp     IN      A               192.168.111.111
web     IN      CNAME           www

- ns.john.com. : ns.john.com뒤에는 점(.)이 꼭 들어가야 한다.
- 아이피 말고 이름으로 되어 있으면 점으로 끝나야 한다.
- root.john.com. : @가 들어가지 않는다
- cname : 별칭
- 상단의 TTL은 사용자가 이 정보 캐시를 얼마동안 가지고 있을지

/ 다시 내용 저장 후 'named-checkzone john.com john.com.db'으로 내용에 이상이 없는지 체크한다.

/ 서비스를 재시작하여 적용한다.
# systemctl restart named

* 종종 문제에서 CNAME이냐 A이냐를 선택하는게 있는데 아이피면 A이고 문자열이면 CNAME이다.

/ 테스트(정방향)
# nslookup
# server 192.168.111.101
# ftp.john.com
# web.john.com

 

/ cmd에서도 확인해본다.

 

- 지금까지 마스터 DNS서버를 만들어본것이다.

/ 메모
- named.conf
- john.com.db
    > 정방향/역방향이 있다.
    > 정방향 : 이름 -> ip
    > 역방향 : ip -> 이름

/ 역방향 설정
# vi + /etc/named.conf (파일의 맨 끝에서 커서를 열겠다.)
- 맨 끝에 아래의 내용을 추가한다.

zone "111.168.192.in-addr.arpa" IN {
        type master;
        file "111.168.192.in-addr.arpa.db";
        allow-update { any; };
};

- 큰따옴표안의 문자열과 file의 블라블라.db의 블라블라는 맞춰놓는게 나중에 유지보수시에 편하다.
- 저장 후 'named-checkconf'로 확인한다.

/ 아직 재시작을 해도 올라가지 않는다.
# systemctl restart named

- 역방향 파일이 아직 없기 때문이다.
# systemctl status named -l

 

/ 기존의 정방향 파일을 복사해서 역방향 파일을 만든다.
# cp john.com.db 111.168.192.in-addr.arpa.db
- 복사 후 수정한다.
# vi 111.168.192.in-addr.arpa.db
- PTR : 역방향 조회에 사용되는 레코드

$TTL    3H
@       SOA     ns.john.com.    root.john.com. (2 1D 1H 1W 1H)
        IN      NS              ns.john.com.
        IN      A               192.168.111.101

101     IN      PTR             ns.john.com.
110     IN      PTR             www.john.com.
111     IN      PTR             ftp.john.com.

- 저장 후 체크한다.
# named-checkzone 111.168.192.in-addr.arpa 111.168.192.in-addr.arpa.db

- 서버를 재시작한다.
# systemctl restart named

 

/ nslookup으로 확인한다.
# nslookup
# server 192.168.111.101
- 아이피로 조회해본다.




/ nslookup에서 set type
- set type을 ns로 설정해본다.
- ns정보 위주로 조회한다.
# set type=ns
# john.com
# naver.com
# google.com


- set type을 soa로 설정해본다.
- 속성정보로 조회한다.

- set type을 mx로 설정해본다.
# set type=mx
- 메일 서버의 정보를 보여준다.
- john.com은 아직 메일서버가 없어서 데이터가 나오지 않는다.

- 메일서버는 우선순위를 10단위로 지정한다.(10이 제일 작다)

 

- set type을 A로 지정해본다.
- 기본으로 지정되어 있는 타입이다.

 

- 윈도우에서는 -type으로 지정한다.
# nslookup -type=ns google.com

 

내일은 dns서버를 이중화하는것을 배운다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
728x90

[1,2교시 - 데이터베이스 구축 보안]

 

 


 

[3,4,5교시 - 시스템 보안 운영]

/ vsftp가 어디에 있나
# rpm -ql vaftpd | grep /var/ftp

/ pub디렉토리의 권한을 확인
# ls -ld /var/ftp/pub

/ vsftpd의 프로세스 확인
# ps -ef | grep vsftpd

/ vsftpd의 프로세스 확인
# netstat -antp | grep vsftpd

* 보안기사 기출 문제
- 아래의 ftp설명을 보고 괄호를 채워라

FTP는 (능동)모드와 수동모드가 있다. (능동)는 통신 제어를 위한 (21/tcp)포트와 데이터 전송을 위한 (20/tcp)포트를 사용한다. 수동모드에서는 데이터 전송을 위해 서버에서 (1024/tcp)포트 이상을 사용한다.

 

/ 리눅스에 ftp 클라이언트 설치
# yum -y install ftp

/ 리눅스 ftp 실행
# ftp localhost
- 누구로 로그인할지 물으면 차례로 root / password 입력

 

/ 윈도우 cmd에서 ftp 실행
- cmd를 열고 'ftp 아이피'를 입력한다.
# ftp 192.168.111.101
- 사용자와 암호를 입력한다.

- ftp에서 나오려면 'quit'나 'exit'를 입력한다.

* vi에서 해당줄로 이동하기
- 명령하고 숫자를 입력 후 쉬프트+G

/ vsftpd 로그보기
# cat /var/log/xferlog

 

 


 

DNS 이중화

/ 세팅순서
1. 해싱전용 dns 세팅
2. 마스터 세팅
3. 슬레이브 서버 세팅해서 동기화

/ centos/ubuntu 설치 차이점
- centos
    > net-tools, bind-utils
    > bind bind-chroot
    > yum -y install
    > rpm -iVh ... rpm
- ubuntu
    > net-tools, dnsutils
    > bind9
    > apt -y install bind9 or apt-get -y install bind9
    > dpkg -i ... dep

 

- bind-chroot란? : 조사해보기

/ 설치
# yum -y install bind bind-chroot
# systemctl start named
# systemctl enable named
# systemctl status named : 확인


/ 확인
# ps -ef | grep named
# netstat -antup | grep named

 

/ 설정파일 확인 및 설정
# rpm -qc bind
# cp /etc/named.conf /etc/named_bak.conf : 설정파일 백업
# vi /etc/named.conf : 수정

캐싱전용에서는 이것만 하면 된다.

# named-checkconf  : 설정내용에 문제가 있는지 체크
# systemctl restart named

/ 방화벽 열기
# firewall-cmd --permanent --add-service=dns
# firewall-cmd --reload
# firewall-cmd --list-all

 

/ nslookup
# nslookup
> server 192.168.111.101
> 알고싶은 도메인

- Non-authoritative answer : 윈도우에서의 권한없는 응답과 같다.

 

/ 마스터 DNS 서버 세팅
# vi /etc/named.conf
- 제일 밑에 아래의 내용을 넣는다.

zone "john.com" IN {
        type master;
        file "john.com.db";
        allow-update { any; };
};

 

- 이때 'systemctl restart named'를 하면 에러가 나는데 이것은 'systemctl status named -l'을 하면 알 수 있다.


- 위 설정파일에 적었던 'john.com.db'파일을 'var/named'밑에 만들어주어야 한다.
# vi /var/named/john.com.db
- TTL(time to live) : dns의 ttl은 dns의 정보를 가져와서 기억하고 있는 시간이라는 뜻
- 시간단위를 H로 시간형식으로 표현할 수 도 있고 초로 표현할수도 있다.
- SOA(start of Authority) : 레코드는 해당 도메인에 대해 네임서버가 인증(authoritative)된 자료를 갖고 있음을 의미

$TTL    3H
@       SOA     @       root. (2 1D 1H 1W 1H)



 

 

 

 

 

 

 

 

 

728x90

+ Recent posts