본문 바로가기

리눅스/주요정보통신기반시설_UNIX

[계정관리]1.1 CentOS 6.7 root 계정 원격 접속 제한



Telnet의 경우(취약한 설정)



Telnet 서비스를 사용하고 있는지 확인하는 것이 먼저!이며, -c 옵션은 count의 의미이다.

Telnet 서비스가 설치되어 있는지 직접적으로 확인도 할 수 있다.



Telnet 서비스를 사용하는 중이라면, 슈퍼데몬의 telnet을 확인해서 활성화가 되어 있는지 확인해야한다.



iptables 확인을 통해 23번 포트로 들어오는 것 허용하고 있는지를 봐야한다.

-A는 새로운 정책을 추가한다.

-m state --state는 패킷의 상태와 목적에 따라 제어한다.

NEW는 새로 접속을 시도하는 패킷을 말한다.

-m tcp는 지정을 해줘도 되고 지정을 하지 않아도 된다, 생략해도 자동으로 등록이 되는 것 같다.

-p는 프로토콜을 제어할 때 사용한다.

--dport는 수신지 포트를 제어한다.

-j는 방화벽을 지난 후 패킷의 상태를 제어한다.



정책을 추가하기만 한다고 접근이 가능한 것은 아니다, 원격접근이 가능하도록 자리를 만들어 줘야 한다.

pts/0 ~ pts/x 까지 원하는 만큼 자리를 만들어 주면된다.

pts/0은 이미 사용중이라고 나와서 pts/1을 추가로 지정해줫다.



Xshell을 통해서 접근을 시도했을 때 root로 접근이 되는 것을 확인할 수 있다.


Telnet의 경우(양호한 설정)


/etc/ssh/sshd_cofing 파일의 42번째에 해당하는 PermitRootLogin을 #(주석)을 해제하고, yes -> no로 변경하자.



Xshell을 통해서 root 계정으로 원격접근을 시도하면 실패하는 것을 볼 수 있다.


SSH의 경우(취약한 설정)



openssh가 설치되어 있는지 확인한다.

설치가 안되어 있으면, 서비스를 운영할 수가 없기 때문



/etc/pam.d/login 파일에 auth required /lib64/security/pam_securetty.so를 추가한다.

pam_securetty/so 모듈은 접속하는 계정이 root인 경우 /etc/securetty 파일에 기록된 터미널을 통하는 경우에만 허용하며, 나머지 사용자의 경우에는 항상 "성공"한 것으로 처리한다.


PAM 모듈은 Pluggable Authentication Module의 약자이다.

- 사용자 인증 및 사용자의 서비스에 대한 접근을 제어하는 모듈이다.

- 소프트웨어의 개발과 안전한 권한 부여 및 인증체계를 분리하고자 하는 목적에서 출발한 프로젝트이다.

- 현재 대부분의 배포판 리눅스에 기본적으로 설치되어 사용된다.


/etc/ssh/sshd_config 파일에 42번째 줄에 있는 PermitRootLogin의 #(주석)을 제거해주면 된다.

Root계정으로 원격접근하는 것을 허용하는 것 yes가 default이다.



Xshell을 통해서 원격접근을 시도했을 때 성공하는 것을 확인할 수 있다.


SSH의 경우(양호한 설정)



/etc/ssh/sshd_config 파일에 42번째 줄에 있는 PermitRootLogin을 Yes -> No로 변경

Root계정으로 원격접근하는 것을 허용하는 것이 default이기 때문에 No로 변경하는 것이다.



Xshell을 통해서 다시 접근을 시도해보면 접근이 안되는 것을 확인할 수 있다.

하지만, 일반 계정을 통해서 원격접근을 한 후 Su를 통해 권한을 상승시키는 방법은 가능하다.