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를 통해 권한을 상승시키는 방법은 가능하다.
'리눅스 > 주요정보통신기반시설_UNIX' 카테고리의 다른 글
[계정관리]1.5 CentOS 6.7 root 이외의 UID '0' 금지 (0) | 2019.03.15 |
---|---|
[파일 및 디렉토리 관리]2.1 CentOS 6.7 root 홈, 디렉터리 권한 및 패스 설정 (0) | 2019.03.14 |
[계정관리]1.4 CentOS 6.7 패스워드 파일 보호 (0) | 2019.03.14 |
[계정관리]1.3 CentOS 6.7 계정 잠금 임계값 설정(수정필요) (0) | 2019.03.13 |
[계정관리]1.2 CentOS 6.7 패스워드 복장성 설정 (0) | 2019.03.13 |