linux中的iptables服务
来源:互联网 发布:dian团队 知乎 编辑:程序博客网 时间:2024/06/15 08:52
netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
iptables采用“表”和“链”的分层结构,在linux中iptables主要有三张表五条链:
三张表即filter表、nat表、mangle表,分别用于实现包过滤,网络地址转换、包重构(修改)功能
filter表有三个链:INPUT、FORWARD、OUTPUT
作用:过滤数据包
Nat表有三个链:PREROUTING、POSTROUTING、OUTPUT
作用:用于网络地址转换(IP、端口)
Mangle表有五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改数据包的服务类型等
其中每条链的意思分别为:
INPUT链:进来的数据包应用此规则链中的策略
OUTPUT链:出去的数据包应用此规则链中的策略
FORWARD链:转发数据包时应用此规则链中的策略
PREROUTING链:对数据包作路由选择前应用此链中的规则
(记住!所有的数据包进来的时侯都先由这个链处理)
POSTROUTING链:对数据包作路由选择后应用此链中的规则
(所有的数据包出去的时侯都先由这个链处理)
管理表和链的命令格式如下:
iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]
说明:表名、链名用于指定 iptables命令所操作的表和链;命令选项用于指定管理iptables规则的方式(比如:插入、增加、删除、查看等;条件匹配用于指定对符合什么样 条件的数据包进行处理;目标动作或跳转用于指定数据包的处理方式(比如允许通过、拒绝、丢弃等)
处理包的三种方式:
ACCEPT:允许数据包通过
DROP:直接丢弃数据包,不给任何回应信息
REJECT: 拒绝数据包通过,会给数据发送端一个响应的信息
常用相关参数有:-A 在指定链的末尾添加一条新的策略
-D 删除指定链中的某一条策略,可以按规则序号和内容删除
-I 在指定链中插入一条新的策略,默认在第一行添加
-E 重命名用户定义的链,不改变链本身策略
-F 清空所有策略
-N 新建一条用户自己定义的链
-X 删除指定表中用户自定义创建的链(对默认链无效)
-P 设置指定链的默认策略
下面简单介绍一下一些iptables命令的使用:
1.如图,输入iptables -nL 可以看到filter表中的默认策略:
2.输入service iptables save 可将当前的策略自动保存到/etc/sysconfig/iptables目录下:
3.cat /etc/sysconfig/iptables 可以看到保存的策略:
4.iptables -F 可清除当前策略,再用iptables -nL查看已经没有策略了:
5.iptables -P INPUT DROP 可将INPUT链的默认策略修改为DROP:
6.iptables -P INPUT ACCEPT 将INPUT链的默认权限改为允许
然后添加INPUT链下的策略: iptables -A INPUT -p tcp --dport 22 -s 172.25.254.121 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
表示只允许ip为172.25.254.121的主机可以使用SSH远程登陆本机
ip为172.25.254.121的主机在输入ip172.25.254.221主机的root用户密码后可以登陆:
ip为172.25.254.88的主机无法使用ssh服务远程登陆ip为172.25.254.221的主机:
7.iptables -D INPUT 1 删除INPUT链中的第一条策略,可以看到第一条策略已经被删除:
8.iptables -N WESTOS 自定义添加一条新链WESTOS
iptables -X WESTOS 删除自定义添加的链WESTOS
网络地址转换和ip伪装功能的实现设定:
1.首先,给ip为172.25.254.221的主机添加一块网卡eth1,设定ip为172.25.21.221:
将之前ip为172.25.254.121的主机ip改为172.25.21.121,网关设置为172.25.21.221:
ip为172.25.254.88的主机不做更改
2.在双网卡主机上面写入iptables策略,如图所示:
POSTROUTING链下的策略表示:当ip为172.25.21.121的主机在使用ssh服务远程连接ip为172.25.254.88主机时,ip伪装为
172.25.254.221(ip172.25.254.88的主机看到的是ip172.25.254.221主机登陆痕迹):
PREROUTING链下的策略表示:当ip为172.25.254.88的主机使用ssh服务远程连接ip为172.25.254.221的主机时,被ip为172.25.254.221
的主机通过路由转换功能转到ip为172.25.21.121的主机上(ip172.25.254.88的主机虽然连接的是172.25.254.221,但实际看到是ip172.25.21.121):
然后编辑文件:vim /etc/sysctl.conf 输入下图字符,打开内核路由功能:
sysctl -p 将更改刷新:
3.测试:POSTROUTING链下的策略
ip为172.25.21.121的主机使用ssh服务成功连接172.25.254.88的主机
然后在ip为172.25.254.88的主机上查看登陆痕迹,看到的是172.25.254.221
说明ip伪装策略设置生效
接着测试PREROUTING链下的策略
ip172.25.254.88的主机使用ssh服务远程登陆ip172.25.254.221的主机,输入密码登陆成功后,看到的主机
ip为172.25.21.121,网络地址转换策略生效:
- linux中的iptables服务
- Linux系统iptables服务
- Linux中的防火墙--iptables
- linux服务配置之Iptables
- linux中的防火墙之iptables
- linux 防火墙(服务iptables和snortd)
- centos linux iptables 只开启 ssh 服务
- CentOS linux关闭iptables防火墙(Linux中的防火墙叫iptables)
- iptables服务
- linux中的防火墙管理(2)--iptables
- Linux iptables防火墙设置与NAT服务配置
- Linux中的日志服务
- linux中的日志服务
- linux中的vsftpd服务
- linux中的firewalld服务
- Linux中的FTP服务
- Linux中的ftp服务
- Linux中的ftp服务
- VS2010打开2013项目
- 刷CCF的算法题(第三天)
- edittext添加内容发生变化的监听
- [LeetCode]230. Kth Smallest Element in a BST
- Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
- linux中的iptables服务
- spring(四)之基于注解(Annotation-based)的配置
- java Proxy
- ubuntu下无/etc/syslog.conf
- Android 仿美团网,大众点评购买框悬浮效果之修改版
- hdu 2527 huffmancode
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- Python scrapy 安装与开发
- 欢迎使用CSDN-markdown编辑器