kh교육

(20250806030)vsftp 사용자 계정 제한 설정,DNS

boangod 2025. 8. 6. 18:03

소수로 암호 만들기

소수인지 아닌지 출력

<?
$num = $_POST["num"];    

for($i = 2; $num % $i != 0; $i++){
}

if($num == $i)
echo("{$num}은 소수입니다.");
else
echo("{$num}은 소수가 아닙니다.");
?>
<hr><p>
<? show_source(__FILE__); ?>
num까지 소수 출력

<?
$num = $_POST["num"];

for($p = 2; $p<=$num; $p++){
for($i = 2; $p % $i != 0; $i++){
}
if($p == $i)
echo(" {$p}");
}
?>
<hr><p>
<? show_source(__FILE__); ?>

 

 

RSA

1977년에 개발되어 1978년에 공포 (Rivest, Shamir, Adleman)

 

알고리즘

• 평문은 블록으로 암호화

• 암호화 C = Me mod n

• 복호화 M = Cd mod n

 

공개키 : KU = {e, n}, 개인키 : KR = { d, n }

 

e, d, n 값 생성

  • p, q 선택 : p와 q는 10100 정도의 소수
  • n = p * q
  • e : GCD(e, ф(n)) = 1인 값을 선택
  • d : e * d = 1 mod ф(n)인 값을 계산

실습

 

공개키와 개인키로 암호문을 만들어보기(서명문 만들기 -> 개인키로 암호화, 공개키로 복호화)

알파벳은 26자 이기때문에 26보다 큰 소수를 찾아야 합니다. 그중에서 저는 31로 했습니다

 

mod31

공개키 : 4

개인키 : 8

원문 : DO WHAT YOU CAN, WITH WHAT YOU HAVE WHeRe YOU aRe

키맵 : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

          e A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d

 

0은 널 값으로 한다.

서명문 : 4 15 23 8 1 20 25 15 21 3 1 14 23 9 20 8 23 8 1 20 25 15 21 8 1 22 5 23 8 0 18 0 25 15 21 27 18 0

서명문 (암호화 한거):AacBHENaMXHScJEBcBHENaMBHVIcBeTeNaMdTe

 

암호화 : 4 * 8(mod 31) = 1 -> A

복호화 : 1 * 4(mod31) = 4 -> D

 

 

공개키와 비밀키의 곱은 1이며 서로 역관계이다


리눅스

 

vsftp 사용자 계정 제한 설정

사용자 제한 설정(user_list)

• userlist_file(/etc/vsftpd/user_list)에 등록된 계정에 대한 접속제어는 userlist_enable과 userlist_deny에 따라 결정된다.

• userlist_enable의 defaul는 No지만 YUM으로 설치된 경우Yes로 설정되어 있다.

 

userlist_enable → 이 파일을 쓸지말지만 설정하는 거 (yes 돼 있을 때만 사용함.)

userlist_deny → yes = 등록된 사용자가 접속이 안된다. no = 등록된 사용자만 접속 가능하다.

 

사용자 제한 설정(ftpusers)

PAM(Pluggable Authentication Module)에 의한 접속 제어는 앞서 본 userlist를 이용한 방법과 유사하다. 이 기능은 /etc/pam.d/vsftpd 파일에 접속 제한 방식을 설정하고 접속이 제한된 계정의 목록은 ftpusers 파일을 이용한다.

 

pam_service_name = vsftpd

- vsftpd 서버의 PAM 제어를 위한 서비스명을 등록한다. 등록된 이름으로 /etc/pam.d/에 설정 파일이 만들어진다.

 

/etc/pam.d/vsftpd 파일 설정에 따라 제한 설정이 달라진다. /etc/vsftpd/ftpusers가 목록 파일로 정의되어 있다. 만일 sense 설정을 deny가 아니라 allow 변경하면 ftpuser 파일에 등록된 사용자만 FTP 서버 접속이 허용된다.

 

/etc/pam.d/vsftpd

: sense [deny | allow] 설정에 따라 /etc/vsftpd/ftpusers 설정이 바뀐다.

• Deny : ftpusers에 등록된 계정은 ftp 접속을 불허한다.

• Allow : ftpusers에 등록된 계정만 ftp 접속을 허용한다.

deny가 기본값

 

 

실습

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

 

ftpusers에 st01을 넣어서 ftp서버에 접속이 되는지 안되는지 확인

ㄴ 아이디는 입력이 되지만 비밀번호를 입력하니까 로그인이 안됨.

 

 

user_list에 st01을 넣어서 ftp서버에 접속이 되는지 안되는지 확인

ㄴ 아이디를 입력하자마자 들어가지지 않습니다.( 퍼미션 디나이가 뜬다. )

 

 

user_list에 등록된 사람만 접속이 가능하게 바꾸고 확인

 

ㄴ vsftpd.conf파일에 userlist_deny=NO 추가,  user_list에 st01 넣기

 

 

 

/etc/pam.d/vsftpd에 들어가서 deny를 allow로 변경하고, ftpusers에 st01을 넣기

 

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

 

DNS

네트워크 사상 최초로 성공한 분산형 데이터베이스

ㄴ 느슨하게 연결되어 있다.

 

  • 분산형 데이터베이스다.
    • 수많은 name server들이 계층형 구조로 구조화 되어있다.
        ㄴ 계층형구조 : 컴퓨터에서는 트리구조라고 한다.
  • Application layer protocol입니다.
  • 다른 app layer protocol들이 HTTP, FTP, SMTP 등 사용자가 제공한 호스트네임을 ip로 변환하는데 이용한다.
    • 인터넷의 가장 중요한 기능 중의 하나
    • Network edge에 구현된다.
  • IP와 이름 간 mapping → 내가 이름을 가지고 가면 ip로 바꿔준다.(반대도 사용가능하지만 가치가 없기 때문에 등록을 안 한다.)
  • 호스트명을 IP 주소로 변환한다.
  • 호스트에 얼리아 싱 (host aliasing)
    • 정식 (canonical) 호스트명
    • 별칭(aliasing) 호스트명
    • DNS는 IP 뿐 아니라 정식 호스트명을 얻기 위해 이용되기도 한다. (ip를 알아야 한다.)
  • DNS를 중앙집중식으로 하지 않는 이유
    • 서버 장애 (인터넷 다운…)
    • Traffic의 집중
    • 중앙 서버까지의 거리
    • 관리

www.google.com(.)

. 이 생략되어 있다.(. 은 root)

. 안에 com이라는 도메인 안에 google이름을 등록한 것. www은 컴퓨터 이름이다.

ㄴ google을 com이라는 도메인에 이름을 등록한 거.

도메인명은 추상적인 거

 

 

DNS구조

하위 네임서버의 정보는 자신의 상위 네임서버에 등록되어 있습니다.

 

 

client의 chrome에서 www.itclass.co.kr에 접속하기 위한 DNS응답과정

 

local dns server  :  192.168;10.##1

client                   : 192.168.10.##0

 

  1. client가 local dns server에게 www.itclass.co.kr의 ip를 질의
  2. local dns server가 root dns server에게 kr dns server의 ip를 질의
  3. root dns server 가 local dns server에게 kr dns server의 ip를 응답
  4. local dns server가 kr dns server에게 co.kr의 ip를 질의
  5. kr dns server가 local dns server에게 co.kr의 ip를 응답.
  6. local dns server가 co.kr dns server에게 itclass.co.kr의 ip를 질의.
  7. co.kr dns server가 local dns server에게 itclass.co.kr의 ip를 응답.
  8. local dns server가 itclass.co.kr에게 www.itclass.co.kr의 ip를 질의
  9. itclass.co.kr가 local dns server에게 www.itclass.co.kr의 ip를 응답.
  10. local dns server가 client에게 www.itclass.co.kr의 ip를 응답.

 

DNS 서버 설치&확인

Bind 서버설치확인 및 설치

 

# dnf list bind bind-utils

# dnf install –y bind bind-utils