KR102118380B1 - An access control system of controlling server jobs by users - Google Patents

An access control system of controlling server jobs by users Download PDF

Info

Publication number
KR102118380B1
KR102118380B1 KR1020190142472A KR20190142472A KR102118380B1 KR 102118380 B1 KR102118380 B1 KR 102118380B1 KR 1020190142472 A KR1020190142472 A KR 1020190142472A KR 20190142472 A KR20190142472 A KR 20190142472A KR 102118380 B1 KR102118380 B1 KR 102118380B1
Authority
KR
South Korea
Prior art keywords
server
user
session
command
access control
Prior art date
Application number
KR1020190142472A
Other languages
Korean (ko)
Inventor
김대옥
염창주
김정호
오소영
서병선
Original Assignee
주식회사 넷앤드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 넷앤드 filed Critical 주식회사 넷앤드
Priority to KR1020190142472A priority Critical patent/KR102118380B1/en
Application granted granted Critical
Publication of KR102118380B1 publication Critical patent/KR102118380B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present invention relates to an access control system with a function of controlling a server job for each user which is installed between at least one user terminal and at least one server to relay between the user terminal and the server. The access control system comprises: a job environment setting unit to select commands to be used by a user of the user terminal, and generate shellcode for a user to process only selected command (hereafter, dedicated commands); a communication relay unit to relay a message between the user terminal and the server; and an authentication processing unit to set a session (hereafter, the session for a server) with the server and a session (hereafter, the session for a client) with the user terminal, and set the session for a server after registering the shellcode for a user in the server. A command is selected only in a preregistered command set to be performed by the system to block a command other than registered commands to make command bypassing impossible.

Description

사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템 { An access control system of controlling server jobs by users }Access control system with server job control function for each user {An access control system of controlling server jobs by users}

본 발명은 사용자 단말과 서버 사이에 게이트웨이를 구비하여 중계하되, 사용자에 의해 사전에 사용할 명령어를 등록받고, 등록된 명령어 내에서만 서버 작업을 수행하도록 제한하는, 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템에 관한 것이다.The present invention provides a gateway with a gateway between the user terminal and the server, but registers commands to be used in advance by the user and restricts the server to perform server tasks only within the registered commands. It's about the control system.

특히, 본 발명은 사용자가 명령어 집합을 등록하면, 해당 집합 목록 내에서의 명령어 선택 및 실행 기능을 가지는 사용자 전용 쉘 코드를 생성하고, 해당 사용자 전용 쉘 코드를 해당 서버에 등록시켜, 사용자 작업이 해당 서버 쉘에 의해 처리되도록 하는, 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템에 관한 것이다.In particular, according to the present invention, when a user registers a command set, a user-only shell code having a command selection and execution function in the set list is generated, and the user-specific shell code is registered in a corresponding server, so that a user task is applicable. It relates to an access control system equipped with a user-specific server task control function to be processed by a server shell.

일반적으로, 서버 접근통제 시스템의 명령어 통제 기술은 접근통제 게이트웨이(Gateway) 서버를 경유하는 패킷을 분석하여 사용자가 입력한 명령어를 추출하고, 해당 사용자에게 적용된 보안에 위협이 될 수 있는 금지 명령어 리스트와 비교하여, 리스트에 있을 경우 해당 명령어를 서버에 전송하지 않고 파기한다. 이를 통해, 서버에 대한 보안을 강화하는 기술이다[특허문헌 1,2].In general, the command control technology of the server access control system analyzes packets passing through the access control gateway server, extracts the command entered by the user, and lists the prohibited commands that can be a threat to the security applied to the user. By comparison, if it is in the list, the corresponding command is discarded without being sent to the server. Through this, it is a technology to enhance security for the server [Patent Documents 1,2].

구체적으로, 서버 접근통제 시스템은 사용자가 입력한 명령어 문자를 게이트웨이(Gateway)에서 누적한다. 그리고 사용자가 명령어 실행을 위하여 엔터(Enter)키를 입력하면, 접근통제 시스템은 인가 여부를 판단하기 위하여, 사용자에게 적용된 금지 명령어 리스트와, 누적된 명령어 문자열을 비교한다. 그리고 입력한 명령어 문자열 중에서 일부가 금지 명령어 리스트에 포함되어 있을 경우, 해당 명령어(또는 문자열)를 차단한다.Specifically, the server access control system accumulates command characters input by the user at the gateway. Then, when the user presses the Enter key to execute the command, the access control system compares the list of prohibited commands applied to the user and the accumulated command string to determine whether or not it is authorized. And if some of the entered command strings are included in the forbidden command list, the command (or string) is blocked.

특히, 현재 에이전트리스(Agentless) 방식의 접근통제 보안 솔루션들은 서버에 접속하는 사용자에 대한 인적 실수로 인한 보안 사고를 줄이기 위해, 서버에 크리티컬한 위협이 되는 일부(파일 삭제, 서버 종료/재시작, 우회 접속) 작업에 대해서만 금지 명령어 형태로 관리하고 있다. 하지만 에이전트리스(Agentless) 방식에서 금지 명령어는 사용자가 입력한 문자열을 기준으로 비교를 하기 때문에 이를 악용할 경우 입력한 문자열 비교 방식을 우회할 수 있다.In particular, the current agentless access control security solutions are a part of the critical threat to the server (file deletion, server shutdown/restart, bypass, to reduce security incidents due to human error on users accessing the server) Connection) It is managed in the form of prohibited commands only for work. However, in the agentless method, the forbidden command compares based on the string entered by the user, so if you abuse it, you can bypass the entered string comparison method.

또한, 사용자가 입력한 명령어에 대한 인가 여부에 대한 정확도를 높이기 위하여, 보안에 위협이 될 수 있는 금지 명령어를 정규표현식(Regular expression) 형태로 등록한다. 그래서 사용자가 입력한 명령어 문자가 일정 규칙으로 포함되는 경우를 탐지하여, 보다 정확한 탐지를 할 수 있도록 지원한다. In addition, in order to increase the accuracy of whether or not the user inputs the command, the forbidden command that can be a threat to security is registered in the form of a regular expression. Therefore, it detects the case where the command text entered by the user is included as a certain rule, and supports more accurate detection.

그러나 사용자가 서버에 명령어를 입력하는 방식은 매우 다양한 형식으로 존재한다. 따라서 종래기술에 의한 접근통제 시스템은 정규 표현식에 의한 탐지 기술로도 여러가지 형식으로 입력되는 명령어에 대한 식별 및 인가 여부를 정확하게 처리할 수 없다.However, there are many different ways for users to enter commands on the server. Therefore, the access control system according to the prior art cannot accurately process the identification and authorization of commands input in various formats even with the detection technology using the regular expression.

예를 들어, 다음과 같이 우회할 수 있다.For example, you can bypass:

먼저, 문자열을 변수로 대체하여 명령어를 조합할 수 있다. 즉, reboot 명령어가 금지 명령어로 설정되어 있을 경우, A="re", B="boot" 형태로 변수에 문자열을 대체하고, A, B 문자열을 조합한다. 이렇게 A와 B 문자열을 조합하면, reboot 명령어를 실행시킬 수 있다.First, you can combine commands by replacing strings with variables. That is, when the reboot command is set as a prohibition command, the string is replaced with the variable in the form of A="re", B="boot", and A and B strings are combined. If you combine A and B strings like this, you can execute the reboot command.

또 다른 예로서, vi 명령을 통해 금지 명령어를 우회할 수 있다.As another example, the vi command can bypass the forbidden command.

즉, 쉘 스크립트 내에서 사용 가능한 명령어들을 활용하여 금지 명령어를 만들어 실행할 수 있다.That is, you can create and execute a forbidden command by using the commands available in a shell script.

또한,"ls /usr/sbin/" 명령어 입력 시 조회된 결과에 r, e, b, o, o, t 라는 문자열이 포함된 파일이 존재하며, 조회 결과에서 문자열을 파싱하여 reboot 이라는 문자열을 얻을 수 있다. 이렇게 얻어진 문자열을 실행시켜 우회할 수 있다.In addition, when the "ls /usr/sbin/" command is entered, a file containing the strings r, e, b, o, o, and t exists in the searched result, and the string called reboot is obtained by parsing the string in the search result. Can be. You can bypass it by running the string thus obtained.

상기와 같이, 서버에 접속한 작업자가 명령어를 입력할 수 있는 환경일 경우, 금지 명령어 리스트를 우회할 수 있는 다양한 방법이 존재하므로, 실제로 작업자의 작업 환경을 통제 하기란 불가능에 가깝다.As described above, in the case of an environment in which an operator accessing a server can input a command, there are various ways to bypass the forbidden command list, so it is almost impossible to actually control the working environment of the worker.

따라서 심각한 보안 이슈가 될 수 있다.Therefore, it can be a serious security issue.

한국등록특허 제10-1475981호(2014.12.23.공고)Korean Registered Patent No. 10-1475981 (announced on December 23, 2014) 한국등록특허 제10-1780764호(2017.09.22.공고)Korean Registered Patent No. 10-1780764 (Announcement on September 22, 2017)

본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 사용자 단말과 서버 사이에 게이트웨이를 구비하여 중계하되, 사용자에 의해 사전에 사용할 명령어를 등록받고, 등록된 명령어 내에서만 서버 작업을 수행하도록 제한하는, 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템을 제공하는 것이다.The object of the present invention is to solve the problems as described above, the relay is provided with a gateway between the user terminal and the server, but the command to be used in advance by the user is registered, and to perform the server operation only within the registered command It is to provide an access control system equipped with a limiting, user-specific server task control function.

즉, 본 발명의 목적은 사용자가 명령어 집합을 등록하면, 해당 집합 목록 내에서의 명령어 선택 및 실행 기능을 가지는 사용자 전용 쉘 코드를 생성하고, 해당 사용자 전용 쉘 코드를 해당 서버에 등록시켜, 사용자 작업이 해당 서버 쉘에 의해 처리되도록 하는, 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템을 제공하는 것이다.That is, the object of the present invention is that when a user registers a command set, a user-only shell code having a command selection and execution function in the corresponding set list is generated, and the user-specific shell code is registered in the server to perform a user operation. It is to provide an access control system equipped with a server task control function for each user to be processed by the corresponding server shell.

상기 목적을 달성하기 위해 본 발명은 적어도 하나의 사용자 단말과 적어도 1개의 서버 사이에 설치되어, 상기 사용자 단말과 상기 서버 사이를 중계하는, 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템에 관한 것으로서, 상기 사용자 단말의 사용자가 사용할 명령어들을 선정하고, 선정된 명령어(이하 전용 명령어)들만 처리하게 하는 사용자 전용 쉘 코드를 생성하는 작업환경 설정부; 상기 사용자 단말과 서버 사이에서 메시지를 중계하는 통신 중계부; 및, 상기 서버와의 세션(이하 서버용 세션) 및 상기 사용자 단말과의 세션(이하 클라이언트용 세션)을 설정하되, 상기 사용자 전용 쉘 코드를 상기 서버에 등록시킨 후 상기 서버용 세션을 설정하는 인증 처리부를 포함하는 것을 특징으로 한다.In order to achieve the above object, the present invention relates to an access control system equipped with a server task control function for each user, which is installed between at least one user terminal and at least one server, and relays between the user terminal and the server. , A working environment setting unit that selects commands to be used by a user of the user terminal and generates a user-specific shell code to process only the selected commands (hereafter, dedicated commands); A communication relay unit relaying a message between the user terminal and the server; And an authentication processing unit for establishing a session with the server (hereinafter referred to as a server session) and a session with the user terminal (hereinafter referred to as a client session), but registering the user-only shell code with the server and establishing the server session. It is characterized by including.

또, 본 발명은 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템에 있어서, 상기 작업환경 설정부는 다수의 작업을 정의하고, 해당 작업에 필요한 명령어들을 그룹화하여 명령어 리스트로 설정해두고, 사용자에 의해 작업을 선정받고, 선정된 작업에 해당하는 명령어 리스트의 명령어들을 상기 전용 명령어로 선정하는 것을 특징으로 한다.In addition, in the present invention, in the access control system equipped with a server task control function for each user, the task environment setting unit defines a plurality of tasks, sets commands necessary for the task into a command list, and works by the user Is selected, it characterized in that the command of the command list corresponding to the selected task is selected as the dedicated command.

또, 본 발명은 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템에 있어서, 상기 사용자 전용 쉘 코드는 상기 전용 명령어를 리스트로 표시하고, 상기 전용 명령어의 리스트 중에서 하나의 전용 명령어를 선택하게 하고, 선택된 전용 명령어를 실행시켜주는 실행 코드인 것을 특징으로 한다.In addition, in the present invention, in the access control system equipped with a server task control function for each user, the user-only shell code displays the dedicated command as a list and selects one dedicated command from the list of the dedicated commands, It is characterized in that it is executable code that executes the selected dedicated instruction.

또, 본 발명은 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템에 있어서, 상기 인증 처리부는 상기 서버용 세션을 SSH(secure shell) 프로토콜에 의한 세션(이하 SSH 세션)으로 설정하되, SSH 인증키의 공개키 및 개인키 쌍을 생성하고, 루트 계정의 접속 정보로 상기 서버에 접속하여, 상기 SSH 인증키의 공개키를 상기 서버에 등록하고, 상기 사용자 전용 쉘 코드의 실행파일을 상기 서버에 복사하고, 상기 실행파일의 경로를 상기 서버에 등록하는 것을 특징으로 한다.In addition, in the present invention, in the access control system equipped with a server task control function for each user, the authentication processing unit sets the session for the server to a session using a secure shell (SSH) protocol (hereinafter referred to as an SSH session). Create a public key and private key pair, access the server with the access information of the root account, register the public key of the SSH authentication key to the server, copy the executable file of the user-only shell code to the server, , Registering the path of the executable file to the server.

또, 본 발명은 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템에 있어서, 상기 인증 처리부는 루트 계정으로 접속하여 SSH 인증키의 공개키를 상기 서버에 등록한 후, 사용자 계정으로 상기 서버에 접속하되, 등록된 공개키를 이용하여 상기 사용자 계정의 사용자 인증을 수행하는 것을 특징으로 한다.In addition, in the present invention, in the access control system equipped with a server task control function for each user, the authentication processing unit accesses the root account and registers the public key of the SSH authentication key with the server, and then accesses the server with a user account. , Using the registered public key to perform user authentication of the user account.

또, 본 발명은 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템에 있어서, 상기 인증 처리부는 서버의 작업이 종료되면, 상기 서버에 등록된 사용자 전용 쉘 코드를 삭제하여 초기화하는 것을 특징으로 한다.In addition, the present invention is characterized in that in the access control system equipped with a server job control function for each user, the authentication processing unit initializes by deleting the user-only shell code registered in the server when the server job is finished.

상술한 바와 같이, 본 발명에 따른 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템에 의하면, 사전에 등록된 명령어 집합 내에서만 명령어를 선택하여 수행시킴으로써, 등록된 명령어들 외의 명령어를 원천적으로 차단하여 명령어 우회가 불가능하게 할 수 있는 효과가 얻어진다. 이를 통해 인적 실수로 발생될 수 있는 가능성을 원천적으로 차단할 수 있다.As described above, according to the access control system equipped with a server task control function for each user according to the present invention, by selecting and executing a command only within a pre-registered command set, commands other than the registered commands are blocked by default. An effect is obtained that can disable command bypass. This can fundamentally block the possibility of human error.

도 1은 본 발명을 실시하기 위한 전체 시스템에 대한 구성도.
도 2는 본 발명의 일실시예에 따른 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템의 구성에 대한 블록도.
도 3은 본 발명의 일실시예에 따른 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템에 의한 서버 접속 방법을 설명하는 흐름도.
도 4는 본 발명의 일실시예에 따른 작업별 허용가능한 명령어 리스트 정보를 나타낸 예시 표.
도 5는 본 발명의 일실시예에 따른 서버별 사용가능한 프로그래밍 종류 정보를 나타낸 예시 표.
도 6은 본 발명의 일실시예에 따른 쉘 스크립트로 변환된 사용자 전용 쉘 코드에 대한 예시도.
도 7은 본 발명의 일실시예에 따른 파이썬으로 변환된 사용자 전용 쉘 코드에 대한 예시도.
도 8은 본 발명의 일실시예에 따른 SSH 인증키의 공개키 및 개인키에 대한 예시도.
도 9는 본 발명의 일실시예에 따른 인증파일에 추가된 공개키 값을 나타낸 예시도.
도 10은 본 발명의 일실시예에 따른 인증파일에 추가된 실행파일 파라미터를 나타낸 예시도.
도 11은 본 발명의 일실시예에 따른 사용자 전용 쉘에 대한 예시 화면.
1 is a configuration diagram of an entire system for carrying out the present invention.
Figure 2 is a block diagram of the configuration of an access control system equipped with a server operation control function for each user according to an embodiment of the present invention.
3 is a flowchart illustrating a server access method by an access control system equipped with a server task control function for each user according to an embodiment of the present invention.
4 is an exemplary table showing allowable command list information for each job according to an embodiment of the present invention.
5 is an exemplary table showing available programming type information for each server according to an embodiment of the present invention.
Figure 6 is an exemplary view of a user-only shell code converted to a shell script according to an embodiment of the present invention.
7 is an exemplary view of a user-only shell code converted to Python according to an embodiment of the present invention.
8 is an exemplary view of a public key and a private key of an SSH authentication key according to an embodiment of the present invention.
9 is an exemplary view showing a public key value added to an authentication file according to an embodiment of the present invention.
10 is an exemplary view showing an execution file parameter added to an authentication file according to an embodiment of the present invention.
11 is an example screen for a user-only shell according to an embodiment of the present invention.

이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.Hereinafter, specific contents for carrying out the present invention will be described in accordance with the drawings.

또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.In the description of the present invention, the same parts are denoted by the same reference numerals, and repeated explanation is omitted.

먼저, 본 발명을 실시하기 위한 전체 시스템의 구성에 대하여 도 1을 참조하여 설명한다.First, the configuration of the entire system for carrying out the present invention will be described with reference to FIG. 1.

도 1에서 보는 바와 같이, 본 발명을 실시하기 위한 전체 시스템은 사용자 단말(10), 적어도 하나의 서버(40), 및, 서버(40)의 접근을 통제하는 접근통제 게이트웨이(30)로 구성된다. 또한, 사용자 단말(10)과 접근통제 게이트웨이(30)는 네트워크(미도시)를 통해 연결된다. 또한, 관리자가 사용하는 관리자 단말(20), 또는, 데이터를 저장하기 위한 데이터베이스(80)를 더 포함하여 구성될 수 있다.As shown in FIG. 1, the entire system for implementing the present invention is composed of a user terminal 10, at least one server 40, and an access control gateway 30 that controls access to the server 40. . In addition, the user terminal 10 and the access control gateway 30 are connected through a network (not shown). In addition, it may be configured to further include a manager terminal 20 used by the administrator, or a database 80 for storing data.

먼저, 사용자 단말(10)은 사용자가 사용하는 컴퓨팅 단말로서, PC, 노트북, 태플릿PC, 스마트폰, 패블릿 등이다. 또한, 사용자 단말(10)은 네트워크(미도시)를 통해 서버(40) 또는 접근통제 게이트웨이(30)에 연결할 수 있는 네트워크 기능을 보유한다. 또한, 사용자 단말(10)은 어플리케이션 등 프로그램 시스템이 설치되어 실행될 수 있다.First, the user terminal 10 is a computing terminal used by a user, and is a PC, laptop, tablet PC, smartphone, phablet, and the like. In addition, the user terminal 10 has a network function that can connect to the server 40 or the access control gateway 30 through a network (not shown). In addition, the user terminal 10 may be executed by installing a program system such as an application.

또한, 사용자 단말(10)에는 통신 어플리케이션(미도시)이 설치되어, 통신 어플리케이션을 통해 서버(40)에 접속하여 통신 작업이 수행될 수 있다. 통신 어플리케이션(미도시)은 사용자가 서버(40)에 원격 접근하기 위한 다양한 터미널 툴로서, 통신 프로토콜을 통해 서버(40)에 접속하고 통신을 수행한다. 바람직하게는, 통신 어플리케이션은 서버(40)에 접속하기 위한 SSH(secure shell) 프로토콜에 의한 통신 프로그램, 쉘 스크립트, 통신 어플리케이션 등 통신용 프로그램 시스템이다.In addition, a communication application (not shown) is installed in the user terminal 10, and a communication operation may be performed by accessing the server 40 through the communication application. A communication application (not shown) is a variety of terminal tools for a user to remotely access the server 40, and accesses the server 40 through a communication protocol and performs communication. Preferably, the communication application is a communication system using a secure shell (SSH) protocol for accessing the server 40, a shell script, a communication application program system, and the like.

한편, 통신 어플리케이션은 서버(40)에 접속하여 통신을 수행하나, 실제로 접근통제 게이트웨이(30)를 통해 우회적으로 서버(40)에 접속한다. 즉, 통신 어플리케이션은 자신의 입장에서 서버(40)와 직접적으로 통신하는 것으로 작동한다. 예를 들어, 통신 어플리케이션은 서버 정보와 프로토콜 정보(IP주소 및 포트)로 세션을 설정하고 서버(40)에 접근하나, 통신 어플리케이션의 통신 패킷 등이 변조되어 접근통제 게이트웨이(30)로 우회된다.On the other hand, the communication application connects to the server 40 to perform communication, but actually accesses the server 40 by way of the access control gateway 30. That is, the communication application works by directly communicating with the server 40 from its standpoint. For example, the communication application establishes a session with server information and protocol information (IP address and port) and accesses the server 40, but the communication packet of the communication application is modulated and bypassed to the access control gateway 30.

사용자 단말(10)이 서버(40)에 접근한다는 것은 실제로, 사용자 단말(10)에 설치되는 통신 어플리케이션을 통해 서버(40)에 접근하는 것이다. 그러나 이하에서 설명의 편의를 위하여, 사용자 단말(10)이 서버에 접근하는 것으로 설명한다.The fact that the user terminal 10 approaches the server 40 is actually accessing the server 40 through a communication application installed in the user terminal 10. However, for convenience of description, it will be described below that the user terminal 10 accesses the server.

또한, 사용자 단말(10)에는 접근통제 게이트웨이(30)와의 우회를 위한 전용 어플리케이션(또는 접근통제 클라이언트 등)이 설치되어, 통신 어플리케이션이 서버(40)에 접근할 때 사용할 명령어들이 등록되거나, 서버(40)와 송수신하는 패킷이 접근통제 게이트웨이(30)로 우회시키게 된다.In addition, a dedicated application (or an access control client, etc.) for bypassing the access control gateway 30 is installed in the user terminal 10, and commands to be used when a communication application accesses the server 40 are registered or the server ( 40) packets transmitted and received are bypassed to the access control gateway 30.

즉, 사용자 단말(10)은 통신 어플리케이션의 패킷을 우회시키기 전에, 접근통제 클라이언트를 통해, 접근통제 게이트웨이(30)에 접근하여 서버(40)의 접근 시 사용할 명령어들을 선정하여 등록한다. 이때, 사용자 단말(10)은 접근할 서버(40)에서 사용가능한 명령어 리스트를 접근통제 게이트웨이(30)로부터 수신하고, 사용자에 의해 선정된 명령어 리스트(또는 명령어 집합)를 접근통제 게이트웨이(30)로 전달하여 등록시킨다.That is, the user terminal 10 selects and registers commands to be used when accessing the server 40 by accessing the access control gateway 30 through the access control client, before bypassing the packet of the communication application. At this time, the user terminal 10 receives a list of commands available from the server 40 to be accessed from the access control gateway 30, and the command list (or command set) selected by the user as the access control gateway 30 Register by passing.

또한, 사용자 단말(10)은 접근통제 게이트웨이(30)에 대한 접근을 위한 인증 처리부(33을 수행하거나, 사용자가 접근할 수 있는 서버(40)에 대한 정보(또는 접속가능 서버 정보)를 전달받을 수 있다. 접속가능 서버 정보는 서버 정보와 프로토콜 정보(IP주소, 프로토콜 포트번호) 등의 리스트로 구성된다. 예를 들어, { 192.168.0.1:23, 192.168.2.1:23, ... } 등의 리스트를 획득한다. IP주소는 서버의 IP 주소를 의미하고, 포트번호는 프로토콜을 내포하고 있다.In addition, the user terminal 10 performs the authentication processing unit 33 for access to the access control gateway 30 or receives information about the server 40 that the user can access (or connectable server information). Accessible server information consists of a list of server information and protocol information (IP address, protocol port number), etc. For example, {192.168.0.1:23, 192.168.2.1:23, ... }, etc. IP address means the server's IP address, and port number contains the protocol.

한편, 사용자 단말(10)은 통신 어플리케이션의 패킷을 최초로 접근통제 게이트웨이(30)에 우회시킬 때, 목적지의 IP 주소 및 포트번호 등 서버(40)의 접근 정보를 접근통제 게이트웨이(30)에 전달한다.On the other hand, when the user terminal 10 bypasses the packet of the communication application for the first time to the access control gateway 30, the access information of the server 40 such as the IP address and port number of the destination is transmitted to the access control gateway 30. .

다음으로, 관리자 단말(20)은 관리자가 사용하는 컴퓨팅 단말로서, PC, 노트북, 태플릿PC, 스마트폰 등이다. 또한, 관리자 단말(20)은 네트워크(미도시)를 통해 접근통제 게이트웨이(30)에 연결한다. 또한, 바람직하게는, 관리자 단말(20)은 사용자 단말(10)과 직접 통신을 수행하거나, 접근통제 게이트웨이(30)를 통해 통신을 수행할 수 있다.Next, the administrator terminal 20 is a computing terminal used by the administrator, and is a PC, a laptop, a tablet PC, a smartphone, and the like. In addition, the manager terminal 20 connects to the access control gateway 30 through a network (not shown). In addition, preferably, the administrator terminal 20 may perform direct communication with the user terminal 10 or may perform communication through the access control gateway 30.

바람직하게는, 관리자 단말(20)은 선정된 명령어 집합(또는 명령어 리스트)에 대한 승인 요청에 대하여, 승인 또는 불승인을 결정하여 회신한다. 즉, 관리자 단말(20)은 특정 서버(40)의 접근 시 사용할 명령어 집합에 대한 승인 요청을 접근통제 게이트웨이(30)로부터 수신하고, 이에 대한 승인 또는 불승인을 게이트웨이(30)로 전송한다.Preferably, the administrator terminal 20 responds to the approval request for the selected command set (or command list) by determining approval or disapproval. That is, the administrator terminal 20 receives an approval request for the set of commands to be used when accessing the specific server 40 from the access control gateway 30, and transmits approval or disapproval of the request to the gateway 30.

다음으로, 서버(40)는 적어도 1개가 설치된다. 즉, 서버(40)는 다수 개가 설치될 수 있다.Next, at least one server 40 is installed. That is, a plurality of servers 40 may be installed.

각 서버(40)는 사용자 단말(10)로부터 네트워크(미도시)를 통해 접속 요청을 받고, 요청에 따라 접속을 허용하여 통신을 수행시켜준다. 이때, 바람직하게는, 서버(40)는 통신 프로토콜을 통해 사용자 단말(10)과 통신을 수행한다. 특히, SSH 통신 프로토콜을 통해 통신을 수행한다.Each server 40 receives a connection request from the user terminal 10 through a network (not shown), and permits connection according to the request to perform communication. At this time, preferably, the server 40 communicates with the user terminal 10 through a communication protocol. In particular, communication is performed through an SSH communication protocol.

또한, 서버(40)는 접근통제 게이트웨이(30)로부터 접속되어, SSH 인증키의 공개키에 대한 변경 요청(또는 등록 요청)을 받고, 해당 접속 계정의 공개키를 갱신(또는 등록)한다.In addition, the server 40 is accessed from the access control gateway 30, receives a change request (or registration request) for the public key of the SSH authentication key, and updates (or registers) the public key of the corresponding access account.

또한, 서버(40)는 통신 프로토콜을 이용하여, 사용자 단말(10)로부터 명령문 등 메시지를 수신하고, 해당 메시지의 명령 또는 요청을 수행하고 그 결과(또는 결과 메시지)를 사용자 단말(10)에 전송한다. 이때, 사용자 단말(10)과, 서버(40) 사이에는 세션이 형성되고, 세션 내에서 접속 요청 또는 메시지, 결과내용 등이 통신 프로토콜을 통해 데이터 패킷으로 송수신된다.Further, the server 40 receives a message such as a command from the user terminal 10 using a communication protocol, performs a command or request of the corresponding message, and transmits the result (or result message) to the user terminal 10 do. At this time, a session is formed between the user terminal 10 and the server 40, and a connection request or message, result content, etc. are transmitted and received in a data packet through a communication protocol.

한편, 위에서 설명된 서버(40)와 사용자 단말(10)과의 통신은 직접 연결되어 처리되지 않고, 접근통제 게이트웨이(30)를 통해 연결된다. 즉, 사용자 단말(10)의 요청 메시지는 접근통제 게이트웨이(30)를 통해 서버(40)로 전달되고, 또한, 서버(40)의 응답 메시지도 접근통제 게이트웨이(30)를 통해 사용자 단말(10)에 전달된다.Meanwhile, the communication between the server 40 and the user terminal 10 described above is not directly connected and processed, but is connected through the access control gateway 30. That is, the request message of the user terminal 10 is transmitted to the server 40 through the access control gateway 30, and the response message of the server 40 is also transmitted through the access control gateway 30 to the user terminal 10 Is passed on.

한편, 바람직하게는, 서버(40)는 방화벽(firewall)이 설치되고, 접근통제 게이트(30)로부터 수신되는 데이터(또는 데이터 패킷)만을 통과시키도록, 통제 정책을 설정할 수 있다. 따라서 사용자 단말(10)은 직접 서버(50)에 접근할 수 없고 반드시 접근통제 게이트웨이(30)를 통해서만 서버(40)에 접근할 수 있다. 만약 게이트웨이(30)로 패킷 경로를 변경하지 않고 패킷 그대로 서버(40)로 전송되면, 접근통제 구축 조건인 게이트웨이 이외의 서버 접근 경로는 모두 차단하는 방화벽 정책에 의하여 차단되어 접근을 할 수 없다.Meanwhile, preferably, the server 40 may set a control policy such that a firewall is installed and only data (or data packets) received from the access control gate 30 pass through. Therefore, the user terminal 10 cannot directly access the server 50 and can only access the server 40 through the access control gateway 30. If the packet path is transmitted to the server 40 without changing the packet path to the gateway 30, the server access paths other than the gateway, which is the condition for establishing access control, are blocked by the firewall policy blocking all access.

한편, 서버(40)는 사용자의 서버 접속에 대하여, 서비스 계정과 비밀번호를 이용하여 인증(또는 사용자 인증, 서비스 인증)을 수행하고, 사용자 인증이 통과된 경우에만 서버 접속을 허용하고, 서버의 서비스를 제공한다. 서비스 계정은 아이디(또는 사용자 아이디, 접속 아이디, 서비스 아이디)로 식별한다. 또한, 해당 서비스 계정은 패스워드(password)에 의해 인증된다. 이하에서, 서버(40)의 서비스 계정에 대한 패스워드를 계정 비밀번호라 부르기로 한다.On the other hand, the server 40 performs authentication (or user authentication, service authentication) using the service account and password for the user's server access, and permits server access only when the user authentication has passed, and the service of the server Provides The service account is identified by ID (or user ID, access ID, service ID). In addition, the corresponding service account is authenticated by a password. Hereinafter, the password for the service account of the server 40 will be referred to as an account password.

또한, 서버(40)는 루트 계정 또는 사용자 계정으로 접속 요청을 받는다. 특히, 서버(40)는 접근통제 게이트웨이(30)로부터 직접 루트 계정의 접속 요청을 받아 접근을 처리하고, 우회된 사용자 단말(10)로부터 사용자 계정(서비스 계정)의 접속 요청을 받는다.In addition, the server 40 receives a connection request with a root account or a user account. In particular, the server 40 receives an access request of the root account directly from the access control gateway 30, processes access, and receives a request for access of a user account (service account) from the bypassed user terminal 10.

다음으로, 접근통제 게이트웨이(30)는 사용자 단말(10)과 서버(40) 사이의 네트워크(미도시) 상에 설치되는 게이트웨이로서, 사용자 단말(10)과 서버(40) 사이를 모니터링하여 중계한다. 이를 위해 접근통제 게이트웨이(30)는 사용자별(또는 사용자 아이디별) SSH 인증키를 관리하고, 인가된 서버 접속 정보(인가접속 정보)를 관리한다.Next, the access control gateway 30 is a gateway installed on a network (not shown) between the user terminal 10 and the server 40, and monitors and relays between the user terminal 10 and the server 40. . To this end, the access control gateway 30 manages an SSH authentication key for each user (or for each user ID) and manages authorized server access information (authorized access information).

또한, 접근통제 게이트웨이(30)는 각 사용자(또는 사용자 아이디)에 대하여 SSH 인증키를 생성하거나 갱신하여 저장한다. 즉, SSH 인증키의 키 쌍을 생성하여, 해당 접속 정보에 따라 공개키를 서버(40)에 전송하고, 공개키 및 개인키를 인증키DB(82)에 저장한다. 또한, 인증키DB(82)는 각 사용자에 따른 SSH 인증키(또는 SSH 인증키의 개인키)를 보관하며, 바람직하게는, 다수의 SSH 인증키를 목록으로 관리한다.In addition, the access control gateway 30 generates or updates the SSH authentication key for each user (or user ID) and stores it. That is, a key pair of the SSH authentication key is generated, the public key is transmitted to the server 40 according to the access information, and the public key and the private key are stored in the authentication key DB 82. In addition, the authentication key DB 82 stores an SSH authentication key (or a private key of the SSH authentication key) for each user, and preferably, manages a plurality of SSH authentication keys as a list.

SSH 인증키 페어는 비대칭적인 2개의 암호키로서, SSH 서버가 클라이언트를 인증하는데 사용될 수 있다. 각 키 페어는 공개키(Public KEY)와 개인키(Private KEY)로 이루어진다. 이하에서, 넓은 의미의 SSH 인증키는 SSH 키 페어, 즉, 공개키와 개인키를 모두 포함하는 개념으로 설명하고, 좁은 의미의 SSH 인증키는 개인키를 의미하는 것으로 설명한다. 즉, SSH 인증키는 SSH 인증을 위한 키와, 개인키의 의미를 혼용한다.The SSH authentication key pair is two asymmetric encryption keys, which can be used by the SSH server to authenticate the client. Each key pair consists of a public key and a private key. Hereinafter, the SSH authentication key in a broad sense will be described as a concept including both an SSH key pair, that is, a public key and a private key, and the SSH authentication key in a narrow sense will be described as meaning a private key. That is, the SSH authentication key uses a key for SSH authentication and the meaning of a private key.

한편, 상기와 같은 개인키는 SSH 프로토콜에서 클라이언트가 보유하는 SSH 인증키로서 사용된다. 공개키(Public KEY)로 메시지를 암호화 할 수 있는데, 그 암호화 된 메시지는 그 쌍이 되는 개인키(Private KEY)로만 해석할 수 있다. 이런 특성이 비대칭적 키 페어를 사용한 인증 방식에 사용된다. 예를 들어, 클라이언트가 서버에 SSH 연결을 요청하면, 서버는 랜덤 챌린지(랜덤 데이터 스트링)를 생성해 클라이언트에게 보내고, 클라이언트는 랜덤 챌린저를 SSH 인증키의 개인키로 암호화해서 서버로 보내고, 서버는 암호화 된 메시지를 공개키로 해석하여 자신이 보낸 랜덤 챌린지와 일치하는지 확인함으로써 SSH 인증을 수행한다.Meanwhile, the private key described above is used as an SSH authentication key held by the client in the SSH protocol. The message can be encrypted with the public key, and the encrypted message can be interpreted only as a paired private key. This feature is used in authentication schemes using asymmetric key pairs. For example, when a client requests an SSH connection to the server, the server creates a random challenge (random data string) and sends it to the client, the client encrypts the random challenger with the SSH authentication key's private key, and sends it to the server, and the server encrypts SSH authentication is performed by interpreting the message as a public key and checking if it matches the random challenge sent by the user.

공개키는 SSH 프로토콜로 로그인하길 원하는 원격 서버(40)에 업로드된다. 서버에 업로드된 공개키는 사용자 계정에 저장된다. 일례로서, 공개키는 사용자 계정의 인증정보 파일(예를 들어 ~/.ssh/authorized_keys 파일)에 추가된다. The public key is uploaded to the remote server 40 that wants to log in using the SSH protocol. The public key uploaded to the server is stored in the user account. As an example, the public key is added to the user account's authentication information file (eg ~/.ssh/authorized_keys file).

또한, 클라이언트가 SSH 인증키(SSH KEY)를 사용해 인증하려고 시도하면, 서버는 클라이언트가 개인키(Private KEY)를 가지고 있는지 여부를 테스트 할 수 있다. 클라이언트가 개인키(Private KEY)를 가지고 있는 것이 증명되면, 쉘 세션이 생성되거나 요구된 명령을 실행한다.In addition, if the client attempts to authenticate using an SSH authentication key, the server can test whether the client has a private key. When it is proved that the client has a private key, a shell session is created or the requested command is executed.

한편, 사용자 계정의 인증정보 파일(~/.ssh/authorized_keys 등)에는, SSH 인증이 성공하면 실행할 쉘 명령을 등록할 수 있다. 접근통제 게이트웨이(30)는 각 사용자 계정에 커스터마이징된 쉘 코드(또는 사용자 전용 쉘 코드) 또는 쉘 코드 파일을 사용자 계정에 복사하고, 해당 전용 쉘 코드 파일 정보(파일명 등)를 인증정보 파일에 등록한다. 이 경우, 서버(40)는 클라이언트에 대해 SSH 인증이 성공하면, 해당 인증정보 파일에 등록된 전용 쉘 코드 파일을 실행시킨다. 즉, 클라이언트는 SSH 인증이 통과되면, 등록된 전용 쉘 코드에 의한 쉘 서비스를 받는다.Meanwhile, in the user account authentication information file (~/.ssh/authorized_keys, etc.), a shell command to be executed when SSH authentication is successful can be registered. The access control gateway 30 copies the customized shellcode (or user-only shellcode) or shellcode file to each user account to the user account, and registers the corresponding shellcode file information (file name, etc.) in the authentication information file. . In this case, when the SSH authentication is successful for the client, the server 40 executes a dedicated shell code file registered in the corresponding authentication information file. That is, when the SSH authentication passes, the client receives a shell service based on the registered dedicated shell code.

또한, 접근통제 게이트웨이(30)는 서버(40)에 대한 인가접속 정보(83)를 사전에 등록받아 관리한다. 인가접속 정보(83)는 서버 정보(IP 주소), 프로토콜(포트번호), 접속 계정(접속계정 아이디), SSH 인증키 정보 등으로 구성된다. 또한, 인가접속 정보는 다수 개의 접속 정보를 리스트로 관리될 수 있다.In addition, the access control gateway 30 receives and manages the authorized access information 83 for the server 40 in advance. The authorization access information 83 is composed of server information (IP address), protocol (port number), access account (access account ID), and SSH authentication key information. In addition, the authorized access information may be managed as a list of a plurality of access information.

또한, 접근통제 게이트웨이(30)는 특정 이벤트 또는 세션 설정에 따라 SSH 인증키를 갱신한다. 즉, 접근통제 게이트웨이(30)는 SSH 인증키를 새로 생성한다. 그리고 인증키DB(82)에 저장된 SSH 인증키 및 인가접속 정보(82)에 저장된 접속 정보를 이용하여 서버(40)에 접속하고, 새로운 생성된 SSH 인증키의 공개키를 서버(40)로 전송하고, 인증키DB(82)의 해당 SSH 인증키를 새로 생성된 SSH 인증키로 갱신한다.In addition, the access control gateway 30 updates the SSH authentication key according to a specific event or session setting. That is, the access control gateway 30 generates a new SSH authentication key. Then, the server 40 is accessed using the SSH authentication key stored in the authentication key DB 82 and the connection information stored in the authorized access information 82, and the public key of the newly generated SSH authentication key is transmitted to the server 40. Then, the corresponding SSH authentication key of the authentication key DB 82 is updated with the newly generated SSH authentication key.

또한, 접근통제 게이트웨이(30)는 사용자 단말(10)이 접근통제 클라이언트(20)를 통해 우회되어 접속되면, 사용자 단말(10)과 서버(40) 사이에서 메시지(또는 데이터 패킷)를 중계한다.In addition, the access control gateway 30 relays a message (or data packet) between the user terminal 10 and the server 40 when the user terminal 10 is bypassed and connected through the access control client 20.

이때, 접근통제 게이트웨이(30)는 인증키DB(82)에 저장된 SSH 인증키를 이용하여 서버(40)와의 사이에서 SSH 세션(이하 서버용 세션)을 형성한다. 또한, 접근통제 게이트웨이(30)는 사용자 단말(10)과의 사이에서 세션(이하 클라이언트용 세션)을 형성한다. 이때, 클라이언트용 세션은 SSH 인증키를 사용하는 사용자 인증을 수행하지 않고 세션을 형성할 수 있다.At this time, the access control gateway 30 uses the SSH authentication key stored in the authentication key DB 82 to form an SSH session (hereinafter, a server session) with the server 40. In addition, the access control gateway 30 forms a session (hereinafter, a client session) with the user terminal 10. At this time, the client session can form a session without performing user authentication using an SSH authentication key.

그리고 접근통제 게이트웨이(30)는 형성된 세션(클라이언트용 세션 및 서버용 세션)을 통해, 사용자 단말(10)의 메시지를 서버(40)에 중계한다. 즉, 사용자 단말(10)로부터 수신되는 메시지(또는 데이터 패킷)를 수신하여 서버(40)에 전달하고, 서버(40)로부터 결과(또는 결과 메시지, 데이터 패킷)를 수신하여 사용자 단말(10)로 전달한다. 이하에서, 메시지는 패킷 또는 IP 패킷으로 전달되므로, 메시지와 패킷을 혼용한다.Then, the access control gateway 30 relays the message of the user terminal 10 to the server 40 through the established sessions (client session and server session). That is, the message (or data packet) received from the user terminal 10 is received and transmitted to the server 40, and the result (or result message, data packet) is received from the server 40 to the user terminal 10. To deliver. Hereinafter, since the message is delivered as a packet or an IP packet, the message and the packet are mixed.

이때, 클라이언트용 세션은 사용자 단말(10)과 접근통제 게이트웨이(30) 간의 데이터 송수신(또는 메시지 송수신)을 위한 세션으로서, 자체적인 암호화 세션으로 형성될 수 있다. 암호화 세션 내에서 통신 어플리케이션과 서버 간의 메시지를 송수신한다. At this time, the client session is a session for data transmission and reception (or message transmission and reception) between the user terminal 10 and the access control gateway 30, and may be formed in its own encryption session. Send and receive messages between the communication application and the server within the encryption session.

이때, 접근통제 게이트웨이(30)는 수신되는 메시지를 분석하고, 해당 메시지에 내포하는 명령어 등의 차단 여부를 결정하거나, 통신 내용을 모니터링하고 저장할 수 있다. 즉, 사전에 정해진 보안 정책 또는 접근통제 정책에 따라, 해당 메시지를 서버(40)에 전송하거나 차단하는 등 모니터링하고, 통신 내용을 로그에 기록하고 저장할 수 있다.At this time, the access control gateway 30 may analyze the received message, determine whether to block commands, etc. contained in the message, or monitor and store the communication content. That is, according to a predetermined security policy or access control policy, the corresponding message may be monitored, such as transmitted or blocked, to the server 40, and communication information may be recorded and stored in a log.

또한, 접근통제 게이트웨이(30)는 사용자가 사용할 명령어들을 선정하거나 선정된 명령어들만 사용하게 하는 사용자 전용 쉘 코드를 생성하는 등 사용자의 작업 환경을 설정한다.In addition, the access control gateway 30 sets the user's working environment, such as selecting a command to be used by the user or generating a user-specific shell code to use only the selected commands.

즉, 접근통제 게이트웨이(30)는 접속하려는 서버(40)에서 허용된 명령어 전체를 사용자 단말(10)에 제공하고, 제공된 전체 명령어 중에서 사용자 또는 사용자 단말(10)이 사용하고자 하는 명령어를 선정하게 한다.That is, the access control gateway 30 provides the user terminal 10 with all of the commands allowed from the server 40 to be accessed, and allows the user or the user terminal 10 to select a command to be used from among the entire commands provided. .

또한, 접근통제 게이트웨이(30)는 선정된 명령어들만을 사용하게 하는 사용자 전용 쉘 코드를 생성한다. 사용자 전용 쉘 코드는 선정된 명령어를 리스트로 표시하고, 명령어 리스트 중에서 하나의 명령어를 선택하게 하고, 선택된 명령어를 실행시켜준다. 또한, 사용자 전용 쉘 코드는 종료 명령을 포함하고, 종료 명령이 선택되면 서버와의 접속 자체를 종료하도록 작성된다.In addition, the access control gateway 30 generates user-only shell codes that allow only selected commands to be used. The user-specific shell code displays the selected command as a list, selects one command from the command list, and executes the selected command. Also, the user-only shell code includes a termination command, and is written to terminate the connection to the server itself when the termination command is selected.

또한, 접근통제 게이트웨이(30)는 사용자 단말(10)이 서버(40)에 접근할 때, 사용자 전용 쉘 코드를 서버(40)에 등록시킨다. 사용자 전용 쉘 코드는 앞서 생성된 쉘 코드로서, 선정된 명령어들만 실행시키기 위한 쉘 코드이다. 이를 통해, 사용자 단말(10)은 등록된 사용자 전용 쉘 코드에 의한 쉘 서비스를 받고, 해당 쉘 서비스 상에서 종료하면 서버 접속 서비스 자체를 종료하게 된다. 따라서 사용자 단말(10)은 사용자 전용 쉘 코드에 의해, 선정된 명령어들만 수행할 수 있다.In addition, the access control gateway 30 registers the user-only shell code to the server 40 when the user terminal 10 accesses the server 40. The user-specific shell code is the previously generated shell code, and is a shell code for executing only selected commands. Through this, the user terminal 10 receives the shell service by the registered user-only shell code, and terminates the server access service itself when it is terminated on the corresponding shell service. Therefore, the user terminal 10 can execute only selected commands by the user-specific shell code.

다음으로, 데이터베이스(80)는 사용자 전용 서버 쉘 코드를 저장하는 쉘코드DB(81), 서버(40)와 SSH 프로토콜을 위한 SSH 인증키를 저장하는 인증키DB(82), 각 사용자가 접속가능한 서버 장비 정보를 저장하는 인가접속DB(83) 등으로 이루어진다. 그러나 데이터베이스(80)의 구성은 바람직한 일실시예일 뿐이며, 구체적인 장치를 개발하는데 있어서, 접근 및 검색의 용이성 및 효율성 등을 감안하여 데이터베이스 구축이론에 의하여 다른 구조로 구성될 수 있다.Next, the database 80 includes a shellcode DB 81 that stores user-specific server shell codes, an authentication key DB 82 that stores SSH authentication keys for the server 40 and the SSH protocol, and each user can access It consists of an authorized access DB (83) for storing server equipment information. However, the configuration of the database 80 is only a preferred embodiment, and in developing a specific device, it may be configured in a different structure according to a database construction theory in consideration of the ease and efficiency of access and search.

다음으로, 본 발명의 일실시예에 따른 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템(30)의 세부 구성에 대하여 도 2를 참조하여 설명한다.Next, a detailed configuration of the access control system 30 equipped with a server operation control function for each user according to an embodiment of the present invention will be described with reference to FIG. 2.

본 발명에 따른 접근통제 시스템(30)은 앞서 설명한 접근통제 게이트웨이로 구현될 수 있다. 이하에서 접근통제 시스템의 도면부호를 접근통제 게이트웨이와 동일한 도면 부호로 사용한다.The access control system 30 according to the present invention may be implemented as the access control gateway described above. Hereinafter, reference numerals of the access control system are used as the same reference numerals as the access control gateway.

도 2에서 보는 바와 같이, 본 발명의 일실시예에 따른 접근통제 시스템(30)은 사용자의 작업 환경을 설정하는 작업환경 설정부(31), 사용자 단말(10)과 서버(40) 간의 통신을 중계하는 통신 중계부(32), 및, SSH 인증을 수행하는 인증 처리부(33)로 구성된다.As shown in FIG. 2, the access control system 30 according to an embodiment of the present invention communicates between a work environment setting unit 31, a user terminal 10, and a server 40 for setting a work environment of a user. It consists of a communication relay unit 32 for relaying, and an authentication processing unit 33 for performing SSH authentication.

먼저, 작업환경 설정부(31)는 사용자가 사용할 명령어들을 선정하거나 선정된 명령어들(이하 전용 명령어)만 사용하게 하는 사용자 전용 쉘 코드를 생성하는 등 사용자의 작업 환경을 설정한다.First, the work environment setting unit 31 sets a user's work environment, such as selecting a command to be used by a user or generating a user-specific shell code that allows only selected commands (hereinafter, a dedicated command) to be used.

즉, 작업환경 설정부(31)는 접속하려는 서버(40)에서 허용된 명령어 전체를 사용자 단말(10)에 제공하고, 사용자 단말(10)로부터 선정된 명령어 리스트를 수신한다.That is, the work environment setting unit 31 provides all the commands allowed by the server 40 to be accessed to the user terminal 10, and receives a list of commands selected from the user terminal 10.

바람직하게는, 작업환경 설정부(31)는 다수의 작업 종류를 정의하고, 해당 작업에 필요한 명령어들을 그룹화하여 명령어 리스트로 설정해둘 수 있다. 즉, 직접 명령어를 선정하지 않고, 작업 종류를 선정하면 자동으로 해당 작업에 필요한 명령어 리스트(또는 전용 명령어 리스트)를 선정할 수 있다.Preferably, the work environment setting unit 31 may define a plurality of types of tasks, and group commands necessary for the corresponding task to be set as a command list. That is, if a task type is selected without directly selecting a command, a command list (or a dedicated command list) required for the corresponding task can be automatically selected.

또한, 작업환경 설정부(31)는 선정된 명령어(또는 전용 명령어)들만을 사용하게 하는 사용자 전용 쉘 코드를 생성한다. 사용자 전용 쉘 코드는 선정된 명령어(또는 전용 명령어)를 리스트로 표시하고, 명령어 리스트 중에서 하나의 명령어를 선택하게 하고, 선택된 명령어를 실행시켜준다. 또한, 사용자 전용 쉘 코드는 종료 명령을 포함하고, 종료 명령이 선택되면 서버와의 접속 자체를 종료하도록 작성된다.In addition, the work environment setting unit 31 generates a user-only shell code to use only selected commands (or dedicated commands). The user-specific shell code displays the selected command (or dedicated command) as a list, selects one command from the command list, and executes the selected command. Also, the user-only shell code includes a termination command, and is written to terminate the connection to the server itself when the termination command is selected.

바람직하게는, 사용자 전용 쉘 코드는 쉘 스크립트, 자바(java), C++ 등 프로그래밍 언어로 작성되는 모듈이다. 사용자 전용 쉘 코드 파일은 해당 코드를 실행시키는 실행 파일이다. 컴파일 등이 필요한 코드는 컴파일 되어 실행이 가능한 파일로 변환된 파일이다.Preferably, the user-only shell code is a module written in a programming language such as shell script, java, or C++. User-specific shell code files are executable files that execute the code. Code that needs to be compiled is a file that has been compiled and converted into an executable file.

다음으로, 통신 중계부(32)는 사용자 단말(10)과 서버(40) 사이에서 메시지(또는 데이터 패킷)를 중계하고, 사용자 단말(10)이 서버(40)에 접속할 때(즉, 서버와의 세션을 설정할 때) 인증 처리부(33)를 통해 서버(40)와 SSH 세션을 설정하도록 제어한다.Next, the communication relay unit 32 relays a message (or data packet) between the user terminal 10 and the server 40, and when the user terminal 10 accesses the server 40 (that is, with the server) When establishing a session), it is controlled to establish an SSH session with the server 40 through the authentication processing unit 33.

즉, 통신 중계부(32)는 사용자 단말(10)로부터 메시지를 수신하여 서버(40)로 전달하고, 서버(40)로부터 결과 메시지 등을 수신하여 사용자 단말(10)로 전달한다.That is, the communication relay unit 32 receives the message from the user terminal 10 and delivers it to the server 40, and receives the result message or the like from the server 40 and delivers it to the user terminal 10.

바람직하게는, 통신 중계부(32)는 사용자 단말(10)과 세션(이하 클라이언트용 세션)을 수립하고, 수립된 클라이언트용 세션을 통해 데이터(메시지 등)를 송수신한다. 특히, 통신 중계부(32)는 SSH 프로토콜에 의한 암호화 세션(또는 클라이언트용 세션)을 수립하거나, 자체 암호화 프로토콜에 따라 클라이언트용 세션을 설정할 수 있다.Preferably, the communication relay unit 32 establishes a session (hereinafter, a client session) with the user terminal 10, and transmits and receives data (message, etc.) through the established client session. In particular, the communication relay unit 32 may establish an encryption session (or a session for a client) using the SSH protocol, or establish a client session according to the encryption protocol itself.

또한, 통신 중계부(32)는 사용자 단말(10)과 형성된 세션(또는 클라이언트용 세션)에 대응되는 세션(이하 서버용 세션)을 서버(40)와 형성한다. 즉, 클라이언트용 세션과 서버용 세션은 사용자 단말(10)과 서버(40) 사이를 중계하기 위한 세션들이다. 특히, 통신 중계부(32)는 SSH 프로토콜에 의한 암호화 세션(또는 SSH 세션, 서버용 세션)을 수립한다.In addition, the communication relay unit 32 forms a session (hereinafter, a server session) corresponding to a session (or a client session) formed with the user terminal 10 with the server 40. That is, the client session and the server session are sessions for relaying between the user terminal 10 and the server 40. In particular, the communication relay unit 32 establishes an encrypted session (or SSH session, a server session) using the SSH protocol.

이때, 통신 중계부(32)는 인증 처리부(33)의 제어에 따라 클라이언트용 세션 및 서버용 세션을 설정한다. 즉, 통신 중계부(32)는 세션 설정과 관련된 메시지(또는 패킷)을 수신하면 이를 인증 처리부(33)로 전송하고, 인증 처리부(33)로부터 세션 설정과 관련 메시지를 수신하여 사용자 단말(10) 또는 서버(40)로 전송한다.At this time, the communication relay unit 32 establishes a client session and a server session under the control of the authentication processing unit 33. That is, when the communication relay unit 32 receives a message (or packet) related to session establishment, it transmits it to the authentication processing unit 33, receives the session establishment and related message from the authentication processing unit 33, and then receives the user terminal 10. Or transmit to the server 40.

구체적으로, 통신 중계부(32)는 사용자 단말(10)로부터 접속 요청(또는 세션설정 요청)의 메시지를 수신하면, 이를 인증 처리부(33)로 전달한다. 통신 중계부(32)는 중계하는 메시지를 필터링하여, 접속 요청 메시지(또는 세션 설정 메시지)인 경우, 인증 처리부(33)로 전달한다.Specifically, the communication relay unit 32 receives the message of the connection request (or session establishment request) from the user terminal 10, and transmits it to the authentication processing unit 33. The communication relay unit 32 filters the relayed message and, in the case of a connection request message (or session establishment message), transmits it to the authentication processing unit 33.

그리고 통신 중계부(32)는 서버(40)와의 접속 과정 또는 세션 설정 과정의 중계를, 인증 처리부(33)와 수행한다. 즉, 서버용 세션의 설정과정의 상호 메시지들은 인증 처리부(33)와 서버(40) 간에 전달되고, 통신 중계부(32)는 이를 중계한다. 서버용 세션이 설정이 완료되면, 그 결과에 따라 인증 처리부(33)는 통신 중계부(32)를 통해 사용자 단말(10)로 세션 설정 요청에 대한 응답 메시지를 전달하여 클라이언트용 세션을 설정한다.In addition, the communication relay unit 32 performs the connection process of the server 40 or the relay of the session establishment process with the authentication processing unit 33. That is, mutual messages in the process of establishing a server session are transferred between the authentication processing unit 33 and the server 40, and the communication relay unit 32 relays them. When the server session is set up, the authentication processing unit 33 establishes a client session by transmitting a response message to the session setting request to the user terminal 10 through the communication relay unit 32 according to the result.

이때, 통신 중계부(32)는 SSH 인증키를 사전에 저장하고, 저장된 SSH 인증키를 이용하여, 서버(40)와 SSH 세션을 서버용 세션으로 형성할 수 있다. 즉, 클라이언트용 세션과는 다른 SSH 인증키를 사용하여, 보안을 강화할 수 있다.At this time, the communication relay unit 32 may store the SSH authentication key in advance, and use the stored SSH authentication key to form an SSH session with the server 40 as a server session. That is, it is possible to enhance security by using a different SSH authentication key from the client session.

다음으로, 인증 처리부(33)는 서버(40)와의 서버용 세션, 및, 사용자 단말(10)과의 클라이언트용 세션을 설정하되, SSH 인증키를 이용하여 서버용 세션을 SSH 세션으로 설정하고, 사용자 전용 쉘 코드 파일을 서버(40)에 등록시킨다.Next, the authentication processing unit 33 establishes a server session with the server 40, and a client session with the user terminal 10, but sets the server session as an SSH session using an SSH authentication key, and the user only The shell code file is registered in the server 40.

즉, 인증 처리부(33)는 각 세션이 설정될 때마다, SSH 인증키를 생성하고, 루트 계정으로 접속하여, SSH 인증키(또는 공개키)을 서버(40)에 복사하거나, 사용자 전용 쉘 코드의 실행 파일을 서버(40)에 등록한다.That is, the authentication processing unit 33 generates an SSH authentication key each time each session is established, connects to the root account, copies the SSH authentication key (or public key) to the server 40, or user-only shell code. Register the executable file of the server 40.

또한, 인증 처리부(33)는 접근 가능한 모든 서버의 루트(root) 계정의 접속 정보(패스워드 또는 SSH KEY)를 사전에 저장하고, 루트 계정의 접속 정보를 이용하여 서버(40)에 접속하여 각 사용자 계정의 작업 환경을 설정한다.In addition, the authentication processing unit 33 stores the access information (password or SSH KEY) of the root account of all accessible servers in advance, accesses the server 40 using the access information of the root account, and accesses each user Sets the working environment of the account.

또한, 인증 처리부(33)은 사용자 단말(10)이 서버(40)에 접근할 때, 사용자 전용 쉘 코드를 서버(40)에 등록시킨다. 사용자 전용 쉘 코드는 앞서 생성된 쉘 코드로서, 선정된 명령어들만 실행시키기 위한 쉘 코드이다. 이를 통해, 사용자 단말(10)은 등록된 사용자 전용 쉘 코드에 의한 쉘 서비스를 받고, 해당 쉘 서비스 상에서 종료하면 서버 접속 서비스 자체를 종료하게 된다. 따라서 사용자 단말(10)은 사용자 전용 쉘 코드에 의해, 선정된 명령어들만 수행할 수 있다.In addition, when the user terminal 10 accesses the server 40, the authentication processing unit 33 registers a user-only shell code in the server 40. The user-specific shell code is the previously generated shell code, and is a shell code for executing only selected commands. Through this, the user terminal 10 receives the shell service by the registered user-only shell code, and terminates the server access service itself when it is terminated on the corresponding shell service. Therefore, the user terminal 10 can execute only selected commands by the user-specific shell code.

한편, 인증 처리부(33)은 루트 계정의 접속 정보(루트 비밀번호 등)로 서버(40)에 접속하여, 사용자 계정의 SSH 공개키를 서버(40)에 등록하고, 사용자 전용 쉘 코드의 실행파일을 서버(40)에 복사하고, 그 실행파일의 경로를 서버(40)에 등록한다. 그리고 인증 처리부(33)는 사용자 계정으로 서버(40)에 접속할 때, 등록된 SSH 인증키를 이용하여 사용자 인증을 수행한다.On the other hand, the authentication processing unit 33 accesses the server 40 with the access information (root password, etc.) of the root account, registers the SSH public key of the user account to the server 40, and executes the executable file of the user-specific shell code. Copy to the server 40, and register the path of the executable file to the server 40. Then, when the authentication processing unit 33 accesses the server 40 using a user account, user authentication is performed using the registered SSH authentication key.

다음으로, 본 발명의 일실시예에 따른 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템에 의한 서버 접속 방법을 도 3을 참조하여 설명한다.Next, a server access method by an access control system equipped with a server task control function for each user according to an embodiment of the present invention will be described with reference to FIG. 3.

도 3에서 보는 바와 같이, 먼저, 접근통제 게이트웨이(30) 또는 작업환경 설정부(31)는 각 서버별 허용가능한 전체 명령어 리스트, 각 서버의 루트 계정 접속 정보(패스워드 또는 SSH KEY)를 사전에 저장한다(S10).As shown in FIG. 3, first, the access control gateway 30 or the work environment setting unit 31 pre-stores a list of all commands allowed for each server, and access information (password or SSH key) of each server in advance. (S10).

바람직하게는, 작업환경 설정부(31)는 다수의 작업 종류를 정의하고, 해당 작업에 필요한 명령어들을 그룹화하여 명령어 리스트로 설정해둘 수 있다. 즉, 직접 명령어를 선정하지 않고, 작업 종류를 선정하면 자동으로 해당 작업에 필요한 명령어 리스트를 선정할 수 있다. 예를 들어, 도 4에서 보는 바와 같이, 작업환경 설정부(31)는 서버별 허용가능한 작업 종류와, 해당 작업 시 필요한 명령어 리스트에 대한 정보(이하 작업별 명령어 리스트 정보)를 미리 정의해 놓을 수 있다.Preferably, the work environment setting unit 31 may define a plurality of types of tasks, and group commands necessary for the corresponding task to be set as a command list. That is, if a task type is selected without directly selecting a command, a list of commands required for the corresponding task can be automatically selected. For example, as shown in FIG. 4, the work environment setting unit 31 can predefine information on a permissible type of work for each server and a list of commands required for the corresponding work (hereinafter, command list information for each work). have.

또한, 도 5에서 보는 바와 같이, 작업환경 설정부(31)는 서버별 사용가능한 프로그래밍 종류 정보를 사전에 저장해둔다. 각 서버에 대하여, 해당 서버에서 인식되는 프로그래밍 종류로서, 사용자 전용 쉘 코드를 해석할 수 있는 프로그래밍을 말한다. 따라서 해당 서버에서 인식되는 프로그래밍 언어를 이용하여 사용자 전용 쉘 코드가 작성되어야 한다.In addition, as shown in FIG. 5, the work environment setting unit 31 pre-stores programming type information available for each server. For each server, it is a type of programming recognized by the server and refers to programming that can interpret shell codes for users. Therefore, user-specific shell code must be written using the programming language recognized by the server.

다음으로, 사용자 또는 사용자 단말(10)은 접속 대상 서버 및 서비스 계정(또는 접속 계정)을 요청(선택)하고, 서버 접속 시 사용할 명령어 리스트를 선정한다(S20). 바람직하게는, 작업 종류를 선정함으로써 명령어 리스트를 선정한다.Next, the user or the user terminal 10 requests (selects) the target server and service account (or access account) to access, and selects a command list to be used when accessing the server (S20). Preferably, a command list is selected by selecting a task type.

예를 들어, 도 4 및, 도 5의 예에서, 사용자 또는 사용자 단말(10)은 접속 대상 서버 "1.1.1.1"를 선택하고, 접속 대상 계정 "User A"을 선택한다. 그리고 서버 접속 시 서버에서 작업할 작업 종류를 선택함으로써 명령어 리스트를 선정한다. 즉, 작업 "1. 서버 리소스 모니터링"를 선택함으로써, 이에 해당하는 3개의 명령어 리스트 "cat /prco/cpuinfo", "cat /proc/meminfo"," fdisk -l"를 선정한다.For example, in the example of FIGS. 4 and 5, the user or the user terminal 10 selects the connection target server "1.1.1.1", and selects the access target account "User A". And when connecting to the server, the command list is selected by selecting the type of work to be performed on the server. That is, by selecting the operation "1. Server resource monitoring", the corresponding three command lists "cat /prco/cpuinfo", "cat /proc/meminfo", and "fdisk -l" are selected.

즉, 작업환경 설정부(31)는 작업 종류들을 사용자 단말(10)에 제공하고, 사용자 단말(10)에서 작업을 선정하면, 선정된 작업(또는 작업 종류)에 해당하는 명령어 리스트를 참조하여 명령어 리스트를 선정한다.That is, the work environment setting unit 31 provides job types to the user terminal 10, and when a job is selected by the user terminal 10, a command is referred to with reference to a command list corresponding to the selected job (or job type) Select a list.

만약, 작업환경 설정부(31)는 원하는 형태의 작업 종류가 존재하지 않을 경우, 작업 시 필요한 명령어 리스트를 사용자에게 직접 작성하게 할 수 있다. 이때, 바람직하게는, 작업환경 설정부(31)는 선정된 명령어 리스트에 대하여 관리자에게 검토 요청할 수 있다. 관리자가 검토한 이후 해당 명령어 리스트가 선정된다.If the work environment setting unit 31 does not exist in the desired type of work, the user may directly create a list of commands required for the work. At this time, preferably, the work environment setting unit 31 may request the administrator to review the selected command list. After review by the administrator, the list of commands is selected.

다음으로, 접근통제 게이트웨이(30) 또는 작업환경 설정부(31)는 선정된 명령어 리스트에 대한 사용자 전용 쉘 코드를 자동으로 작성하여 저장해둔다(S30).Next, the access control gateway 30 or the work environment setting unit 31 automatically creates and stores a user-specific shell code for the selected command list (S30).

바람직하게는, 작업환경 설정부(31)는 사용자가 접속하려는 서버에서 허용 가능한 프로그래밍 언어로 전용 쉘 코드를 작성한다. 즉, 작업환경 설정부(31)는 도 5와 같은 서버별 사용가능한 프로그래밍 종류 정보를 참조하여, 코딩할 프로그래밍 언어를 선택한다.Preferably, the work environment setting unit 31 writes a dedicated shell code in a programming language acceptable to the server to which the user wants to access. That is, the work environment setting unit 31 selects a programming language to be coded by referring to available programming type information for each server as shown in FIG. 5.

전용 쉘 코드는 실행 가능한 파일 형태(C, JAVA 와 같이 컴파일을 해야 실행 가능한 파일로 변환되는 언어인 경우, 컴파일된 파일로 변환)로 변환하여 저장된다.The dedicated shell code is converted into an executable file format (C, JAVA, etc., and converted into an executable file in case of a language that is converted into an executable file) and saved.

앞서 예에서, 접속 대상 서버(1.1.1.1)와 선택한 작업 종류(서버 리소스 모니터링)에 대하여, 전용 쉘 코드는 아래와 같이, 3개의 명령어들만 실행되는 코드로 작성되는데, 특히, 쉘 스크립트(Shell Script) 프로그래밍 언어에 의해 전용 쉘 코드로 작성된다.In the previous example, for the server to be accessed (1.1.1.1) and the selected job type (server resource monitoring), the dedicated shell code is written as code that executes only three commands as follows, in particular, a shell script It is written in a dedicated shell code by a programming language.

[서버 리소스 모니터링에 대한 작업 명령어][Work command for server resource monitoring]

(1) CPU 정보 확인 : cat /proc/cpuinfo(1) CPU information check: cat /proc/cpuinfo

(2) 디스크 정보 확인 : cat /proc/meminfo(2) Check disk information: cat /proc/meminfo

(3) 메모리 정보 확인 : fdisk ??l(3) Check memory information: fdisk ??l

사용자 전용 쉘 코드가 도 6 및 도 7에 도시되고 있다.User-specific shell codes are shown in FIGS. 6 and 7.

도 6은 사용자 전용 쉘 코드가 쉘 스크립트에 의해 작성된 형태이고, 도 7은 파이썬(Python) 언어에 의해 작성된 형태이다.6 is a form in which user-only shell codes are written by a shell script, and FIG. 7 is a form written by a Python language.

다음으로, 접근통제 게이트웨이(30) 또는 인증 처리부(33)는 SSH 인증키를 생성하고(S41), 루트 계정으로 접속하여(S42), SSH 인증키(또는 공개키)을 서버(40)에 복사하고(S43), 사용자 전용 쉘 코드의 실행 파일을 서버(40)에 등록한다(S44).Next, the access control gateway 30 or the authentication processing unit 33 generates an SSH authentication key (S41), accesses the root account (S42), and copies the SSH authentication key (or public key) to the server 40. Then (S43), the user-only shell code executable file is registered in the server 40 (S44).

즉, 인증 처리부(33)는 서버에서 SSH 인증에 사용할 SSH 키 페어(KEY Pair), 즉, 공개키, 개인키의 쌍을 생성하여 저장한다(S41). 이때 생성된 SSH 키 페어(KEY Pair)는 사용자 또는 사용자 단말(10)이 선택한 계정(User A)으로 접속 대상 서버(1.1.1.1)에 로그인 할 수 있도록 설정하는데 사용된다.That is, the authentication processing unit 33 generates and stores an SSH key pair to be used for SSH authentication in the server, that is, a pair of a public key and a private key (S41). The generated SSH key pair is used to set the user or the user terminal 10 to log in to the server to be accessed (1.1.1.1) with the selected account (User A).

바람직하게는, SSH 키 페어(KEY Pair)는 일회용으로 한번 사용되면 재사용하지 않는다. 즉, 매 접속 시 마다 새로운 키를 생성한다. 즉, 세션 연결 시 마다 새로운 키를 생성하여 사용한다.Preferably, the SSH Key Pair is not reused once used for a single use. That is, a new key is generated for every connection. That is, a new key is generated and used each time a session is connected.

SSH 키 페어(KEY Pair)의 예시가 도 8에 도시되고 있다.An example of an SSH key pair is shown in FIG. 8.

또한, 인증 처리부(33)는 SSH 키 페어(KEY Pair) 생성이 완료되면, 사용자가 선택한 접속 대상 서버(1.1.1.1)에 루트(root) 접속 정보를 활용하여 루트 계정에 로그인한다(S42).In addition, when the generation of the SSH key pair is completed, the authentication processing unit 33 logs in to the root account by using the root access information on the server to be selected (1.1.1.1) selected by the user (S42).

또한, 인증 처리부(33)는 로그인 후, 사용자가 선택한 계정(User A)이 SSH KEY 인증을 받을 수 있도록, 사용자 User A 계정의 홈 디렉토리/.ssh/ 경로로 이동하고(경로가 없을 경우 생성한 후 이동한다), 앞서 생성한 SSH 키 페어(KEY Pair) 중 공개키(ssh_key_public) 내용을 사용자 계정의 인증 파일(예를 들어, authorized_keys 파일 등)에 추가한다(파일이 없을 경우 생성하여 추가한다)(S43).In addition, after the login, the authentication processing unit 33 moves to the home directory/.ssh/ path of the user User A account so that the account selected by the user (User A) can receive SSH KEY authentication (created when there is no path). After moving), add the contents of the public key (ssh_key_public) among the previously created SSH key pairs to the authentication file of the user account (for example, authorized_keys file, etc.). (S43).

도 9는 SSH 공개키를 authorized_keys 파일에 추가된 예를 나타내고 있다.9 shows an example in which the SSH public key is added to the authorized_keys file.

또한, 인증 처리부(33)는 앞서에 저장해놓은 사용자 전용 쉘 코드의 실행 파일(사용자가 선택한 작업을 프로그래밍 코드로 변경하고 실행 가능한 형태의 파일로 변환한 파일)을 사용자 홈 디렉토리에 복사하고, 사용자 계정의 인증 파일에 해당 실행파일의 경로를 등록한다(S44). 즉, SSH KEY 인증 정보가 기록된 authorized_keys 파일에 command="실행 파일 절대 경로/실행 파일명" parameter를 추가한다. 이를 통해, 사용자 단말(10)이 서버(40)에 로그인할 경우, 실행 파일이 강제 실행될 수 있도록 한다.In addition, the authentication processing unit 33 copies the previously stored user-only shell code executable file (a file that converts a user-selected job into programming code and converts it into an executable file) to the user home directory, and the user account. Register the path of the executable file in the authentication file (S44). That is, add the command="absolute path of executable file/name of executable file" parameter to the authorized_keys file where SSH KEY authentication information is recorded. Through this, when the user terminal 10 logs in to the server 40, the execution file is forced to be executed.

도 10은 authorized_keys 파일에 추가된 command Parameter를 예시하고 있다.10 illustrates a command parameter added to the authorized_keys file.

그리고 마지막으로, 루트 계정의 접속 세션을 종료한다.And finally, the connection session of the root account is terminated.

세션 연결 시 마다 새로운 키를 사용하는 이유를 보다 구체적으로 설명한다.The reason for using a new key for each session connection will be explained in more detail.

일반적으로 SSH KEY 인증에서 하나의 계정에 여러 개의 SSH 키 페어(KEY Pair)를 등록하여 사용할 수 있다. 예를 들어, 실제 서버 환경에서 사용자가 1.1.1.1 서버에 User A 계정으로 "서버 리소스 모니터링" 작업을 위해 접속하고 있는 상태에서, 또다시 1.1.1.1 서버에 User A 계정으로 접속하여 "사용자 관리" 작업을 할 수 있다.In general, in SSH KEY authentication, multiple SSH key pairs can be registered and used in one account. For example, in a real server environment, when a user is connecting to the 1.1.1.1 server with the User A account for the "Server Resource Monitoring" operation, the user is connected to the 1.1.1.1 server with the User A account again to "Manage Users". You can work.

위와 같은 상황이 생길 때 사용자와 접속 서버, 접속 계정은 동일하지만, 작업 가능 종류가 다르므로, 처음 접속한 세션과 두번째 접속한 세션에서 작업 가능 항목이 달라져야 한다.When the above situation occurs, the user, the access server, and the access account are the same, but the workable types are different, so the workable items must be different in the first accessed session and the second accessed session.

또한, SSH KEY 인증 정보를 기록해 놓는 authorized_keys 파일에 추가한, SSH 키 페어(KEY Pair) 공개키 정보에 command 라는 Parameter를 추가해야 하므로, 위와 같은 상황에 대응하기 위해서는 서버에 세션이 연결될 때 마다 새로운 키를 발급받아 authorized_keys 파일에 command Parameter를 추가해줘야 한다.In addition, a parameter called command must be added to the SSH key pair public key information added to the authorized_keys file that records the SSH KEY authentication information, so to respond to the above situation, a new key is added whenever a session is connected to the server. You need to add the command parameter to the authorized_keys file after issuing.

다음으로, 접근통제 게이트웨이(30) 또는 통신 중계부(33)는 사용자 단말(10)과 서버(40) 간의 중계를 위한 세션을 설정하고 중계를 수행한다(S50).Next, the access control gateway 30 or the communication relay unit 33 establishes a session for relaying between the user terminal 10 and the server 40 and performs relaying (S50).

즉, 통신 중계부(33)는 서버(40)와 서버용 세션을 설정하고, 서버용 세션에 대응되는 사용자 단말(10)과 클라이언트용 세션을 설정한다. 바람직하게는, 서버용 세션은 SSH 세션으로 설정한다.That is, the communication relay unit 33 establishes a server 40 and a server session, and sets a user terminal 10 and a client session corresponding to the server session. Preferably, the session for the server is established as an SSH session.

구체적으로, 통신 중계부(33)는 SSH KEY 인증 설정 작업이 끝나면, 사용자가 선택한 1.1.1.1 서버에 User A 계정으로 접속한다. 통신 중계부(33)는 서버(40)와의 세션은 SSH 세션으로 설정하는데, 이때, 인증 처리부(33)를 통해 SSH 세션을 설정한다. 즉, SSH 세션 및 인증을 위한 서버(40)와의 메시지의 송수신은 통신 중계부(33)에 의해 수행되고, SSH 세션 및 인증을 위한 메시지의 생성은 인증 처리부(33)에 의해 수행된다.Specifically, when the SSH KEY authentication setting operation is completed, the communication relay unit 33 accesses the 1.1.1.1 server selected by the user with the User A account. The communication relay unit 33 establishes a session with the server 40 as an SSH session. At this time, an SSH session is established through the authentication processing unit 33. That is, the transmission and reception of messages to and from the server 40 for the SSH session and authentication is performed by the communication relay unit 33, and the generation of the messages for the SSH session and authentication is performed by the authentication processing unit 33.

한편, 바람직하게는, 서버 인증은 패스워드가 아닌 앞서 저장된 SSH KEY(개인키)를 통해 인증을 수행한다. 즉, 별도의 사용자 인증(아이디와 패스워드 인증) 없이, SSH 인증만으로 서버(40)의 사용자 계정에 접속할 수 있다.Meanwhile, preferably, the server authentication is performed through the previously stored SSH KEY (private key), not a password. That is, without separate user authentication (ID and password authentication), the user account of the server 40 can be accessed by only SSH authentication.

SSH 인증키에 의한 인증이 성공하면, 서버(40)에 의하여, 사용자 전용 쉘 코드의 실행 파일(사용자가 선택한 작업을 프로그래밍 코드로 변경하고 실행 가능한 형태의 파일로 변환한 파일)이 강제 실행되면서, 사용자 전용 쉘이 생성되고, 사용자는 사용자 전용 쉘에 의해 서비스를 받게된다.If authentication by the SSH authentication key is successful, the server 40 executes the user-only shell code executable file (a file that changes a user-selected task into programming code and converts it into an executable file), A user-only shell is created, and the user is serviced by the user-only shell.

통신 중계부(33)는 사용자 전용 쉘에 의한 서비스 통신을 중계한다. 즉, 사용자 전용 쉘이 생성된 1.1.1.1 서버 접속 세션을 사용자 단말(10)에게 전달하고 세션을 전달받은 사용자 단말(10)은 작업 환경이 제한된 리스트 형 쉘을 사용할 수 있다.The communication relay unit 33 relays service communication by a user-only shell. That is, the 1.1.1.1 server connection session in which the user-only shell is created is delivered to the user terminal 10, and the user terminal 10 receiving the session can use a list-type shell with a limited working environment.

바람직하게는, 도 11에서 보는 바와 같이, 사용자 전용 쉘은 리스트 형 쉘이다. 도 11은 사용자 단말(10)에서 세션을 전달받은 사용자의 작업 환경을 예시하고 있다.Preferably, as shown in Fig. 11, the user-only shell is a list type shell. 11 illustrates a working environment of a user who receives a session from the user terminal 10.

다음으로, 접근통제 게이트웨이(30) 또는 인증 처리부(33)는 사용자의 작업이 종료되고 세션이 종료되면, 서버(40) 내의 사용자 계정의 인증 파일을 초기화 한다(S60).Next, the access control gateway 30 or the authentication processing unit 33 initializes the authentication file of the user account in the server 40 when the user's work ends and the session ends (S60).

즉, 통신 중계부(33)는 사용자가 작업을 마치고 세션을 종료하게 될 경우 해당 세션에서 사용된 세션 정보(서버 IP, 서버 접속 계정)를 인증 처리부(33)로 전달한다. 인증 처리부(33)는 저장된 SSH 키페어(KEY Pair) 정보 중 개인키와 매칭되는 공개키 정보를 추출한다. That is, the communication relay unit 33 transmits the session information (server IP, server access account) used in the corresponding session to the authentication processing unit 33 when the user finishes the work and ends the session. The authentication processing unit 33 extracts public key information matching the private key from the stored SSH key pair information.

인증 처리부(33)는 공개키 정보를 추출한 뒤, 통신 중계부(33)를 통해, 서버 IP(1.1.1.1)의 루트(root) 계정으로 로그인(접근 통제 시스템이 root 접속 정보를 이미 알고 있음)하고, 사용자가 사용한 서버 접속 계정(User A)의 인증 파일(또는 authorized_keys 파일)의 내용 중 추출한 공개키 정보와 일치하는 라인을 삭제한다. 또한, 바람직하게는, 인증 파일 내에 사용자 전용 쉘 코드의 실행파일의 경로도 삭제하고, 사용자 계정에 복사된 사용자 전용 쉘 코드의 실행파일도 삭제한다. 그리고 세션을 종료한다.The authentication processing unit 33 extracts the public key information, and then logs into the root account of the server IP (1.1.1.1) through the communication relay unit 33 (the access control system already knows the root access information) Then, delete the line that matches the extracted public key information from the contents of the authentication file (or authorized_keys file) of the server access account (User A) used by the user. Also, preferably, the path of the executable file of the user-only shell code in the authentication file is also deleted, and the executable file of the user-only shell code copied to the user account is also deleted. Then, the session ends.

다음으로, 본 발명의 효과에 대하여 보다 구체적으로 설명한다.Next, the effect of the present invention will be described in more detail.

앞서 설명한 바와 같이, 본 발명은 사용자가 서버에 접근하면, 사용자 전용 쉘로 서비스를 제공한다. 사용자 전용 쉘은 리스트 형의 쉘로서, 리스트에서 나열된 명령어만을 사용할 수 있다. 그외 명령어를 입력할 수 없다.As described above, the present invention provides a service in a user-only shell when a user accesses a server. The user-only shell is a list type shell, and only the commands listed in the list can be used. No other commands can be entered.

따라서 악의적인 사용자나 침입자는 사전에 정해진 리스트의 명령어 외 다른 작업을 수행할 수 없으므로, 보안을 한층 강화할 수 있다.Therefore, the malicious user or the intruder cannot perform other operations than the predetermined list of commands, thereby enhancing security.

이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.Above, although the invention made by the present inventors has been specifically described according to the above-described embodiments, the present invention is not limited to the above-described embodiments, and it is needless to say that various modifications can be made without departing from the gist thereof.

10 : 사용자 단말 20 : 관리자 단말
30 : 접근통제 게이트웨이 31 : 작업환경 설정부
32 : 통신 중계부 33 : 인증 처리부
40 : 서버 80 : 데이터베이스
81 : 쉘코드DB 82 : 인증키DB
83 : 인가접속DB
10: user terminal 20: administrator terminal
30: access control gateway 31: working environment setting unit
32: communication relay unit 33: authentication processing unit
40: server 80: database
81: shell code DB 82: authentication key DB
83: Authorized access DB

Claims (6)

적어도 하나의 사용자 단말과 적어도 1개의 서버 사이에 설치되어, 상기 사용자 단말과 상기 서버 사이를 중계하는, 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템에 있어서,
서버의 사용자 계정에 대한 접속을 요청할 때, 상기 사용자 단말의 사용자가 사용할 명령어들을 선정하고, 선정된 명령어(이하 전용 명령어)들만 처리하게 하는 사용자 전용 쉘 코드를 생성하는 작업환경 설정부;
상기 사용자 단말과 서버 사이에서 메시지를 중계하는 통신 중계부; 및,
상기 서버와의 세션(이하 서버용 세션) 및 상기 사용자 단말과의 세션(이하 클라이언트용 세션)을 설정하되, 상기 사용자 전용 쉘 코드를 상기 서버에 등록시킨 후 상기 서버용 세션을 설정하는 인증 처리부를 포함하고,
상기 통신 중계부는 상기 사용자 계정에 대한 접속 요청에 의한 접속 과정 또는 세션 설정 과정의 중계를, 상기 인증 처리부와 수행하고,
상기 인증 처리부는 서버의 작업이 종료되고 세션이 종료되면, 루트 계정으로 상기 서버에 접속하여, 상기 서버에 등록된 사용자 전용 쉘 코드를 삭제하여 초기화하고,
상기 인증 처리부는 루트 계정으로 상기 서버에 접속하여, 상기 사용자 전용 쉘 코드의 실행파일을 상기 서버 내의 상기 사용자 계정의 디렉토리에 복사하고, 상기 사용자 전용 쉘 코드의 실행파일의 경로를 상기 사용자 계정의 인증 파일에 등록함으로써, 상기 사용자 전용 쉘 코드를 등록하고,
상기 서버에서 상기 사용자 계정으로 접속되어 인증되면, 상기 사용자 계정의 인증 파일에 등록된 경로에 의한 사용자 전용 쉘 코드의 실행파일이 실행되는 것을 특징으로 하는 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템.
In the access control system equipped with at least one user terminal and at least one server, relaying between the user terminal and the server, equipped with a server operation control function for each user,
A work environment setting unit for selecting a command to be used by a user of the user terminal and generating a user-only shell code to process only the selected command (hereinafter, a dedicated command) when requesting access to a user account of the server;
A communication relay unit relaying a message between the user terminal and the server; And,
Establishing a session with the server (hereinafter referred to as a server session) and a session with the user terminal (hereinafter referred to as a client session), including an authentication processor configured to register the user-only shell code with the server and then establish the server session. ,
The communication relay unit performs a connection process or a session establishment process relay by a request for access to the user account with the authentication processing unit,
When the operation of the server is terminated and the session ends, the authentication processing unit accesses the server with a root account and initializes by deleting the user-only shell code registered in the server,
The authentication processing unit accesses the server with a root account, copies the executable file of the user-only shellcode to the directory of the user account in the server, and authenticates the path of the user-only shellcode executable file to the user account. By registering in the file, the user-specific shell code is registered,
When the server is accessed and authenticated with the user account, an access control system equipped with a server task control function for each user, characterized in that an executable file of a user-specific shell code is executed by a path registered in the authentication file of the user account. .
제1항에 있어서,
상기 작업환경 설정부는 다수의 작업을 정의하고, 해당 작업에 필요한 명령어들을 그룹화하여 명령어 리스트로 설정해두고, 사용자에 의해 작업을 선정받고, 선정된 작업에 해당하는 명령어 리스트의 명령어들을 상기 전용 명령어로 선정하는 것을 특징으로 하는 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템.
According to claim 1,
The work environment setting unit defines a plurality of tasks, sets the commands necessary for the task into a command list, selects a task by the user, and selects commands in the command list corresponding to the selected task as the dedicated commands Access control system equipped with a server task control function for each user, characterized in that.
제1항에 있어서,
상기 사용자 전용 쉘 코드는 상기 전용 명령어를 리스트로 표시하고, 상기 전용 명령어의 리스트 중에서 하나의 전용 명령어를 선택하게 하고, 선택된 전용 명령어를 실행시켜주는 실행 코드인 것을 특징으로 하는 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템.
According to claim 1,
The user-specific shell code is an execution code that displays the dedicated command as a list, selects one dedicated command from the list of dedicated commands, and executes the selected dedicated command. Access control system equipped with.
제1항에 있어서,
상기 인증 처리부는 상기 서버용 세션을 SSH(secure shell) 프로토콜에 의한 세션(이하 SSH 세션)으로 설정하되, SSH 인증키의 공개키 및 개인키 쌍을 생성하고, 루트 계정의 접속 정보로 상기 서버에 접속하여, 상기 SSH 인증키의 공개키를 상기 서버에 등록하고, 상기 사용자 전용 쉘 코드의 실행파일을 상기 서버에 복사하고, 상기 실행파일의 경로를 상기 서버에 등록하는 것을 특징으로 하는 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템.
According to claim 1,
The authentication processing unit sets the session for the server to a session using a secure shell (SSH) protocol (hereinafter referred to as an SSH session), generates a public key and a private key pair of the SSH authentication key, and connects to the server with access information of the root account. By doing so, registering the public key of the SSH authentication key to the server, copying the executable file of the user-only shell code to the server, and registering the path of the executable file to the server, server operation for each user. Access control system with control function.
제4항에 있어서,
상기 인증 처리부는 루트 계정으로 접속하여 SSH 인증키의 공개키를 상기 서버에 등록한 후, 사용자 계정으로 상기 서버에 접속하되, 등록된 공개키를 이용하여 상기 사용자 계정의 사용자 인증을 수행하는 것을 특징으로 하는 사용자별 서버 작업 통제 기능을 탑재한 접근통제 시스템.
The method of claim 4,
The authentication processing unit accesses the root account and registers the public key of the SSH authentication key to the server, then accesses the server with a user account, and performs user authentication of the user account using the registered public key. Access control system equipped with server task control function for each user.
삭제delete
KR1020190142472A 2019-11-08 2019-11-08 An access control system of controlling server jobs by users KR102118380B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190142472A KR102118380B1 (en) 2019-11-08 2019-11-08 An access control system of controlling server jobs by users

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190142472A KR102118380B1 (en) 2019-11-08 2019-11-08 An access control system of controlling server jobs by users

Publications (1)

Publication Number Publication Date
KR102118380B1 true KR102118380B1 (en) 2020-06-04

Family

ID=71080976

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190142472A KR102118380B1 (en) 2019-11-08 2019-11-08 An access control system of controlling server jobs by users

Country Status (1)

Country Link
KR (1) KR102118380B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102269885B1 (en) * 2020-11-23 2021-06-28 주식회사 넷앤드 An access control system of making up customized server work environment for each user
KR102346480B1 (en) 2021-04-30 2022-01-03 주식회사 넷앤드 A macro-based application account management system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217497A (en) * 2008-03-10 2009-09-24 Oki Electric Ind Co Ltd Universal server and command guard method
KR101475981B1 (en) 2008-04-04 2014-12-23 인터내셔널 비지네스 머신즈 코포레이션 Handling expired passwords
KR101780764B1 (en) 2017-03-20 2017-09-22 주식회사 넷앤드 An unauthorized command control method by the access control system for enhancing server security
KR101796205B1 (en) * 2017-04-17 2017-11-13 주식회사 넷앤드 A server access control system of detecting abnormal users by using command learning for enhancing security
US20180288009A1 (en) * 2017-03-29 2018-10-04 A10 Networks, Inc. Interception of Secure Shell Communication Sessions
KR101992976B1 (en) * 2019-01-25 2019-06-26 주식회사 넷앤드 A remote access system using the SSH protocol and managing SSH authentication key securely

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217497A (en) * 2008-03-10 2009-09-24 Oki Electric Ind Co Ltd Universal server and command guard method
KR101475981B1 (en) 2008-04-04 2014-12-23 인터내셔널 비지네스 머신즈 코포레이션 Handling expired passwords
KR101780764B1 (en) 2017-03-20 2017-09-22 주식회사 넷앤드 An unauthorized command control method by the access control system for enhancing server security
US20180288009A1 (en) * 2017-03-29 2018-10-04 A10 Networks, Inc. Interception of Secure Shell Communication Sessions
KR101796205B1 (en) * 2017-04-17 2017-11-13 주식회사 넷앤드 A server access control system of detecting abnormal users by using command learning for enhancing security
KR101992976B1 (en) * 2019-01-25 2019-06-26 주식회사 넷앤드 A remote access system using the SSH protocol and managing SSH authentication key securely

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102269885B1 (en) * 2020-11-23 2021-06-28 주식회사 넷앤드 An access control system of making up customized server work environment for each user
KR102346480B1 (en) 2021-04-30 2022-01-03 주식회사 넷앤드 A macro-based application account management system

Similar Documents

Publication Publication Date Title
CN100437530C (en) Method and system for providing secure access to private networks with client redirection
US9240977B2 (en) Techniques for protecting mobile applications
US8799441B2 (en) Remote computer management when a proxy server is present at the site of a managed computer
CN107426174B (en) Access control method of trusted execution environment
CN107122674B (en) Access method of oracle database applied to operation and maintenance auditing system
JP3415456B2 (en) Network system, command use authority control method, and storage medium storing control program
US8645520B2 (en) Remote computer management using network communications protocol that enables communication through a firewall and/or gateway
US9923878B2 (en) Primitive functions for use in remote computer management
US7827547B1 (en) Use of a dynamically loaded library to update remote computer management capability
CN107483495B (en) Big data cluster host management method, management system and server
US20060212934A1 (en) Identity and access management system and method
KR101992976B1 (en) A remote access system using the SSH protocol and managing SSH authentication key securely
US11240242B1 (en) System and method for providing a zero trust network
JPWO2013080659A1 (en) Confidential information leakage prevention system, confidential information leakage prevention method, and program
CN114995214A (en) Method, system, device, equipment and storage medium for remotely accessing application
KR102118380B1 (en) An access control system of controlling server jobs by users
KR102356474B1 (en) Systems that support smart work
US20230006988A1 (en) Method for selectively executing a container, and network arrangement
CN113364800A (en) Resource access control method, device, electronic equipment and medium
KR20060058546A (en) Method and apparatus for providing database encryption and access control
KR100777537B1 (en) platform system for management dispersed network systems and dispersion management method
EP3198398B1 (en) Access to software applications
KR101992985B1 (en) An access control system of controlling hard-coded passwords and commands for enhancing security of the servers
KR102110815B1 (en) An access control system with onetime password function for access security
KR102269885B1 (en) An access control system of making up customized server work environment for each user

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant