如何在CentOS系统中实现IP和端口的限制?

在CentOS中,可以使用iptablesfirewalld来限制IP端口。使用iptables命令:iptables -A INPUT -p tcp --dport 80 -s 192.168.1.1 -j REJECT,这将拒绝来自IP地址192.168.1.1的TCP端口80的访问。

在CentOS中,限制IP访问指定端口可以通过配置防火墙和修改特定配置文件来实现,以下是详细步骤:

如何在CentOS系统中实现IP和端口的限制?

一、使用firewalld限制IP访问端口

1. 查看防火墙状态

需要查看当前防火墙的状态,确保其正在运行:

systemctl status firewalld

如果防火墙未运行,可以启动它并设置为开机自启:

systemctl start firewalld
systemctl enable firewalld

2. 开放或移除端口

假设要允许特定IP访问某个端口(例如9999):

添加端口9999到防火墙规则中
firewall-cmd --zone=public --add-port=9999/tcp --permanent
移除端口9999从防火墙规则中
firewall-cmd --zone=public --remove-port=9999/tcp --permanent

3. 限制特定IP访问端口

只允许特定IP访问某个端口,可以使用以下命令:

只允许192.168.1.100访问端口9999
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="9999" accept'
拒绝特定IP访问端口9999
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="9999" reject'

完成上述操作后,记得重新加载防火墙配置以使更改生效:

firewall-cmd --reload

二、使用iptables限制IP访问端口

1. 安装iptables

如何在CentOS系统中实现IP和端口的限制?

CentOS7默认没有安装iptables,可以手动安装:

yum install -y iptables-services

2. 配置iptables规则

假设要允许特定IP访问某个端口(例如6379),并拒绝其他所有IP的访问:

允许192.168.1.100访问6379端口
iptables -I INPUT -p tcp -s 192.168.1.100 --dport 6379 -j ACCEPT
拒绝其他所有IP访问6379端口
iptables -I INPUT -p tcp --dport 6379 -j REJECT

保存规则以确保重启后仍然有效:

service iptables save

三、通过配置文件限制IP访问SSH端口

1. 编辑hosts.allow文件

只允许特定IP地址或网段访问SSH服务:

vim /etc/hosts.allow

添加以下内容:

sshd:192.168.1.100 : allow
sshd:192.168.1.0/24 : allow

2. 编辑hosts.deny文件

拒绝所有其他IP地址访问SSH服务:

vim /etc/hosts.deny

添加以下内容:

如何在CentOS系统中实现IP和端口的限制?

sshd:ALL : deny

保存文件后,重启SSH服务使配置生效:

systemctl restart sshd
方法 命令 描述
检查防火墙状态systemctl status firewalld 查看防火墙是否运行
启动防火墙systemctl start firewalld 启动防火墙服务
设置防火墙开机自启systemctl enable firewalld 设置防火墙开机自启动
开放端口firewall-cmd --zone=public --add-port=[端口]/tcp --permanent 开放指定端口
移除端口firewall-cmd --zone=public --remove-port=[端口]/tcp --permanent 移除指定端口
限制特定IP访问端口firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="[IP]" port protocol="tcp" port="[端口]" accept' 允许特定IP访问指定端口
拒绝特定IP访问端口firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="[IP]" port protocol="tcp" port="[端口]" reject' 拒绝特定IP访问指定端口
安装iptablesyum install -y iptables-services 安装iptables服务
配置iptables规则iptables -I INPUT -p tcp -s [IP] --dport [端口] -j ACCEPT 配置iptables规则
保存iptables规则service iptables save 保存iptables规则
编辑hosts.allow文件vim /etc/hosts.allow 编辑hosts.allow文件
编辑hosts.deny文件vim /etc/hosts.deny 编辑hosts.deny文件
重启SSH服务systemctl restart sshd 重启SSH服务

五、相关问题与解答

问题1:如何在CentOS中使用firewalld限制特定IP访问多个端口?

答:可以使用firewall-cmd命令添加多个富规则来限制特定IP访问多个端口,允许特定IP访问端口80和443:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="80" accept'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="443" accept'
firewall-cmd --reload

问题2:如何更改CentOS中的默认SSH端口并通过防火墙限制访问?

答:更改SSH服务的默认端口(假设更改为2222),然后通过防火墙限制对该端口的访问,编辑/etc/ssh/sshd_config文件,将Port改为2222:

Port 2222

通过防火墙允许特定IP访问新端口:

firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="2222" accept'
firewall-cmd --reload

小伙伴们,上文介绍了“centos限制ip端口”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/42392.html<

(0)
运维的头像运维
上一篇2024-12-31 05:04
下一篇 2024-12-31 05:11

相关推荐

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注