[리눅스] 도구와 프로그램의 보안 설정

리눅스 운영 체제는 많은 도구와 프로그램을 기본으로 제공합니다. 하지만 이러한 도구와 프로그램이 보안에 취약할 수도 있습니다. 이를 보완하기 위해 몇 가지 보안 설정을 적용함으로써 시스템을 보호할 수 있습니다.

이 글에서는 리눅스에서 사용되는 도구와 프로그램의 보안 설정에 대해 알아보겠습니다.

명령어 보안 설정

리눅스는 다양한 명령어를 제공합니다. 이러한 명령어는 시스템에서 필요한 작업을 수행하는 데 사용됩니다. 하지만 이러한 명령어가 악의적인 목적으로 사용될 수도 있으므로 보안 설정이 필요합니다.

1. sudo 사용 제한

sudo 명령어를 사용하여 특정 명령어를 root 권한으로 실행할 수 있습니다. 그러나 sudo 권한은 지나치게 많은 권한을 부여할 수 있으므로 신중하게 제어해야 합니다.

/etc/sudoers 파일을 수정하여 특정 사용자나 그룹이 실행할 수 있는 명령어를 제한할 수 있습니다.

예시:

user1 ALL=(ALL) /bin/ls, /usr/bin/apt

2. 명령어 경로 보안

$PATH 환경 변수를 악의적으로 변경하여 다른 경로에 있는 악의적인 명령어를 실행하는 것을 방지하기 위해 secure_path를 설정할 수 있습니다.

/etc/sudoers 파일에서 secure_path를 정의할 수 있습니다.

예시:

Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

네트워크 보안 설정

리눅스 시스템은 네트워크 통신을 위한 다양한 도구를 제공합니다. 이러한 도구를 안전하게 사용하기 위해 몇 가지 보안 설정이 필요합니다.

1. 방화벽 설정

iptables 또는 firewalld와 같은 방화벽 도구를 사용하여 네트워크 트래픽을 제어할 수 있습니다.

예시:

sudo iptables -A INPUT -p tcp --dport 22 -j DROP

2. SSH 보안 설정

sshd_config 파일을 수정하여 SSH 보안 설정을 변경할 수 있습니다. 특히 root 계정의 SSH 로그인을 비활성화하고 특정 사용자만 SSH 로그인을 허용하는 것이 좋습니다.

예시:

PermitRootLogin no
AllowUsers user1 user2

시스템 및 서비스 보안 설정

리눅스 시스템에서 동작하는 다양한 서비스와 백그라운드 프로그램은 보안 설정이 중요합니다.

1. 서비스 포트 제한

/etc/services 파일을 통해 사용하지 않는 포트를 제거하고 필요한 서비스의 포트만 허용하는 것이 좋습니다.

예시:

ssh    22/tcp
http   80/tcp

2. SELinux 설정

SELinux를 위한 보안 정책 설정을 통해 시스템에서 동작하는 서비스 및 프로그램의 접근 권한을 제어할 수 있습니다.

예시:

semanage port -a -t ssh_port_t -p tcp 2222

마무리

리눅스 시스템에서 보안 설정은 매우 중요합니다. 이러한 설정을 통해 시스템의 취약성을 최소화하고 더 안전하게 운영할 수 있습니다.

이러한 설정은 시스템 환경에 따라 다를 수 있으므로, 각각의 경우에 따라 신중한 고려가 필요합니다.

참고 문헌:


Example Reference

Command Execution Security Settings

Linux provides a variety of commands to perform necessary system operations. However, these commands can also be used for malicious purposes. Here are some best practices to secure command execution in a Linux environment.

1. Restricting sudo Usage

The sudo command allows users to execute commands with elevated privileges. However, it’s important to restrict sudo usage to minimize the potential for misuse.

Example:

user1 ALL=(ALL) /bin/ls, /usr/bin/apt

2. Command Path Security

To prevent malicious commands from being executed by maliciously manipulating the $PATH environment variable, the secure_path can be set.

Example:

Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

For more information, see Ubuntu Server Guide - Security Basics.