Linux系统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 或更高版本,否则需要下载该工具并安装使用它
这里写图片描述

  1. 安装及环境配置
1 yum install iptables-service.x86_64 -y    ##下载安装
2 systemctl stop firewalld                  ##停止firewall
-->systemctl disable firewalld              ##设置开机不启动
-->systemctl mask firewalld.service         ##冻结firewal
3 systemctl start iptables.service          ##开启iptables服务
-->systemctl enable iptables.service        ##设置iptables服务开机启动

安装iptables
这里写图片描述

关闭firewalld,设置开机不启动,并冻结
这里写图片描述

开启iptables,设置开机启动
这里写图片描述
2 相关命令

iptable 
    -t      ##指定表名称 
    -n      ##不作解析
    -L      ##列出指定表中的策略
    -A      ##增加策略
    -p      ##网络协议
    --dport ##端口
    -s      ##数据来源
    -j      ##动作
    ACCEPT  ##允许
    REJECT  ##拒绝
    DROP    ##丢弃
    -N      ##增加链
    -E      ##修改链名称
    -X      ##删除链
    -D      ##删除指定策略
    -I      ##插入
    -R      ##修改策略
    -P      ##修改默认策略
1 iptables -t filter -nL                     ##查看filter表中的策略        
2 iptables -F                               
          ##刷掉filter表中的所有策略,当没有用-t指定表名称时默认时filter
3 service iptables save                      ##保存当前的策略,如果没有保存,重启服务会回到原来的策略

4 iptables -p INPUT ACCEPT | DROP            ##把INPUT表中的策略改为ACCEPT允许或者DROP关闭

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

6 ptables -I INPUT 1 -i lo -j ACCEPT         ##允许lo
7 iptables -I INPUT 2 -s 172.25.254. -p tcp --dport 22 -j ACCEPT 
                                             ##允许27主机访问22端口
8 iptables -I INPUT 3 -p tcp --dport 80 -j ACCEPT ##插入策略到第三条

查看filter表中的策略
这里写图片描述

刷掉filter表中的所有策略(临时生效,重启服务会失效)
这里写图片描述

永久刷掉,并保存当前策略
这里写图片描述

接收所有主机访问
这里写图片描述

拒绝所有主机访问
这里写图片描述

测试
这里写图片描述

丢弃所有
这里写图片描述

拒绝所有,lftp,httpd都用不了
这里写图片描述

允许lo
这里写图片描述

接收22端口,ftp可以链接
这里写图片描述

接收80端口,可以访问apache
这里写图片描述

删除INPUT表第三条链
这里写图片描述

自定义增加链
 1 iptables -D INPUT 3       ##删除INPUT链第三条策略
 2 iptables -D INPUT 1       ##删除INPUT链第一条策略
 3 iptables -D INPUT 2       ##删除INPUT链第二条策略
 4 iptables -t filter -nL    ##列出filter表中的策略

 5 iptables -N HELLO         ##增加HELLO链

 6 iptables -E HELLO NIHAO   ##改变HELLO链名为NIHAO
 7 iptables -X NIHAO         
        ##删除NIHAO链,此命令只对自定义链起作用,对系统存在的链不起作用

删除INPUT链第一、二条策略
这里写图片描述

增加HELLO链
这里写图片描述

修改HELLO链名为NIHAO
这里写图片描述

删除NIHAO链,该命令只针对自定义链起作用
这里写图片描述

二、设定策略的端口


> 引用块内容
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

 cat /etc/services | grep dns    ##查看服务的端口

设置前,先刷掉所有的策略,设置端口后,并保存当前策略
这里写图片描述

查看当前策略
这里写图片描述

以ftp为例,比较特殊有主动和被动端口
1  systemctl restart vsftpd           ##重启vsftpd服务               
2  service iptables save              ##保存前策略
-->iptables -nL                       ##列出当前策略

3 vim /etc/vsftpd/vsftpd.conf         ##编辑vsftpd配置文件
-->systemctl restart vsftpd.service   ##重启服务
4 iptables -A INPUT -m state --state NEW -p udp --dport 7000 -j ACCEPT                                  ##将1100端口策略写入
5 vim /etc/vsftpd/vsftpd.conf         ##编辑vsftpd配置文件
--> systemctl restart vsftpd.service  ##重启服务
6 iptables -A INPUT -m state --state NEW -p udp --dport 7000 -j ACCEPT                                  ##将7000端口策略写入
7 setenforce 0                        ##selinux设为警告模式
8 client测试

设置ftp配置文件中端口为1000
这里写图片描述

客户端连接lftp不成功
这里写图片描述

设置端口为7000
这里写图片描述

设置selinux为警告模式
这里写图片描述

将该端口写入策略
这里写图片描述

连接成功
这里写图片描述

注意:端口必须大于 4000,大于4000,固定在某一个值不安全

三、伪装数据包来源及目的地

1 sysctl -a | grep forward     ##查找并过滤sysctl服务中的forward
--> vim /etc/sysctl.conf       ##编辑sysctl配置文件
-->sysctl -p                   ##重新加载sysctl服务
2 iptables -F                  ##掉filter表中的所有策略
-->service iptables save       ##保存当前策略
3 iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.127     
                               ##讲数据包来源伪装成127主机
4 iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 172.25.27.227
                               ##将数据包目的地来源伪装成27.227主机

1环境配置

列出systl的foreard
这里写图片描述

2 编辑该文件并重新加载刷新
这里写图片描述

4 刷掉所有策略,并保存当前策略
这里写图片描述

2 数据来源伪装

从eth0出去的所有数据都是254.127的ip
这里写图片描述

测试:
用27.227的主机ssh连接254.27的主机
这里写图片描述

显示是254.127主机登陆的
这里写图片描述

3 目的地伪装

从eth0出去的所有数据都指向27.227的ip
这里写图片描述

测试:用27主机连接127主机,显示iP是227的
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值