본문으로 건너뛰기

방화벽 설정

이 정보를 사용해 방화벽 구성을 설정하십시오.

기본 방화벽 설정

기본 섹션은 특정 영역에 속하지 않는 전역 방화벽 설정값을 보여줍니다.

표 1. 기본 방화벽 설정
구문
  • sudo uci set firewall.@defaults[0].input=<input>
  • sudo uci set firewall.@defaults[0].output=<output>
  • sudo uci set firewall.@defaults[0].forward=<forward>
  • sudo uci set firewall.@defaults[0].syn_flood=<syn_flood>
  • sudo uci set firewall.@defaults[0].drop_invalid=<drop_invalid>
표 2. 매개변수
이름Type필수기본값설명

입력

문자열

아니요

거부

필터 표의 INPUT 체인에 대한 정책을 지정하십시오.

출력

문자열

아니요

거부

필터 표의 OUTPUT 체인에 대한 정책을 지정하십시오.

앞으로

문자열

아니요

거부

필터 표의 FORWARD 체인에 대한 정책을 지정하십시오.

syn_flood

부울

아니요

0

신 플러드 보호 기능 사용 (synflood_protect 설정에 의해 필요하지 않게 됨)

drop_invalid

부울

아니요

0

잘못된 패킷 (예: 일치하는 활성 연결 없음)

명령 예시:

표 3. 명령 예시
  • sudo uci set firewall.@defaults[0].input=ACCEPT
  • sudo uci set firewall.@defaults[0].output= ACCEPT
  • sudo uci set firewall.@defaults[0].forward= ACCEPT
  • sudo uci set firewall.@defaults[0].syn_flood=1
  • sudo uci set firewall.@defaults[0].drop_invalid=1
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

새 영역 추가

이 섹션은 테스트의 공통 속성을 정의합니다. 입력 및 출력 옵션은 해당 영역을 들어왔다 나가는 트래픽에 대한 기본 정책을 설정하며, 앞으로 옵션은 영역 내의 다양한 네트워크 간 전달된 트래픽에 대한 정책을 나타냅니다. 적용된 네트워크는 해당 영역에서 사용 가능한 네트워크를 보여줍니다.

표 4. 새 영역 추가
구문
  • sudo uci add firewall zone
  • sudo uci set firewall.@zone[-1].name=<name>
  • sudo uci set firewall.@zone[-1].input=<input>
  • sudo uci set firewall.@zone[-1].output=<output>
  • sudo uci set firewall.@zone[-1].forward=<forward>
  • sudo uci set firewall.@zone[-1].masq=<masq>
  • sudo uci set firewall.@zone[-1].mtu_fix=<mtu_fix>
  • sudo uci set firewall.@zone[-1].network=<network>
  • sudo uci set firewall.@zone[-1].family=<family>
  • sudo uci set firewall.@zone[-1].masq_src=<masq_src>
  • sudo uci set firewall.@zone[-1].masq_dest=<masq_dest>
  • sudo uci set firewall.@zone[-1].conntrack=<conntrack>
  • sudo uci set firewall.@zone[-1].log=<log>
  • sudo uci set firewall.@zone[-1].log_limit=<log_limit>
  • udo uci commit firewall
표 5. 매개변수

매개변수

Type

필수

기본값

설명

이름

영역 이름

없음

고유한 영역 이름. 방화벽 영역 이름의 최대 길이는 11자입니다.

입력

문자열

아니요

거부

필터 표의 INPUT 체인에 대한 정책을 지정하십시오.

출력

문자열

아니요

거부

필터 표의 OUTPUT 체인에 대한 정책을 지정하십시오.

앞으로

문자열

아니요

거부

필터 표의 FORWARD 체인에 대한 정책을 지정하십시오.

masq

부울

아니요

0

송출 영역 트래픽은 위장되어야 하는지를 지정합니다. 보통 이 기능은 wan 영역에서 사용됩니다.

mtu_fix

부울

아니요

0

송출 영역 트래픽에 대한 MSS 클램핑을 활성화합니다.

네트워크

목록

아니요

없음

이 영역에 부착된 인터페이스 목록. 누락된 경우 및 추가* 옵션, 서브넷 또는 장치가 정해진 경우 이름은 기본값으로 설정됩니다. 네트워크 구성에서 지정된 별칭 인터페이스는 유효한 독립 네트워크로 사용될 수 없습니다. uci에 설명된 대로 목록 구문을 사용하십시오.

Family(제품군)

문자열

아니요

0

iptables 규칙을 생성할 프로토콜 Family(제품군)(ipv4, ipv6 등).

masq_src

서브넷 목록

아니요

0.0.0.0/0

정해진 소스 서브넷 위장 제한. !로 서브넷을 미리 설정한 경우 부정이 있을 수 있으며 여러 개의 서비스넷이 허용됩니다.

masq_dest

서브넷 목록

아니요

0.0.0.0/0

정해진 대상 서브넷 위장 제한. !로 서브넷을 미리 설정한 경우 부정이 있을 수 있으며 여러 개의 서비스넷이 허용됩니다.

conntrack

부울

아니요

위장 기능이 사용되면 1, 아니면 0

해당 영역에 대해 연결 트랙킹 실행 (연결 트랙킹 관련 노트 참조)

로그

부울

아니요

0

해당 영역에서 거부된 및 끊어진 트래픽에 대한 로그 규칙을 만드십시오.

log_limit

문자열

아니요

10/분

간격 당 로그 메세지 양을 제한합니다.

명령 예시:

표 6. 명령 예시
  • sudo uci add firewall zone
  • sudo uci set firewall.@zone[-1].name=test
  • sudo uci set firewall.@zone[-1].input=ACCEPT
  • sudo uci set firewall.@zone[-1].output= ACCEPT
  • sudo uci set firewall.@zone[-1].forward= ACCEPT
  • sudo uci set firewall.@zone[-1].masq=<masq>
  • sudo uci set firewall.@zone[-1].mtu_fix=<mtu_fix>
  • sudo uci set firewall.@zone[-1].network=<network>
  • sudo uci set firewall.@zone[-1].family=<family>
  • sudo uci set firewall.@zone[-1].masq_src=<masq_src>
  • sudo uci set firewall.@zone[-1].masq_dest=<masq_dest>
  • sudo uci set firewall.@zone[-1].conntrack=<conntrack>
  • sudo uci set firewall.@zone[-1].log=<log>
  • sudo uci set firewall.@zone[-1].log_limit=<log_limit>
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

새 포워딩 추가

포워딩 섹션에서는 영역 간 트래픽 흐름을 제어하며 특정 방향에서 MSS 클램핑을 실행할 수 있습니다. 오직 한 방향만 포워딩 규칙이 적용됩니다. 두 영역 사이에서 트래픽이 양방향으로 흐르게 하려면, 포워딩이 두 개 필요하며 src 및 dest가 각각 반대로 있어야 합니다.

표 7. 새 포워딩 추가
구문
  • sudo uci set firewall.@zone[-1].src=<src>
  • sudo uci set firewall.@zone[-1].dest=<dest>
  • sudo uci commit firewall
표 8. 매개변수
매개변수Type필수기본값설명

src

영역 이름

없음

트래픽 소스 영역을 지정합니다. 지정된 영역 이름 중 하나를 참조하십시오.

dest

영역 이름

없음

트래픽 대상 영역을 지정합니다. 지정된 영역 이름 중 하나를 참조하십시오.

명령 예시:

표 9. 명령 예시
  • sudo uci set firewall.@zone[-1].src=test
  • sudo uci set firewall.@zone[-1].dest=lan
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

새 포트 전달 추가

포트 포워딩(DNAT)는 리디렉션 섹션에서 지정합니다. 정해진 규칙과 일치하게 지정된 소스 영역에 들어오는 모든 트래픽은 지정된 내부 호스트로 이동됩니다. 또한 리디렉션은 보통 "포트 포워딩" 및 "가상 서버"로 알려져 있습니다. 포트 범위는 6666:6670와 같이 시작:끝으로 지정되어 있습니다. 이는 iptables 구문과 유사합니다.

표 10. 새 포트 전달 추가
구문
  • sudo uci add firewall redirect
  • sudo uci set firewall.@redirect[-1].enabled=<enabled>
  • sudo uci set firewall.@redirect[-1].name=<name>
  • sudo uci set firewall.@redirect[-1].proto=<proto>
  • sudo uci set firewall.@redirect[-1].src=<src>
  • sudo uci set firewall.@redirect[-1].src_mac=<src_mac>
  • sudo uci set firewall.@redirect[-1].src_ip=<src_ip>
  • sudo uci set firewall.@redirect[-1].src_port=<src_port>
  • sudo uci set firewall.@redirect[-1].src_dip=<src_dip>
  • sudo uci set firewall.@redirect[-1].src_dport=<src_dport>
  • sudo uci set firewall.@redirect[-1].dest=<dest>
  • sudo uci set firewall.@redirect[-1].dest_ip=<dest_ip>
  • sudo uci set firewall.@redirect[-1].dest_port=<dest_port>
  • sudo uci set firewall.@redirect[-1].reflection=<reflection>
  • sudo uci commit firewall
표 11. 매개변수
매개변수Type필수기본값설명

사용

문자열

아니요

1 또는 예

리디렉션 규칙 사용 여부.

이름

문자열

아니요

없음

리디렉션 고유 이름.

프로토

프로토콜 이름 또는 번호

tcp udp

정해진 프로토콜을 사용해 들어오는 트래픽과 일치시킵니다.

src

영역 이름

아니요

DNAT 대상에 대한 예

트래픽 소스 영역을 지정합니다. 지정된 영역 이름 중 하나를 참조하십시오. 일반적인 포트 포워딩의 경우는 보통 wan입니다.

src_mac

mac 주소

아니요

없음

지정된 mac 주소에서 들어오는 트래픽과 일치시킵니다.

src_ip

ip 주소

아니요

없음

지정된 소스 IP 주소에서 들어오는 트래픽과 일치시킵니다.

src_port

포트 또는 범위

아니요

없음

클라이언트 호스트에 정해진 소스 포트 또는 포트 범위(예: '5000-5100')에서 들어오는 트래픽을 일치시킵니다.

src_dip

ip 주소

SNAT 대상에 대한 예

없음

DNAT의 경우 정해진 대상 ip 주소로 이동된 트래픽과 일치시킵니다. SNAT의 경우 소스 주소를 정해진 주소로 다시 작성하십시오.

src_dport

포트 또는 범위

아니요

없음

DNAT의 경우 해당 이 호스트의 정해진 대상 포트 또는 포트 범위(예: '5000-5100')로 이동된 들어오는 트래픽을 일치시키십시오. SNAT의 경우 소스 포트를 정해진 값으로 다시 작성하십시오.

dest

영역 이름

SNAT 대상에 대한 예

없음

트래픽 대상 영역을 지정합니다. 지정된 영역 이름 중 하나를 참조하십시오. Attitude Adjustment의 DNAT 대상의 경우 NAT 반전은 이 값이 lan과 일치할 경우에 작동합니다.

dest_ip

ip 주소

DNAT 대상에 대한 예

없음

DNAT의 경우 일치된 들어오는 트래픽을 지정된 내부 호스트로 리디렉션 하십시오. SNAT의 경우 트래픽을 정해진 주소와 일치시킵니다. DNAT의 경우 dest_ip값이 라우터의 로컬 ip 주소와 일치할 때, ifconfig에 표시된 것과 같이 규칙은 DNAT+ 입력 '허용' 규칙으로 변환됩니다. 아니면 DNAT + 포워팅 규칙입니다.

dest_port

포트 또는 범위

아니요

없음

DNAT의 경우 일치된 들어오는 트래픽을 내부 호스트의 정해진 포트로 리디렉션 하십시오. SNAT의 경우 트래픽을 정해진 포트와 일치시킵니다. 단일 포트 또는 범위만이 지정될 수 있으며(예: '5000-5100'), (아래의) 규칙이 있는 상이한 포트는 지정될 수 없습니다.

반전

부울

아니요

1

이 리디렉션에 대한 NAT 반전을 활성화 하십시오. - DNAT 대상에 적용 가능합니다.

명령 예시:

표 12. http(HTTPS는 아님) 트래픽을 192.168.1.10에서 실행되고 있는 웹서버로 포워딩합니다.
  • sudo uci add firewall redirect
  • sudo uci set firewall.@redirect[-1].enabled=1
  • sudo uci set firewall.@redirect[-1].proto=tcp
  • sudo uci set firewall.@redirect[-1].src=wan
  • sudo uci set firewall.@redirect[-1].src_dport=80
  • sudo uci set firewall.@redirect[-1].dest=lan
  • sudo uci set firewall.@redirect[-1].dest_ip=192.168.1.10
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

새 트래픽 규칙 추가

포트 포워딩(DNAT)는 리디렉션 섹션에서 지정합니다. 정해진 규칙과 일치하게 지정된 소스 영역에 들어오는 모든 트래픽은 지정된 내부 호스트로 이동됩니다. 또한 리디렉션은 보통 포트 포워딩가상 서버로 알려져 있습니다. 포트 범위는 6666:6670와 같이 시작:끝으로 지정되어 있습니다. 이는 iptables 구문과 유사합니다.

표 13. 새 트래픽 규칙 추가
구문
  • sudo uci add firewall rule
  • sudo uci set firewall.@rule[-1].enabled=<enabled>
  • sudo uci set firewall.@rule[-1].name=<name>
  • sudo uci set firewall.@rule[-1].family=<family>
  • sudo uci set firewall.@rule[-1].proto=<proto>
  • sudo uci set firewall.@rule[-1].src=<src>
  • sudo uci set firewall.@rule[-1].src_mac=<src_mac>
  • sudo uci set firewall.@rule[-1].src_ip=<src_ip>
  • sudo uci set firewall.@rule[-1].src_port=<src_port>
  • sudo uci set firewall.@rule[-1].dest=<dest>
  • sudo uci set firewall.@rule[-1].dest_ip=<dest_ip>
  • sudo uci set firewall.@rule[-1].dest_port=<dest_port>
  • sudo uci set firewall.@rule[-1].target=<target>
  • sudo uci set firewall.@rule[-1].weekdays=<weekdays>
  • sudo uci set firewall.@rule[-1].monthdays=<monthdays>
  • sudo uci set firewall.@rule[-1].start_time=<start_time>
  • sudo uci set firewall.@rule[-1].stop_time=<stop_time>
  • sudo uci set firewall.@rule[-1].start_date=<start_date>
  • sudo uci set firewall.@rule[-1].stop_date=<stop_date>
  • sudo uci set firewall.@rule[-1].utc_time=<utc_time>
  • uci commit firewall
표 14. 매개변수
매개변수Type필수기본값설명

사용

부울

아니요

규칙을 설정 또는 해제합니다.

이름

문자열

아니요

없음

규칙 고유 이름.

Family(제품군)

문자열

아니요

어떤

iptables 규칙을 생성할 프로토콜 Family(제품군)(ipv4, ipv6 등).

프로토

프로토콜 이름 또는 번호

아니요

tcp udp

정해진 프로토콜을 사용해 들어오는 트래픽과 일치시킵니다. tcp, udp, tcpudp, udplite, icmp, esp, ah, sctp 중 하나나 모두 또는 이러한 프로토콜 중 하나 또는 다른 것을 나타내는 숫자 값이 될 수 있습니다. /etc/protocols에서 나온 프로토콜 이름도 허용됩니다. 숫자 0은 모든 값과 동일합니다.

src

영역 이름

예 (방화벽 v2, 버전 58 이상부터 가능)

없음

트래픽 소스 영역을 지정합니다. 지정된 영역 이름 중 하나를 참조하십시오.

src_mac

mac 주소

아니요

없음

지정된 mac 주소에서 들어오는 트래픽과 일치시킵니다.

src_ip

ip 주소

아니요

없음

지정된 소스 IP 주소에서 들어오는 트래픽과 일치시킵니다.

src_port

포트 또는 범위

아니요

없음

관련 프로토가 지정된 경우, 지정된 소스 포트 또는 포트 범위(예: '5000:5100', 포트 범위는 모든 프로토콜에 적용되지 않음)에서 들어오는 트래픽을 일치시킵니다. 여러 개의 포트는 '80 443 465' 1과 같이 지정될 수 있습니다.

dest

영역 이름

아니요

없음

트래픽 대상 영역을 지정합니다. 지정된 또는 * 모든 영역 이름 중 하나를 참조하십시오. 규칙이 지정된 경우 전달된 트래픽에 적용되며, 그렇지 않은 경우 입력 규칙으로 취급됩니다.

dest_ip

ip 주소

아니요

없음

지정된 대상 ip 주소로 이동된 들어오는 트래픽과 일치시킵니다. dest 영역이 없는 경우, 입력 규칙으로 취급됩니다!

dest_port

포트 또는 범위

아니요

없음

관련 프로토가 지정된 경우, 정해진 대상 포트 또는 포트 범위(예: '5000:5100', 포트 범위는 모든 프로토콜에 적용되지 않음)로 이동된 트래픽을 일치시킵니다. 여러 개의 포트는 '80 443 465' 1과 같이 지정될 수 있습니다.

대상

문자열

드롭

이 리디렉션에 대한 NAT 반전을 활성화 하십시오. - DNAT 대상에 적용 가능합니다.

평일

평일 목록

아니요

(항상)

지정된 경우, 정해진 평일 동안에만 트래픽을 일치시킵니다. 예: 일 월 목 금에서 일요일, 월요일, 목요일, 금요일에만 일치. 앞에 느낌표를 넣어서 목록 순서를 거꾸로 바꿀 수 있습니다. 예: ! 토 일은 항상 일치, 토요일과 일요일은 예외

월 일

날짜 목록

아니요

(항상)

지정된 경우, 한 달 중 정해진 날 동안에만 트래픽을 일치시킵니다. 예: 2 5 30에서 매달 2일, 5일, 30일에만 일치. 앞에 느낌표를 넣어서 목록 순서를 거꾸로 바꿀 수 있습니다. 예: ! 31은 항상 일치, 매달 31일은 예외.

start_time

시간 (시:분:초)

아니요

(항상)

지정된 경우 하루 중 정해진 시간(동안)에만 일치시킵니다.

stop_time

시간 (시:분:초)

아니요

(항상)

지정된 경우 하루 중 정해진 시간 전에 일치시킵니다.

start_date

날짜 (연도-달-일)

아니요

(항상)

지정된 경우 하루 중 정해진 날짜 후에 일치시킵니다.

stop_date

날짜 (연도-달-일)

아니요

(항상)

지정된 경우 하루 중 정해진 날짜 전에 일치시킵니다.

utc_time

부울

아니요

0

정해진 모든 시간값을 현지 시간이 아닌 UTC 시간으로 취급합니다.

명령 예시:

표 15. 지정된 호스트 주소로 연결하려는 모든 연결 시도를 차단합니다.
  • sudo uci add firewall rule
  • sudo uci set firewall.@rule[-1].enabled=1
  • sudo uci set firewall.@rule[-1].src=lan
  • sudo uci set firewall.@rule[-1].dest=wan
  • sudo uci set firewall.@rule[-1].dest_ip=123.45.67.89
  • sudo uci set firewall.@rule[-1].target=REJECT
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

새 소스 NAT 추가

소스 NAT는 송출 패킷을 변경하여 내장 스위치 시스템이 패킷의 소스로 보이도록 합니다.

명령 예시:
표 16. UDP 및 TCP 트래픽에 대한 소스 NAT 지정

IP주소 10.55.34.85 내 호스트에서 나온 포트 123으로 이동된 UDP 및 TCP 트래픽에 대한 소스 NAT를 지정하십시오.

소스 주소는 63.240.161.99로 재작성되었습니다.

  • sudo uci add firewall redirect
  • sudo uci set firewall.@redirect[-1].enabled=1
  • sudo uci set firewall.@redirect[-1].src=lan
  • sudo uci set firewall.@redirect[-1].src_ip=10.55.34.85
  • sudo uci set firewall.@redirect[-1].src_dip=63.240.161.99
  • sudo uci set firewall.@redirect[-1].dest=wan
  • sudo uci set firewall.@redirect[-1].dest_port=123
  • sudo uci set firewall.@redirect[-1].target=SNAT
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart