欢迎来到我的个人博客,有Python技术,自媒体,创业,APP开发问题随时讨论交流

Linux中搭建基础防火墙规则保障系统安全

linux sitin 2周前 (05-28) 56次浏览 已收录 0个评论
Linux中搭建基础防火墙规则保障系统安全Linux中搭建基础防火墙规则保障系统安全

在Linux系统中,搭建强固的防火墙是确保系统安全的重要步骤。通过合理配置防火墙规则,可以有效防范网络攻击、限制不必要的访问,并保障系统的稳定性。本文将详细介绍基础防火墙配置的步骤和示例代码,以帮助管理员提升系统的安全性。

使用firewall-cmd

firewall-cmd 是基于 firewalld 的命令行工具,用于配置 iptables 防火墙规则。

# 示例代码:启用 firewalld 服务
sudo systemctl start firewalld
sudo systemctl enable firewalld

查看防火墙状态和已开放端口

# 示例代码:查看防火墙状态
sudo firewall-cmd --state
# 示例代码:查看已开放端口
sudo firewall-cmd --list-ports

开放和关闭端口

# 示例代码:开放端口
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload
# 示例代码:关闭端口
sudo firewall-cmd --remove-port=80/tcp --permanent
sudo firewall-cmd --reload

允许和拒绝特定IP地址

# 示例代码:允许特定IP访问
sudo firewall-cmd --add-source=192.168.1.2 --permanent
sudo firewall-cmd --reload
# 示例代码:拒绝特定IP访问
sudo firewall-cmd --add-source=192.168.1.3 --permanent --zone=drop
sudo firewall-cmd --reload

配置端口转发

# 示例代码:配置端口转发
sudo firewall-cmd --add-forward-port=80:internal_ip:80 --permanent
sudo firewall-cmd --reload

使用服务定义规则

# 示例代码:开放SSH服务
sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

配置防火墙日志

# 示例代码:开启防火墙日志
sudo firewall-cmd --set-log-denied=all
sudo firewall-cmd --reload

定制富规则

# 示例代码:定制富规则
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.2" drop' --permanent
sudo firewall-cmd --reload

使用iptables命令

对于熟悉传统 iptables 的管理员,也可以使用 iptables 命令进行防火墙配置。

# 示例代码:开放端口
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo service iptables save
sudo service iptables restart

防火墙配置备份和恢复

# 示例代码:备份防火墙规则
sudo firewall-cmd --zone=public --list-all > firewall-backup.xml
# 示例代码:恢复防火墙规则
sudo firewall-cmd --restore < firewall-backup.xml
sudo firewall-cmd --reload

使用fail2ban加固防火墙

fail2ban 是一个基于日志文件的入侵防御工具,它可以监控系统日志,自动封锁恶意的IP地址。

# 示例代码:安装fail2ban
sudo yum install epel-release
sudo yum install fail2ban
# 示例代码:启动并配置fail2ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

配置端口转发和NAT

# 示例代码:配置端口转发
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination internal_ip:80
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
sudo service iptables save
sudo service iptables restart

使用ipset管理IP集合

# 示例代码:创建ipset集合
sudo ipset create blocked_ips hash:ip
# 示例代码:添加IP到集合
sudo ipset add blocked_ips 192.168.1.2
# 示例代码:使用ipset阻止IP
sudo iptables -A INPUT -m set --match-set blocked_ips src -j DROP
sudo service iptables save
sudo service iptables restart

配置IPv6防火墙规则

# 示例代码:开放IPv6端口
sudo firewall-cmd --add-port=80/tcp --permanent --zone=public
sudo firewall-cmd --reload

使用SELinux增强安全性

SELinux 是Linux内核的安全模块,可以提供更强大的安全策略。

# 示例代码:查看SELinux状态
sudo sestatus
# 示例代码:禁用SELinux
sudo setenforce 0

配置TCP Wrapper限制访问

/etc/hosts.allow/etc/hosts.deny 可以用于配置TCP Wrapper规则,限制允许和拒绝的访问。

# 示例代码:仅允许特定IP访问SSH
echo "sshd: 192.168.1.2" | sudo tee -a /etc/hosts.allow
echo "sshd: ALL" | sudo tee -a /etc/hosts.deny

定期审查防火墙规则

# 示例代码:查看防火墙规则
sudo iptables -L -n
# 示例代码:查看firewalld规则
sudo firewall-cmd --list-all

设置连接跟踪规则

# 示例代码:开启连接跟踪
sudo modprobe nf_conntrack
# 示例代码:查看连接跟踪表
sudo cat /proc/net/nf_conntrack

配置限制连接速率

# 示例代码:使用iptables限制连接速率
sudo iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 32 -j DROP
sudo service iptables save
sudo service iptables restart

总结

在搭建基础防火墙规则以保障Linux系统安全方面,本文提供了丰富而详细的示例代码,助力管理员深入了解和配置系统防火墙。从基础的端口管理、IP地址允许和拒绝,到更高级的防火墙配置、IPv6规则、SELinux和TCP Wrapper,本文深入介绍了多种工具和技术,使得管理员能够全面地提升系统的安全性。

通过 firewall-cmdiptables 以及其他工具的灵活应用,管理员可以定制防火墙规则,限制不必要的访问,防范网络攻击。fail2ban 的引入增加了对恶意IP的自动封锁,提高了系统的主动防御能力。此外,学习如何配置端口转发、使用ipset管理IP集合、设置IPv6规则,以及定期审查和优化防火墙规则,都是提高系统安全性的关键步骤。

对于更高级的安全需求,本文还介绍了使用 SELinux 增强系统安全性、配置TCP Wrapper限制访问、设置连接跟踪规则以及限制连接速率等技术。这些工具和技术的综合使用,为管理员提供了多层次、全方位的系统安全保障。总体而言,通过不断学习和实践这些防火墙配置技巧,管理员将更有信心、更灵活地维护和提升Linux系统的安全性。

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址