CentOS查看目录的剩余空间大小
两个命令df 、du结合比较直观 df -h 查看整台服务器的硬盘使用情况 cd / 进入根目录 du -sh * 查看每个文件夹的大小 du-lh--max-depth=1:查看当前目录下一级子文件和子目录占用的磁盘容量。 这样的组合可以快速定位大文件和分区满了
iptables [-t table] [subcommand] chain [rulenum] [options...] [match] [target]
iptables [-t 表名] <-A|-I|-D|-R> 链名 [规则编号][-i|o 网卡名称][-p 协议类型][-s 源ip地址][源子网][--sport 源端口号][-d 目标ip地址|目标子网][--dport 目标端口号][-j 处理动作]
filter:一般的过滤功能,包含input,forward,output。默认选项
nat:用于地址转换、映射、端口映射等,包含prerouting,postrouting
mangle:用于对特定数据包的修改,包含prerouting,output,forward,input,postrouting
raw:一般是为了不再让iptables做数据包的连接跟踪处理,从而提供性能,包含prerouting,output
-N :new, 自定义一条新的规则链
-X :delete ,删除自定义的空的规则链
-P :Policy ,设置默认策略;对filter 表中的链而言,其默认策略有:ACCEPT :接受,DROP :丢弃
-E :重命名自定义链;引用计数不为0 的自定义链不能够被重命名,也不能被删除
-L :list, 列出指定鏈上的所有规则,本选项须置后
-n :numberic ,以数字格式显示地址和端口号
-v :verbose ,详细信息
-vv:更详细
-x :exactly ,显示计数器结果的精确值, 而非单位转换后的易读值
--line-numbers :显示规则的序号
-S :selected, 以iptables-save命令格式显示链上规则
常用组合:
--vnL
--vvnxL --line-numbers
-A :append,追加
-I :insert,插入,要指明插入的规则编号,默认为第一条。
-D :delete,删除。(1)指明规则序号,(2)指明规则本身
-R :replace ,替换指定链上的指定规则编号
-F :flush ,清空指定的规则链
-Z :zero ,置零
iptables 的每条规则都有两个计数器
(1)匹配到的报文的个数
(2)匹配到的所有报文的大小之和
INPUT:通过路由表判断后目的地是本机,然后进入本机内部资源
OUTPUT:有本机产生的数据向外部转发
FORWARD:通过路由表判断后目的地不是本机,然后通过路由转发到其他地方
PREROUTING:流入的数据包进入路由表之前
POSTROUTING:传出的数据包到达网卡出口之前
基本:通用的,parameters
扩展:需加载模块,match extentions
无需加载模块,由iptables/netfilter 自行提供
[!] -s, --source address[/mask][,...] :源IP 地址或范围
[!] -d, --destination address[/mask][,...] :目标IP 地址或范围
[!] -p, --protocol protocol :指定协议,可使用数字如0(all),protocol: tcp, udp, icmp, icmpv6, udplite,esp, ah, sctp,mh or “all“ 参看:/etc/protocols
[!] -i, --in-interface name :报文流入的接口;只能应用于数据报文流入环节,只应用于 INPUT 、FORWARD 、PREROUTING 链
[!] -o, --out-interface name :报文流出的接口;只能应用于数据报文流出的环节,只应用于 FORWARD 、OUTPUT 、 POSTROUTING 链
需要加载扩展模块(/usr/lib64/xtables/*.so),方可生效,是对某一种功能的扩展,经由扩展模块引入的匹配机制。
查看帮助:man iptables-extensions
在使用-p 选项指明了特定的协议时,无需再用-m 选项指明扩展模块的扩展机制,不需要手动加载扩展模块。
-p做协议匹配,协议有:tcp,udp,icmp,icmpv6,ah,esp,sctp,mh,all
[!] --source-port, --sport port[:port] :匹配报文tcp首部源端口,可为端口范围
[!] --destination-port,--dport port[:port] :匹配报文目标端口,可为范围
[!] --tcp-flags mask comp:mask需检查的标志位列表,用逗号分隔,如 SYN,ACK,FIN,RST,PSH,URG,ALL,NONE.comp在mask列表中必须为1的标志位列表,无指定则必须为0,用逗号分割
[!] --syn :用于匹配第一次握手。相当于:--tcp-flags SYN,ACK,FIN,RST,SYN
[!] --source-port, --sport port[:port] :匹配报文udp首部的源端口;可以是端口范围
[!] --destination-port,--dport port[:port] :匹配报文udp首部的目标端口;可以是端口范围
ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。)
-m icmp:专有选项
[!] --icmp-type {type[/code]|typename}:type/code为 0/0 echo-reply表示icmp 应答,type/code为8/0 echo-request表示icmp 请求
额外附加的更多的匹配规则,功能性扩展
必须使用-m 选项指明要调用的扩展模块的扩展机制,要手动加载扩展模块,即[-m matchname [per-match-options]
-m 模块名称
每个模块会引入新的匹配机制
可以通过rpm -ql iptables 来获得那些模块可用,模块是以.so结尾的。
使用帮助:
man iptables (centos6)
man iptables-extensions(centos7)
以离散方式定义多端口匹配, 最多指定15 个端口
[!] --source-ports,--sports port[,port|,port:port]...:指定多个源端口
[!] --destination-ports,--dports port[,port|,port:port]...:指定多个目标端口
[!] --ports port[,port|,port:port]...:多个非连续的源或目标端口
示例:
iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.10 -p tcp -m multiport --dports 20:22,80 -j ACCEPT
指明连续的(但一般不是整个网络)ip 地址范围
[!] --src-range from[-to]:源IP 地址范围
[!] --dst-range from[-to]:目标IP 地址范围
示例:
iptables -A INPUT -d 172.16.100.10 -p tcp --dport 80 -m iprange --src-range 172.16.100.5-172.16.100.10 -j DROP
指明源MAC 地址
适用于:PREROUTING, FORWARD,INPUT chains
[!] --mac-source XX:XX:XX:XX:XX:XX
示例:
iptables -A INPUT -s 172.16.0.100 -m mac --mac-source 00:50:56:12:34:56 -j ACCEPT
iptables -A INPUT -s 172.16.0.100 -j REJECT
对报文中的应用层数据做字符串模式匹配检测
--algo {bm|kmp} :字符串匹配检测算法,bm :Boyer-Moore,kmp :Knuth-Pratt-Morris
--from offset :开始偏移
--to offset :结束偏移
[!] --string pattern :要检测的字符串模式
[!] --hex-string pattern :要检测字符串模式,16 进制格式
示例:
iptables -A OUTPUT -s 172.16.100.10 -d 0/0 -p tcp --sport 80 -m string --algo bm --string “google" -j REJECT
根据将报文到达的时间与指定的时间范围进行匹配
--datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]]:开始日期
--datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]:停止日期
--timestart hh:mm[:ss]:开始时间
--timestop hh:mm[:ss]:停止时间
[!] --monthdays day[,day...]:每个月的几号
[!] --weekdays day[,day...]:星期几
--kerneltz :内核时区,不建议使用,CentOS7 系统默认为UTC
注意:centos6 不支持kerneltz,--localtz 指定本地时区( 默认)
示例:
iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.10 -p tcp --dport 80 -m time --timestart 14:30 --timestop 18:30 --weekdays Sat,Sun --kerneltz -j DROP
根据每客户端IP 做并发连接数数量限制,即每个客户端最多可同时发起的连接数量,通常分别与默认的拒绝或允许策略配合使用,可防止CC(Challenge Collapsar 挑战黑洞) 攻击
--connlimit-upto n :匹配,限定并发连接数的上限
--connlimit-above n :匹配,限定并发连接数的下限
示例:
iptables -A INPUT -d 172.16.100.10 -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT
基于收发报文的速率做匹配,使用令牌桶过滤器
--limit rate[/second|/minute|/hour|/day]:数率限定
--limit-burst number:突发数率限定
示例:
iptables -I INPUT -d 172.16.100.10 -p icmp --icmp-type 8 -m limit --limit 3/minute --limit-burst 5 -j ACCEPT
iptables -I INPUT 2 -p icmp -j REJECT
状态检测扩展,根据“连接追踪机制”去检查连接的状态,较耗资源。
追踪本机上的请求和响应之间的关系,状态有如下几种:
NEW :新发出请求;连接追踪信息库中不存在此连接的相关信息条目,因此,将其识别为第一次发出的请求
ESTABLISHED :NEW 状态之后,连接追踪信息库中为其建立的条目失效之前期间内所进行的通信状态
RELATED :新发起的但与已有连接相关联的连接,如:ftp 协议中的数据连接与命令连接之间的关系
INVALID :无效的连接,如flag 标记不正确
UNTRACKED :未进行追踪的连接,如raw
[!] --state:state就是NEW等状态
示例:
iptables -A INPUT -d 172.16.100.10 -p tcp -m multiport --dports 22,80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -s 172.16.100.10 -p tcp -m multiport --sports 22,80 -m state --state ESTABLISHED -j ACCEPT
1>
以上连接追踪功能内核会在内存中开辟一段专用的空间用于存储连接的状态等,由于此段内存空间是有限的,因此就必须对连接追踪功能进行一些调整限制。
有关的内核参数由以下提供:
已经追踪到的并记录下来的连接信息库
/proc/net/nf_conntrack
调整连接追踪功能所能够容纳的最大连接数量
/proc/sys/net/nf_conntrack_max
不同的协议的连接追踪时长
/proc/sys/net/netfilter/
注意:CentOS7 需要加载模块: modprobe nf_conntrack
2>
iptables 的链接跟踪表最大容量为/proc/sys/net/nf_conntrack_max ,各种状态的超时链接会从表中删除;当模板满载时,后续连接可能会超时
解决方法两个:
(1) 加大nf_conntrack_max 值
vi /etc/sysctl.conf
net.nf_conntrack_max = 393216
net.netfilter.nf_conntrack_max = 393216
(2) 降低 nf_conntrack timeout 时间
vi /etc/sysctl.conf
net.netfilter.nf_conntrack_tcp_timeout_established = 300
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
iptables -t nat -L -n
3>
开放被动模式的ftp服务
(1)装载ftp 连接追踪的专用模块:
跟踪模块路径:/lib/modules/kernelversion/kernel/net/netfilter
vim /etc/sysconfig/iptables-config 配置文件
IPTABLES_MODULES=" nf_conntrack_ftp "
modproble nf_conntrack_ftp
(2)放行请求报文:
命令连接:NEW, ESTABLISHED
数据连接:RELATED, ESTABLISHED
iptables –I INPUT -d LocalIP -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -d LocalIP -p tcp --dport 21 -m state --state NEW -j ACCEPT
(3)放行响应报文:
iptables -I OUTPUT -s LocalIP -p tcp -m state --state ESTABLISHED -j ACCEPT
-j targetname [per-target-options]:跳转目标
简单:
ACCEPT :接受
DROP :丢弃
扩展:
REJECT :明确拒绝,默认
RETURN :返回调用链
REDIRECT :端口重定向
LOG :记录日志,dmesg
MARK :做防火墙标记
DNAT :目标地址转换
SNAT :源地址转换
MASQUERADE :地址伪装
...
自定义链:
LOG:非中断target, 本身不拒绝和允许, 放在拒绝和允许规则前并将日志记录在/var/log/messages 系统日志中
--log-level level:级别有emerg, alert, crit, error,warning, notice, info or debug
--log-prefix prefix:日志前缀,用于区别不同的日志,最多29个字符。
示例:
iptables -I INPUT -s 10.0.1.0/24 -p tcp -m multimport --dports 80,21,22,23 -m state --state NEW -j LOG --log-prefix "new connections:
微信关注我们
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。
Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。