iptables和shorewall防火墙

操作系统

Ubuntu 16.04

防火墙

iptables用于建立,维护和检查Linux内核中IP包过滤规则的表格。
为了说明iptables有防火墙的作用,以bridge的网络配置为例讲解。

准备

两点准备:

1.由于工控机是Ubuntu 16.04,Linux内核4.1.0,没有br_netfilter模块,所以需要手动加载该模块。每次开机都要手动加载,很自然的加到开机自启动就省事了。
2.允许IP转发,即Allow IP forwarding。

手动加载:Linux内核加载

modprobe br_netfilter

开机自启动:Linux内核加载

vi /etc/rc.local // 这是开机自启动配置文件
modprobe br_netfilter // 把该命令加到该文件中的"exit 0"前面。

配置:Allow IP forwarding

vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 // 把改行设置成1

bridge配置

birdge配置在该文章《Networking网络配置和Bridge配置》有说明,请移步https://www.jianshu.com/p/339d1b6f1089
参考该文章的[配置4:手动配置:br0连接2个网口]

最后的网络配置如下:

enp3s0连着192.168.40.11的设备
enp4s0连着192.168.40.10的设备
工控机有一个bridge为br0,包含enp3s0和enp4s0网口

现在的效果是:

192.168.40.10和192.168.40.11互相ping通。

想要达到的效果是:

192.168.40.11可以ping通192.168.40.10
192.168.40.10不可以ping通192.168.40.11
192.168.40.11可以上传文件到192.168.40.10

iptables配置以达到以上效果:

iptables -P FORWARD DROP // 最高安全原则,把默认的FORWARD policy设成DROP,测试结果:两个设备ping不通,scp无法上传文件

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT // 允许n个封包之后的连线
iptables -A FORWARD -d 192.168.40.10/32 -p icmp --icmp-type 8 -j ACCEPT // 设置允许ping通192.168.40.10,测试结果:192.168.40.11可以ping通192.168.40.10,192.168.40.10不可以ping通192.168.40.11

iptables -A FORWARD -s 192.168.40.0/24 -d 192.168.40.10/32 -p tcp --dport 22 -j ACCEPT // 设置40网段可以scp上传文件到192.168.40.10,测试结果:在192.168.40.11上输入命令scp /tmp/test11.odt suiqian@192.168.40.10:/tmp,发现可以把文件上传到192.168.40.10的tmp目录下。
ps:因为ssh传输文件默认端口是22,所以参数:--dport 22,可以依葫芦画瓢配置其他常用的端口有139,445等。

iptables常用命令:

iptables -L -n --line-number // 查看已配置的iptables
iptables -D FORWARD number号 // 上面命令显示iptables的nubmer号,所以可以根据number号删除iptables chain

清空iptables:

iptables /sbin/iptables -P INPUT ACCEPT // 先执行这条命令,
iptables -F // 然后清空

开启和关闭防火墙:

ufw enable
ufw disable

shorewall

以上防火墙内容是依据原生iptables命令配置的,现在介绍用文件方式配置防火墙,我们选择用shorewall。
http://shorewall.net/GettingStarted.html

不熟悉shorewall的可以根据官网学习配置。

安装

apt-get install shorewall

配置例子

如果了解了iptables配置的相关规则,理解shorewall文件方式配置也很容易上手。我们从例子开始入手。

安装shorewall后,有目录专门放着3种类型的例子,分别是单网口、2个网口、3个网口,即one-interfaces、two-interfaces、three-interfaces。

cd /usr/share/doc/shorewall/examples/

3个网口配置例子

因为我们用的工控机是3个网口的,所以参考three-interfaces。
cd /usr/share/doc/shorewall/examples/three-interfaces

会显示很多文件,重要文件有: zones,interfaces,rules,policy等。

zones:网口对应一个防火墙区域,防火墙fw也算一个区域。
cat zones // 显示如下内容

#ZONE   TYPE    OPTIONS         IN          OUT             
fw  firewall
net ipv4
loc ipv4
dmz ipv4

interfaces:设置防火墙区域与网口名称的对应关系。
cat interfaces // 显示如下内容

#ZONE   INTERFACE   OPTIONS
net     enp2s0          tcpflags,dhcp,nosmurfs,routefilter,logmartians,sourceroute=0,physical=eth0
loc     enp3s0          tcpflags,nosmurfs,routefilter,logmartians,physical=eth1
dmz     enp4s0          tcpflags,nosmurfs,routefilter,logmartians,physical=eth2

policy:配置防火墙策略,防火墙区域之间是拒绝接受还是丢弃的策略,执行策略是由最后一条到第一条这样的顺序执行。
cat policy // 显示如下内容

#SOURCE DEST        POLICY      LOGLEVEL    RATE    CONNLIMIT
 loc            net     ACCEPT
 net            all     DROP        info
 # THE FOLLOWING POLICY MUST BE LAST
 all            all     REJECT      info

rules:可以设置转发规则和icmp、tcp协议等。
cat rules // 显示如下内容

#ACTION     SOURCE      DEST        PROTO   DEST    SOURCE  ORIGINAL    RATE          USER/ MARK    CONNLIMIT   TIME        HEADERS     SWITCH       HELPER #PORT   PORT(S)     DEST        LIMIT       GROUP
 ?SECTION ALL
 ?SECTION ESTABLISHED
 ?SECTION RELATED
 ?SECTION INVALID
 ?SECTION UNTRACKED
 ?SECTION NEW
#       Don't allow connection pickup from the net
#
   Invalid(DROP)    net     all     tcp
#
#   Accept DNS connections from the firewall to the Internet
#
DNS(ACCEPT)     $FW     net
#
#
#   Accept SSH connections from the local network to the firewall and DMZ
#
SSH(ACCEPT)     loc             $FW
SSH(ACCEPT)     loc             dmz
#
#   DMZ DNS access to the Internet
#
DNS(ACCEPT)     dmz         net
# Drop Ping from the "bad" net zone.
Ping(DROP)      net             $FW
#
#       Make ping work bi-directionally between the dmz, net, Firewall and local zone
#       (assumes that the loc-> net policy is ACCEPT).
#
Ping(ACCEPT)    loc             $FW
Ping(ACCEPT)    dmz             $FW
Ping(ACCEPT)    loc             dmz
Ping(ACCEPT)    dmz             loc
Ping(ACCEPT)    dmz             net
ACCEPT      $FW     net     icmp
ACCEPT      $FW     loc     icmp
ACCEPT      $FW     dmz     icmp
# Uncomment this if using Proxy ARP and static NAT and you want to allow ping from
# the net zone to the dmz and loc
#Ping(ACCEPT)    net             dmz
#Ping(ACCEPT)    net             loc

shorewall如何配置bridge

zones

该文件配置防火墙区域,如下:

#ZONE         TYPE         OPTIONS
 bridge          ip
 lan:bridge    bport
 priv:bridge   bport

interfaces

该文件配置防火墙区域对应的接口,如下:

#ZONE      INTERFACE               OPTIONS
 bridge       br0                    bridge
 lan           br0:enp3s0
 priv          br0:enp4s0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容