linux iptables ip?linux关闭selinux命令
很多朋友对于linux iptables ip和linux关闭selinux命令不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
Linux防火墙iptables限制几个特定ip才能访问服务器。
linux下要使用iptables限制只有指定的ip才能访问本机则需要先设置一个默认的规则
iptables有默认的规则,它可以适用于所有的访问
因为只有指定或特定的ip地址才能访问本机
所以可以将默认的规则设置为所有访问全部阻止(当然这里需要注意下,如果你要设置的机器是在远端,比如vps则需要注意在设置默认规则的同时要将与该服务器链接的ip添加进白名单,否则在设置完默认阻止后你也无法访问这台服务器,也无法再进行操作了,我们可以使用分号;或者&&来在同一个命令行下来完成默认阻止和将自己的ip添加进白名单,假如你的ip地址为1.2.3.4则可以这样输入iptables-P INPUT DROP;iptables-A INPUT-s 1.2.3.4-p tcp-j ACCEPT,或者也可以指定一个端口)
设置默认规则后则可以添加白名单了
比如允许2.3.4.5访问则可以
iptables-A INPUT-s 2.3.4.5-p tcp-j ACCEPT
如果要限定的不是整个服务器而只是该服务器中的某个服务
比如web服务(一般端口在80,https在443)
则我们可以使用0.0.0.0/0来阻止所有的ip地址
比如
iptables-A INPUT-s 0.0.0.0/0-p tcp--dport 80-j DROP
以及
iptables-A INPUT-s 0.0.0.0/0-p tcp--dport 443-j DROP
来阻止所有访问web服务器的ip地址
然后再添加指定的ip到白名单
比如添加1.2.3.4,我们可以
iptables-A INPUT-s 1.2.3.4-p tcp--dport 80-j ACCEPT
如果我们允许某个网段下的所有ip都可以访问的话比如1.2.3.[0-255],我们可以
iptables-A INPUT-s 1.2.3.0/24-p tcp--dport-j ACCEPT
总之不管是阻止所有的服务还是只阻止指定的服务
我们可以先将默认的规则设置为所有ip都不可访问
然后再手动添加ip地址到白名单
linux下通过iptables只允许指定ip地址访问指定端口的设置方法
首先,清除所有预设置
复制代码代码如下:
iptables-F#清除预设表filter中的所有规则链的规则
iptables-X#清除预设表filter中使用者自定链中的规则其次,设置只允许指定ip地址访问指定端口
其次,设置只允许指定ip地址访问指定端口
复制代码代码如下:
iptables-A INPUT-s xxx.xxx.xxx.xxx-p tcp--dport 22-j ACCEPT
iptables-A OUTPUT-d xxx.xxx.xxx.xxx-p tcp--sport 22-j ACCEPT
iptables-A INPUT-s xxx.xxx.xxx.xxx-p tcp--dport 3306-j ACCEPT
iptables-A OUTPUT-d xxx.xxx.xxx.xxx-p tcp--sport 3306-j ACCEPT
上面这两条,请注意--dport为目标端口,当数据从外部进入服务器为目标端口;反之,数据从服务器出去则为数据源端口,使用--sport
同理,-s是指定源地址,-d是指定目标地址。
然后,关闭所有的端口
复制代码代码如下:
iptables-P INPUT DROP
iptables-P OUTPUT DROP
iptables-P FORWARD DROP
最后,保存当前规则
复制代码代码如下:
/etc/rc.d/init.d/iptables save
service iptables restart
这种iptables的规则设定适用于只充当MySQL服务器的管理和维护,外部地址不提供任何服务。
如果你希望yum可以运行的话,还需要添加以下内容,允许DNS请求的53端口,允许下载随机产生的高端口
复制代码代码如下:
iptables-A INPUT-m state--state RELATED,ESTABLISHED-j ACCEPT
iptables-A INPUT-p udp--sport 53-j ACCEPT
iptables-A OUTPUT-m state--state RELATED,ESTABLISHED-j ACCEPT
iptables-A OUTPUT-p udp--dport 53-j ACCEPT
iptables-A OUTPUT-p tcp--sport 10000:65535-j ACCEPT
/etc/rc.d/init.d/iptables save
service iptables restart
iptables限定访问ip段
本期课堂由谐云研发工程师郭浩源作为讲师,进行「iptables网络隔离原理」的内容分享。
01
iptables简介
iptables是Linux系统中用于管理网络数据包过滤的工具,它取代了早期的ipchains和ipfirewall,用于在网络协议栈的各个层级进行数据包过滤与处理。
网络协议栈的层次如下:
- Link Layer数据链路层:数据流向依据MAC寻址定位至对应网卡后进入网络层。
- Network Layer网络层:数据依据IP路由寻址寻找网卡,iptables/ipvs在此层生效。
- Protocol Layer传输层:依据传输协议寻对应应用。
- Application Layer应用层:拆包处理真实数据。
02
iptables链路规则
在iptables中,通过四表五链实现网络隔离与数据包处理:
- Raw表、Mangle表、Nat表、filter表、PREROUTING链、FORWARD链、INPUT链、OUTPUT链、POSTROUTING链。
处理动作包括:
- ACCEPT:允许数据包通过。
- DROP:直接丢弃数据包,不回应信息。
- REJECT:拒绝数据包通过,可能回应拒绝信息。
- ChainName:调用其他链路的名称。
03
iptables网络隔离
在配置iptables以实现网络隔离时,关键在于指定规则,阻止特定IP或IP段的数据包通过。
示例规则:
iptables-t filter-I INPUT-s 10.120.1.81-j DROP
iptables-t filter-I OUTPUT-d 10.120.1.81-j DROP
在容器网络需求中,每Pod拥有独立IP地址,所有容器共享同一网络命名空间,实现集群内直接IP访问与容器间无NAT的相互访问。
Service通过集群内部访问,外部请求需通过NodePort、LoadBalance或Ingress来实现。
针对容器网络隔离,关键在于定义适当规则,确保安全隔离的同时满足业务需求。