7월, 2024의 게시물 표시

[RHEL8-9] TCP Wrapper 없이 방화벽(Firewall)과 SSH로 IP 및 포트 제한하기

리눅스 서버의 보안 취약점 조치 항목 중 하나는 '접속 IP 및 포트 제한'입니다. SSH, Telnet, FTP 같은 주요 서비스는 외부로 노출될 경우 시스템 정보가 탈취될 위험이 있기 때문에, 방화벽(Firewall)을 통해 허용된 IP만 접근하도록 제어하는 것이 필요합니다. RHEL 7까지는 TCP Wrappers 기능을 통해 이런 접근 제어를 설정했습니다. 하지만 RHEL 8부터는 hosts.allow 및 hosts.deny 파일이 제거되면서, 이제는 방화벽을 통해 접근 제한을 구현해야 합니다. TCP Wrappers 제거와 그 대안 기존에는 아래와 같은 방식으로 sshd 접근을 제한할 수 있었습니다 <RHEL7 이하> # cat /etc/hosts.deny sshd : 59.63.166.102 sshd : 141. sshd : 50. 이 설정은 지정된 IP 또는 IP 대역의 클라이언트만 SSH 접근을 차단하는 효과가 있었으며, 방화벽 설정과는 별개로 동작했습니다. 그러나 RHEL 8부터는 TCP Wrappers 기능이 더 이상 지원되지 않습니다. Fedora 프로젝트에서도 아래와 같은 이유로 해당 기능의 제거를 공식화했습니다. TCP Wrappers는 20년 전에는 유용한 보안 도구였지만, 오늘날의 리눅스 환경에서는 iptables나 nftables 같은 네트워크 레벨 방화벽 도구가 더 효과적이며, TCP Wrappers는 유지 관리나 보안 대응 측면에서 더 이상 적절하지 않습니다.   TCP Wrappers 없이 SSH 접근 제한하기 TCP Wrappers가 사라진 이후, SSH 접근 제어는 주로 방화벽( firewalld )을 통해 수행해야 합니다. 다만 방화벽을 사용하지 않거나 별도의 보안 정책이 필요한 경우, 다음과 같은 대안이 있습니다 서비스 자체의 접근 제한 기능 활성화 리눅스 방화벽 설정 외부 방화벽 설정 서비스가 자체적으로 제공하는 접근 제한 기능이 있다면 해당 기능을 우선적으로 활용하는 것이 좋습...

[RedHat] SFTP 전용 계정 생성 및 디렉터리 격리 설정 가이드

FTP 서버는 파일을 보관하는 네트워크 스토리지 용도로 유용하게 사용할 수 있습니다. 리눅스에는 다양한 FTP 서버가 존재하지만, 그중 별도의 설치 없이 바로 사용할 수 있는 sftp 가 있습니다. sftp 는 필수 프로그램인 SSH 데몬의 서브 기능으로 제공되기 때문에 추가 설치가 필요 없습니다. 이 글에서는 sftp 전용 계정을 생성하고, 해당 사용자가 접근할 수 있는 디렉터리를 제한하는 방법을 설명합니다. 이를 통해 일반 로그인은 차단하고, 안전한 파일 전송만 허용하는 환경을 구축할 수 있습니다.   SFTP의 주요 특징 별도 설치 불필요 : SFTP는 SSH 데몬의 부가기능으로 제공되므로, 별도 패키지 설치 없이 바로 사용할 수 있습니다. 보안성 : SSH 프로토콜 기반으로 암호화된 전송을 지원하며, 일반 FTP보다 훨씬 안전합니다. 구현 목표 SFTP 전용 사용자 생성 : 일반 로그인은 불가능하고 SFTP만 사용 가능한 계정 생성 접근 디렉터리 제한 : 사용자가 지정된 디렉터리 외에는 접근하지 못하도록 제한   환경 Red Hat Enterprise Linux 7 Red Hat Enterprise Linux 8 Red Hat Enterprise Linux 9   순서 sftp 전용 사용자 “testuser” 생성 sftp 사용자가 접속할 data 디렉터리 생성 사용자가 /data 디렉터리 외에 접근하지 못하도록 sftp 설정 ssh 서비스 시작 접속 테스트   1. sftp 전용 사용자 생성 sftp 에 사용할 전용 사용자를 생성합니다. 이 사용자는 SSH 로그인이 불가능하며, sftp 전용 기능만 사용할 수 있도록 구성합니다. 또한, chroot 환경을 통해 /data 디렉터리 이외의 경로에 접근하지 못하도록 설정합니다 # useradd -s /sbin/nologin -d /testuser testuser -s /sbin/nologin 옵션은 사용자 로그인 차단, -d /testuser 는 ch...

[RedHat] NFS 서버 버전 관리 가이드

   RHEL 기반 NFS 서버의 버전 설정 및 마운트 시 버전 지정 방법을 실습과 함께 상세히 설명합니다.   NFS 버전 관리: 서버와 클라이언트에서의 버전 지정 방법 이전 글에서는 RHEL에서 NFS 서버를 구성하고 클라이언트에서 디렉터리를 마운트하는 과정을 살펴봤습니다. 이번 글에서는 NFS의 버전 관리 를 중심으로, 어떤 방식으로 버전이 협상되는지, 그리고 서버와 클라이언트에서 각각 버전을 어떻게 제어할 수 있는지 구체적으로 설명합니다. NFS 버전 협상 방식 NFS를 사용할 때 특별한 버전 지정이 없으면, 클라이언트는 자신이 지원하는 가장 높은 버전부터 마운트를 시도합니다. 서버와 클라이언트 간에 호환 가능한 최고 버전이 자동으로 선택되며, 협상에 실패하면 차선 버전으로 재시도하게 됩니다. 예를 들어, RHEL 6.9 및 7.1의 man nfs 문서를 보면 다음과 같은 동작 방식을 확인할 수 있습니다. == RHEL6.9 == nfsvers=n      The  NFS  protocol version number used to contact the server’s NFS service.  If the server does not support the requested ver- sion, the mount request fails.  If this option is not specified, the client negotiates a suitable  version  with  the  server,  trying version 4 first, version 3 second, and version 2 last. == RHEL7.1 == nfsvers=n      The  NFS  protocol  version number used to contact the s...

[RedHat] NFS 서버 구성 및 클라이언트 마운트 가이드

  RHEL 기반 시스템에서 NFS 서버 설정부터 클라이언트 마운트까지 실습 기반으로 단계별 정리 리눅스에서 NFS 서버 구성 및 마운트 실습 NFS(Network File System)는 네트워크를 통해 디렉터리를 공유하는 시스템으로, 최근 가정용 NAS(Network Attached Storage)의 보급과 함께 일반 사용자에게도 익숙한 기술입니다. 특히 NAS의 핵심 기술로 사용되며, 여러 리눅스 서버 간 디렉터리를 공유하고 파일을 효율적으로 관리할 수 있도록 해줍니다. 상용 고성능 NAS를 사용하는 환경도 있지만, 일반적인 업무 환경에서는 Red Hat에서 기본 제공하는 NFS 기능만으로도 충분히 실무에 활용 가능합니다. 본 글에서는 RHEL 환경에서 NFS 서버를 구성하고 /test 디렉터리를 공유한 뒤, 클라이언트에서 이를 마운트하여 사용하는 과정을 단계별로 설명합니다.   환경 Red Hat Enterprise Linux 7 Red Hat Enterprise Linux 8 Red Hat Enterprise Linux 9     NFS 서버 구성 단계 NFS 서버를 설정하는 과정은 크게 세 가지 단계로 나뉩니다. 서비스 설치 : NFS 관련 패키지를 시스템에 설치합니다. 설정 파일 편집 : 공유할 디렉터리와 접근 권한을 설정합니다. 서비스 시작 : 설정이 완료된 후 서비스를 활성화하여 적용합니다.   1. NFS 서버 설치  Red Hat 계열 리눅스에서는 기본 설치 이미지에 NFS 관련 패키지가 포함되어 있으며, 다음 명령어로 설치할 수 있습니다. CD를 이용한 레포 설정 부분은 LOCAL REPO 에서 참조할 수 있습니다. # yum install nfs-utils ... Complete!   2. NFS 공유 디렉터리 설정 NFS 서버에서 클라이언트에게 제공할 디렉터리를 설정하는 단계입니다. 이 설정은 디렉터리 생성과 내보내기(exports) 구성으로 ...