【Firewall】服务器访问限制白名单

方法一、主机限制

[root@slave2 ~]# ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
[root@slave2 ~]# cat /etc/centos-release
CentOS Linux release 7.3.1611 (Core)

修改配置文件/etc/hosts.allow

#在配置文件末新增参数,具体IP按需调整
[root@slave1 opt]# vi /etc/hosts.allow
#允许单个IP访问
sshd:192.168.124.64:allow
#允许IP段访问
sshd:192.168.124.*:allow

修改配置文件/etc/hosts.deny

#在配置文件末新增参数
[root@slave1 opt]# vim /etc/hosts.deny
#拒绝除hosts.allow里指定IP之外的所有ssh访问
sshd:ALL

重启服务

#重启ssh服务
[root@slave1 opt]# systemctl restart sshd
#限制访问前的状态
#会有提示输入密码的选项
[root@slave2 ~]# ssh 192.168.124.82 -p 8017
root@192.168.124.82's password:
#限制访问后的状态:
#远程ssh端口依然是通的
[root@slave2 ~]# telnet 192.168.124.82 8017
Trying 192.168.124.82...
Connected to 192.168.124.82.
Escape character is '^]'.
^]
telnet> ^CConnection closed.
#但是无法通过ssh访问
[root@slave2 ~]# ssh 192.168.124.82 -p 8017
ssh_exchange_identification: read: Connection reset by peer

方法二、sshd_config限制

vi /etc/ssh/sshd_config
新增配置
#仅允许192.168.124.64主机通过root用户访问,AllowUsers root@ip1,ip2,
AllowUsers root@192.168.124.64
#重启sshd
systemctl restart sshd

#多用户情况格式
AllowUsers user1@ip1,ip2 user2@ip3,ip4
------------------------------------------------
拒绝指定用户进行登录(黑名单)# 拒绝 zhangsan、lisi 帐户通过 SSH 登录系统
DenyUsers   zhangsan lisi    #Linux系统账户        

方法三、防火墙限制

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.124.64/32" port protocol="tcp" port="8017" accept"
firewall-cmd --permanent --zone=public --remove-service=ssh
firewall-cmd --reload

firewall常用命令

开放防火墙端口

#开放防火墙端口
firewall-cmd --permanent --zone=public --add-port=7001-7004/tcp
firewall-cmd --permanent --zone=public --add-port=9740/tcp
#加载立即生效
firewall-cmd --reload
#查看当前开放端口
firewall-cmd --list-ports
#删除防火墙端口
firewall-cmd --permanent --zone=public --remove-port=9740/tcp 
–permanent代表永久设置
-reload 代表使用永久设置立马生效。
–zone代表设置的区域
不写就是默认区域。

允许指定ip的所有流量

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.124.64/32" accept" # 表示允许来自192.168.124.64的所有流量

允许指定ip的指定协议

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.124.64/32" protocol value="icmp" accept" # 允许192.168.124.64主机的icmp协议,即允许192.168.124.64主机ping

允许指定ip访问指定服务

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.124.64/32" service name="ssh" accept" # 允许192.168.124.64主机访问ssh服务

允许指定ip访问指定端口

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.124.64/32" port protocol="tcp" port="22" accept" # 允许192.168.124.64主机访问22端口

允许指定网段访问指定端口

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.1/24" port protocol="tcp" port="22" accept" # 允许192.168.0.x主机访问22端口

源自IP或子网的流量导向指定的区域

firewall-cmd --permanent --zone=public --add-source=192.168.0.0/24
firewall-cmd --permanent --zone=public --remove-source=192.168.0.0/24

禁止指定ip/网段,在上面各个命令中,将 accept 设置为 reject表示拒绝

防火墙的区域

查看所有的域:firewall-cmd --get-zones
查看active区域信息: firewall-cmd --get-active-zones
查看指定网卡所属区域: firewall-cmd --get-zone-of-interface=eno1
查看默认区域:firewall-cmd --get-default-zone
修改默认区域:firewall-cmd --set-default-zone=internal
查看特定区域的所有配置:firewall-cmd --zone=public --list-all
添加ssh服务:firewall-cmd --permanent --zone=public --add-service=ssh
删除ssh服务:firewall-cmd --permanent --zone=public --remove-service=ssh
允许icmp协议:firewall-cmd --permanent --zone=public --add-protocol=icmp
取消icmp协议:firewall-cmd --permanent --zone=public --remove-protocol=icmp

Linux系统的防火墙是一种网络安全策略工具,它通过控制进出主机的数据包流量来保护系统免受攻击。其中,“白名单”防火墙策略是指只允许特定IP地址、端口或服务的访问,而对于其他请求则予以拒绝。 ### Linux系统防火墙白名单详解 #### 1. **配置原理** - 白名单防火墙的核心思想是在网络接入点设置规则,只允许已知来源(即白名单内的IP地址)发起连接尝试,并对所有未列出的来源自动阻断。 - 这种方法相对于黑名单更为安全,因为它默认假设一切未知的流量都是潜在威胁,并主动阻止它们。 #### 2. **常见应用** - 系统管理员可以使用白名单限制外部服务器对内部系统的访问,尤其是当内部网络需要对外部提供有限的服务时,如Web服务器、数据库服务等。 - 对于关键基础设施或敏感数据处理环境,采用严格的白名单策略能显著提高安全性,减少非预期的外部访问风险。 #### 3. **实现方式** - **iptables**: 这是一个广泛使用的Linux命令行防火墙工具。通过iptables规则,可以配置白名单策略。例如,允许特定IP地址的TCP连接: ```bash sudo iptables -A INPUT -s [白名单IP] -p tcp --dport [目标端口] -j ACCEPT ``` - **Firewalld**: 作为iptables的一个图形界面替代品,firewalld提供更易于管理的防火墙规则。创建自定义区域并添加白名单规则: ```bash sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --reload ``` 上述命令示例允许公共区域能访问HTTP服务,其中`[白名单IP]`需替换为你想要添加到白名单的具体IP。 #### 4. **注意事项** - 配置白名单时务必谨慎,因为一旦将错误的IP地址误认为“可信”,可能会导致新的安全漏洞。 - 定期更新和审核白名单列表,移除不再需要的或已知有问题的条目。 - 使用白名单的同时应考虑结合其他的网络安全措施,比如入侵检测系统(IDS)、入侵防御系统(IPS)等,构建多层次的安全防护体系。 --- **相关问题**: 1. **如何在Linux上使用iptables配置白名单防火墙规则?** 2. **在实际部署中,什么时候应该启用白名单防火墙策略?** 3. **白名单策略与黑名单策略相比,在实施过程中有哪些优势和劣势?**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值