[쿠버네티스 4주차 1/10] 리눅스 - OpenSSH & DNS

신현식·2023년 1월 10일
0

구름_Linux

목록 보기
14/22
post-thumbnail

OpenSSH

SSH 프로토콜을 사용하여 시스템으로 원격 접속 할수 있게 도와주는 서비스이다. SSH 는 모든 데이터를 암호화해서 전송해 사용자는 원격접속할때 안전하게 사용 가능하다.

-> 과거에는 telnet을 이용해서 원격으로 접속했지만 평문으로 접속하기 때문에 보안이 약해서 현재는 사용하지 않는다

  • 암호화 이론 -> SSH, SSL(HTTPS)

일방향 암호화

암호화는 지원하지만 복호화는 안된다.
해쉬 : 일방향 암호화되어 나온 암호문
md4,md5,sha, sha256,sha512,sha1024 등의 일방향 암호화 알고리즘이 있다

  • 사용이유1 : 안전하게 패스워드 같은 중요 데이터를 보관하기 위해
    복호화는 지원하지 않지만 크랙킹은 가능하다.(무차별대입, 사전대입 공격으로 가능)
  • 사용이유2 : 파일이나 데이터의 무결성 검증

양방향 암호화

  1. 암호화, 복호화 둘다 지원
  2. 키가 필요(일정 길이의 문자열 데이터)
    대칭키 암호화 , 비대칭키 암호화 두가지 방식이 있다.

대칭키암호화(세션키암호화, 비밀키암호화)

키가 1개
암호화키 = 복호화키
DES, 3DES, AES 등의 알고리즘 존재
대칭키 암호화을 이용한 암호화 통신

  • 단점 : 키전달문제, 중간에 해커가 키를 해킹한다면 평문 통신이랑 같다

비대칭키 암호화(개인키/공개키 암호화)

키가 2개
암호화키, 복호화키가 따로 있음

  • 개인키는 절대 누구에게도 주면 안되고 오직 자기자신만 소유해야함
  • 공개키는 누구에게도 줄 수 있음. 해커에게도 공개키는 줄 수 있음

-> 개인키로 암호화한것은 오직 공개키로만 해독이 가능, 공개키로 암호화한것은 오직 개인키로만 해독이 가능

  • 장점 : 키 전달 문제 해결
  • 단점
  1. 속도가 느림, 클라이언트는 대칭키를 만들어서 대칭키를 공개키로 암호화해서 전달하면 전달문제와 속도가 느린 단점을 해결 가능
    -> RSA 알고리즘
    개인키는 오로지 서버만 가지고 있음
  2. 키 신뢰성 문제, SSL 알고리즘으로 해결

✔ 비대칭키 암호화 통신의 또 다른 기능 : 인증
공개키로 암호화해서 보내는게 암호화통신
개인키로 암호화해서 보내는게 인증

캐쉬전용 네임서버 만들기

DNS 서버 구축
서비스 구축
1. 소프트웨어 패키지 설치
2. 서비스 환경설정 및 구축
3. 설치한 서비스 실행
4. 방화벽 오픈

yum -y install bind bind-chroot

BIND 구성
vi /etc/named.conf 누구든지 우리 DNS 서버에 접속할수 있도록 해줌
DNS서비스의 이름이 named이다.

systemctl restart named.service (.service는 생략가능)
systemctl enable named 부팅후에도 도작하게 만드는 명령

firewall-cmd --permanent --add-service=dns 방화벽 설정

(firewall-cmd --permanent --add-port=53/tcp
firewall-cmd --permanent --add-port=80/udp 포트번호를 이용해서 열수도 있다.) but 보통은 서비스를 사용하여 연다.

firewall-cmd --reload

firewall-cmd --info-service=dns : dns 서버의 포트번호 조회

DNS 서버 구축

주 DNS 서버 구축
1번 서버에다가 dns서버랑 http서버 구축
2번 서버에서 linux.com -> 1번 웹사이트 접속
zone transfer: 보조 dns 서버에 주 dns서버 내용 그대로 복사하는 것

httpd 설치
yum install -y httpd

rpm -qa httpd
systemctl start httpd
firewall-cmd --add-service=http
firewall-cmd --reload

cd /var/www/html
vi index.html
내용으로 html 내용 추가 ex. < h1> linux.com < /h1>

vi /etc/named.conf
1번 컴퓨터에 만드는 DNS 서버는 master DNS(주 DNS)를 설정
file은 존에 대한 상세정보가 있는 장소
allow-update { none; } 존에 대한 정보를 알려주는 것인데 any로 하면 보안이 안좋음으로 보통 슬레이브 DNS 주소로 설정한다.

named-checkconf 오타 체크, 반응이 없으면 오타가 없는 것

cp named.localhost linux.com.db
vi linux.com.db -> 파일 내용 수정
@ : 존 설정의 도메인 이름을 표현, 현재는 linux.com이라는 존을 설정하는 중임
IN : 인터넷을 의미
SOA: ns.linux.com이라는 도메인서버가 linux.com를 권장한다는 의미
root: 실제 관리자 메일주소를 적어줌
A: linux.com의 IP
www 과 ns 의 IP도 똑같이 설정함, 즉 www.linux.com / ns.linux.com / linux.com 를 치면 모두 같은 IP를 알려준다는 것이다.

named-checkzone linux.com linux.com.db -> 존 파일이 잘 만들어 졌나 확인, OK가 나오면 문제없다는 것이다.
chmod -R 754 /var/named
systemctl restart named

여기까지 해서 DNS 서버 구축이 완료된 것이다.


2번 서버로 가서
vi /etc/resolv.conf -> nameserver를 1번 IP주소로 바꿔준다.

추가사항

DNS를 이용한 로드 밸런싱 방법이다.

DNS 레코드

DNS 서버는 단순히 특정 이름에 대한 응답만을 수행하는 것이 아니라 영역(zone), 즉 도메인 전체에 대한 정보를 제공하기도 한다. 따라서 DNS 서버는 다양한 형태로 되어있는 DNS 레코드를 저장하고 있어야 한다.

  • DNS 레코드 : DNS 서비스를 구축하거나 DNS 서버에 쿼리를 날리기 위해서 공부해야하는 개념

NS : 도메인의 네임서버 정보
MX : 도메인의 메일서버 정보
A: 호스트의 IP주소, 특정 호스트의 주소
CNAME : 호스트의 별칭
SOA : 도메인의 Start Of Authority, 해당 도메인에 권한이 있다 라는 뜻
PTR : IP주소에 대한 호스트명
ANY : 호스트에 관련된 모든 레코드들의 정보

profile
전공 소개

0개의 댓글