안녕 리눅스 방화벽 설정

목차 1. 기본 설정 2. Inbound 제어 3. Outbound 제어 4. brute force attack 제어 5. User defined rule 제어 6. 특정 국가에서의 접속 제어 7. oops-firewall 실행 방법

안녕 리눅스는 CentOS/RHEL 7이 기본으로 제공하는 firewalld를 사용하지 않고, 안녕 1.x 부터 제공해 오던 oops-firewall을 제공합니다.

oops-firewall이나 firewalld는 모두 iptables를 backend로 하는 즉, iptables rule을 대신 작성해 주는 utility라고 볼 수 있습니다. 즉, oops-firewall이나 firewalld에서 설정은 iptables rule을 작성한 것이고, 이 rule을 ipatbles로 deploy하여 netfilter에 반영을 하게 되는 것입니다.

한마디로, 어려운 iptables rule을 만들기 쉽게 도와주고, 정책을 생성/제거/반영을 쉽게 도와주는 도구라는 것이기 때문에 익숙한 것을 사용하시면 됩니다.

만약 CentOS/RHEL 7에서 제공하는 firewalld를 사용하기 원한다면, 다음의 절차를 따라 주십시오.

[root@an3 ~]$ yum remove oops-firewall
[root@an3 ~]$ yum install firewalld
[root@an3 ~]$ service firewalld enable

상기 작업을 완료 하였다면, oops-firewall 대신에 firewalld를 사용할 준비가 완료된 상태 입니다. 여기서 부터는 [RHEL 7 System Admin Guidel의 firewalld 설명]((https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html)을 참조 하십시오. 이 이하는 oops-firewall에 대한 기술을 진행 합니다.

이 문서에서는 oops-firewall에 대하여 바로 사용을 할 수 있는 대략적인 기법에 대해서만 기술을 합니다. oops-firewall의 전체적인 특징과 자세한 사용 방법은 oops-firewall 사용 설명서를 참조 하십시오.

안녕 리눅스에서 firewalld 대신 oops-firewall을 제공하는 이유는 iptables rule에 대해서 전혀 지식이 없어서 사용을 할 수 있는 간단함과 명료한 설정이 하나이고, iptables를 잘 다를 수 있는 경우, oops-firewall 이 만든 rule의 쉽게 customizing을 할 수 있다는 점 입니다.

안녕 리눅스의 구동은 다음과 같습니다.

기본적으로는 RHEL 시스템의 init service 구동 명령인 /sbin/service를 이용하면 됩니다.

** 참고!

다음 용어(표현)를 기억 하십시오.

Inbound  - 외부(remote) 에서 내부(local)로 들어오는 접근
Outbound - 내부(local) 에서 외부(remote)로 나가는 접근
TCP/22   - TCP 22번 포트
TCP/1.1.1.1:22 - TCP 1.1.1.1 IP의 22번 포트

Rule 표현식:
------------

* IP address 표현식

 - Anywhere(모든 IP) 표현식
   0.0.0.0/0 = 0/0 = ANYWHERE = anywhere

 - IP 범위 표현식
   1.1.1.1-255       => 1.1.1.1-1.1.1.255
   1.1.1.1-2.255     => 1.1.1.1-1.1.2.255
   1.1.1.1-2.3.255   => 1.1.1.1-1.2.3.255
   1.1.1.1-1.2.3.255 => 1.1.1.1-1.2.3.255

 - subnet
   10.10.10.0/24
   10.10.10.0/255.255.255.0

* Port 표현식
  port[:state] => state가 지정되지 않으면 기본으로 NEW를 사용

  53
  53-100 (53번 부터 100번 포트까지의 범위 지정)
  53:NEW
  20:ESTABLISHED,RELATED

  => STATE
     NEW          : 새로운 연결
     ESTABLISHED  : 연결이 성립되어 있는 상태
     RELATED      : FTP의 20번 포트나 passive port와 같은 연관 연결
     INVALID      : 이상 패킷

* 설정 표현식

  값의 구분자는 공백문자를 사용함.

    설정옵션 = 값1 값2 값3

  다음과 같이 값을 여러줄로 설정이 가능.
  마지막은 '\' 문자가 없어야 함. '\' 문자는 한줄로 연결한다는 의미를 뜻합니다.

    Directive = VALUE1 \
                VALUE2 \
                VALUE3

Last updated