티스토리 뷰

SW 개발/CentOS

CentOS 6, 사용자 계정 관리하기

지단로보트 2017. 5. 14. 10:02

보안의 기본, SSH Key 로그인

  • 리눅스에 로그인하는 가장 전통적인 방법은 아이디와 비밀번호를 이용하는 것이다. 하지만, 이 방법은 외부인에게 비밀번호를 탈취당할 경우 바로 로그인을 허용할 수 있어 위험한 인증 방식이다.
  • 현재 가장 널리 쓰이고 권장되는 방법은 SSH Key를 이용한 로그인이다. 사용자는 임의의 Private Key/Public Key 조합을 생성한 후, 원격지 서버에 Public Key를 복사한 후 자신만이 소유한(소유해야할) Private Key를 이용하여 로그인하는 것이다. 외부인이 탈취하기 힘들어 보안이 강화되는 효과가 있다. [관련 링크]
    • 가장 먼저 원격지 서버에서 SSH Key 로그인을 허용하도록 설정해야 한다.
    # SSH Key 인증 허용
    $ sudo nano /etc/ssh/sshd_config
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
    # SSH 데몬 재시작
    $ sudo service sshd restart
    
  • 윈도 사용자라면 PuTTY Key Generator를 이용하여 Private Key/Public Key 파일을 생성할 수 있다.
  • 이제 원격지 서버에 방금 생성한 Public Key를 추가할 차례이다.
# 자신의 사용자 계정 로그인 후 허가된 Public Key 목록에 생성한 Public Key를 추가
$ nano ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAnvYlVooXGoj3+7huZBUqf4wj57r25SHCKiiShyla335flX7Rsmb4meExpdh2NzfzffG15xl1wo0xBZ3HdZdqF2GUniEcNbtVjS1FKzQwPfsYPHMCY58qT0U2ZgK1zsXj2o0D2RWrCv3DFFfwUgNyZRYN2HK32umY6OmGSOVuJvIKhT+X6YaCVyax3CHv2ByB2OTBl9mh4nrwYAVXToT+X2psBE+MKB5R85lrUGkl3GtymTk10Dvf5O80exdTLFRMvkCA5RAIZgvxMk/bbNaH/0UHQoctX9oaDeKGWUPfVaknFBQdU9009+lK/ocAlKVNHEQkw+1wuV6dFoT1/hngSw== someuser@hostname

$ chmod g-w ~
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

원격지에서 root 계정 로그인 활성화

  • 일반적으로 SSH를 통한 원격 로그인시 root 계정으로 바로 로그인하는 것은 보안상 허용되지 않는다. 하지만 꼭 root 계정으로 로그인해야 한다면 아래와 같이 설정할 수 있다.
$ nano /etc/ssh/sshd_config
# root 권한 접속을 활성화
PermitRootLogin yes

# 텍스트 입력 패스워드 인증을 활성화
PasswordAuthentication yes

# SSH 데몬 재시작
$ service sshd restart

sudo 권한을 가진 사용자 계정 생성

  • 직접적으로 root 권한으로 로그인하여 중요한 작업을 수행하는 것은 보안상 위험한 일이다. 일반 사용자 계정을 생성하여 작업하다가 root 권한이 요구되는 명령어만 sudo 명령어를 사용하는 것이 바람직하다.
  • 일반 사용자 계정에 sudo 권한을 부여하려면 아래와 같이 해당 사용자를 wheel 그룹에 추가하면 된다. [관련 링크]
# wheel 사용자 그룹에 모든 명령 실행 권한 부여 
$ visudo
%wheel ALL=(ALL) ALL

# 새 사용자 생성
$ useradd someuser

# 사용할 패스워드 설정
$ passwd someuser
Changing password for user someuser.
New password: *****
Retype new password: *****

# sudo 권한을 가진 wheel 그룹에 생성된 사용자를 추가
# 이 시점부터 sudo 명령어 이용이 허가
$ usermod -aG wheel someuser
  • wheel 그룹에 속한 사용자는 평소처럼 명령어를 실행하다가 root 권한이 요구되는 명령어를 실행하면 아래와 같은 오류가 등장한다.
# root 권한이 필요한 명령어는 실행 거부
$ yum update
You need to be root to perform this command.

# sudo로 실행하여 자신의 비밀번호를 입력하면 실행 허가
$ sudo yum update
[sudo] password for someuser:

모든 사용자 계정 목록 조회

$ less /etc/passwd
root:x:0:0:root:/root:/bin/bash
...

alias를 이용하여 명령어 축약

  • 매번 동일한 명령어를 키보드로 타이핑하는 것은 비효율적인다. alias 기능을 이용하면 자주 사용하는 명령어를 축약할 수 있다.
# 현재 계정애 대한 alias 설정
$ nano ~/.bashrc
alias dev="ssh me@121.122.123.124"
alias prod="ssh me@121.122.123.124"

# 설정된 alias 확인
$ alias
alias dev="ssh me@121.122.123.124"
alias prod="ssh me@121.122.123.124"

# 설정한 alias를 이용하여 명령어 실행
$ dev

현재 계정에 fish 쉘 적용

# fish 설치
$ sudo yum install yum-utils

# CentOS 6에서 설치할 경우
$ sudo yum-config-manager --add-repo https://download.opensuse.org/repositories/shells:fish:release:2/CentOS_6/shells:fish:release:2.repo

# CentOS 7에서 설치할 경우
$ sudo yum-config-manager --add-repo https://download.opensuse.org/repositories/shells:/fish:/release:/3/RHEL_7/shells:fish:release:3.repo 

$ sudo yum install fish

# fish 실행
$ fish
Welcome to fish, the friendly interactive shell

# 현재 접속 계정의 기본 쉘을 bash에서 fish로 변경
$ chsh -s /usr/bin/fish

# 현재 계정에 대한 alias 설정
$ nano ~/.config/fish/config.fish
alias dev="ssh me@121.122.123.124"

파일 또는 디렉토리 권한 제어

  • 파일 또는 디렉토리 권한의 확인 및 제어 방법은 아래와 같다.
# 파일 및 디렉토리 목록 조회
$ ls -al
drwx------   4 foo    for     4096 2019-10-15 09:48 foo
_rwx------   4 bar    bar     4096 2016-01-13 13:36 bar
  • 첫번째 자리는 디렉토리 또는 파일 여부를 의미한다. (d:디렉토리, _:파일)
  • 다음 3자리는 현재 user에게 부여된 권한을 의미한다. (r:읽기, w:쓰기 x:실행)
  • 다음 3자리는 현재 user가 소속된 groupuser들에게 부여된 권한을 의미한다. (r:읽기, w:쓰기 x:실행)
  • 마지막 3자리는 현재 다른 그룹의 user들에게 부여된 권한을 의미한다. (r:읽기, w:쓰기 x:실행)
  • 권한의 제어 방법은 아래와 같다.
# foo 디렉토리에 대해 다른 그룹에게 실행 권한 부여
$ sudo chmod o+x foo

# foo 디렉토리에 대해 모든 사용자에게 모든 권한 해제
$ sudo chmod ugo-rwx foo

# foo 디렉토리에 대해 모든 사용자에게 모든 권한 부여
$ sudo chmod ugo+rwx foo
$ sudo chmod u+rwx,g+rwx,o+rwx foo

참고 글

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함