[iptables] 정리 with ebtables(xtables) / arp tables
참고>
구글링 : iptables ebtables arptables
용어 : https://docs.openstack.org
연관어>
ebtables / iptables, ipv6tables / arptables
Linux3.13 이후 iptables => nftables
x_tables : 4개 모듈의 공유된 코드 일부를 전달하는 커널 모듈의 이름
Xtables는 대체적으로 방화벽 (v4, v6, arp, eb)구조 전반을 가리키는데 쓰인다.
호스트 및/또는 노드 사이에서 통신을 제한하기 위해 사용되며, iptables, arptables, ip6tables, ebtables를 사용하여 Compute에서 구현됩니다.
Linux 브릿징 방화벽을 위한 필터링 도구로, Linux 브릿지를 통해 전달되는 네트워크 트래픽에 대한 필터링을 가능하게 합니다. 네트워크 통신에 대한 격리를 보장하기 위해 Compute에서 arptable, iptables, 그리고 ip6tables와 함께 사용됩니다.
iptables는 arptables 및 ebtables와 함께 Compute에서 방화벽을 생성합니다. iptables는 Linux 커널 방화벽 (다른 Netfilter 모듈로 구현)에 의해 제공되는 테이블 및 해당 테이블을 저장하는 체인 및 규칙입니다. 각 프로토콜에 대해 서로 다른 커널 모듈 및 프로그램이 현재 사용되고 있습니다. iptables는 IPv4에, ip6tables는 IPv6에, arptables는 ARP에, 그리고 estables는 Ethernet 프레임에 적용됩니다. 다루기 위해서는 root 권한을 필요로 합니다.
Linux 커널에서 IPv6 패킷 필터 규칙에 대한 테이블을 셋업, 유지 및 검사하는 도구입니다. OpenStack Compute에서, ip6tables는 arptables, estables 및 iptables를 사용하여 노드 및 VM 모두에 대한 방화벽을 생성합니다.
iptables 확장은 IP 주소에 대한 전체 “집합” 에 매칭하는 방화벽 규칙에 대한 생성을 동시에 가능하게 합니다. 해당 집합은 특히 많은 양의 규칙과 함께 동작하는 시스템에서 효율성을 향상시키기 위해 인덱스된 데이터 구조로 있습니다.
Linux 커널 방화벽 모듈 내 주소 변환 프로토콜 패킷 필터 규칙을 유지하기 이해 사용하는 도구. Compute 내에서 방화벽 서비스를 VM에 제공하기 위해 iptables, ebtables 및 ip6tables와 함께 사용됨
Filter
특정 룰에 따라서 패킷을 걸러내거나 통과시키는 역할
Nat
패킷의 소스나 목적지 주소를 변환시키는 기능
Mangle
패킷의 TTL이나 TOS(우선순위) 값을 변경하거나 매칭
사용법: iptables -t table <action> [pattern]
<action>
-A Chain : 체인에 룰 추가(맨 아래)
-D Chain : 체인의 룰을 삭제
-I Chain : 체인에 룰 추가 [num] (존재시 해당 위치에 , 없으면 맨위에)
-R Chain : 체인의 룰 변경
-L Chain : 체인 룰 리스트 보여주기
-F Chain : 체인 룰 모두 삭제
[pattern]
-p: 프로토콜 이름 또는 포트번호(ex: tcp,udp,21)
-s <ip> 패킷의 발신지 주소
-d <ip> 패킷의 도착지 주소
-sport <port> 패킷의 출발지 포트번호
-dport <port> 패킷의 도착지 포트번호
-i <dev> 패킷이 들어오는 인터페이스 이름을 명시(ex: eth0,eth1)
-o <dev> 패킷이 나가는 인터페이스 이름을 명시
-j <action> : 특정 규칙 수행
ACCEPT / DROP / DNAT / SNAT