Linux下防火墙配置实例

操作系统centos centos7版本之前使用的是iptables,centos7版本之后变更为firewalld。

iptables配置实例

iptables命令可用于配置Linux的包过滤规则,常用于实现防火墙、NAT。

文件位置

/etc/sysconfig/iptables

IPTABLES的设置情况 v:显示详细信息,包括每条规则的匹配包数量和匹配字节数 x:在 v 的基础上,禁止自动单位换算(K、M) vps侦探 n:只显示IP地址和端口号,不将ip解析为域名

 iptables -L -n

删除已有规则

iptables -F
iptables -X
iptables -Z

屏蔽指定ip 有时候我们发现某个ip不停的往服务器发包,这时我们可以使用以下命令,将指定ip发来的包丢弃:

BLOCK_THIS_IP="x.x.x.x"
iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP

端口转发配置

iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22

DoS攻击防范 利用扩展模块limit,我们还可以配置iptables规则,实现DoS攻击防范:

iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

开放指定的端口 -A和-I参数分别为添加到规则末尾和规则最前面。

#允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT
# 允许访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许访问80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许访问443端口
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#允许FTP服务的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#允许ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#禁止其他未允许的规则访问
iptables -A INPUT -j REJECT  #(注意:如果22端口未加入允许规则,SSH链接会直接断开。)
iptables -A FORWARD -j REJECT

禁止端口

#禁止访问2181端口
iptables -A INPUT -p tcp --dport 2181-j DROP

屏蔽IP

#如果只是想屏蔽IP的话“3、开放指定的端口”可以直接跳过。
#屏蔽单个IP的命令是
iptables -I INPUT -s 123.45.6.7 -j DROP
#封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
#封IP段即从123.45.6.1到123.45.6.254的命令是
iptables -I INPUT -s 123.45.6.0/24 -j DROP

iptables生效

service iptables save

firewalld配置实例

启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disable firewalld 禁用: systemctl stop firewalld

查看版本: firewall-cmd --version 查看帮助: firewall-cmd --help 显示状态: firewall-cmd --state 查看所有打开的端口: firewall-cmd --zone=public --list-ports 更新防火墙规则: firewall-cmd --reload 查看区域信息: firewall-cmd --get-active-zones 查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0 拒绝所有包:firewall-cmd --panic-on 取消拒绝状态: firewall-cmd --panic-off 查看是否拒绝: firewall-cmd --query-panic

那怎么开启一个端口呢 添加 firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效) 重新载入 firewall-cmd --reload 查看 firewall-cmd --zone= public --query-port=80/tcp 删除 firewall-cmd --zone= public --remove-port=80/tcp --permanent

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏运维

linux下自动备份脚本并上传到ftp服务器

#!/bin/bash #设置日志文件,前提建好了/backup/log目录 LogFile=/backup/log/`date +"%Y-%m"`.log...

2553
来自专栏运维小白

10.12 firewalld和netfilter

Linux防火墙-netfilter selinux临时关闭 setenforce 0 selinux永久关闭 vi /etc/selinux/config c...

2656
来自专栏Netkiller

Linux 系统安全与优化配置

Linux 系统安全与优化配置 目录 1. Openssh 安全配置 1.1. 禁止root用户登录 1.2. 限制SSH验证重试次数 1.3. 禁止证书登陆 ...

3715
来自专栏刘远飞的专栏

CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)

CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

2.4K1
来自专栏杨建荣的学习笔记

客户端无法连接数据库的小问题(r8笔记第53天)

最近碰到了一个比较奇怪的数据库连接问题。问题的起因是做一个数据整合的时候,把服务器B的防火墙信息都拷贝到了服务器A,迁移的过程都很顺利,是一套开 发测试环境,迁...

3249
来自专栏進无尽的文章

工程管理篇 | APP环境分离的实现

如何实现在同一台手机能同时安装同个应用的测试和生产版本?应用名称要有区分,图标也要有所区别。不要手动修改Bundle id和应用名称,也不要手动替换图标,更不要...

1172
来自专栏知无涯

ubuntu环境下解决mysql不能远程访问问题

3739
来自专栏魏艾斯博客www.vpsss.net

iptables 报错:iptables-restore: unable to initialize table ‘filter 的解决办法

9343
来自专栏IMWeb前端团队

webpack 项目 css/js主域重试

为了提高网站的访问速度,现在一般会将静态资源放在 CDN 下,而不是放在网站的域名之下。以腾讯课堂为例,其域名为 ke.qq.com,打开控制台,访问 ke....

26110
来自专栏散尽浮华

Linux服务器安全登录设置记录

在日常运维工作中,对加固服务器的安全设置是一个机器重要的环境。比较推荐的做法是: 1)严格限制ssh登陆(参考:Linux系统下的ssh使用(依据个人经验总结)...

30910

扫码关注云+社区

领取腾讯云代金券