天道酬勤,学无止境

How to write specific iptables rules using python-iptables

I am trying to use python-iptables to write a script to set certain rules. I figured out how to set rules to allow all and deny all, but I need to figure out how to write a rule to allow established connections.

For example I need to write the following rules using python-iptables:

iptables -A INPUT  -m state --state     RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

If anyone has firsthand knowledge or knows a good resource for writing the above or similar rules I would greatly appreciate it. Thanks in advance!

Here's the finished product. I plan on adding more rule options to allow users to allow http/s etc. connections if they desire.Thanks for all the help.

import iptc

def dropAll():
    chain = iptc.Chain(iptc.Table(iptc.Table.FILTER), "INPUT")
    rule = iptc.Rule()
    rule.in_interface = "eth+"
    target = iptc.Target(rule, "DROP")
    rule.target = target
    chain.insert_rule(rule)

def allowLoopback():
    chain = iptc.Chain(iptc.Table(iptc.Table.FILTER), "INPUT")
    rule = iptc.Rule()
    rule.in_interface = "lo"
    target = iptc.Target(rule, "ACCEPT")
    rule.target = target
    chain.insert_rule(rule)

def allowEstablished():
    chain = iptc.Chain(iptc.Table(iptc.Table.FILTER), 'INPUT')
    rule = iptc.Rule()
    match = rule.create_match('state')
    match.state = "RELATED,ESTABLISHED"
    rule.target = iptc.Target(rule, 'ACCEPT')
    chain.insert_rule(rule)

dropAll()
allowLoopback()
allowEstablished()
标签

评论

i've not tried to use python-iptables, but it looks like you need something like:

rule = iptc.Rule()
match = rule.create_match('state')
match.state = 'RELATED,ESTABLISHED'
match.target = iptc.Target('ACCEPT')

chain = iptc.Chain(iptc.Table.(iptc.Table.FILTER), "INPUT")
chain.insert_rule(rule)

and so on.

Try this

 import subprocess

p = subprocess.Popen(["iptables", "-A", "INPUT", "-p", "tcp", "-m", "tcp", "--dport", "22" , "-j", "ACCEPT"], stdout=subprocess.PIPE)
        output , err = p.communicate()
        print output

I know this old but i finally got a working script, hopefully someone will find it useful.

import iptc

class pop_table:
    def __init__(self, table_name):
        self.table = iptc.Table(table_name)
        self.chains = dict()

        for i in self.table.chains:
            self.chains[i.name] = iptc.Chain(self.table, i.name)

        self.method = {'append': self.append,
                       'insert': self.insert}

    def append(self, chain, rule):
        tmp = self.chains[chain]
        tmp.append_rule(rule)

    def insert(self, chain, rule):
        tmp = self.chains[chain]
        tmp.insert_rule(rule)


class make_rule(iptc.Rule):
    def __init__(self):
        iptc.Rule.__init__(self)

        self.method={'block': self.block,
                     'snat': self.snat,
                     'allow': self.allow,
                     'i_iface': self.i_iface,
                     'o_iface': self.o_iface,
                     'source': self.source,
                     'destination': self.destination}

    def block(self):
        t = iptc.Target(self, 'REJECT')
        self.target = t

    def snat(self, snat_ip):
        t = iptc.Target(self, 'SNAT')
        t.to_source = snat_ip
        self.target = t

    def allow(self):
        t = iptc.Target(self, 'ACCEPT')
        self.target = t

    def i_iface(self, iface):
        self.in_interface = iface

    def o_iface(self, iface):
        self.out_interface = iface

    def source(self, netaddr):
        self.src = netaddr

    def destination(self, netaddr):
        self.dst = netaddr

class phyawall:
    def __init__(self):
        self.list = []

    def add_rule(self, rule_dict):
        tbl = pop_table(rule_dict['tblchn']['table'])
        chn = rule_dict['tblchn']['chain']
        act = tbl.method[rule_dict['tblchn']['action']]
        tmp = make_rule()

        for i in rule_dict['rule']:
            tmp.method[i](rule_dict['rule'][i])
        act(chn, tmp)

#
#
# Testing :: below will go into main app
#

phyrule = dict()
phyrule['tblchn'] = dict()
phyrule['tblchn']['table'] = 'nat'
phyrule['tblchn']['chain'] = 'POSTROUTING'
phyrule['tblchn']['action'] = 'append'
phyrule['rule'] = dict()
phyrule['rule']['o_iface'] = 'ens3'
phyrule['rule']['snat'] = '10.1.2.250'
phyrule['rule']['source'] = '6.9.6.9'
phyrule['rule']['destination'] = '9.6.9.6'


a = phyawall()
a.add_rule(phyrule)

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何以编程方式即时管理iptables规则?(How can I programmatically manage iptables rules on the fly?)
    问题 我需要查询现有规则,以及能够轻松添加和删除规则。 我还没有找到执行此操作的任何API。 有什么我想念的吗? 我最接近解决方案的是使用iptables-save | iptables-xml iptables-save | iptables-xml用于查询和手动调用iptables命令本身以添加/删除规则。 我考虑过的另一个解决方案是,从应用程序的数据库中重新生成整个规则集,然后刷新整个链,然后再次应用它。 但是我想避免这种情况,因为我不想丢弃任何数据包-除非有一种方法可以自动执行此操作。 我想知道是否有更好的方法。 用C编写的API会很棒。 但是,当我计划将其构建为独立的suid程序时,以任何语言进行此操作的库也可以。 回答1 从netfilter常见问题解答: 不幸的是,答案是:否。 现在您可能会想“但是libiptc呢?”。 正如在邮件列表上多次指出的那样,libiptc绝不打算用作公共接口。 我们不保证接口稳定,因此计划在Linux数据包过滤的下一个版本中将其删除。 libiptc太底层了,因此无论如何都不能合理使用。 我们深知,此类API根本缺乏,我们正在努力改善这种情况。 在此之前,建议您使用system()或在iptables-restore的stdin中打开管道。 后者将为您提供更好的性能。 回答2 使用iptables-save和iptables
  • Linux中的iptables基础
    防火墙种类 netfilter 位于Linux内核中的包过滤功能体系 称为Linux防火墙的“内核态” iptables 位于/sbin/iptables,用来管理防火墙规则的工具 称为防火墙的“用户态” 包过滤的工作层次 主要是网络层,针对IP数据包 体现在对包内的IP地址、端口等信息的处理上(还有tcp、udp) 表、链结构 规则链 规则的作用:对数据包进行过滤或处理 链的作用:容纳各种防火墙的规则 链的分类依据:处理数据包的不同时机 默认5种规则链 INPUT:处理入站数据包 OUTPUT:处理出站数据包 FORWARD:处理转发数据包 PREROUTING链:在进行路由选择前处理数据包 POSTROUTING链:在进行路由选择后处理数据包 规则表 作用:容纳各种规则链 表的划分依据:防火墙规则的作用相似 默认4个规则表 raw表:确定是否对该数据包进行状态跟踪     表中包含PREROUTING链、OUTPUT链     要跟踪就必须是自己发出的 mangle表:为数据包设置标记       表中包含五种链 nat表:修改数据包中的源、目标IP地址或端口     表中包含PREROUTING链、POSTROUTING链、OUTPUT链 filter表:确定是否放行该数据包(过滤)     表中包含INPUT链、FORWARD链、OUTPUT链 数据包控制的匹配流程
  • Linux iptables命令详解
    iptables 是 Linux 防火墙系统的重要组成部分,iptables 的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者由该设备转发、路由时,都可以使用 iptables 进行控制。下面良许小编就将从几个方面对于Linux iptables命令进行详述,希望对大家有所帮助。iptables简介iptables 是集成在 Linux 内核中的包过滤防火墙系统。使用 iptables 可以添加、删除具体的过滤规则,iptables 默认维护着 4 个表和 5 个链,所有的防火墙策略规则都被分别写入这些表与链中。“四表”是指 iptables 的功能,默认的 iptable s规则表有 filter 表(过滤规则表)、nat 表(地址转换规则表)、mangle(修改数据标记位规则表)、raw(跟踪数据表规则表):filter 表:控制数据包是否允许进出及转发,可以控制的链路有 INPUT、FORWARD 和 OUTPUT。nat 表:控制数据包中地址转换,可以控制的链路有 PREROUTING、INPUT、OUTPUT 和 POSTROUTING。mangle:修改数据包中的原数据,可以控制的链路有 PREROUTING、INPUT、OUTPUT、FORWARD 和 POSTROUTING。raw:控制 nat 表中连接追踪机制的启用状况
  • 如何从iptables中删除特定规则?(How can I remove specific rules from iptables?)
    问题 我分别在端口8006和8007上托管特殊的HTTP和HTTPS服务。 我使用iptables来“激活”服务器; 即路由传入的HTTP和HTTPS端口: iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 8006 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 8007 -j ACCEPT iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8006 iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8007 iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to-ports 8006 iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp -
  • CentOS 7.X默认firewall防火墙改为iptables防火墙
    CentOS 7 默认使用的是firewall作为防火墙,这里改为iptables防火墙。1、关闭firewallsystemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动2、安装iptables防火墙yum install iptables-services #安装vi /etc/sysconfig/iptables #编辑防火墙配置文件**********************************************************************************************# Firewall configuration written by system-config-firewall# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT
  • iptables详解(2):iptables实际操作之规则查询
    如果你是一个新手,在阅读如下文章时,请坚持读到最后,读的过程中可能会有障碍,但是在读完以后,你会发现你已经明白了。 在进行iptables实验时,请务必在测试机上进行。 之前在iptables的概念中已经提到过,在实际操作iptables的过程中,是以"表"作为操作入口的,如果你经常操作关系型数据库,那么当你听到"表"这个词的时候,你可能会联想到另一个词----“增删改查”,当我们定义iptables规则时,所做的操作其实类似于"增删改查",那么,我们就先从最简单的"查"操作入手,开始实际操作iptables。 在之前的文章中,我们已经总结过,iptables为我们预定义了4张表,它们分别是raw表、mangle表、nat表、filter表,不同的表拥有不同的功能。 filter负责过滤功能,比如允许哪些IP地址访问,拒绝哪些IP地址访问,允许访问哪些端口,禁止访问哪些端口,filter表会根据我们定义的规则进行过滤,filter表应该是我们最常用到的表了,所以此处,我们以filter表为例,开始学习怎样实际操作iptables。 怎样查看filter表中的规则呢?使用如下命令即可查看。 上例中,我们使用-t选项,指定要操作的表,使用-L选项,查看-t选项对应的表的规则,-L选项的意思是,列出规则,所以,上述命令的含义为列出filter表的所有规则,注意,上图中显示的规则
  • How can I remove specific rules from iptables?
    I am hosting special HTTP and HTTPS services on the ports 8006 and 8007 respectively. I use iptables to "activate" the server; i.e. to route the incoming HTTP and HTTPS ports: iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 8006 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 8007 -j ACCEPT iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8006 iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8007 iptables -A OUTPUT -t nat -d 127.0.0
  • iptables详解【2】: 实际操作之规则查询
    iptables详解【2】: iptables实际操作之规则查询 文章目录 一、详解二、命令小节 一、详解 如果你是一个新手,在阅读如下文章时,请坚持读到最后,读的过程中可能会有障碍,但是在读完以后,你会发现你已经明白了。 在进行iptables实验时,请务必在测试机上进行。 之前在iptables的概念中已经提到过,在实际操作iptables的过程中,是以"表"作为操作入口的,如果你经常操作关系型数据库,那么当你听到"表"这个词的时候,你可能会联想到另一个词----“增删改查”,当我们定义iptables规则时,所做的操作其实类似于"增删改查",那么,我们就先从最简单的"查"操作入手,开始实际操作iptables。 在之前的文章中,我们已经总结过,iptables为我们预定义了4张表,它们分别是raw表、mangle表、nat表、filter表,不同的表拥有不同的功能。 filter负责过滤功能,比如允许哪些IP地址访问,拒绝哪些IP地址访问,允许访问哪些端口,禁止访问哪些端口,filter表会根据我们定义的规则进行过滤,filter表应该是我们最常用到的表了,所以此处,我们以filter表为例,开始学习怎样实际操作iptables。 怎样查看filter表中的规则呢?使用如下命令即可查看。 上例中,我们使用-t选项,指定要操作的表,使用-L选项,查看-t选项对应的表的规则,
  • 16个系统管理员常用的iptables技巧
    iptables提供强大的功能来控制进出系统的流量。现代Linux内核附带了一个名为Netfilter的包过滤框架。Netfilter可以允许,删除和修改进出系统的流量。iptables用户空间命令行工具以此功能为基础,提供强大的防火墙,可以通过添加规则来配置防火墙以形成防火墙策略。iptables因其丰富的功能和巴洛克式命令语法而非常令人生畏。让我们探讨其中的一些为系统管理员可能遇到许多情况的一套iptables技巧和窍门。避免锁定自己场景:你将对公司主服务器上的iptables策略规则进行更改。你想避免锁定自己 ,可能还有其他所有人。(这会花费时间和金钱,导致半夜手机响起。)提示#1:在开始处理iptables配置之前先备份它。使用以下命令备份配置:/sbin/iptables-save > /root/iptables-works提示#2:更好的方法是,在文件名中包含一个时间戳。使用以下命令添加时间戳:/sbin/iptables-save > /root/iptables-works-`date +%F`你得到一个名称如下的文件:/root/iptables-works-2018-09-11如果你做了阻止系统工作的事情,你可以快速恢复它:提示#3:每次创建iptables策略的备份副本时,都要在名称中创建一个指向“latest”的文件的链接。ln –s /root
  • Android iptables规则
    1 iptables 1.1 原理 iptables对应的是kernel的netfilter模块,主要实现NAT功能;有4个表:filter、nat、mangle和raw。 iptables可以用来修改TCP或者UDP数据包中的IP地址。 iptables可以用来屏蔽网站,譬如只允许访问特定的网站。 PREROUTING:有raw、mangle,nat三个表;路由规则前(ip route前),外网到内网,必须包含-i参数 FORWARD:有mangle、filter二个表;转发,@ /proc/sys/net/ipv4/ip_forward,转发功能默认是关闭的,tethering必须打开转发功能;FORWARD对应到ip route功能 POSTROUTING:,有mangle、nat二个表;路由规则后(ip route后),内网到外网,必须包含-o参数 1.2 如何使用 编写规则的时候应该先指定表-t(没指定就是默认的filter,其它的为mangle、nat、raw),再指定链-P(Policy,包括PREROUTING、FORWARD、POSTROUTING、INPUT、OUTPUT)。 -A: append -i: input interface -I: insert -j: jump table -m: match -o: output interface -p
  • Linux系统防火墙iptables
    Linux系统防火墙iptables iptablesiptables概述netfilter/iptables 关系四表五链作用与简述四表五链规则链之间的匹配顺序规则链内的匹配顺序 iptables的安装与相关规则配置方法iptables的安装iptables防火墙的配置方法 规则的匹配通用匹配隐含匹配显式匹配 SNAT原理与应用SNAT 应用环境SNAT原理SNAT转换前提条件Linux网关临时开启IP路由转发Linux网关永久开启IP路由转发SNAT转换(固定的公网IP地址)SNAT转换(非固定的公网IP地址即共享动态IP地址) DNAT原理与应用DNAT 应用环境DNAT原理DNAT转换前提条件DNAT转换(发布内网的Web服务)DNAT转换(发布时修改目标端口) 其他拓展与注意事项防火墙规则的备份和还原 iptables iptables概述 Linux 系统的防火墙 :虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。 主要工作在网络层,针对IP数据包。体现在对包内的IP地址、端口等信息的处理上。 PTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器,
  • 万字讲解OpenWrt防火墙iptables,并使用UCI配置防火墙
    一、防火墙简介 “防火墙”(Firewall)术语来自建筑设计领域,是指用来起分割作用的墙,当某一部分 着火时可以减缓或保护其他部分免受火灾影响。在计算机网络中,防火墙是在两个或多个 网络之间用于设置安全策略的一个或多个系统的组合。防火墙起到隔离异常访问的作用, 仅允许可靠的流量通过,从而保护了家庭和企业内部网络信息的安全。下图是一 个典型的防火墙部署结构。 Linux防火墙通常包含两部分,分别为: iptables。netfilter。 二、iptables防火墙工具简介 iptables是用C语言实现的,最新版本是1.4.21,并以GNU许可协议发布。它实际上包含两部分:内核netfilter和用户空间工具 iptables。管理员通过iptables工具集和内核打交道,将防火墙规则写入内核中。内核netfilter执行报文过滤规则。iptables是Linux管理防火墙规则的命令行工具,处于用户空间。netfilter执行报文过滤,处于Linux内核空间。有时候也会用 iptables 来统称Linux防火墙。iptables 是一个报文状态检测防火墙,这意味着防火墙内部存储每一个连接的信息,并且可以将每一个报文关联到它所属的连接。这个信息非常有用,它用于自动打开响应报文的传输路径,因此在创建防火墙规则时,通常没有必要创建相反方向的防火墙规则,防火 墙将自动计算出这个规则。
  • iptables命令速查
    iptables 命令速查 在实际操作 iptables 的过程中,是以表作为操作入口的 iptables 指令基本格式(参考 man 文档) 指令语法概览 iptables [-t table] {-A|-C|-D} chain rule-specification iptables [-t table] -I chain [rulenum] rule-specification iptables [-t table] -R chain rulenum rule-specification iptables [-t table] -D chain rulenum iptables [-t table] -S [chain [rulenum]] iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...] iptables [-t table] -N chain iptables [-t table] -X [chain] iptables [-t table] -P chain target iptables [-t table] -E old-chain-name new-chain-name rule-specification = [matches...] [target] match = -m
  • Linux系统防火墙Firewalld
    Firewalld Firewalld概述Firewalld和iptables的区别Firewalld网络区域区域介绍与概念9个预定义区域Firewalld数据处理流程firewalld检查数据包的源地址的规则 Firewalld防火墙的配置方式常用的firewall-cmd命令选项区域管理服务管理端口管理 Firewalld概述 Firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙 Firewalld也是工作在网络层,属于包过滤防火墙 firewalld 和 iptables 都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,内部结构都指向 netfilter 网络过滤子系统(属于内核态)来实现包过滤防火墙功能。 firewalld 提供了支持网络区域所定义的网络连接以及接口安全等级的动态防火墙管理工具。它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算),并且拥有两种配置模式:运行时配置与永久配置。 Firewalld和iptables的区别 Firewalldiptables是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。与硬件防火墙的设置相类似。主要是基于接口,来设置规则,从而判断网络的安全性。firewalld 将配置储存在/etc/ firewalld/ (
  • linux下IPTABLES的一些配置
    如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destination Chain FORWARD (policy ACCEPT)target prot opt source destination Chain OUTPUT (policy ACCEPT)target prot opt source destination Chain RH-Firewall-1-INPUT (0 references)target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp
  • linux防火墙iptables工作原理
    防火墙对于系统安全至关重要,iptables则是防火墙的管理工具iptables帮助我们定义各种验证规则,实现对网络的验证控制数据包的传输过程数据包来到防火墙后,传输过程会经历一系列验证链:(1)prerouting 数据包作路由选择前(2)forward 转发数据包的时候(3)input 数据包进入系统的时候(4)output 系统发出数据包的时候(5)postrouting 数据包作路由选择后过程说明从外界到达防火墙的数据包,先被 prerouting 规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处)如果数据包的目标是本机,内核将其传给input链处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(如Apache服务器)进行响应,响应完成后如果需要发出数据包,就交给output规则链,验证通过之后进行路由选择,然后传递给 postrouting 规则链(是否修改数据包的地址等)进行处理如果数据包的目标地址是其它外部地址,则内核将其传递给 forward 链进行处理(是否转发或拦截),然后再交给postrouting 规则链(是否修改数据包的地址等)进行处理iptables的规则表iptables从名字就可以看出,它还有个重要的概念,就是验证表iptables内置了4个表,每个表中定义了各个规则链中的具体验证规则这几个表有优先级
  • iptables详解及应用(史上最全)
    1.1 iptables概念 从逻辑上讲。防火墙可以大体分为主机防火墙和网络防火墙。 主机防火墙:针对于单个主机进行防护。 网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。 网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体), 主机防火墙主内(个人)。 从物理上讲,防火墙可以分为硬件防火墙和软件防火墙。 硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高。 软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低 iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框架的名字叫netfilter netfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间。 iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。 netfilter/iptables(下文中简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
  • linux下IPTABLES配置详解
    linux下IPTABLES配置详解如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destination Chain FORWARD (policy ACCEPT)target prot opt source destination Chain OUTPUT (policy ACCEPT)target prot opt source destination Chain RH-Firewall-1-INPUT (0 references)target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 ACCEPT udp -- 0.0.0
  • iptables学习笔记
    iptables学习笔记 iptables概念:iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置 iptables将会帮助你更有效地管理Linux防火墙。 首先介绍iptables的结构:iptables -> Tables -> Chains -> Rules. 简单地讲,tables由chains组成,而chains又由rules组成。如图: Tables(表)的概念:我们把具有相同功能的规则的集合叫做“表”,不同功能的规则,我们可以放置在不同的表中进行管理,iptables已经为我们定义了4种表,每种表对应了不同的功能,如下“表”:filter表:负责过滤功能,防火墙;内核模块:iptables_filternat表:network address translation,网络地址转换功能; 内核模块:iptables_natmangle表:拆解报文,做出修改,并重新封装的功能;iptables_mangleraw表:关闭nat表上启用的链接追踪机制;iptable_raw也就是说,我们自定义的说有规则,都是这四种分类种的规则,或者说,所以规则都存在于这4张“表”中。 Chains(链)的概念:我们知道,防火墙的作用就在于对经过的报文匹配“规则”,然后执行对应的“动作”,当报文经过这些关卡的时候
  • 个人血泪史:linux服务器加固(一)
    文章目录 阿里云密钥对登录用户使用普通用户登陆输入策略番外 限定普通用户的权限从文件的角度限制其权限;从命令的角度限制其权限; 安全组防火墙iptablesfirewall linux服务器登陆邮件提醒基础方式实现 特别鸣谢 阿里云密钥对登录 阿里云的密钥对创建以及使用crt登录,请参考: 使用SSH密钥对远程登录阿里云云服务器 使用linux自定义的密钥对创建: 设置ssh通过密钥登陆 Linux安全之SSH 密钥创建及密钥登录 配置SecureCRT使用SSH公钥方式登录Linux服务器 需要注意的是: 连接阿里云公网使用的是自己电脑的外网ip地址,查看自己的外网ip地址,可以直接百度ip就能找到自己的外网ip地址。 除此之外: 前面设置的是root用户的密钥对登录,但是使用root登录的风险太大了!所以一般都要使用普通用户登录。为了实现普通用户也能够使用密钥对登录,步骤如下: 阿里云生成的密钥对,其公钥是在/root/.ssh的目录下,如下: 将它复制到创建的用户的家目录下,例如用户为test。 cp -r /root/.ssh /home/test 之后将权限变更为test,如下: chown -R test:group /home/test/.ssh group为用户所属组,创建的时候不指定的话默认就是用户名 然后退出root登录,使用test用户密钥对登录