iptables 包过滤防火墙

防火墙的结构

DMZ(非军事区):允许外网随时访问

Linux的防火墙:

ipfawdn ---> ipchains ---> iptables

iptables

7.0以前默认开启的是iptables

7.0以后默认开启的是firewall

Linux中防火墙都属于包过滤防火墙,对经过的数据包中的IP地址、协议、Port、标记位进行审核

实验拓扑图:客户端A:202.0.0.1 ------ Re0:202.0.0.2;Re1:192.168.10.1 ------- B:192.168.10.2

实验:

1、安装软件包

iptables.xxxx.xxxx.rpm

iptables-services.xxxx.xxxx.rpm

2、启动服务

systemctl mask firewalld

systemctl unmask iptables

systemctl restart iptables

systemctl enable iptables

iptables通过规则集实现保护功能,规则集称为链,每个接口都可以设置这三种链:

INPUT链:通信目标为本设备时,审核相应接口的INPUT链      A ping R

FORWARD链:路由器实现转发功能,审核发送方近口的FORWARD链

OUTPUT链:当通信发起方为本设备时,审核相应接口的OUTPUT链  R ping  A

内网 防火墙限制

【限制ip】

iptables -L 查看所有链的规则集

iptables -F 清空所有链的规则集

iptables -P INPUT DROP(拒绝) 修改链的默认规则(policy)   ACCEPT(接受)

按添加规则顺序,进行判断通信是否可行 (审核规则按照顺序审核)

制定规则指定网卡

-A 制定规则链

-I 指定插入位置

-D 指定删除位置

-i 指定网卡 (eno16777736)

-j 指定操作规则 (DROP拒绝)(ACCEPT接受)

-s 指定发送方ip地址

-d 指定接受方ip地址

制定规则指定网卡   -I 指定插入位置  -A 制定规则链 -D 指定删除位置   -i 指定网卡   -j 指定操作  -d 指定接受方ip地址

iptables -I FORWARD 1 -i eno16777736 -s 202.0.0.1 -d 192.168.10.2 -j ACCEPT 在指定位置插入规则

iptables -D FORWARD 3    删除指定位置的规则

telnet ip  远程连接控制

【协议和端口】

-p 指定协议  tcp  udp  icmp  拒绝所有外网的tcp通信

--dport 指定目的端口

--sport 指定发送端口

iptables -A FORWARD -i eno16777736 -p tcp -j DROP                 拒绝所有tcp通信

iptables -A FORWARD -i eno16777736 -p tcp --dport 23 -j DROP       只拒绝23号端口

iptables -A FORWARD -i eno16777736 -p tcp -d 192.168.10.2 --dport 23 -j DROP   只拒绝10.2上的23号端口

iptables -A FORWARD -i eno16777736 -p udp --sport 53 -j DROP       使客户端无法获得DNS解析

设置A到B不可以ping通   B到A通

【标记位】icmp

拒绝外网所有的主动连接,但是外网的回复信息能收到

C ---> S syn     请求

S ---> C syn,ack 回复

C ---> S ack  回复

iptables -A FORWARD -i eno16777736 -p tcp --syn -j DROP

【icmp:内置命令ping、tracert】请求(requset 8)  回复(relay 0)

iptables -A FORWARD -i eno16777736 -p icmp --icmp-type 8 -j DROP

内网访问外网    开启 <NAT网络地址转换(内访外)POSTROUTING链>

iptables -t nat -A POSTROUTING -o eno16777736 -s 192.168.1.197 -j SNAT --to-source 36.111.136.8

-t nat 指定规则

-o 指定外网卡

--to-source 外网卡IP

iptables -L -t nat 查看nat链规则

iptables -F -t nat 清空nat链规则

实验验证:

客户端和服务器端 netstat -n  查看通信端口

外网访问内网    开启 <端口映射(外访内)PREROUTING>

iptables -t nat -A PREROUTING -i eno16777736 -d 202.0.0.2 -p tcp --dport 2300 -j DNAT --to-destination 192.168.10.2:23

实验验证:

内网上:telent 202.0.0.2 2300

netstat -n

iptables -t nat -vnL 查看

iptables -t nat -D PREROUTING 1 删除

上述命令重启iptables服务将失效,永久生效将命令写入配置文件

vim /etc/rc.d/rc.local

iptables -F

iptables -F -t nat

书写相应的防火墙规则

保存退出

给该文件增加执行权限

chmod a+x /etc/rc.d/rc.local

时间: 2024-11-09 00:48:49

iptables 包过滤防火墙的相关文章

包过滤防火墙之iptables

一 防火墙的概念 1. 防火墙指(firewall)的是一个由软件和硬件设备组合而成.在内部网和外部网之间.专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则.验证工具.包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件.该计算机流入流出的所有网络通信和

iptables(防火墙)的简单入门

进入图形化界面的防火墙命令 system-config-firewall 查看防火墙配置 vi /etc/sysconfig/iptables 1.iptables的组成结构 iptables将防火墙的功能分成多个表(tables) filter:用于一般的数据包过滤 NAT:Network Address Translation/网络地址转换 tables又包含多个链(chains),例如包过滤表中就包含了下面三个链: 1)INPUT //在此链中可添加对进来的数据包过滤的规则 2)OUTPU

iptables(防火墙)与netfilter

iptables(防火墙)与netfilter ================================================= 推荐博客: http://www.360doc.com/content/11/0506/09/706976_114731108.shtml# http://drops.wooyun.org/tips/1424 netfilter/iptables 简介: (1)IP数据包过滤系统由 netfilter 和 iptables 两个组件构成. (2)ne

写了个Linux包过滤防火墙

花几天写了个so easy的Linux包过滤防火墙,估计实际意义不是很大.防火墙包括用户态执行程序和内核模块,内核模块完全可以用iptable代替.由于在编写的过程一开始写的是内核模块所以就直接用上来. 代码结构如下: .├── kernelspace│   ├── Makefile│   ├── Makefile_netlink│   ├── modules.order│   ├── Module.symvers│   ├── netfilter.c│   ├── netfilter.h│  

Linux内核--基于Netfilter的内核级包过滤防火墙实现

测试内核版本:Linux Kernel 2.6.35----Linux Kernel 3.2.1 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7572382 更多请查看专栏http://blog.csdn.net/column/details/linux-kernel-net.html 作者:闫明 知识基础:本防火墙的开发基于对Linux内核网络栈有个良好的概念,本人对网络栈的分析是基于早期版本(Linux 1.2.13),在

禁用firewalld, 启用iptables作为防火墙

CentOS 最小化安装后, 会自动安装好 Firewalld 作为防火墙, 如果想用 iptables作为防火墙的话, 可以进行如下设置: 一.  停止 firewalld 服务 [[email protected] ~]# systemctl stop firewalld.service 设置开机禁止启用 firewalld 服务 [[email protected] ~]# systemctl disable firewalld.service rm '/etc/systemd/syste

Linux命令:iptables网络防火墙

Linux命令:iptables 网络防火墙 一.iptables的发展: iptables的前身叫ipfirewall (内核1.x时代),这是一个作者从freeBSD上移植过来的,能够工作在内核当中的,对数据包进行检测的一款简易访问控制工具.但是ipfirewall工作功能极其有限(它需要将所有的规则都放进内核当中,这样规则才能够运行起来,而放进内核,这个做法一般是极其困难的).当内核发展到2.x系列的时候,软件更名为ipchains,它可以定义多条规则,将他们串起来,共同发挥作用,而现在,

iptables 主机防火墙

配置iptables 主机防火墙 iptables -F  #清空规则 iptables -X  #清空用户自定义链 iptables -Z  #清空计数器 第一步 配置允许SSH登录端口进入 iptables -nL iptables -A INPUT -p tcp -s 10.0.0.0/24 -j ACCEPT  #这两条任意一条就行了. iptables -A INPUT -p tcp --dport 52113 -j ACCEPT 第二步 设置允许本机回环端口的通信规则 iptable

iptables、防火墙配置、NAT端口映射

一,配置一个filter表放火墙 (1)查看本机关于IPTABLES的设置情况 [[email protected] ~]# iptables -L -n Chain INPUT (policy ACCEPT) target       prot opt source                 destination Chain FORWARD (policy ACCEPT) target       prot opt source                 destination