답변:
이론적으로, 그것을 변경 /etc/passwd
하고 /etc/shadow
당신은 '이름 바꾸기'루트에 필요한 모든 것입니다. 이 문제는 존재하는 거의 모든 유닉스 소프트웨어가 사용자 이름 'root'가 존재하고 그것이 메일 별명, 다양한 데몬, 크론과 같은 슈퍼 유저라고 가정하기 때문에 발생합니다.
만약 당신이 그것을 시도하기 위해 정말로 구부러져 있다면, find /etc -type f -exec grep -l root {} +
아마도 변경해야 할 모든 구성 파일의 목록을 찾는 것이 좋을 것입니다. 그러나 이미 말했듯이, 이것은 거의 모든 가능한 상황에서 정말 나쁜 생각입니다.
EDIT 또 다른 생각 - 당신이 (당신이 어떤 이미하지 않은 경우 해야 이) 있는지 확인 /etc/aliases
에 대한 항목이 포함 root
하고있는 사용자 이름이나 이메일 주소가 평가하여 올바르게합니다. cron
예를 들어 많은 자동화 된 시스템 전체 작업 은 전자 메일을 통해 출력을 전자 메일로 보냅니다 root
.
chown root …
으로 셸 스크립트로 작성 했거나 비슷한 것을 생각해 봅시다 .
"두려워하지 마라!" 말도 안됩니다. 한 번에, 그렇습니다. 아마도 잘못 작성된 대본을 많이 깨 뜨렸을 것입니다. 최소한 표준 배포판에는 없습니다.
우리는 리눅스 서버의 서브셋에서 루트 계정의 이름을 바꾸라는 지시를 받았습니다. 그래서이 작업을 올바르게 수행하는 방법을 연구 한 후 "하지 마십시오!"라는 많은 게시물을 발견했습니다. 이 작업을 선택하면 "나쁜 일"에 대한 많은 경고가 발생합니다. 그러나, 나는 일어날 수있는 "나쁜 것들"의 구체적인 예를 아직 찾지 못했다.
그래서, 내가 어디에 있는지, 어떻게 우리가 여기에 왔는지 설명하고 다시 설명하겠습니다. 우리는 PCI 호환 환경을 구축하고 있으며 이러한 "요구 사항"을 충족시키는 데 도움이되는 도구 중 하나는 루트 및 관리자 및 게스트 계정의 이름을 다른 것으로 바꿔야한다는 것을 알려줍니다. PCI에 대해 잘 모르는 사람들에게는 지침을 따르거나 해당 지침을 따르지 않거나 선택할 수없는 이유와 시스템을 안전하게 유지하기위한 완화 전략을 문서화 할 수 있습니다. 따라서 대부분의 장소에서 루트 계정의 이름을 바꾸지 않는 이유를 문서화했다고 생각하지만 우리 그룹은 문제없이 Windows 관리자 계정의 이름을 바꿀 수 있으면 Linux 루트 계정의 이름도 바꾸겠다고 결정했습니다.
나는 "모호함을 통한 보안"주장에 정통합니다. 루트 계정 이름을 변경해도 실제로 보안이 크게 향상되지는 않지만 SSH에서 루트를 비활성화해야한다는 것을 알고 있습니다. 요점은 아닙니다. 더 많은 것을 듣고 싶지는 않습니다. 또한 "하늘이 떨어질 것"경고에 관심이 없습니다. ">이 나쁜 것은 <이 표준 패키지에서 발생합니다 <> (이것을 수행하지 않는 한)"와 같은 문장을 찾고 있습니다.
지금까지 루트 계정 이름을 바꾸는 데 아무런 문제가없는 3 CentOS (RHEL) 시스템이 있습니다. 내가 한 일은 다음과 같습니다. / etc / passwd, / etc / shadow, / etc / group 및 / etc / gshadow에서 계정 이름을 변경했습니다. 그런 다음 / etc /의 루트 이름을 grepp하고 postfix aliases 파일을 수정하여 root가 새 계정 이름의 별칭이되도록 rojotoro라고합니다. (다른 이메일 시스템에서도 비슷한 방법을 사용해야합니다). 또한 누가 자동으로 생성 할 파일을 소유해야하는지 설명 할 때 logrotate에 대한 일부 구성을 변경해야한다는 것을 알았습니다. 그리고 그것은 내가 지금까지 변한 전부입니다.
많은 init.d 스크립트를 살펴 보았지만 아무것도 변경하지 않았으며 부팅시 모든 것이 잘 시작되는 것으로 보입니다. sudo : "sudo -u rojotoro vim / etc / passwd"를 사용할 때 새 계정을 지정해야하지만 실제로 sudoers 파일 내에서 아무것도 변경하지 않아도됩니다. 나는 우리가 가지고 있고 시행하는 selinux에 관한 문제를 예상했지만 지금까지는 그 시스템을 만질 필요가 없었습니다.
또한 mkdev 또는 mkfs 스크립트를 조정해야 할 수도 있지만,이를 사용할 계획이 없으므로 조사 할만한 가치가있는 스크립트를 보지 않았습니다.
selinux 지원 시스템에 아무런 영향을 미치지 않고 변경하기가 정말 쉽다면 왜 모든 두려움이 계속되는가?
rpm -Va
루트 계정 이름이 바뀐 시스템에서 말하는 내용을 확인할 수 있습니까? 최대 RPM 안내서 "사용자 및 그룹 식별자는 숫자가 아니어야합니다." 에 따르면 파일을 지정하는 RPM은 root가 소유해야하므로 설치시이를 수행 할 수 없습니다. 시스템이 어떻게 처리하는지 궁금합니다.
제안 : 그렇게하지 마십시오.
일부 도구는 uid를 통해 루트와 대화하려고 시도하므로 문제가 없습니다. 일부 도구는 루트 계정이 루트라고하며 깨질 것이라고 가정합니다. "재미를 위해"시스템의 절반을 다시 컴파일 할 준비가되지 않았다면 시도하지 마십시오.
내 생각에 가장 쉬운 일은 UID 0을 사용 /root
하고 집 으로 새로운 사용자 (별칭)를 만드는 것 입니다.
왜 루트의 기본 쉘을 /bin/false
또는로 변경하여 /sbin/nologin
(아무도 로그인 할 수는 없지만 시스템은 여전히 사용하고 있음) 새 별칭으로 로그인하지 않겠습니까?
razvan@naboo ~ $ head -2 /etc/passwd
root:x:0:0:root:/root:/bin/nologin
root2:x:0:0:root:/root:/bin/bash
razvan@naboo ~ $ su -
Password:
su: Authentication failure
razvan@naboo ~ $ su root2
Password:
naboo razvan # whoami
root
루트 쉘을 nologin으로 변경하면 sudo, mail 또는 ftw가 손상되지 않습니다.
/bin/false
있거나 /sbin/nologin
서비스를 시작할 수없는 경우. 따라서 모든 것을 다시 구성해야합니다. 또한 "루트"권한이있는 두 번째 계정을 추가하면 보안이 거의 향상되지 않습니다.
Linux는 Windows가 아니며 현재 알 수없는 미래의 문제없이 루트를 쉽게 이름을 바꿀 수 없습니다.
루트로 원격 및 로컬 로그인을 비활성화하는 것은 계정 루트를 적극적으로 비활성화하기 때문에 더 안전한 방법입니다! UBUNTU는 기본적으로이 작업을 수행하고 루트 액세스 대신 sudo를 강제 실행합니다.
더 이상 시스템에 로그인하는 데 사용될 수 없기 때문에 루트 계정을 사용하여 시스템을 공격 할 수있는 사람은 없습니다!
루트 계정 이름을 쉽게 수정하고 설치시 UID를 임의로 생성하는 표준 방법을 만들면 가능하지만 UID 타겟팅을 막기 위해 모든 초기 시작시 가능하지만 현재는 존재하지 않는 것이 좋습니다.
/ etc / passwd 조정 root : x : 0 : 0 : root : / root : / bin / nologin 수정
긴급 사용 전용으로 하나의 대체 관리자 계정을 만드십시오! fallbackadmin : x : 0 : 0 : 루트 : / 루트 : / bin / bash
책임을 변경 한 사람을 정확하게 추적하기 위해 변경 로그 감사를 구현할 수 있도록 모든 관리자에 대해 sudo를 구현하십시오!
이는 기본 관리자 / 게스트 계정을 비활성화하고 단일 비상 사용 관리자 계정을 만들기 위해 PCI US Gov 요구 사항을 구현합니다.
감사를 위해 로그를 보관하는 한 가지 방법은 중앙 집중식 AAA가 구현되지 않은 경우 sudo 계정 액세스 권한이있는 모든 사용자로부터 터미널 기록을 수집하는 것입니다.
관리자 전용 계정을 구현하는 솔루션은 하나의 사용자 전용 계정과 하나의 sudo 사용 가능 계정을 만든 다음 사용자가 관리 액세스를 위해 sudo 사용 가능 계정으로 su를 강제하는 것입니다.
더 나은 보안을 원할 경우 스마트 카드 인증을 구현할 수도 있습니다. GNU / 리눅스에 사용할 수있는 솔루션이 미국 공용 액세스 카드 CAC 솔루션과 비교하여 2 단계 인증이 가능합니다.