FTP는 기업 사용자의 파일 공유를 용이하게 하는 인터넷 애플리케이션의 베테랑입니다. 그러나 보안 문제는 항상 FTP와 관련되어 있었습니다. 공격자가 불법적인 수단을 통해 FTP 서버에서 중요한 정보를 훔치는 것을 방지하는 방법 공격자가 FTP 서버를 사용하여 트로이 목마 및 바이러스 등을 확산시키는 것을 방지하는 방법 이는 시스템 관리자가 주의해야 할 문제입니다. 이번에는 Linux 운영 체제 플랫폼에서 가장 널리 사용되는 VSFTP를 예로 들어 FTP 서버의 보안을 향상시키는 방법에 대해 이야기하겠습니다.
1. 시스템 수준 사용자가 FTP 서버에 로그인하는 것을 금지합니다.
FTP 서버의 보안을 향상시키기 위해서는 시스템 관리자가 일반 사용자에게 시스템 수준 사용자를 제공하는 대신 직원을 위한 별도의 FTP 계정을 설정하는 것이 가장 좋습니다. 이는 큰 보안 위험을 가져옵니다. VSFTP 서버에서 로그인 계정은 vsftpd.ftpusers 구성 파일을 통해 관리할 수 있습니다. 그러나 이 계정은 블랙리스트에 있으며 이 계정에 포함된 사람들은 자신의 계정을 사용하여 FTP 서버에 로그인할 수 없습니다. VSFTP 서버를 배포한 후 vi 명령을 사용하여 구성 파일을 보고 이미 많은 기본 계정이 있음을 확인할 수 있습니다. 그중에는 시스템의 슈퍼유저 루트도 포함됩니다. 보안상의 이유로 VSFTP 서버는 기본적으로 루트 계정이 FTP 서버에 로그인하는 것을 금지하고 있음을 알 수 있습니다. 시스템 관리자가 루트와 같은 시스템 계정이 FTP 서버에 로그인하도록 허용하려면 이 구성 파일에서 루트 및 기타 관련 사용자 이름을 삭제해야 합니다. 그러나 시스템 계정으로 FTP 서버에 로그인하도록 허용하면 보안에 부정적인 영향을 미치게 되므로 시스템 관리자는 이를 수행하지 않는 것이 좋습니다. 관리자는 이 파일의 관련 시스템 계정을 변경하지 않고 해당 계정의 설정을 유지하는 것이 가장 좋습니다.
다른 이유로 다른 계정을 비활성화해야 하는 경우 이 파일에 계정 이름을 추가할 수 있습니다. 예를 들어, FTP 서버와 데이터베이스 서버가 서버에 동시에 배포될 수 있습니다. 보안상의 이유로 데이터베이스 관리자의 계정을 이 블랙리스트에 추가하는 것이 좋습니다.
2. 익명 사용자에 대한 통제를 강화합니다.
익명 사용자는 FTP 서버에 정의되지 않은 계정을 말하며, FTP 시스템 관리자는 관리의 용이성을 위해 로그인이 필요합니다. 하지만 결국 서버로부터 권한을 얻지 못한 상태이기 때문에 서버의 보안을 강화하기 위해 권한을 제한해야 합니다. VSFTP 서버에는 익명 사용자의 권한을 제어하는 데 사용할 수 있는 많은 매개변수도 있습니다. 시스템 관리자는 FTP 서버의 보안 수준에 따라 관련 구성 작업을 수행해야 합니다. 익명 사용자에 대한 권한 제어가 엄격할수록 FTP 서버의 보안은 높아지지만 동시에 사용자 액세스의 편의성도 저하된다는 점에 유의해야 합니다. 따라서 결국 시스템 관리자는 서버 보안과 편의성 사이의 균형을 유지해야 합니다.
다음은 익명 사용자에게 권장하는 몇 가지 구성입니다. 구성 방법을 모르는 경우 이러한 구성을 참조하세요. 이러한 구성은 서버 보안과 사용자 편의성을 고려합니다.
하나는 anon_world_readable_only 매개변수입니다. 이 매개변수는 주로 익명 사용자가 FTP 서버에서 읽을 수 있는 파일을 다운로드할 수 있는지 여부를 제어하는 데 사용됩니다. FTP 서버가 기업 내에 배포되고 주로 내부 직원이 사용하는 경우 이 매개변수를 YES로 설정하는 것이 가장 좋습니다. 그런 다음 직원들이 익명으로 이러한 문서를 다운로드할 수 있도록 몇 가지 일반적인 회사 양식과 기타 공개적으로 사용 가능한 문서를 배치합니다. 이는 FTP 서버의 보안에는 영향을 미치지 않지만 다른 직원의 작업을 용이하게 합니다.
두 번째는 anon_upload_enable 매개변수입니다. 이 매개변수는 익명 사용자가 익명 액세스로 FTP 서버에 파일을 업로드할 수 있는지 여부를 나타냅니다. 일반적으로 이 매개변수는 No로 설정되어야 합니다. 즉, 사용자는 익명 액세스 중에 파일을 업로드할 수 없습니다. 그렇지 않으면 누구나 파일을 업로드할 수 있는데, 상대방이 바이러스 파일을 업로드하면 회사는 피해를 입게 됩니다. 따라서 익명 사용자는 파일을 업로드하는 것을 금지해야 합니다. 그러나 여기에는 예외가 있습니다. 예를 들어 일부 회사에서는 FTP 프로토콜을 사용하여 파일을 백업합니다. 이때 기업 네트워크의 보안이 보장된다면 이 매개변수를 YES로 설정하면 운영 체제가 FTP 명령을 호출하여 FTP 서버에 파일을 백업할 수 있습니다. 이 경우 백업 절차 배포를 단순화하기 위해 익명 액세스가 자주 사용됩니다. 따라서 익명 사용자가 FTP 서버에 파일을 업로드할 수 있도록 허용해야 합니다.
세 번째는 anon_other_write_enable 매개변수와 anon_mkdir_write_enable 매개변수입니다. 이 두 매개변수에는 주로 익명 사용자의 상대적으로 고급 권한이 포함됩니다. 예를 들어, 첫 번째 매개변수는 익명 사용자에게 FTP 서버의 파일 이름 변경 등과 같은 하위 디렉터리 업로드 및 생성 이외의 권한이 있음을 나타냅니다. 두 번째 매개변수는 익명 사용자가 특정 상황에서 하위 디렉터리를 만들 수 있음을 나타냅니다. 이러한 기능은 FTP 서버의 보안과 파일의 보안에 영향을 미칩니다. 따라서 특별한 이유가 없는 한 해당 권한은 비활성화되어야 합니다. 즉, 이들 매개변수의 값을 NO로 설정하십시오. FTP 서버를 시스템 관리자가 재미로 사용하지 않는 이상 이러한 매개변수를 켜도 된다고 생각합니다. 그렇지 않으면 FTP 서버의 보안을 향상시키기 위해 이러한 매개변수를 NO로 설정하는 것이 좋습니다.
일반적으로 익명 사용자에 대한 제어는 최소 권한의 원칙을 따라야 합니다. 익명 사용자는 FTP 서버에서 권한이 부여되지 않은 사용자이므로 심층적인 권한 접근 제어를 수행할 수 없습니다. 이러한 이유로 이러한 기본 매개변수를 통해서만 제어할 수 있습니다.
3. 디렉토리를 잘 관리하세요.
일반적으로 시스템 관리자는 각 사용자에 대해 서로 다른 루트 디렉터리를 설정해야 합니다. 보안상의 이유와 다른 사용자가 서로 간섭하는 것을 방지하기 위해 시스템 관리자는 사용자가 다른 사용자의 루트 디렉터리에 접근할 수 없도록 설정해야 합니다. 예를 들어, 일부 회사에서는 파일 교환을 용이하게 하기 위해 각 부서마다 FTP 계정을 설정합니다. 그런 다음 영업 부서인 Sales에는 루트 디렉토리인 sales가 있고, 창고 부서에는 루트 디렉토리인 Ware가 있습니다. 영업 직원은 자신의 루트 디렉토리 아래의 모든 하위 디렉토리에 액세스할 수 있지만 창고 사용자의 루트 디렉토리인 Ware에는 액세스할 수 없습니다. 이 경우 영업부서 직원은 창고 사용자의 파일에 접근할 수 없습니다. 사용자가 루트 디렉토리 이외의 디렉토리에 접근하는 것을 제한함으로써, 서로 다른 사용자가 서로 간섭하는 것을 방지하고 FTP 서버의 파일에 대한 보안을 향상시킬 수 있음을 알 수 있습니다. 이 목적을 달성하려면 chroot_local_user 매개변수를 NO로 설정할 수 있습니다. 이 설정 후에는 로컬로 로그인한 모든 사용자는 루트 디렉터리 이외의 다른 디렉터리에 들어갈 수 없습니다. 그러나 이 제어를 수행할 때 일부 공용 파일을 저장하기 위해 모든 사람이 액세스할 수 있는 디렉토리를 설정하는 것이 가장 좋습니다. 우리는 파일의 정상적인 공유 및 통신에 영향을 주지 않고 서버의 보안을 보장해야 합니다.
4. 전송 속도를 제한하십시오.
FTP 서버의 안정적인 작동을 보장하기 위해 파일 업로드 및 다운로드 속도를 제한해야 하는 경우가 있습니다. 예를 들어 동일한 서버에 FTP 서버, 메일 서버 등이 별도로 배포됩니다. 이러한 응용 서비스가 평화롭게 공존하기 위해서는 최대 전송 속도를 제어해야 합니다. 동일한 서버의 대역폭에는 최대 제한이 있기 때문입니다. 응용 프로그램 서비스가 상대적으로 큰 대역폭을 차지하면 다른 응용 프로그램 서비스에 부정적인 영향을 미칠 수 있으며, 심지어 다른 응용 프로그램 서비스가 사용자 요구에 정상적으로 응답할 수 없게 만들 수도 있습니다. 또 다른 예는 FTP가 목적에 따라 최대 속도 제한을 설정해야 하는 경우입니다. FTP를 파일 백업, 파일 업로드 및 다운로드에 동시에 사용하는 경우 파일 백업의 효율성을 높이고 백업 시간을 단축하려면 최대 파일 업로드 및 다운로드 속도를 제한해야 합니다.
전송 속도 제한을 구현하기 위해 시스템 관리자는 local_max_rate 매개변수를 설정할 수 있습니다. 기본적으로 이 매개변수는 활성화되어 있지 않습니다. 즉, 최대 속도 제한이 없습니다. 그러나 위의 이유로 인해 시스템 관리자는 FTP 서버를 프로덕션 환경에 배치하기 전에 이 매개변수를 설정하는 것이 좋습니다. 업로드 및 다운로드에 과도한 대역폭 소비로 인해 다른 응용 프로그램 서비스에 부정적인 영향을 미치지 않도록 합니다. 시스템 관리자는 다양한 애플리케이션 서비스 간의 균형을 유지하고 대역폭을 합리적으로 할당해야 합니다. 최소한 각 애플리케이션 서비스가 고객 요청에 정상적으로 응답할 수 있는지 확인하세요. 또한, 가능하면 비수기 운행을 수행하는 것이 필요합니다. 예를 들어 메일 서버와 FTP 서버가 동시에 하나의 호스트에 배포됩니다. FTP 서버는 주로 파일 백업에 사용됩니다. 따라서 파일 백업이 이메일 전송 및 수신에 부정적인 영향을 미치는 것을 방지하려면(파일 백업에는 상대적으로 큰 대역폭이 필요하므로 이메일 전송 및 수신 속도가 크게 감소하므로) 파일 백업을 피크 기간과 분리하는 것이 가장 좋습니다. 이메일 보내기 및 받기. 일반적으로 이메일을 보내고 받는 시간이 아침에 출근할 때인 경우 파일 백업을 위해 FTP 서비스를 사용하지 마십시오. 점심 시간에는 일반적으로 이메일을 덜 보내고 받습니다. 이 시점에서 파일 백업에 FTP를 사용할 수 있습니다. 따라서 FTP 서버 및 기타 응용 프로그램 서비스가 사용량이 적은 시간에 실행되는 경우 FTP 서비스의 운영 효율성을 향상시키기 위해 속도를 더 높게 설정할 수 있습니다. 물론 이로 인해 시스템 관리자에 대한 요구가 상대적으로 높아졌습니다. 시스템 관리자는 다양한 애플리케이션을 분석한 후 서버 배포를 기반으로 종합적인 계획을 세워야 하기 때문입니다. 더 높은 조치와 더 나은 조건이 없는 한 FTP 서버의 전송 속도를 최대화하는 것이 필요합니다. 그렇지 않으면 기업에 배포된 다른 정보 서비스에 매우 부정적인 영향을 미치고 기업 네트워크에 정체를 초래할 수 있습니다.