KH 프로젝트

KH정보교육원에서 진행하고 발표된 프로젝트를 과정별로 보실 수 있습니다.

(정보시스템구축) 정보시스템 구축·운영 기반 정보보안 전문가 양성과정A23(5) 1회차

프로젝트 발표날짜 : 2025. 06. 10

KH IEI PROJECT
 

(정보시스템구축) 정보시스템 구축·운영 기반 정보보안 전문가 양성과정A23(5) 1회차

문성기 강사 / 박준석 취업담임
2025. 06. 10 (B)

1 팀
라떼는_보안
팀장/팀원 전**(팀장), 김**, 김**, 노**, 유**
개요 본 프로젝트는 한국인터넷진흥원(KISA)에서 제공하는 취약점 분석 및 평가 방법 상세가이드를 기반으로, Linux 운영체제의 보안 취약점을 진단하고 대응하는 실무형 매뉴얼 및 체크리스트를 제작하는 것을 목표로 한다.
192.168.11.0/24 NAT 네트워크 환경에 FTP, DNS, Apache, NFS, NIS 서비스별로 가상 머신을 구성하고, A/B 클라이언트와의 상호 통신을 구현하여 서비스를 하고 있는 Linux 운영체제에 대한 보안 설정 및 점검을 수행한다.
주요 보안 영역(계정 관리, 파일 및 디렉터리 권한, 서비스 관리, 패치 및 업데이트, 로그 관리)에 대해 발생 가능한 보안 침해사례를 분석하고, 해당 위협을 방지하기 위한 설정 방법 및 점검 항목을 정리한다. 실무자가 즉시 활용 가능한 형식으로 정리함으로써, 보안 관리 역량을 실질적으로 향상시키는 것이 본 프로젝트의 핵심이다.
구현기능 1. 네트워크 및 가상 환경 구성
- NAT 기반 192.168.11.0/24 네트워크 구성
- FTP, DNS, Apache, NFS, NIS 서비스별 가상 서버 구축
- A 클라이언트, B 클라이언트 가상 머신 구성 및 상호 통신 확인

2. 계정 및 인증 정책 보안 설정
- 불필요한 계정 제거 및 기본 계정 비활성화
- 비밀번호 복잡성, 만료일, 실패 잠금 정책 설정
- /etc/login.defs, PAM 설정 등 보안 정책 적용

3. 파일 및 디렉터리 권한 강화
- 중요 디렉터리의 권한 최소화 (/etc, /var/log 등)
- 불필요한 SUID/SGID 설정 제거
- 파일 권한 확인

4. 서비스 보안 설정 및 제한
- 사용하지 않는 서비스 비활성화
- 방화벽(firewalld) 설정: 서비스별 포트 제한 및 IP 기반 접근 제어
- rich rule을 활용한 세부 접근 통제

5. 패치 및 업데이트 관리
- yum 또는 dnf를 이용한 최신 보안 패치 적용
- 커널 및 주요 서비스 업데이트 이력 관리

6. 로그 및 감시 체계 구성
- journald 및 /var/log/ 로그 설정 검토
- 로그 파일 접근 권한 설정 및 자동 삭제 방지
- cron을 이용한 주기적 로그 백업 및 점검 스크립트 작성

7. 보안 체크리스트 및 대응 매뉴얼 제작
- 항목별 취약점 설명, 발생 가능한 위협 사례 수록
- 각 보안 설정에 대한 적용 방법과 점검 절차 명시
- 실무 적용을 고려한 문서화 (PDF/한글 문서 및 스크립트 포함)
설계의 주안점 1. 침해사례를 반영한 실무형 보안 설정
- KISA에서 제시한 분석 및 평가 방법론을 기반으로 침해사례를 참고하여 보안 설정.
- 각 보안 항목에 대해 “무엇을, 왜 해야 하는가”를 명확히 하여 이해도 및 현장
활용성 강화.

2. 서비스별 가상 환경 분리 및 통신 구현
- FTP, DNS, Apache, NFS, NIS 등 보안 취약점이 자주 발생하는 핵심
서비스를 별도 가상 머신에 구성하여 실습 환경을 구현.
- NAT 환경(192.168.11.0/24) 내에서 A/B 클라이언트와의 양방향 통신을 통해
실제 운영 환경을 시뮬레이션.

3. 보안 원칙에 따른 계층별 접근 통제
- 계정 관리 → 파일 권한 → 서비스 제한 → 네트워크 방화벽 → 로그 및 추적
관리로 이어지는 계층별 보안 접근 방식 적용.

4. 표준화된 체크리스트 및 설정 가이드화
- 각 보안 항목별 점검 체크리스트와 설정 가이드 문서를 함께 제공하여 반복적
보안 점검 및 교육용 자료로 활용 가능.
- 시스템 관리자 및 보안 담당자가 즉시 참고 가능한 문서화 형태로 구성
(스크립트 + 설명).

5. 보안 설정 미흡 시 발생 가능한 위협 시뮬레이션
- 보안 설정을 하지 않았을 때의 실제 침해 시나리오(예: 계정 탈취, 서비스 스니핑,
파일 손상 등)를 함께 제시.
- 단순 설정이 아닌 설정하지 않을 경우의 리스크 인식을 유도하여 교육 및
실무 반영도 향상.
2 팀
사랑의_하츄ping
팀장/팀원 이**(팀장), 박**, 손**, 이**
개요 내부 네트워크망을 체계적으로 설계하고, 다양한 보안 위협에 대한 탐지 및 대응이 가능한 통합 보안 시스템을 구축하는 것을 목적으로 한다. 이를 통해 조직 내부 자산에 대한 침입 시도를 식별하고, 사전에 정의된 정책에 따라 자동 대응함으로써 보안 관리의 효율성과 정확성을 향상시키고자 한다.
구현기능 1. 네트워크 구성
VMware 를 사용해 NAT환경을 구축한다. 네트워크 구성은 외부네트워크(External), DMZ 영역(192.168.12.0/24), 내부네트워크(Internal)(192.168.0.0/24)으로 구분된다.
2. 도메인 서비스
DMZ 영역에 외부 서비스를 제공하는 DNS 서버를 구축하여 도메인 서비스 제공한다.
3. 웹 게시판 서비스
Apache 기반으로 Oracle DB 연동한 웹서버를 구축하여 웹 게시판 서비스를 운영한다.
4. Crontab을 활용한 자동 백업
웹서버에서 발생하는 error, access 로그를 rsync를 통해 내부 네트워크의 Log Backup서버로 전송하며, 해당 rsyslog 전송 명령어는 Crontab에 등록하여 주기적으로 실행되도록 구성한다.
5. 침입 탐지 시스템(IDS)
Snort를 활용하여 네트워크 트래픽 실시간 탐지하고, 이상 징후 발견 시 로그를 파일로 저장함과 동시에 rsyslog를 통해 실시간 경고 메시지를 출력한다.
6. 로그 수집 및 전송
rsyslog를 활용하여 각 서버의 로그를 SIEM에 전송한다.
7. DB서버 구성
내부 네트워크에 민감 데이터를 저장하는 Oracle 데이터베이스 서버를 구축한다.
8. 보안관제 시스템(SIEM)의 비정상 로그 탐지
Wazuh를 활용하여 보안 룰을 지정하고, 지정된 룰을 이용하여 비정상 로그를 탐지한다.
9. 보안관제 시스템(SIEM)의 자동 대응
설정된 룰과 매칭된 로그가 탐지되면, Wazuh의 ossec.conf 파일에 정의된 스크립트에 따라 Active Response 스크립트가 자동으로 실행된다.
10. 보안관제 이벤트 대시보드
Elasticsearch와 연동된 Kibana 툴을 사용하여 실시간 로그 데이터를 시각화하는 대시보드 제공한다.
11. 웹서버용 Log Backup : 로그 이중화
웹서버의 중요 에러 로그기록을 주기적으로 백업 받는 체계를 구축하여 추후 조사 및 분석을 위한 정확한 로그 확보가 가능하게 구축한다.
12. 내부 네트워크에 관리자 PC(admin PC)를 구축하여, 모든 서버를 관리한다.
설계의 주안점 1. 보안정책 적용 여부에 따른 네트워크 구성
:외부 네트워크, DMZ, 내부 네트워크(Internal) 영역으로 구성된 네트워크 설계를 기반으로, 방화벽 SOPHOS UTM9을 통해 외부 접근을 통제하고 영역 간 접근 제어 강화한다.
내부 네트워크의 Oracle DB 서버에 직접 접근은 차단되며, DMZ 영역도 최소 권한 원칙에 따라 서비스 제한 적용한다.

2.실시간 침입 탐지 체계 구축
:Snort 기반 IDS를 통해 내부 네트워크에서 실시간으로 비정상적인 행위를 탐지하고 경고 할 수 있도록 룰을 설정한다. 이 때, 탐지된 이상 행위는 rsyslog 통해 SIEM 서버로 전송될 수 있게 한다.

3.웹서버에서 발생한 취약점 관련 로그를 주기적으로 자동 백업
:웹 서비스의 취약점을 이용한 공격 시도와 관련된 error, access 로그를 파일별로 수집하고, rsync를 통해 내부 네트워크의 Log Backup 서버로 4시간 주기를 기준으로 전송한다. 주기적 전송은 crontab에 등록된 rsyslog 전송 명령어를 이용하여 구성한다.

4.정책 기반 자동 대응 구현
:SIEM 서버는 수집된 로그를 기반으로 자동 분석을 수행하며, 이상 행위 탐지 시 Wazuh의 ossec.conf 에 정의된 룰인 접근 시도 횟수 초과, 특정 포트 스캔 등에 대해 자동으로 차단 스크립트 실행한다.

5.보안 로그 수집 및 가시화 시스템 구축
:SIEM 서버를 중심으로 서버 및 보안 장비의 보안 로그를 수집·통합·시각화할 수 있게 Kibana 대시보드를 통해 침입 시도, 로그인 실패, 시스템 경고 등의 이벤트를 실시간으로 모니터링이 가능하게 한다.

6. 보안 운영의 확장성과 지속 가능성 확보
:시스템 구성요소는 Crontab, rsync, Wazuh 등 자동화 가능한 기술 중심으로 구성되어 있으며, 수동 개입 없이도 보안 탐지-분석-대응이 순환되도록 설계한다.
이를 통해 향후 확장, 정책 업데이트, 백업 서버 교체 등의 유지관리 작업이 간단히 이뤄질 수 있도록 하며, 실제 운영 환경에서도 안정적인 보안 정책 유지가 가능하도록 구현한다.
3 팀
처음처럼
팀장/팀원 김**(팀장), 김**, 박**, 이**, 이**
개요 Sophos utm은 침입 탐지 시스템(IPS: Intrusion Prevention System), Web Filtering, WAF(Web Application Firewall) 등 네트워크 보안, 데이터 베이스 보안, 웹 보안을 위한 통합적인 솔루션을 제공하고 있다. 본 프로젝트는 Sophos utm의 이러한 기능을 분석하여 보안 환경을 구축하고자 한다. 또한 구축한 환경을 토대로 중간자 공격, 서비스 거부 공격, SQL Injection 등의 다양한 공격을 수행하여 구축한 방화벽이 위협을 어떻게 방어하는지 검증하고자 한다. 최종적으로 네트워크와 방화벽을 구축하고 이를 검증하는 일련의 작업을 문서로 총정리하여 매뉴얼화 하고자 한다.
프로젝트를 위해 네트워크는 VMware내 NAT 네트워크를 구축한다. 네트워크는 Sophos UTM에 의해 보안정책을 적용받는 네트워크와 보안정책과 상관 없는 네트워크로 분할된다. 보안정책과 상관 없는 네트워크에는 VM 환경 구현을 위한 Host PC와 모의해킹 수행용 공격자 PC가 위치한다. 보안 정책을 적용 받는 네트워크는 DMZ 네트워크와 Internal 네트워크로 분리된다. DMZ 네트워크는 외부에 공개되어 외부 클라이언트의 요청에 따라 서비스를 제공하는 서버들이 위치한다. 또한 Internal 네트워크에는 외부에 공개되어서는 안되는 서버가 위치한다.
Sophos utm은 보안 정책을 적용 받는 네트워크와 그렇지 않는 네트워크를 분리하면서 Firewall, IPS, WAF, Web Filtering, Load balancing, VPN 등의 기능을 통해 공격을 사전에 예방하고, 침해 발생 시 빠르게 조치하며, 유해 사이트를 차단하고, 서버 트래픽을 분산하여 과부하를 줄이는 등의 역할을 수행한다.
구현기능 1.VMware 내 가상 네트워크 구현
1) 192.168.11.0/24 네트워크에 가상 네트워크 구현용 Host pc와
모의해킹 수행용 Kali linux를 구축한다.

2) 192.168.12.0/24 네트워크에 DMZ 네트워크 구축
DNS서버: 도메인 주소를 통해 IP를 질의하는 외부 프로세스의 요청에 따라 IP정보를 제공한다.
Web서버: IP주소를 통해 접속하는 외부 프로세스에 웹페이지를 출력한다.

3) 192.168.0.0/24 네트워크에 Internal 네트워크 구축
Admin Windows: Sophos utm 관리자 페이지에 접속하여 방화벽 및 보안정책을 설정하고 관리한다.
Oracle Database: 웹서버와 연동하여 웹페이지의 사용자 정보와 게시글 정보를 저장한다.
서버 관리자 계정인 root와 웹 페이지 관리자 계정인 Webmaster의 작업 공간을 분리하여 부인 방지 및 책임 추적이 가능하다.

4) 웹페이지
프로젝트 시연용 게시판 페이지이다.
사용자 인증을 1차원 배열로 패치하는 페이지(Page1)와 2차원 배열로 패치하는 페이지(Page2)로 이원화하여 구현한다.
게시판의 요구기능은 Oracle database와 연동하여 회원 가입, 로그인, 게시글 등록, 게시글 삭제, 게시글 검색을 수행하는 것이다.

2.Sophos UTM
가상 네트워크 환경에서 보안 정책을 적용 받는 네트워크와 적용 받지 않는 네트워크를 구분한다.
외부에 공개된 DMZ네트워크와 공개되어서는 안되는 Internal 네트워크를 분리하고 각 네트워크로의 접근을 통제한다.
중간자 공격, 서비스 거부 공격, SQL Injection 등의 다양한 공격을 효과적으로 차단한다.

5-1)Sophos UTM-Firewall
보안 정책에 기반하여 각 네트워크와 네트워크 내부의 서비스로의 접근을 제어한다.
관리자가 명시적으로 지정한 네트워크 또는 서비스만 접근이 가능해야 하며 이외의 접근은 모두 불허한다(Default Deny).
실시간 로그 및 패킷 캡쳐를 통해 적용한 규칙이 제대로 작동하고 있는지 실시간으로 확인한다.
5-2)Sophos UTM-IPS
IPS 규칙 세트를 통해 공격 징후를 판단한다.
전체 트래픽의 흐름을 조사하여 취약점을 감지하고 침해가 발생하는 네트워크나 프로세서를 차단, 격리 조치한다.

5-3)Sophos UTM-WAF
역방향 프록시(Reverse Proxy)로 외부에서 들어오는 요청을 내부 웹 서버에 전달하기 전에 중간에서 검사하고 비정상 요청일 경우 차단한다.
사이트 경로 라우팅(Site Path Routing)을 통해 하나의 웹사이트 주소로 보안 수준이 다른 영역을 분리해 운영할 수 있다.
(ex: 사용자용 페이지와 관리자용 페이지를 분리한다)

5-4)Sophos UTM-VPN
암호화된 터널을 통해 데이터를 송수신하여 정보 유출, 도청, 위조 등의 보안 위협을 방지한다.

5-5)Sophos UTM-Load Balancing
네트워크의 트래픽을 분산하여 서버 자원의 과부하를 방지한다.
라운드 로빈(Round-Robin) 방식으로 등록된 서버에게 트래픽을 순차적으로 분배한다.
각 서버의 성능, 활용도에 따라 Weight을 설정하여 특정 서버에 많은 트래픽을 보낼 수 있다.

5-6)Sophos UTM-Web filtering
네트워크 사용자가 웹을 통해 접근하는 모든 트래픽을 감시한다.
정책은 사용자 기반 정책으로 정의되며 명시된 정책에 위배되는 접근을 차단한다.

3.Kali linux를 활용한 모의 해킹 Case study
1)DDos: hping3의 Ping of death 기능으로 서비스 거부 공격을 테스트한다.
2)SQL Injection: SQL코드를 통해 데이터 처리가 예상되는 문자열 입력값에 SQL문으로 해석가능한 문자열을 삽입하여 사용자 인증을 우회한다. Page1과 Page2에 다른 방식으로 SQL Injection을 테스트한다.
3)Spoofing: DNS 스푸핑을 통해 정상 웹페이지가 아닌 피싱 웹페이지로 접속을 유도한다.
*모의 해킹은 프로젝트 진행 상황에 따라 변경/추가 될 수 있음
설계의 주안점 본 프로젝트는 Sophos utm의 다양한 기능을 활용하여 안전한 보안 환경을 구축하는 것을 목표로 한다. 이를 위해 Sophos UTM의 방화벽 기능을 넘어 IPS, WAF, VPN, Load balancing, Web filtering 기능을 분석하고 실습하고자 한다. 본 프로젝트에서 활용할 Sophos utm의 주요 기능과 주안점은 아래와 같다.

1.Firewall
보안 정책을 적용 받는 네트워크와 상관 없는 네트워크를 분할한다.
허용 네트워크, 서비스의 접근 제어를 rule에 기반하여 실시한다.
rule이 순차적으로 적용되기 때문에 rule의 순서에 주의하여 설정한다.
허용하지 않은 네트워크, 서비스로의 접근은 원천차단한다.

2.IPS
IPS가 어떤 방식으로 비정상적 트래픽을 판단하는지 분석하고 분석 내용에 따라 IPS 기능을 설정한다.
비정상 트래픽에 대해 네트워크 격리, 프로세스 차단 등의 조치를 취하는 과정을 모의해킹 시연을 통해 검증하고 정리한다.

3.WAF
웹 애플리케이션에 대한 공격 유형과 다양한 패턴을 분석하여 이를 바탕으로 WAF 기능을 구성하고 설정에 반영한다.
SQL 인젝션, XSS, 파일 업로드 공격 등 주요 웹 공격을 탐지하고 차단하는 기능을 구현한다.
사용자 요청을 실시간으로 분석하여 비정상 행위를 탐지하고 웹 서버를 보호한다.

4.VPN
VPN이 암호화된 터널을 생성하여 도청이나 정보 유출을 방지하는 원리를 분석한다.
Sophos UTM에서 지원하는 IPsec, SSL, PPTP, L2TP 프로토콜의 차이를 이해하여 정리하고 프로토콜의 특징에 맞게 Sophos UTM에 VPN기능을 설정 한다.

5.Load Balancing
Load Balancing 다수의 서버로 트래픽을 분산시켜 서버의 과부하를 방지하는 원리를 이해하여 정리한다.
각 서버가 균형 있게 요청을 처리하여 시스템의 성능과 안정성을 높이는 과정을 시연한다.
특정 서버에 문제가 생기면 다른 서버로 자동 전환하여 서비스 중단을 막는 것을 검증한다.

6.Web filtering
유해하거나 비업무용 웹사이트에 대한 접근 차단 기능을 설계한다.
악성코드 유포 사이트 및 피싱 사이트에 대한 접근 제한 정책을 구현한다.
사용자 또는 그룹별 웹 사용 권한 관리 및 통제 기능을 포함하도록 설계한다.
웹 접근 내역을 정확히 기록하고 분석할 수 있는 로그 관리 시스템을 구축한다.

7. 모의해킹
모의 해킹 작업을 통해 각 방화벽의 기능이 정상적으로 작동하는지 검증한다
4 팀
패킷몬스터
팀장/팀원 나**(팀장), 박**, 최**, 황**
개요 최근 들어 원격근무의 일상화와 더불어, 사이버 위협이 갈수록 다양화됨에 따라 기업의 업무망을 보다 정밀하게 보호할 수 있는 네트워크 보안 체계의 필요성이 강조되고 있다. 본 프로젝트는 Sophos UTM이 제공하는 다양한 보안 기능 WAF(Web Application Firewall), ACL(Access Control List), IPS(Intrusion Prevention System), 웹 필터링(Web Filtering), VPN(Virtual Private Network)을 종합적으로 사용하여, 외부로부터의 비인가 접근을 효과적으로 차단하고 내부 자산에 대한 침해를 방지할 수 있는 종합 보안환경 구축을 목표로 한다.
구현기능 1. ACL 설정을 통한 비인가 접근 차단 및 트래픽 제어
2. IPS를 통한 네트워크 내 악성 트래픽 탐지 및 차단
3. WAF를 통한 웹 서버에 대한 공격 방어
4. 웹 필터링을 통한 조직 내 사용자들의 유해 사이트 접속 차단
5. SSL VPN을 통한 회사 내부망 원격 접속
6. Apache, DNS, samba를 통한 웹 서버 운영
7. Oracle 서버를 통한 데이터 관리
8. 회사 내부망의 관리자 Admin을 통한 서버 관리
9. 모의해킹을 통한 보안성 검증
설계의 주안점 1. 보안구역을 분리하여 네트워크 설계
- 네트워크를 External, DMZ, Internal 세 영역으로 분리하여 보안 정책을 적용
- Internal, External → DMZ 접근 가능
- External → Internal 직접 접근 불가(VPN을 통한 접근만이 가능하도록 설정)
- DMZ → Internal 직접 접근 불가
(웹 서버만이 Oracle 서버에 Oracle SQL*Net v2 접속 가능)

2. 실사용 환경 고려한 VPN 구축
- 원격근무가 필요한 환경에서 SSL VPN 기반의 안전한 원격접속 통로 마련

3. 실시간 위협 대응 기능 구현
- IPS 기능을 통해 이상 행위 및 실시간 공격 탐지

4. Sophos의 보안 기술의 통합 적용
- ACL, IPS, WAF, VPN, 웹 필터링
KH정보교육원
  • 고용노동부 선정
  • 5년 인증 우수훈련기관 선정
  • 대한민국 브랜드 어워즈 대상
  • IT교육부문 4년 연속 대상 수상
  • 고용노동부
  • 장관 표창

빠른 상담

KH임직원은 수강생 한 분 한 분의 성공적인 취업을 위해 최선을 다하겠습니다.

No.1 국내 최대의 취업 실적을 보유한 KH정보교육원에 오신 것을 환영 합니다.
KH의 전 과정은 NCS(국가교육표준화)기준을 준수하며 100% 무료, 전액 국비지원을 받으실 수 있습니다.

교육희망 과정

희망과정 선택


세부 교육과정

전화 아이콘
  • 02-6952-6156
  • 전국대표문의전화(연중무휴)

교육희망 지점지점은 필수로 선택해주세요

신청자 정보

- -

기입 내용이 사실과 다를 시 상담 서비스가 원활하지 않을 수 있습니다.

02
6952
6156

대표문의
(연중무휴)

개강일정

개강일정

국비대상자 간편조회

국비대상자
간편조회

온라인 상담

온라인 상담

오시는길

오시는길

카톡 상담

카톡 상담

KH정보교육원
전국대표 문의전화
(연중무휴)

02-6952-6156

주말·공휴일에도 상담 및 접수 가능합니다.

  • 2023 당산지원

    5년 인증 우수
    훈련기관 선정

  • 2022 강남지원

    5년 인증 우수
    훈련기관 선정

  • 2022 종로지원

    5년 인증 우수
    훈련기관 선정

  • 2020 강남지원

    훈련 이수자 평가
    A등급 획득

  • 2020 종로지원

    훈련 이수자 평가
    A등급 획득

  • 2019 당산지원

    훈련 이수자 평가
    A등급 획득

  • 2019 IT교육부문

    브랜드 대상
    4년 연속 수상

  • 2018 당산지원

    4차 산업 선도
    훈련기관 선정

KH정보교육원 | 사업자등록번호 : 487-86-00763 | 사업자등록번호 : 851-87-00622 | 서울 강남 제2014-01호 | 대표자 : 양진선 | 책임자 : 양진선 |  개인정보관리책임자 : 양진선

강남지원 1관 : 서울특별시 강남구 테헤란로14길 6 남도빌딩 2F, 3F, 4F, 5F, 6F
강남지원 2관 : 서울특별시 강남구 테헤란로10길 9 그랑프리 빌딩 4F, 5F, 7F
강남지원 3관 : 서울특별시 강남구 테헤란로 130 호산빌딩 5F, 6F
종로점 : 서울특별시 중구 남대문로 120 그레이츠 청계(구 대일빌딩) 2F, 3F
당산점 : 서울특별시 영등포구 선유동2로 57 이레빌딩(구관) 19F, 20F
논현점 : 서울특별시 강남구 논현로 132길 9 마루빌딩 1F, 2F, 3F
부산점 : 부산 부산진구 중앙대로 627 삼비빌딩 2F, 12F