Oracle® Solaris 11.2에서 시스템 및 연결된 장치의 보안

인쇄 보기 종료

업데이트 날짜: 2014년 9월
 
 

로그인 제어 유지 관리

암호 지정 및 로그인 제어를 통해 시스템이나 네트워크에 대한 허용되지 않은 로그인을 막을 수 있습니다. 암호는 단순한 인증 방식입니다. 시스템의 모든 계정에는 암호가 있어야 합니다. 암호가 없는 계정이 있으면 사용자 이름을 추측할 수 있는 침입자가 전체 네트워크에 액세스할 수 있습니다. 강력한 암호 알고리즘은 무단 공격으로부터 보호합니다.

    사용자가 시스템에 로그인하면 login 명령이 이름 스위치 서비스 svc:/system/name-service/switch의 정보에 따라 알맞은 이름 지정 서비스 또는 디렉토리 서비스 데이터베이스를 확인합니다. 이름 지정 서비스 데이터베이스의 값을 변경하려면 SMF 명령을 사용합니다. 이름 지정 서비스는 로그인에 영향을 주는 데이터베이스의 위치를 나타냅니다.

  • files – 로컬 시스템의 /etc 파일을 지정합니다.

  • ldap – LDAP 서버의 LDAP 디렉토리 서비스를 지정합니다.

  • nis – NIS 마스터 서버의 NIS 데이터베이스를 지정합니다.

  • dns – 네트워크의 도메인 이름 서비스를 지정합니다.

이름 지정 서비스에 대한 설명은 nscd(1M) 매뉴얼 페이지를 참조하십시오. 이름 지정 서비스 및 디렉토리 서비스에 대한 자세한 내용은 Oracle Solaris 11.2의 이름 지정 및 디렉토리 서비스 작업: DNS 및 NIS Oracle Solaris 11.2의 이름 지정 및 디렉토리 서비스 작업: LDAP 을 참조하십시오.

login 명령은 사용자가 제공한 사용자 이름과 암호를 확인합니다. 사용자 이름이 암호 데이터베이스에 없을 경우 login 명령은 시스템에 대한 액세스를 거부합니다. 지정된 사용자 이름에 대한 암호가 올바르지 않을 경우 login 명령은 시스템에 대한 액세스를 거부합니다. 사용자가 유효한 사용자 이름과 해당하는 암호를 제공할 경우 시스템은 사용자에게 시스템에 대한 액세스 권한을 부여합니다.

PAM 모듈은 성공적인 시스템 로그인 후에 응용 프로그램에 대한 로그인을 간소화할 수 있습니다. 자세한 내용은 Oracle Solaris 11.2의 Kerberos 및 기타 인증 서비스 관리 의 1 장, 플러그 가능한 인증 모듈 사용을 참조하십시오.

Oracle Solaris 시스템에서는 정교한 인증 및 권한 부여 방식을 사용할 수 있습니다. 네트워크 레벨의 인증 및 권한 부여 방식에 대한 자세한 내용은 원격 액세스에 대한 인증 및 권한 부여를 참조하십시오.

암호 정보 관리

사용자가 시스템에 로그인할 때 사용자 이름과 암호를 모두 제공해야 합니다. 로그인은 공개적으로 알려져 있더라도 암호는 비밀로 유지해야 합니다. 암호는 각 사용자만 알고 있어야 합니다. 사용자는 자신의 암호를 신중하게 선택하고 자주 변경해야 합니다.

암호는 사용자 계정을 설정할 때 처음 만들어집니다. 사용자 계정에 대한 보안 유지를 위해 사용자가 자신의 암호를 정기적으로 변경하도록 암호 유효 기간을 설정할 수 있습니다. 또한 암호를 잠가 사용자 계정을 사용 안함으로 설정할 수도 있습니다. 암호 관리에 대한 자세한 내용은 Oracle Solaris 11.2의 사용자 계정 및 사용자 환경 관리 의 1 장, 사용자 계정 및 사용자 환경 정보passwd(1) 매뉴얼 페이지를 참조하십시오.

로컬 암호

네트워크에서 로컬 파일을 사용하여 사용자를 인증하는 경우 암호 정보는 시스템의 /etc/passwd/etc/shadow 파일에 보관됩니다. 사용자 이름 및 기타 정보는 /etc/passwd 파일에 보관됩니다. 암호화된 암호 자체는 별도의 섀도우 파일인 /etc/shadow에 보관됩니다. 이 보안 방식은 사용자가 암호화된 암호에 액세스하지 못하도록 막습니다. /etc/passwd 파일은 시스템 로그인 권한이 있는 모든 사용자가 사용할 수 있지만 /etc/shadow 파일은 root 계정만 읽을 수 있습니다. passwd 명령을 사용하여 로컬 시스템에서 사용자의 암호를 변경할 수 있습니다.

NIS 암호

네트워크에서 NIS를 사용하여 사용자를 인증하는 경우 암호 정보는 NIS 암호 맵에 보관됩니다. NIS는 암호 유효 기간을 지원하지 않습니다. passwd -r nis 명령을 사용하여 NIS 암호 맵에 저장된 사용자의 암호를 변경할 수 있습니다.

LDAP 암호

Oracle Solaris LDAP 이름 지정 서비스는 암호 정보 및 섀도우 정보를 LDAP 디렉토리 트리의 ou=people 컨테이너에 저장합니다. Oracle Solaris LDAP 이름 지정 서비스 클라이언트에서 passwd -r ldap 명령을 사용하여 사용자의 암호를 변경할 수 있습니다. LDAP 이름 지정 서비스는 암호를 LDAP 저장소에 저장합니다.

암호 정책은 Oracle Directory Server Enterprise Edition에서 적용됩니다. 특히 클라이언트의 pam_ldap 모듈은 Oracle Directory Server Enterprise Edition에서 적용되는 암호 정책 제어를 따릅니다. 자세한 내용은 Oracle Solaris 11.2의 이름 지정 및 디렉토리 서비스 작업: LDAP 의 LDAP 이름 지정 서비스 보안 모델을 참조하십시오.

암호 암호화

강력한 암호 암호화는 공격에 대한 1차 방어선을 제공합니다. Oracle Solaris 소프트웨어는 6가지 암호 암호화 알고리즘을 제공합니다. Blowfish 및 SHA 알고리즘은 강력한 암호 암호화를 제공합니다.


주 -  FIPS 140 승인을 받으려면 SHA 알고리즘을 사용하십시오. 자세한 내용은 Using a FIPS 140 Enabled System in Oracle Solaris 11.2 의 passwd Command as a FIPS 140 Consumer을 참조하십시오.
암호 알고리즘 식별자

사이트에 대한 알고리즘 구성은 /etc/security/policy.conf 파일에 지정합니다. policy.conf 파일에서 알고리즘은 다음 표에 나온 대로 식별자로 이름이 지정됩니다. 식별자-알고리즘 매핑은 /etc/security/crypt.conf 파일을 참조하십시오.


주 -  가능하면 FIPS 승인 알고리즘을 사용하십시오. FIPS 승인 알고리즘 목록은 Using a FIPS 140 Enabled System in Oracle Solaris 11.2 의 FIPS 140 Algorithm Lists and Certificate References for Oracle Solaris Systems를 참조하십시오.
표 1-1  암호 암호화 알고리즘
식별자
설명
알고리즘 매뉴얼 페이지
1
BSD 및 Linux 시스템의 MD5 알고리즘과 호환되는 MD5 알고리즘입니다.
2a
BSD 시스템의 Blowfish 알고리즘과 호환되는 Blowfish 알고리즘입니다.

주 -  FIPS 140 보안을 승격하려면 /etc/security/policy.conf 파일의 CRYPT_ALGORITHMS_ALLOW=2a,5,6 항목에서 Blowfish 알고리즘(2a)을 제거하십시오.

md5
BSD 및 Linux 버전의 MD5보다 강력한 것으로 알려져 있는 Sun MD5 알고리즘입니다.
5
SHA256 알고리즘입니다. SHA는 Secure Hash Algorithm(보안 해시 알고리즘)의 약어입니다. 이 알고리즘은 SHA-2 계열에 속합니다. SHA256은 255자 암호를 지원합니다. 이 알고리즘은 기본값 (CRYPT_DEFAULT)입니다.
6
SHA512 알고리즘입니다.
__unix__
더 이상 사용되지 않습니다. 기존 UNIX 암호화 알고리즘입니다. 이 알고리즘은 오래된 시스템에 연결할 때 유용할 수 있습니다.

주 -  사용자의 초기 암호에 사용된 알고리즘이 해당 사용자의 새 암호 생성 시 계속 사용됩니다. 이는 해당 사용자의 새 암호 생성 이전에 다른 기본 알고리즘을 선택한 경우에도 마찬가지입니다. 이 방식은 다음 조건에서 적용됩니다.
  • 해당 알고리즘이 암호 암호화에 사용되도록 허용된 알고리즘의 목록에 포함됩니다.

  • 해당 식별자가 _unix_가 아닙니다.

암호 암호화에 대한 알고리즘을 전환하는 방법을 설명하는 절차는 기본 암호 암호화 알고리즘 변경을 참조하십시오.


policy.conf 파일의 알고리즘 구성

policy.conf 파일의 기본 알고리즘 구성은 다음과 같습니다.

#
…
# crypt(3c) Algorithms Configuration
#
# CRYPT_ALGORITHMS_ALLOW specifies the algorithms that are allowed
to
# be used for new passwords.  This is enforced only in crypt_gensalt(3c).
#
CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6

# To deprecate use of the traditional unix algorithm, uncomment below
# and change CRYPT_DEFAULT= to another algorithm.  For example,
# CRYPT_DEFAULT=1 for BSD/Linux MD5.
#
#CRYPT_ALGORITHMS_DEPRECATE=__unix__

# The Oracle Solaris default is a SHA256 based algorithm.  To revert to
# the policy present in Solaris releases set CRYPT_DEFAULT=__unix__,
# which is not listed in crypt.conf(4) since it is internal to libc.
#
CRYPT_DEFAULT=5
…

CRYPT_DEFAULT에 대한 값을 변경할 경우 새 사용자의 암호가 새 값과 연결된 알고리즘으로 암호화됩니다.

기존 사용자가 자신의 암호를 변경할 경우 이전 암호의 암호화 방식은 새 암호를 암호화하는 데 사용되는 알고리즘에 영향을 줍니다. 예를 들어, CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6CRYPT_DEFAULT=6을 가정해 보겠습니다. 다음 표는 암호화된 암호를 생성하는 데 사용되는 알고리즘을 보여줍니다. 암호는 식별자=알고리즘으로 구성됩니다.

초기 암호
변경된 암호
설명
1 = crypt_bsdmd5
동일한 알고리즘을 사용함
1 식별자는 CRYPT_ALGORITHMS_ALLOW 목록에 있습니다. 사용자의 암호는 계속해서 crypt_bsdmd5 알고리즘으로 암호화됩니다.
2a = crypt_bsdbf
동일한 알고리즘을 사용함
2a 식별자는 CRYPT_ALGORITHMS_ALLOW 목록에 있습니다. 따라서 새 암호는 crypt_bsbdf 알고리즘으로 암호화됩니다.
md5 = crypt_md5
동일한 알고리즘을 사용함
md5 식별자는 CRYPT_ALGORITHMS_ALLOW 목록에 있습니다. 따라서 새 암호는 crypt_md5 알고리즘으로 암호화됩니다.
5 = crypt_sha256
동일한 알고리즘을 사용함
5 식별자는 CRYPT_ALGORITHMS_ALLOW 목록에 있습니다. 따라서 새 암호는 계속해서 crypt_sha256 알고리즘으로 암호화됩니다.
6 = crypt_sha512
동일한 알고리즘을 사용함
6 식별자는 CRYPT_DEFAULT의 값입니다. 따라서 새 암호는 계속해서 crypt_sha512 알고리즘으로 암호화됩니다.
__unix__ = crypt_unix
crypt_sha512 알고리즘을 사용합니다.
__unix__ 식별자는 CRYPT_ALGORITHMS_ALLOW 목록에 없습니다. 따라서 crypt_unix 알고리즘을 사용할 수 없습니다. 새 암호는 CRYPT_DEFAULT 알고리즘으로 암호화됩니다.

알고리즘 선택 구성에 대한 자세한 내용은 policy.conf(4) 매뉴얼 페이지를 참조하십시오. 암호 암호화 알고리즘을 지정하려면 기본 암호 암호화 알고리즘 변경을 참조하십시오.

특수 시스템 계정

root 계정은 여러 특수 시스템 계정 중 하나입니다. 이러한 계정 중에서 root 계정만 암호가 지정되고 로그인할 수 있습니다. nuucp 계정은 파일 전송을 위해 로그인할 수 있습니다. 기타 시스템 계정은 root의 전체 권한을 사용하지 않고 파일을 보호하거나 관리 프로세스를 실행합니다.


Caution

주의  -  시스템 계정의 암호 설정은 변경하지 마십시오. Oracle Solaris의 시스템 계정은 안전한 보안 상태로 전달됩니다. UID가 101 이하인 시스템 파일을 수정하거나 만들지 마십시오.


다음 표는 몇 가지 시스템 계정 및 해당 용도를 나열합니다. 시스템 계정은 특수한 기능을 수행합니다. 이 목록의 각 계정은 100보다 작은 UID를 가집니다. 시스템 파일의 전체 목록을 보려면 logins –s 명령을 사용하십시오.

표 1-2  선택한 시스템 계정 및 사용
시스템 계정
UID
용도
root
0
거의 제한 사항이 없습니다. 다른 보호 및 권한을 대체할 수 있습니다. root 계정은 전체 시스템에 대한 액세스 권한을 가집니다. root 계정에 대한 암호는 매우 신중하게 보호되어야 합니다. root 계정은 대부분의 Oracle Solaris 명령을 소유합니다.
daemon
1
백그라운드 처리를 제어합니다.
bin
2
일부 Oracle Solaris 명령을 소유합니다.
sys
3
많은 시스템 파일을 소유합니다.
adm
4
일부 관리 파일을 소유합니다.
lp
71
프린터에 대한 객체 데이터 파일 및 스풀링된 데이터 파일을 소유합니다.
uucp
5
UUCP(UNIX-UNIX 복사 프로그램)에 대한 객체 데이터 파일 및 스풀링된 데이터 파일을 소유합니다.
nuucp
9
원격 시스템에서 시스템에 로그인하고 파일 전송을 시작하는 데 사용됩니다.

원격 로그인

원격 로그인은 침입자를 위한 공격 경로가 될 수 있습니다. Oracle Solaris는 원격 로그인을 모니터, 제한 및 사용 안함으로 설정할 수 있는 여러 가지 명령을 제공합니다. 절차는 Table 3–1을 참조하십시오.

기본적으로 원격 로그인은 시스템 마우스, 키보드, 프레임 버퍼, 오디오 장치 등과 같은 특정 시스템 장치에 대한 제어 권한을 얻거나 해당 장치를 읽을 수 없습니다. 자세한 내용은 logindevperm(4) 매뉴얼 페이지를 참조하십시오.