리눅스 운영 체제는 많은 도구와 프로그램을 기본으로 제공합니다. 하지만 이러한 도구와 프로그램이 보안에 취약할 수도 있습니다. 이를 보완하기 위해 몇 가지 보안 설정을 적용함으로써 시스템을 보호할 수 있습니다.
이 글에서는 리눅스에서 사용되는 도구와 프로그램의 보안 설정에 대해 알아보겠습니다.
명령어 보안 설정
리눅스는 다양한 명령어를 제공합니다. 이러한 명령어는 시스템에서 필요한 작업을 수행하는 데 사용됩니다. 하지만 이러한 명령어가 악의적인 목적으로 사용될 수도 있으므로 보안 설정이 필요합니다.
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.