Linux系统iptables服务
来源:互联网 发布:火影忍者手办淘宝 编辑:程序博客网 时间:2024/06/01 10:51
一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 yum install iptables-service.x86_64 -y ##下载安装2 systemctl stop firewalld ##停止firewall-->systemctl disable firewalld ##设置开机不启动-->systemctl mask firewalld.service ##冻结firewal3 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指定表名称时默认时filter3 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 ##允许lo7 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 ACCEPTiptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPTiptables -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的
- Linux系统iptables服务
- linux中的iptables服务
- Linux系统之iptables
- linux系统之网络防火墙(firewalld服务和iptables服务)
- linux服务配置之Iptables
- Linux系统Iptables防火墙使用手册
- linux 防火墙(服务iptables和snortd)
- centos linux iptables 只开启 ssh 服务
- iptables服务
- linux实用资料(iptables,系统参数,NFS)
- Linux系统下iptables基本配置方法
- Linux系统下iptables基本配置方法
- linux系统iptables 的简单设置
- 把iptables移植到嵌入式Linux系统
- 新装的linux系统找不到iptables文件
- linux的系统服务
- Linux系统服务
- 有关linux系统服务
- 本地项目上传github,拉取git项目到本地文件夹
- 2017.8.17
- javase-jdk下载、安装、配置
- JWT的学习:JSON Web Token
- MyBatis的XML文件(二)--参数(Parameters)
- Linux系统iptables服务
- uva10692-指数循环节
- Java——集合框架之Set&HashSet,HashMap,泛型,compareTo
- (16)2017.8.17-java基础中期考核复习(2)
- 后缀表达式转中缀表达式
- spring boot学习系列:spring boot的单元测试实战
- Codeforces Round #387 (Div. 2) C. Servers
- MyBatis的XML文件(三)--结果集(ResultMap)--简单
- AXURE RP8实战手册 网站和APP原型制作案例精粹pdf