Linux中iptables基础命令

发布时间:2019-06-12 20:21 编辑:西极电力网

查看连接追踪功能所能够容纳的最大连接数量:
--to-ports port[-port]:映射到某个端口上
## 此命令是把80的端口映射在8080上,虽然访问的是80,但正真提供服务的是8080

注意:添加规则时的考量点;


使用场景:让本地网络中的吴福气使用统一的地址想外提供服务,但隐藏了自己的真实地址
[root@linuxidc ~]# iptables -A INPUT -d 0/0 -s 10.0.1.2 -p tcp --sport 80 -j ACCEPT

请求:有外网主机发情,修改其目标地址,由管理员定义

CentOS 7.0关闭默认防火墙启用iptables防火墙 

[root@linuxidc ~]iptables -t nat -A POSTROUTING -s 0/0 -d 172.18.42.201 -j MASQUERADE

网络防火墙:工作范围是整个网络;网络防火墙中还可以包含主机防火墙
4表:filter、mangle、nat、raw
此时: syn必须为1

[root@linuxidc ~]#vim /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_time_wait
-E:重命名于未被引用的自定义链(引用计数为0,即references为0)

查看某表上的规则:
基本匹配:netfilter自带的匹配机制
由本机转发报文:报文流入-->prerouting-->forward-->postrouting-->postrouting
[root@linuxidc ~]# iptables -A INPUT -s 0/0 -d 10.0.1.2 -p tcp --dport 80 --tcp-flags SYN,ACK,FIN,RST SYN  -j ACCEPT
[!] --state state

(6)limit扩展:基于收发报文的速率做匹配;
缺点:如果连接模板超载,当有一个新的请求时,web网页会显示连接超时;同时conntrack所能够连接数量的最大值取决于/proc/sysnet/nf_conntrack_max的设定;已经追踪到的记录并记录在/prco/net/nf_conntrack文件中,但当模板满载时,后续的新连接可能会被超时,而连接超时的时长将会被删除;解决的办法有两个
[!] --dst-range from[-to]:目标IP地址;
INVALID:无法识别的连接(一般不会放行)
[root@linuxidc ~]#/sbin/sysctl -p      ##修改之后立即生效

type/code:

iptables [-t table] -R chain rulenum rule-specification
--limit-burst number
--timestart hh:mm[:ss]:起始时间
[!] --source-ports,--sports port[,port|,port:port]...:指定多个源端口;

处理动作:基本处理动作、扩展处理动作、自定义处理动作
iptables [-t table] -D chain rulenum

扩展匹配:经由扩展模块引入的匹配机制;-m  matchname
iptables [-t table] -I chain [rulenum] rule-specification
(4)不同类的规则,匹配范围大的放在前面
--log-prefix  prefix:说明报文的日志信息是由谁产生的

iptables [-t table] -P chain target

(7)state扩展(conntrack的子集):用于对报文的根据”连接追踪机制“去检查连接的状态(但是对服务的连接数量会有很大的影响)
RELATED:相关联的连接;如ftp协议中的数据连接与命令连接之间的关系;
主动:

raw:在限定的时间范围内,关闭在nat表上的启用的连接追踪机制;对应的链为:output、prerouting
-X:删除一条自定义链(删除时要确保链下没有规则)
[!] --tcp-flags  mask comp:检查报文中mask指明的tcp标志位,而要这些标志位comp必须为1
(5)connlimit扩展:根据每客户端IP做并发连接数数量匹配;即每客户端最大可同时发起的连接数量
[root@linuxidc ~]#iptables -A INPUT  -d 172.18.42.200 -p tcp -dport 80 -m iprange --src-range 172.18.42.1-172.18.42.100 -j ACCEPT
[!] -p{tcp|udp|icmp}:限制协议;指明用哪一种协议


kmp:Knuth-Pratt-Morris
软件防火墙:iptables

[!] --destination-ports,--dports port[,port|,port:port]...:指定多个目标端口;
当源地址为动态获取的地址时,MASQUERADE会自动判断要转换为的地址
[!] --destination-port,--dport  port [:port]:匹配报文中的tcp首部的目标端口;可以是端口范围

udp:

[root@linuxidc ~]#iptables -A INPUT  -m state --state ESTABLISHED -j ACCEPT

(1)multiport扩展:以离散方式定义多端口匹配;最多指定15个端口;
(2)REDIRECT:端口重定向(之后在报文流入本机前才有用:prerouting)

iptables [-t table] -E old-chain-name new-chain-name

mangle:主要功能是拆解报文、做出修改、重新封装;对应的链为:prerouting、input、output、forward、postrouting
[root@linuxidc ~]#iptables  -A  OUTPUT -s  172.18.42.200  -d 172.18.0.0/16  -p  tcp  -j  ACCEPT

[!] --src-range from[-to]:源IP地址;
-N:新增一条自定义链
匹配条件:基本匹配、扩展匹配
--algo {bm|kmp}:字符串匹配检测算法;
[root@linuxidc  ~]#iptables -A OUTPUT -s 172.18.42.200 -p tcp --sport 21 -m state --state NEW -j ACCEPT

iptables的相关命令: 

[root@linuxidc ~]#iptables -A INPUT -s 0/0 -d 172.18.42.200 -p tcp -dport 80 -m limit --limit 20/second --limit-burst 5 -j ACCEPT

连接模板:占用内存空间中的一段空间(内核空间)

iptables [-t table] {-A|-C|-D} chain rule-specification

iptables [-t table] -S [chain [rulenum]]

修改IP报文中的源IP地址
隐式扩展:           

--datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]:结束日期时间
[root@linuxidc ~]#iptables  -A OUTPUT -s 172.18.42.200 -d 0/0 -p tcp -m multiport --sports 80,22 -A ACCEPT

--to-destination  [ipaddr[-ipaddr]] [:port[-port]]
(6)设置默认策略

(2)报文流经的位置;判断添加至那个链上
实现对链管理:管理一整条链
##真正提供服务的是172.18.42.202的8080端口

(1)LOG:匹配报文中的日志功能
修改IP报文中的目标IP

实现对规则管理:管理链上的某条规则
[!]--monthdays day[,day...]:匹配1-12月中的某些天


-D:删除某条规则

iptables的规则:根据规则匹配条件尝试匹配检查报文,对成功匹配的报文做出相应的处理
[root@linuxidc  ~]#modprobe nf_conntrack_ftp  ##内核加载nf_conntarck_ftp模块
-v:显示详细信息
[root@linuxidc ~]# vim /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_close_wait

-F:清空所有的规则
注意:报文是由本机处理,但是是否转发是由路由来决定的;在报文流入本机之后,路由1会判断报文的目标地址是否为本机,如果是,则流入input;如果不是,则流入forwrad,在报文离开本机之前路由2会判断报文经由那个接口送往下一个网关(下一跳),同时在转发之前,要确保转发功能是开启的;1表示开启,0表示关闭:
[root@linuxidc ~]# vim /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_fin_wait
0/8:表示请求
-n:以数字格式显示地址个端口

更多iptables相关彩票平台app下载教程见以下内容

主机防火墙:工作范围是单个主机

[!] --hex-string pattern:要检测的字符串模式(16进制格式);
--datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]]:起始日期时间

tcp:隐含指明了“-m  tcp",有专用选项:
nat:主要功能是网络地址转换;对应的链为:prerouting、postrouting、output
[!] -i, --in-interface name:限制报文流入的接口(只能用于prerouting、input、forward这三个链)
[root@linuxidc ~]iptables -A FORWARD -s 0/0 -d172.18.42.200 -p tcp -m multiport --dports 80,21,23,22 -m state -state NEW -j LOG --log-prefix "(linuxidc's log)"

[root@linuxidc ~]iptables -t nat -A POSTROUTING -s 172.18.42.200 -d 172.18.42.201 -p tcp --dport 80 -j SNAT --to-source 172.18.42.202
[root@linuxidc ~]#iptables  -A INPUT  -s 0/0 -d 172.18.42.200 -p tcp -m multiport --dports 80,22 -j ACCEPT

保存编写好的规则并开机启动
[!] -d, --destination address[/mask][,...]:目标地址匹配
[!] --string pattern:要检测的字符串模式;
[root@linuxidc ~]#iptables  -A INPUT  -s 0/0 -d 172.18.42.200 -p icmp --icmp-type 8 -j ACCEPT


[root@linuxidc ~]#iptables  -A OUTPUT -s 172.18.42.200 -d 0/0 -p icmp --icmp-type 0 -j ACCEPT

例如:--tcp-flags  syn,fin,ack,rst  syn
##请求80端口的是172.18.42.202主机,但正在请求的却是172.18.42.200主机

[root@linuxidc ~]iptables -t nat -A PREROUTING -d 172.18.42.200 -p tcp 80 -j REDIRECT --to-ports 172.18.42.201:8080
组成部分:匹配条件、处理动作


filter:主要功能是过滤;对应的链为:input、output、forward
[!] -s, --source address[/mask][,...]:原地址匹配(!s是取反)
(5)将那些可由一条规则描述的多个规则合并为一个
[root@linuxidc ~]#iptables  -A  INPUT  -s  172.18.0.0/18  -d 172.18.42.200  -p  tcp  -j  ACCEPT
响应:修改目标IP,由nat自动根据会话表中追踪机制实现相应的修改


rule-specification = [matches...] [ -j target]

[root@linuxidc ~]#service  iptables  restart  ##会自动从系统默认的保存路径中重载规则

[root@linuxidc ~]iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
硬件防火墙:NetScreen、CheckPoint
--kerneltz:使用内核上的时区,而非默认的UTC;
[!] --icmp-type  {type[/code][typename]
使用场景:本地网络中的主机可使用统一地址与外部主机通信,从而实现地址伪装
-x:显示计数器的精确值

匹配条件:
[root@linuxidc  ~]#iptables  -A OUTPUT  -s 172.18.42.200 -d 0/0 -p tcp -sport 80 -m state --state NEW -j ACCEPT

(1)加大nf_conntrack_max的值
--limit rate[/second|/minute|/hour|/day]
隐式扩展:无需指明,可以不适用-m选项专门加载响应模块;前提要使用-p选项可匹配何种协议


同一链上的不同表的应用优先级:raw、mangle、nat、filter

--log-level  level:(emerg, alert, crit, error, warning, notice,info or debug.)

echo  Num  >  /proc/sys/net/nf_conntrack_max
(4)DNAT(远程主机请求本地服务器):目标地址转换;发生在prerouting

Linux中iptables基础命令

[root@linuxidc ~]#chkconfig  iptables on  ##设置为当前规则可开机启动

共3页:

TAG: seo找工作 临沂seo公司 潮州seo 天津seo关键词彩票平台app下载优化 seo推广人员 seo彩票平台app下载优化广告 标题seo彩票平台app下载优化 seo彩票平台app下载优化推广 seo pdf 西安seo技术 seo风向标 上饶seo seo友情链接 seo视频下载 昆明seo公司 彻底seo 赣州seo 惠州狼雨seo seo彩票平台app下载培训郑州 网络公司seo

上一篇:一周新闻热点回顾(2016. 11.6~12)2016第45期(7) 下一篇:南方网讯(记者陈伟峰)9月8日

相关阅读

精彩推荐