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来实现。

针对容器网络隔离,关键在于定义适当规则,确保安全隔离的同时满足业务需求。

阅读剩余
THE END