정의 : 방화벽이란 불법으로 외부에서 침입하는 것을 차단하고 내부에 정보가 유출되는것을 방지하는 침입차단 시스템
서버간 통신 데이터를 패킷이라고 부르는데 외부에서 들어오는 패킷은 인바운드라고 하고, 서버에서 나가는 패킷은 아웃바운드라고한다. 이 패킷의 정책을 설정하여 정책에 따라 패킷을 허가하거나 거부하는 방식으로 동작한다.
리눅스 방화벽은 크게 리눅스 커널을 제어하여 실제 네트워크 패킷을 필터링하는 방화벽 처리부와 필터링 정책을 추가/제거하는 방화벽 제어부로 구성된다. 우분투는 ufw(Uncomplicated Firewall)방화벽 시스템을 사용하고, redhat linux는 firewalld방화벽 시스템을 사용한다.

방화벽 처리 흐름을 보면 리눅스 커널에는 nftables프레임워크가 패킷을 필터링(허용/거부)한다. 필터링 정책은 ufw서비스에서 관리하고, 정책설정은 CLI환경의 ufw명령어와 GUI환경의 gufw프로그램으로 설정할수 있다.
#방화벽 정책 확인하기
k@k-VirtualBox:~$ sudo ufw status
#방화벽 작동
k@k-VirtualBox:~$ sudo ufw enable
#현재 사용중인 방화벽 정책확인
k@k-VirtualBox:~$ sudo ufw status verbose
상태: 활성
로깅: on (low)
기본 설정: deny (내부로 들어옴), allow (외부로 나감), disabled (라우팅 된)
새 프로필: skip
#서비스 단위 방화벽 정책 -> sudo ufw [허용/차단] [서비스명]
- 서비스단위(HTTP,SSH) 정책 추가
: k@k-VirtualBox:/$ sudo ufw allow ssh

- 서비스단위(HTTP,SSH) 차단정책
: k@k-VirtualBox:/$ sudo ufw deny ssh

- 서비스단위(HTTP,SSH)정책 삭제
: k@k-VirtualBox:/$ sudo ufw delete deny ssh

#포트 단위 방화벽 정책 -> sudo ufw [허용/차단] [포트번호]/[tcp/udp]
- 포트단위 정책 추가
k@k-VirtualBox:/$ sudo ufw allow 22/tcp

- 포트단위 정책 차단
k@k-VirtualBox:/$ sudo ufw deny 22/tcp

- 포트단위 정책 삭제
k@k-VirtualBox:/$ sudo ufw delete deny 22/tcp

#특정IP주소에 대한 방화벽 설정 -> sudo ufw allow from [ip주소] to any [포트|서비스]
k@k-VirtualBox:/$ sudo ufw allow from 192.168.100.0/24 to any port 22

※웹서비스를 위한 방화벽 정책 설정하기
1.sudo apt install apache2명령어로 apache를 설치
아래와 같이 설치 후 ubuntu에서는 정상적으로 나오지만 다른 리눅스에서 접근할 경우 접근이 안된다.

- 아래와 같이 ubuntu에 http방화벽 규칙 추가
k@k-VirtualBox:~$ sudo ufw allow http

아래와같이 방화벽 규칙을 추가하여 다른 리눅스에서도 접근이 가능하게 되었다.
(방화벽 규칙에 80번 포트가 추가되어 접근가능(80번 포트가 아닌 다른 포트일 경우 포트를 추가하면된다.))

'SERVER > ubuntu' 카테고리의 다른 글
[리눅스시스템 보안]웹서버 구축 및 취약점을 통한 해킹2 (0) | 2024.07.06 |
---|---|
[리눅스시스템 보안]웹서버 구축 및 취약점을 통한 해킹 (0) | 2024.06.30 |
[리눅스시스템보안]PAM으로 사용자 계정 보안 (0) | 2024.06.23 |
[리눅스시스템보안]사용자계정 (0) | 2024.06.16 |
[리눅스 시스템 보안] GRUB (0) | 2024.06.16 |