/
proc
/
self
/
root
/
lib
/
python3.6
/
site-packages
/
firewall
/
core
/
__pycache__
/
up file
home
3 Y�jBu � @ s6 d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm Z m Z mZmZ d dl mZmZmZmZmZmZmZ d dlmZmZmZmZmZmZmZ d dlmZmZ d dl m!Z! d Z"e"d d Z#dZ$d Z%i ddde% fidde% fdde% fd�dd e% fdd e% fdd e% fdd e% fd�d�Z&G dd� de'�Z(dS )� )�absolute_importN)�log)� check_mac�getPortRange�normalizeIP6�check_single_address� check_address)� FirewallError� UNKNOWN_ERROR�INVALID_RULE�INVALID_ICMPTYPE�INVALID_TYPE� INVALID_ENTRY�INVALID_PORT)�Rich_Accept�Rich_Reject� Rich_Drop� Rich_Mark�Rich_Masquerade�Rich_ForwardPort�Rich_IcmpBlock)� ICMP_TYPES�ICMPV6_TYPES)�NftablesZ firewalld�_Zpolicy_dropZpolicy_� � PREROUTING� prerouting� �d Zpostrouting)r �POSTROUTING�input�forward�output)r �INPUT�FORWARD�OUTPUT)�raw�mangle�nat�filterc @ sj e Zd Zd ZdZdd� Zdd� Zdd� Zdd � Zd d� Z dd � Z dd� Zd�dd�Zdd� Z dd� Zdd� Zdd� Zd�dd�Zdd� Zd�d d!�Zd"d#� Zd�d%d&�Zd�d(d)�Zd�d*d+�Zd�d,d-�Zd.d/� Zd0d1� Zd2d3� Zd4d5� Zd6d7� Zd8d9� Zd:d;� Zd<d=� Z d>d?� Z!d@dA� Z"dBdC� Z#dDdE� Z$dFdG� Z%dHdI� Z&d�dJdK�Z'dLdM� Z(dNdO� Z)dPdQ� Z*dRdS� Z+d�dTdU�Z,d�dVdW�Z-d�dXdY�Z.dZd[� Z/d�d\d]�Z0d�d^d_�Z1d�d`da�Z2d�dbdc�Z3d�ddde�Z4d�dfdg�Z5dhdi� Z6d�djdk�Z7dldm� Z8d�dndo�Z9dpdq� Z:drds� Z;dtdu� Z<dvdw� Z=d�dxdy�Z>d�dzd{�Z?d|d}� Z@d�d~d�ZAd�d�� ZBd�d�� ZCd�d�� ZDd�d�� ZEd�d�� ZFd�d�� ZGd�d�� ZHd�d�d��ZIdS )��nftablesTc C sb || _ d| _g | _i | _i | _i | _i | _i | _g g g d�| _t � | _ | j jd� | j jd� d S )NT)�inet�ip�ip6) �_fwZrestore_command_existsZavailable_tables�rule_to_handle�rule_ref_count�rich_rule_priority_counts�policy_priority_counts�zone_source_index_cache�created_tablesr r+ Zset_echo_outputZset_handle_output)�self�fw� r8 �/usr/lib/python3.6/nftables.py�__init__X s znftables.__init__c C s� xdD ]}||krP qW d|| d kr`|| d d d || d d d f}|| d d= n(d|| d kr�d }|| d d= nd S || d d }|r�|dkr�||kr�||| kr�|| j |� n�|dk�r�||kr�g ||<