Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pyroute2.common import hexload
- def oifname(name: str):
- return ({
- 'attrs': [
- ('NFTA_EXPR_NAME',
- 'meta'),
- ('NFTA_EXPR_DATA',
- {
- 'attrs': [
- ('NFTA_META_KEY',
- 7),
- ('NFTA_META_DREG',
- 0x01)
- ]
- })
- ]
- },
- {
- 'attrs': [
- ('NFTA_EXPR_NAME',
- 'cmp'),
- ('NFTA_EXPR_DATA',
- {
- 'attrs': [
- ('NFTA_CMP_SREG',
- 0x01),
- ('NFTA_CMP_OP',
- 0),
- ('NFTA_CMP_DATA',
- {
- 'attrs': [
- ('NFTA_DATA_VALUE',
- name)
- ]
- })
- ]
- })
- ]
- })
- def iifname(name):
- return ({
- 'attrs': [
- ('NFTA_EXPR_NAME',
- 'meta'),
- ('NFTA_EXPR_DATA',
- {
- 'attrs': [
- ('NFTA_META_KEY',
- 6),
- ('NFTA_META_DREG',
- 0x01)
- ]
- })
- ]
- },
- {
- 'attrs': [
- ('NFTA_EXPR_NAME',
- 'cmp'),
- ('NFTA_EXPR_DATA',
- {
- 'attrs': [
- ('NFTA_CMP_SREG',
- 0x01),
- ('NFTA_CMP_OP',
- 0),
- ('NFTA_CMP_DATA',
- {
- 'attrs': [
- ('NFTA_DATA_VALUE',
- name)
- ]
- })
- ]
- })
- ]
- },)
- def counter():
- return ({
- 'attrs': [
- ('NFTA_EXPR_NAME',
- 'counter'),
- ('NFTA_EXPR_DATA',
- {
- 'attrs': [
- ('NFTA_COUNTER_BYTES',
- 0),
- ('NFTA_COUNTER_PACKETS',
- 0)
- ]
- })
- ]
- },)
- def masquerade():
- return ({
- 'attrs': [
- ('NFTA_EXPR_NAME',
- 'masq'),
- ('NFTA_EXPR_DATA',
- {
- 'attrs': [
- ]
- })
- ]
- },)
- def l4proto(proto: str = 'tcp'):
- match proto:
- case 'tcp':
- proto = b'\x06'
- case 'udp':
- proto = b'\x11'
- case _:
- proto = b'\x00'
- return ({
- 'attrs': [
- ('NFTA_EXPR_NAME',
- 'meta'),
- ('NFTA_EXPR_DATA',
- {
- 'attrs': [
- ('NFTA_META_KEY',
- 16),
- ('NFTA_META_DREG',
- 0x01)
- ]
- })
- ]
- },
- {
- 'attrs': [
- ('NFTA_EXPR_NAME',
- 'cmp'),
- ('NFTA_EXPR_DATA',
- {
- 'attrs': [
- ('NFTA_CMP_SREG',
- 0x01),
- ('NFTA_CMP_OP',
- 0),
- ('NFTA_CMP_DATA',
- {
- 'attrs': [
- ('NFTA_DATA_VALUE',
- proto)
- ]
- })
- ]
- })
- ]
- },)
- def accept():
- return ({
- 'attrs': [
- ('NFTA_EXPR_NAME',
- 'immediate'),
- ('NFTA_EXPR_DATA',
- {
- 'attrs': [
- ('NFTA_IMMEDIATE_DREG',
- 0x00),
- ('NFTA_IMMEDIATE_DATA',
- {
- 'attrs': [
- ('NFTA_DATA_VERDICT',
- {
- 'attrs': [
- ('NFTA_VERDICT_CODE',
- 1)
- ]
- })
- ]
- })
- ]
- })
- ]
- },)
- def convert_to_hex(number):
- hex_string = '00:00:ff:ff:'
- hex_string += format(number, '02x') + ':'
- hex_string += format(number, '02x') + ':'
- hex_string += '00:00:00:00:00:00:00:00'
- return hex_string
- def udp_dport(port=80):
- return ({
- 'attrs': [
- ('NFTA_EXPR_NAME',
- 'match'),
- ('NFTA_EXPR_DATA',
- {
- 'attrs': [
- ('NFTA_MATCH_NAME',
- 'udp'),
- ('NFTA_MATCH_REV',
- 0),
- ('NFTA_MATCH_INFO',
- b'\x00\x00\xff\xff5\x005\x00\x00\x00\x00\x00\x00\x00\x00\x00')
- ]
- })
- ]
- },)
Advertisement
Add Comment
Please, Sign In to add comment