0부터 시작하는 Linux 공부 - 방화벽 컴퓨터

1. Forward 허용
p. 751

- ip-forward 는 포워딩 허용에 대한 설정이다. 이를 1로 둬야지 forwarding 이 가능하며, 내부 자원들이 외부와 통신할 수 있다
- Linux IP forwarding 이란 ? 커널 기반의 라우팅 포워딩으로, 하나의 인터페이스로 들어온 패킷을 일치하는 서브넷을 가지는 다른 네트워크 인터페이스로 패킷을 포워딩 하는 것 이다

LEGACY 환경
- 가운데 서버는 NAT 역활 / 방화벽 역활
- 리눅스 서버의 방화벽에는 transit 을 위한 기능이 있다. 이 transit 을 forwarding 이라고 한다. 이때, 위의 ip-forward 설정이 1이어야 forwarding 을 허용해준다

Virtual 환경
- 가상 머신이 외부와 통신을 하기 위해서는 forwarding 설정이 반드시 1 이어야 한다. 0 이면 못 나간다

- echo 를 통해 1로 덮어씌워서 forwarding 을 허용으로 설정하자. 허나, 이는 재부팅하면 초기화 된다

- 영구적으로 설정하기 위해서 다음 설정 파일을 편집기로 열어주자

- 다음과 같이 설정해서, 재부팅 시에도 자동으로 forwarding 을 허용하게 해주자
2. Firewall & ZONE

ZONE 생성 및 정책 설정하기

- WORK ZONE을 생성하고, 인터페이스를 ZONE 에 추가한다. eth1 은 현재 존재하지 않는 가상의 인터페이스다. 현재 eth0 은 public ZONE 에 속해 있으며, eth1은 work ZONE 에 속해 있다

- WORK ZONE 에 해당 서비스를 허용하게 설정한다

- WORK ZONE 에 HTTP 서비스도 허용하게 설정한다

- 특정 PORT 를 지정하여 허용하게 하는 것도 가능하다
허용한 정책 살펴보기

- work ZONE 에 설정한 정책을 살펴보면, 다음과 같이 확인할 수 있다
허용한 정책 없애기

- remove 를 통해 허용한 정책을 없앨 수 있다
영구적으로 정책 설정하기
- 현재까지 한 설정은 재부팅시 초기화 된다. 재부팅되도 정책이 적용되게 영구적으로 설정해보자

- 다음과 같이 permanent 를 사용하면 재부팅이 되어도 설정한 정책이 허용된다. ZONE 을 지정하지 않으면 default ZONE 인 Public ZONE 에 설정된다

- 방화벽을 다시 로드해서 변경한 내용을 적용하였다
Public ZONE 살펴보기
- ZONE 은 zones 디렉터리 안에 XML 파일로 존재한다

- 다음과 같이 Public ZONE 에 대한 정보를 살펴볼 수 있다
XML 파일을 이용한 ZONE 만들기

- XML 파일을 복사해서, 새로운 ZONE 을 만들어보자

- 다음과 같이 설정한다

- 변경 사항을 적용하자

- ZONE list 를 확인하자
주로 사용하는 방화벽 설정
- firewall-cmd --permanent --add-port=~/tcp
- firewall-cmd --reload
xml 파일을 이용해 서비스 허용하기
- 서비스에 대한 정책을 적용하려면 서비스 xml 정책 파일이 /firewalld/services 에 있어야 한다

- 다음 경로에서 ssh의 xml 파일을 복사해오자

- 다음과 같이 mariadb 를 허용하게 내용을 수정하자

- 변경 사항을 적용시키면, 다음과 같이 서비스로 정책 허용이 가능하다. add-service 에는 xml 파일의 이름을 그대로 사용해야 한다
Httpd 서비스 허용

- 다음과 같이 80 번 포트를 허용하면, 웹 서비스에 접속되는 것 을 확인 가능 하다