모든 비즈니스가 인터넷에 점점 더 의존하게 되면서 사이버 보안은 점점 더 조직의 초점이 되고 있습니다. 이런 점에서 Linux 시스템은 좋은 출발점이 됩니다. 오픈 소스, 광범위한 사용 및 인증이 필요하지 않은 특성으로 인해 Linux 시스템은 많은 조직과 기업에서 선택하는 운영 체제가 되었습니다. 그러나 Linux 시스템의 위험도 증가하고 있습니다. 이 문서에서는 Linux 시스템 취약성을 강화하고 복구하는 방법을 소개하고, 보다 안전한 Linux 시스템을 구성하는 데 도움이 되는 몇 가지 샘플 코드를 제공합니다.
먼저 사용자 관리, 파일 및 디렉터리 권한, 네트워크 및 서버 구성, 애플리케이션 보안과 같은 측면에 중점을 두어야 합니다. 각 측면에 대한 자세한 조치와 샘플 코드는 아래에 설명되어 있습니다.
강력한 비밀번호
사용자가 복잡한 비밀번호를 선택하고 정기적으로 비밀번호를 변경하도록 요구하는 비밀번호 정책을 개발하세요.
#强制用户选择具备最低密码强度的密码 auth requisite pam_passwdqc.so enforce=users #强制/用户更改自己的密码 auth required pam_warn.so auth required pam_passwdqc.so min=disabled,disabled,12,8,7 auth required pam_unix.so remember=24 sha512 shadow
루트 원격 로그인 금지
루트 권한이 있는 사용자만 직접 연결하는 것을 권장합니다. /etc/ssh/sshd_config에서 PermitRootLogin을 no로 구성합니다.
로그인 시간 초과
시간 초과 설정은 유휴 시간이 지나면 자동으로 연결이 끊어지도록 할 수 있습니다. /etc/profile 또는 ~/.bashrc에서 다음과 같이 설정합니다.
#设置空闲登陆超时退出时间为300秒 TMOUT=300 export TMOUT
기본 구성
기본 구성을 사용하면 모든 사용자가 모든 파일과 디렉터리를 볼 수 있습니다. /etc/fstab 파일에 다음 콘텐츠를 추가합니다.
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /dev/shm tmpfs defaults,noatime,mode=1777 0 0
민감한 파일 및 디렉터리에 대한 권한 확인
액세스는 특정 사용자 그룹이나 개인으로 제한되어야 합니다. chown 및 chmod 명령을 사용하여 파일 및 디렉터리의 권한을 수정합니다. 다음 예는 루트 사용자만 수정할 수 있는 디렉터리를 설정하는 것입니다.
#修改某目录只能root用户修改 chown root /etc/cron.deny chmod 600 /etc/cron.deny
SUID, SGID 및 Sticky Bits
SUID(Set 사용자 ID), SGID(그룹 ID 설정), 고정 비트 및 기타 비트는 Linux 시스템의 일부 보안 표시이므로 정기적으로 감사해야 합니다. 다음 명령은 부적합한 권한 조건을 찾는 데 사용됩니다.
#查找SUID权限未被使用的文件和目录 find / -perm +4000 ! -type d -exec ls -la {} ; 2>/dev/null #查找SGID权限未被使用的文件和目录 find / -perm +2000 ! -type d -exec ls -la {} ; 2>/dev/null #查找粘滞位未设置的目录 find / -perm -1000 ! -type d -exec ls -la {} ; 2>/dev/null
Firewall
iptables은 Linux에서 가장 일반적으로 사용되는 방화벽 애플리케이션 중 하나입니다. 다음 샘플 코드는 들어오는 모든 액세스를 차단합니다.
#清空所有规则和链 iptables -F iptables -X #允许所有本地进出的通信,并拒绝所有远程的访问 iptables -P INPUT DROP iptables -P OUTPUT DROP #添加规则 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
서비스 액세스 제한
일부 서비스는 로컬에서만 실행되어야 하며 외부에서 액세스할 위험이 큽니다. /etc/hosts.allow 및 /etc/hosts.deny 디렉토리에서 규칙을 개발하여 서비스에 대한 액세스 시간, IP 및 기타 정보를 제한합니다.
소프트웨어 패키지 업데이트
커널과 사용자 공간 소프트웨어 모두 알려진 버그와 취약점을 해결하려면 정기적인 업데이트가 필요합니다. yum, rpm 및 기타 도구를 사용하여 소프트웨어 패키지를 업데이트할 수 있습니다. 샘플 코드는 다음과 같습니다.
#更新已安装的所有软件包 yum -y update #更新单个软件包 yum -y update
루트 사용자를 사용하여 애플리케이션을 실행하지 마세요
애플리케이션을 실행할 때 권한이 없는 사용자를 사용해야 하며 루트 사용자를 사용하여 애플리케이션을 실행하지 마세요.
정적 링크 라이브러리 컴파일
정적 링크 라이브러리에는 애플리케이션 작성에 대한 모든 종속성이 포함되어 있어 다른 사용자가 종속 패키지를 변조하는 것을 방지할 수 있습니다. 샘플 코드는 다음과 같습니다.
#编译静态链接库 gcc -o app app.c -static
결론
리눅스 시스템의 보안 강화 및 취약점 복구 작업은 여기서 끝나지 않으며, 위의 조치는 리눅스 시스템의 보안을 강화하는 데 도움이 될 수 있습니다. 이러한 조치가 시스템의 보안을 완전히 보장할 수는 없다는 점에 유의해야 합니다. 조직과 기업은 보안을 보장하기 위해 다양한 조치를 취해야 합니다.
위 내용은 Linux 시스템에서 보안 강화 및 취약점 복구를 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!