Linux 일반

ssh 설정 - 원하는 사용자만 접속할 수 있도록 변경하기

bumnux 2013. 7. 30. 18:06

ssh 설정

원하는 사용자만 접속할 수 있도록 변경하기

[펌]  http://hackersnews.org/hn/read.cgi?board=hn_linux&y_number=3012


#  vi /etc/ssh/sshd_config


AllowUsers user1 user2
위 그룹에 속한 유저 중에서도 user1과 user2만 로그인을 하용한다.
물 론 AllowUsers를 별도로 지정하지 않으면 AllowGroups에서 지정한 그룹은 모두 로그인 가능하며 AllowGroups를 지정하지 않고 AllowUsers만 지정하면 그룹에 관계없이 AllowUsers에 지정된 유저만 로그인 가능하다.
(CentOS 5.1과 Fedora Core 6, Ubuntu 12.04 에서는 설정이 없다. 필요하다면 추가해 주면 된다.)


다른 부분도 잘 정리해 놔서....

# PermitRootLogin yes
ssh나 openssh를 사용시 대부분 root로의 직접 로그인을 허용하고 있다. 이러한 경우 무차별 대입법등으로 원격지에서 root로 로그인할 수도 있으므로 root로의 직접 로그인은 가급적 자제하는 것이 좋다.
따라서 일반 유저로 ssh 로그인한 후 su , su - 등을 이용하여 root로 로그인하여야 하는데
굳이 root로의 직접 로그인을 사용하려면 방화벽 등에서 접근통제를 엄격하게 설정하여야 한다.



# PubkeyAuthentication yes
# AuthorizedKeysFile .ssh/authorized_keys

ssh에서 제공하는 인증에는 공개키 인증과 암호 인증법 이렇게 두 가지가 있는데, 공개키 인증을 사용할 것인지에 대해 설정하는 것이다.
공개키 인증 사용시 공개키가 있어야 하므로 더욱 안전하다.
(처음 openssh 설치후 putty로 원격 접속을 시도 했을시 암호화 같은 긴 내용을 보았을 것인데 그것은 암호 인증법이다.)
그리고 인증 접속에 문제가 될 경우 공개키의 내용을 삭제하고 접속하면 다시 물어 본다.
디렉토리 : /etc/ssh



# RhostsRSAAuthentication no
PasswordAuthentication yes
.rhost는 보안상 상당히 위험하므로 사용하지 말아야 한다. 그리고 일반적인 암호 기반의 인증을 사용할 것인지 결정하여야 하는데, 만약 암호기반의 인증을 제공하려면 엄격하게 접근통제를 하여야 할 것이다.


# PermitEmptyPasswords no
암호가 없는 계정에 대해 로그인을 허용할 것인지 지정하는 부분이다. 당연히 no로 지정하는 것이 좋다.
(CentOS 5.1의 경우 주석(#) 처리 되어 있어 암호가 없는 계정은 ssh로 접속이 불가능하다.)


AllowGroups wheel admin
오직 wheel이나 admin 그룹에 속한 유저만 로그인할 수 있도록 허용한다. 이외에 그룹에 속한 유저는 암호를 정확히 입력해도 로그인이 거부된다.
(CentOS 5.1과 Fedora Core 6에서는 설정이 없다. 필요하다면 추가해 주면 된다.)


ListenAddress 0.0.0.0
기본적으로 ListenAddress가 0.0.0.0 으로 되어 있어 인터페이스에 설정된 모든 IP에 대해 리슨(LISTEN)하도록 되어 있다. 만약 여러 IP가 aliasing되어 있다면 꼭 필요한 특정 IP에서만 리슨(LISTEN)하도록 하는 것이 좋다.


Port 875
ssh의 기본 포트는 22번이지만 반드시 22번으로 사용할 필요는 없으므로 임의의 번호를 할당하여 외부에서 접속할 때에는 “ssh hostname –p 975”와 같이 접속하면 된다.
만약 여러 포트로 리슨(LISTEN)하도록 하려면 아래와 같이 설정하면 된다.
Port 22
Port 5002