-
[산대특] 함수, Shell Lib, eval, SSH, FTP, vsFTP, Parallel SSH(pssh), 로컬 DNS 서버[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/Linux 2024. 9. 12. 19:42
0912
함수
함수(function)는
계산이나 지정된 작업을 수행시키는 일단의 코드 블럭이다.
미리 선언하지 않고, 함수를 사용하면서 바로 만들어 주면 된다.
함수를 호출할 때 함수 정의에서의 함수_명과 일치해야 하고,
호출할 때 인자의 갯수만 맞으면 되고 인자의 명칭은 무관.
Shell Library
다양한 함수들을 모아서 만든 파일
솔루션을 개발할 때 중요하거나 자주 사용되는 함수들을 모아서 라이브러리 파일로 만들어 두고
여러 어플에서 수시로 불러들여서 변경없이 그대로 사용하면 효율적으로 작업.
eval
eval 문자열 == # 명령어
$(명령어)
스크립트에 넣으면 변수처럼 사용될 수 있다.
eval $(문자열)로 처리하는 기법과 유사하다.
export
A 프로세스 안에 있는 변수를 B 프로세스로 전해주는 명령어이다.
Bash Shell Script에 C, Python 등 프로그램을 넣어서 실행시킬 수 있다.
Telnet 서버 설정
Telnet으로 원격 접속했을 때에는 일반 사용자에서 root 권한으로 바꾸는 su 명령어가 실행되지 않는다
원격접속에서
사용자를 인증하는 Linux Kerberos 서버가 있을 경우에는 rlogin,
SSH가 있을 경우에는 slogin으로 로그인해야 한다.
=>Telnet으로 일단 타겟 UNIX/Linux 머신으로 들어가면 거의 모든 Linux 명령어를 사용할 수 있고,
exit 해서 Telnet을 벗어날 수 있다.
SSH 서버 설정
타겟과 Credential(비번,아이디 세트)을 사용하는 연결을 할 수도 있지만 SSL로 키를 생성해서 키로 연결할 수도 있다.
Parallel SSH(pssh)는 동시에 여러 머신들과 ssh로 연결해서 일괄적으로 작업.
pssh를 설치하면 pscp, prsync, pslurp, pdsh 등이 함께 설치된다.
이들은 Cloud, BigData, Hadoop 등에서 사용하면 편리.
FTP 서버(vsFTP) 설정
원격 호스트에 연결해서 파일을 주고받는 vsFTP 서버를 설치해서 사용하면 Linux 머신에서는 /var/ftp/pub 디렉터리가 외부로 노출되는 곳, 그래서 여기에 파일을 넣고 외부에서 접속해서 사용하게 한다.
FTP 명령어는 get와 put만 알면 된다.
로컬 DNS 서버(bind) 설정 및 활용
도메인이 구성되면 가장 먼저 할 일이 DNS 서버를 구축하는 일.
Windows Server에서도 도메인을 구축하기 위해서 Active Directory를 설치하면
설치 도중에 DNS 서버 패키지를 먼저 설치하게 한다.
기본적으로 DNS 서버의 이름 풀이(name resolution)는 두 가지 일을 하는데
1) 내부에서 외부
도메인 naver.com의 웹서버 www.naver.com으로 찾아가는
내부 호스트들에게 www.naver.com 서비스를 제공하는 naver.com 도메인 내의
www 호스트 머신의 IP가 210.89.164.90이라고 알려주는 역할과
2) 외부에서 내부로 접속하려는 외부 호스트들에게
조직 도메인 내의 웹 서버 www.kahn.edu, kahn.edu 도메인의 웹 서버
www 호스트의 IP가 192.168.100.100라고 알려주는 역할을 수행한다.
이름풀이 순서는
'로컬 머신의 /etc/hosts(C:\Windows\System32\drivers\etc) 파일 =>로컬 DNS 서버 =>글로벌 DNS 서버'
DNS는 DNS 서버끼리 영역전송(zone transfer)할 때에는 TCP를 사용하고,
호스트들이 이 DNS 서버를 찾을 때에는 UDP 프로토콜을 사용하는데 각각 53번 포트를 이용.
DNS 서버는 이 영역전송에서 해킹에 취약
=>보안을 위해서 영역을 전송받을 호스트를 지정
DNS 모듈인 bind 패키지를 사용한다. (yum -y install bind-utils ethtool)
127.0.0.1을 localhost라고 하고 웹이 없어도 웹을 테스트하게 해준다.
(우리가 httpd 서버를 구축한 가상머신에서 https://localhost 를 하면 구축한 웹사이트를 보여주는 이런 메커니즘을 해주는 것이 바로 루프백 해주는 127.0.0.1 덕분이다)
DNS 설정에서
@은 도메인의 별칭으로 @ 대신 kahn.edu.으로 써도 되고,
IN은 Internet 상에서 작동된다는 뜻이고,
NS는 Name Server라는 의미,
SOA(Service Of Authority)는 이 파일이 이 kahn.edu 도메인의 공적인 DNS 설정이라는 뜻이다.
A는 IPv4(32비트) 호스트(AAAA는 IPv6 호스트, 128비트),
PRT은 Reverse DNS lookup에서 사용되고, (역방향 DNS)
AXFR은 전체 영역전송, IXFR은 증가분 영역전송 요청이다.
(증거분 전송 : 변경된 부분만 전송하거나 업데이트하는 방식을 의미)
** 서버 서비스는 MX(Mail eXchanger) 메일 서버, NS(Name Server) 네임 서버, WWW, FTP, .... 서버이다.
'[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정 > Linux' 카테고리의 다른 글
[산대특] Proxy, KVM, DHCP, rsyslog (0) 2024.09.19 [산대특] Web Server, Virtual Host, NFS, Samba, Mail Server (0) 2024.09.15 [산대특] 쉘 프롬프트 문법 (0) 2024.09.11 [산대특] 보안에서의 VPN, VPN Tunneling, IPSec, Puppet, Shell, Shell 프롬프트, 시스템/환경 변수 (0) 2024.09.10 [산대특] iptables, 백업 및 파일 관리, bacula, rpm (1) 2024.09.09