11월, 2023의 게시물 표시

[Linux] PAM faillock 계정 잠금 임계값 설정

리눅스 보안 취약점 조치 중 하나는 인증 실패 횟수를 초과한 사용자의 계정을 잠그는 것입니다. PAM 모듈 중 faillock 을 활용하면 deny 로 지정한 횟수를 초과할 경우 계정을 자동으로 잠글 수 있습니다. faillock 은 기존의 pam_tally2 와 유사한 기능을 제공하지만, 더 나은 유연성과 관리 편의성을 지원합니다. 계정 잠금은 무차별 대입(brute-force) 공격을 방지하는 효과적인 방법입니다. 이 문서에서는 RHEL 8 이상 환경에서 authselect 명령을 이용해 faillock 을 설정하는 방법을 중심으로 설명합니다. 환경 RHEL7 버전까지는 faillock 설정할 때 직접 system-auth나 password-auth 파일을 수동으로 설정하였는데 RHEL8 이상에서는 authselect 명령을 사용하여 수정할 것을 권장하고 있습니다. 이 문서에서는 authselect명령을 사용하여 설정하는 방법을 설명합니다. RHEL 8, RHEL 9 authselect-1.2.1-2.el8 이상 pam-1.3.1-8.el8 이상 ※ RHEL 8.2 이하 버전은 해당 패키지를 업데이트해야 합니다. 백업 PAM 설정 파일을 잘못 수정하면 로그인 자체가 불가능해질 수 있으므로 사전 백업은 필수입니다. [root@rhel8 ~]# cp /etc/pam.d/system-auth /etc/pam.d/system-auth_20231127 [root@rhel8 ~]# cp /etc/pam.d/password-auth /etc/pam.d/password-auth_20231127 방법1) authselect 명령어 사용하여 설정  주의사항 authselect 명령은 PAM 설정 파일을 재생성하므로, 다른 솔루션 벤더에서 설정한 내용이 초기화될 수 있습니다. 설정 후 추가 설정이 필요한 경우 수동으로 보완해야 합니다. 1단계: 현재 authselect 상태 확인 [root@rhel8 ~]# authselect current Profile ID:...

[Linux] JUMP HOST_ SSH 경유 서버를 통한 원격 접속

이미지
보안 정책이나 네트워크 구조로 인해 SSH 명령어를 통해 직접 서버에 접근하기 어려운 경우가 있습니다. 이럴 때는 중간에 위치한 서버를 경유해 연결하는 JUMP HOST 방식을 사용하면 문제를 해결할 수 있습니다. JUMP HOST는 중간 서버를 통해 목적지 서버에 우회적으로 접근할 수 있도록 해주는 유용한 기능입니다. 적용 버전 및 환경 구성 지원 버전 : Red Hat Enterprise Linux 7 ~ 9 테스트 제외 : RHEL6 이하 버전은 테스트하지 않았습니다. 본 예제 환경은 Ansible 서버가 직접 Client 서버에 SSH 접속할 수 없는 구조입니다. Ansible 서버는 오직 Bastion 서버를 통해서만 Client 서버에 접근할 수 있으며, JUMP HOST 기능을 사용해 이 제약을 우회합니다.   SSH 명령을 이용한 JUMP HOST 사용 먼저 Ansible 서버에서 Client 서버로 직접 접속을 시도하면 인증 실패로 인해 접속이 되지 않습니다. [root@ansible ~]# ssh 192.168.243.111 root@192.168.243.111's password: Permission denied, please try again. root@192.168.243.111's password: 네트워크 연결 자체는 가능하나, 보안 정책 등으로 인해 SSH 접속이 차단되어 있는 상태입니다. 이때 -J 옵션을 사용하여 JUMP HOST를 지정하면 중간 서버를 통해 목적지 서버로 접속할 수 있습니다. [root@ansible ~]# ssh -J 192.168.243.131 192.168.243.111 ... ### 경유지 서버 패스워드 입력 root@192.168.243.131's password: ... ### 목적지 서버 패스워드 입력 root@192.168.243.111's password: ... [root@client~]# 이 명령을 실행하면 Bastion 서버(192.168.243.1...

[Openshift] OCP 싱글 노드 설치 - SNO Install

이미지
Openshift SNO는 엣지 컴퓨팅 워크로드를 위해 설계된 단일 노드 클러스터입니다. 하나의 노드만으로 동작하기 때문에 일반 Openshift 대비 설치에 필요한 리소스가 적습니다. 즉, 약간의 성능을 갖춘 일반 노트북에서도 테스트 용도로 충분히 운영할 수 있습니다. 이 글에서는 개인 사용자나 개발자가 Openshift를 간편하게 경험해볼 수 있도록, SNO(Single Node Openshift)를 설치하는 방법을 안내합니다. 본 문서는 Openshift 4.13을 기준으로 작성되었습니다.    SNO 설치 사전 요구사항   bastion 서버 설치 Openshift 클러스터를 관리하기 위한 운영 체제가 필요합니다. 이 bastion 서버는 SSH를 통해 Openshift 노드에 접속할 수 있어야 하며, DNS 서버 역할도 수행하게 됩니다.   클러스터 이름 및 도메인 준비 설치 전 클러스터 이름과 도메인을 지정합니다. 이 두 정보가 합쳐져 최종 엔드포인트 주소가 됩니다. 클러스터 이름: sno 도메인 주소: example.com 예를 들어 위처럼 지정하면, Openshift 마스터의 API 주소는 api.sno.example.com 이 됩니다.   DNS 서버 준비 Openshift는 IP가 아닌 도메인 이름 기반으로 통신합니다. 따라서 사전에 도메인 네임 서버가 설정되어 있어야 합니다. Usage FQDN Description Kubernetes API api.sno.example.com 쿠버네티스 API 주소 Internal API api-int.sno.example.com 노드간 통신에 사용되는 API 주소 Ingress route *.apps.sno.example.com 어플리케이션 연결에 사용될 도메인 주소 도메인 네임 서버 설정에 관련된 부분은 DNS 서버 설치 를 참고하실 수 있습니다.   서브스크립션 준비 Openshift 설치를 위해서는 유효한 Red Hat 서브스크립션이 필요합니다. ...