运维学习之iptables防火墙基本设定
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维学习之iptables防火墙基本设定相关的知识,希望对你有一定的参考价值。
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防火墙基本设定的主要内容,如果未能解决你的问题,请参考以下文章