Linux系统IP访问控制全攻略:多种方案任你选

在Linux系统中,限制IP访问的解决方案主要有以下几种:

图片[1]_Linux系统IP访问控制全攻略:多种方案任你选_知途无界

一、使用Firewalld防火墙规则

Firewalld是Linux系统中一个动态的防火墙管理工具,支持防火墙区域(zones)的概念,并允许为不同的网络接口和服务定义不同的访问控制策略。

  1. 通过修改XML配置文件
    • 打开Firewalld的配置文件,通常位于/etc/firewalld/zones/目录下,例如public.xml
    • 在配置文件中添加规则,指定允许的源IP地址、目标端口和协议类型。例如,允许来自特定内部IP(如192.168.20.86/32)访问本服务器的MySQL服务(默认端口3306),可以添加如下规则:
<rule family="ipv4">
  <source address="192.168.20.86/32"/>
  <port protocol="tcp" port="3306"/>
  <accept/>
</rule>
  • 保存配置文件并重新加载Firewalld配置,使规则生效。
  1. 使用命令行直接添加规则
    • 使用firewall-cmd命令添加富规则(rich rules),指定源IP地址、区域和动作(接受或拒绝)。例如,添加一条规则允许来自192.168.20.86/32的IP访问public区域:
iptables -I INPUT -s 192.168.1.100 -j DROP
  • 使用firewall-cmd --reload命令重新加载防火墙配置,使规则生效。

二、使用iptables命令

Iptables是Linux系统中一个强大的网络包过滤系统,可以用来设置IP访问限制。

  1. 限制单个IP地址的访问
    • 使用iptables命令添加一条规则,指定要限制的IP地址和动作(DROP表示丢弃数据包)。例如,限制IP地址为192.168.1.100的访问:
iptables -I INPUT -s 192.168.1.0/24 -j DROP
  1. 限制IP段的访问
    • 使用类似的命令,但指定一个IP段而不是单个IP地址。例如,限制192.168.1.0/24网段的访问:
service iptables save
  1. 保存iptables规则
    • 为了在系统重启后保留iptables规则,可以将它们保存到配置文件中。例如,在CentOS系统中,可以将规则保存到/etc/sysconfig/iptables文件中:
service iptables save
  • 或者使用iptables-save命令将当前规则导出到一个文件中,然后在系统启动时通过iptables-restore命令恢复它们。

三、使用hosts.allow和hosts.deny文件

这两个文件是tcpd服务器的配置文件,用于控制外部IP对本机服务的访问。

  1. 编辑hosts.allow文件
    • 打开/etc/hosts.allow文件,并添加允许访问的规则。例如,允许来自192.168.1.0/24网段的IP访问sshd服务:
sshd: 192.168.1.0/24
  1. 编辑hosts.deny文件
    • 打开/etc/hosts.deny文件,并添加拒绝访问的规则。例如,拒绝所有其他IP访问sshd服务:
sshd: ALL
  1. 重启服务
    • 修改完hosts.allow和hosts.deny文件后,需要重启tcpd服务(通常由xinetd管理)以使更改生效。例如:
service xinetd restart
  • 请注意,不是所有服务都受tcp_wrappers(即hosts.allow和hosts.deny文件)的控制。只有那些明确调用了libwrap.so库的服务才会受到这些文件的影响。

四、其他方法

除了上述方法外,还可以通过编辑服务的配置文件(如sshd_config)来限制IP访问。例如,在sshd_config文件中添加AllowUsersDenyUsers指令来指定允许或拒绝访问的用户和IP地址组合。但是这种方法通常用于限制用户级别的访问而不是IP级别的访问。

综上所述,Linux系统中限制IP访问的方法有多种,可以根据具体需求和系统环境选择合适的方法进行操作。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞7 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容