码迷,mamicode.com
首页 > 其他好文 > 详细

运维学习之iptables防火墙基本设定

时间:2017-08-19 23:29:51      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:linux

iptables

一、简介

IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。

虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。

netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。

二、安装iptables服务

技术分享

技术分享

三、参数用法解释与示例

iptable 

-t ##指定表名称 

-n ##不作解析

-L ##列出指定表中的策略

-A ##增加策略

-p ##网络协议

--dport ##端口

-s ##数据来源

-j ##动作

ACCEPT ##允许

REJECT  ##拒绝

DROP ##丢弃

-N ##增加链

-E ##修改链名称

-X ##删除链

-D ##删除指定策略

-I ##插入

-R ##修改策略

-P ##修改默认策略

iptables  -t filter -nL #查看filter表中的策略

iptable  -F #刷掉filter表中的所有策略,当没有用-t指定表名称时默认时filter

service iptables save #保存当前策略

进行IP解析

技术分享

不进行IP解析

技术分享

刷掉filter表中的策略,不加-t默认为filter表,保存当前策略

技术分享

变为空

技术分享

iptables -A INPUT -i lo -j ACCEPT #允许lo

iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##允许访问22端口

允许回环接口,把默认策略改为丢弃所有数据包,无法正常访问http

技术分享

技术分享

更改为通过所有,可以正常访问

技术分享

技术分享

拒绝所有主机来源

技术分享

iptables -A INPUT -s 172.25.254.250 -j ACCEPT ##允许250主机访问本机所有端口

iptables -A INPUT -j REJECT ##拒绝所有主机的数据来源

iptables -N redhat ##增加链redhat

iptables -E redhat westos ##改变链名称

iptables -X westos ##删除westos链

iptable -D INPUT 2 ##删除INPUT链中的第二条策略

iptables -I INPUT  -p tcp --dport 80  -j REJECT ##插入策略到INPUT中的第一条

iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT ##修改第一条策略

iptable -P INPUT DROP ##把INPUT表中的默认策略改为drop

允许访问22端口

技术分享

删除INPUT链中的第二三条

技术分享

在第三条的位置插入允许访问80端口

技术分享

第一条插入26可以访问80端口

技术分享

不能连接126

技术分享

增加链westos

技术分享

修改westos链名称为redhat

技术分享

删除Redhat链

技术分享

四、数据包状态策略

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

iptables -A INPUT -i lo -m state --state NEW -j ACCEPT 

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT

iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT

iptables -A INPUT -j REJECT 

技术分享

技术分享

策略第一次通过后状态变为RELATED或ESTABLISHED,减缓访问压力

五、vsftpd在iptables开启下的配置

ftp主动模式会随机打开大于1024的端口,开启防火墙后会被禁止,无法正常使用

技术分享

vsftpd配置文件中修改端口为7000

技术分享

添加iptables允许通过7000端口策略

技术分享

可以登录ftp

技术分享

六、iptables伪装和端口装换

sysctl -a | grep forward

echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf

sysctl -p

iptables -t nat -A PREROUTING  -i eth1 -j DNAT --to-dest 172.25.0.11

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.100

客户机修改IP为172.25.26.226,添加网关

技术分享

刷掉iptables现有的策略,保存策略

技术分享

设置从客户端从服务端eth0出去的数据伪装成源数据为172.25.254.126

技术分享

测试,暂时未连通

技术分享

查看网络功能表

技术分享

启动内核路由转发功能

技术分享

技术分享

测试,可以连通

技术分享

客户端连接真机,显示登陆用户为www.westos.com,查看hosts本地解析,知其为服务端的主机名

技术分享

设置将真机从服务端eth0进去的数据伪装成源数据为172.25.26.226

技术分享

真机连接服务端,显示IP为172.25.26.226

技术分享


运维学习之iptables防火墙基本设定

标签:linux

原文地址:http://13132406.blog.51cto.com/13122406/1957703

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!