린아저씨의 잡학사전


서버를 처음 설치시에는 기본적으로 root 계정만 있기 때문에 root 계정을 제외한 새로운 관리자 계정을 생성해 주어야 한다.

이후 root를 통해서는 원격지에서 접속하지 못하도록 막아주어야 보안상 안전할 수 있다. 

이렇게 만들어진 새로운 관리자는 sudo 권한을 주어 전체적인 시스템을 관리하게 된다.




### 새로운 사용자 계정 추가 ###


$>useradd 사용자ID       // 사용자ID 추가 

$>passwd 사용자ID        // 사용자 비밀번호 설정





### 계정에 sudo권한 부여하기 ###


관리자(root)가 특정 사용자(특정 그룹)에게 특정 명령(명령그룹)을 root계정으로 실행할 수 있는 권한을 부여하는 것.


구성 파일 : /etc/sudoers


$>rpm -qa | grep sudo     // sudo가 설치되어 있는지 확인

$>chmod +w /etc/sudoers    // /etc/sudoers는 기본적으로 readonly 파일이므로 수정하기 위해 설정파일에 쓰기권한을 부여




 $>vi /etc/sudoers    // 설정파일 열어서 수정


root ALL=(ALL) ALL    // root에게 sudo 권한이 부여되어 있는 상태

joonyon ALL =/usr/local/resin/bin/httpd.sh, /usr/local/apache/bin/apachectl    // joonyon에 httpd.sh명령과 

    apachectl명령 권한을 허용한 예




$>chmod -w /etc/sudoers    //쓰기권한 회수


일반계정 joonyon로 위의 명령을 실행하려면


$>su - joonyon

$>sudo /usr/local/apache/bin/apachectl restart


이때 password를 물어보면 joonyon의 password를 입력하면 root권한으로 실행이 된다.




### 원격지에서 root 접근 막기 ###



기본적인 설정에서는 원격지에서 root 로그인이 허용상태로 되어 있다.

로컬에서야 상관없지만, 원격 로그인을 할 때 root 계정으로의 로그인을 허용하다보면 보안상에 문제가 발생할 수 있다.

이유는 해커등이 악의적인 목적으로 해당 서버에 root 계정으로 원격지 접속을 시도할 수 있기 때문이다.

또한, 서버 보안 감사중에 가장 기본적으로 검사하는 항목이기도 함으로 필수로 다음 설정이 필요하다.



구성 파일: /etc/ssh/sshd_config


 $>vi /etc/ssh/sshd_config

...

#PermitRootLogin yes

...

다음과 같이 주석처리되어 있는 PermitRootLogin yes 부분의 주석을 해제하고 no로 변경한다.

...

PermitRootLogin no

...



그런 뒤에 저장을 하고 빠져나와 sshd를 재시작해 준다.


$>/etc/rc.d/init.d/sshd restart   or   $>service sshd restart




출처 : http://webdir.tistory.com/130

공유하기

facebook twitter kakaoTalk kakaostory naver band