前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS 防火墙常用命令

CentOS 防火墙常用命令

作者头像
小唐同学.
发布2022-02-23 19:06:52
1.5K0
发布2022-02-23 19:06:52
举报
文章被收录于专栏:CMS建站教程

前言

CentOS中7以下防火墙是 iptables,7是 firewalld,两者不尽相同,一开始以为 firewalld 比 iptables会更麻烦,其实 firewalld 比 iptables 方便多了,这里简单描述下配置。

iptables

基本命令

1. 重启系统生效

代码语言:javascript
复制
chkconfig iptables on 
# 启动 
chkconfig iptables off  
# 关闭

2. 即时生效,重启后失效

代码语言:javascript
复制
service iptables start  
# 启动
service iptables stop  
# 关闭

设定规则

1、查看本机关于 iptables 的设置情况

代码语言:javascript
复制
iptables -L -n

 2、清除原有规则

代码语言:javascript
复制
iptables -F 
# 清除预设表 filter 中的所有规则链的规则

3、保存设置规则(因配置随系统重启而失效)

代码语言:javascript
复制
/etc/rc.d/init.d/iptables save 
# 保存规则到 /etc/sysconfig/iptables 文件中, 也可手工编辑该文件.

  4、设定预设规则

代码语言:javascript
复制
iptables -p INPUT DROP
iptables -p OUTPUT DROP
iptables -p FORWARD DROP
# 上面的规则是不允许任何包通过.

 5、添加规则

代码语言:javascript
复制
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT
# 开启 22 端口, 允许 SSH 登录, 如开启 80 端口:
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 80 -j ACCEPT

6、禁止某个IP访问

代码语言:javascript
复制
iptables -I INPUT -s x.x.x.x -j DROP
# 也可进行更细致的设置, 如只允许 192.168.1.14 的机器进行 SSH 连接:
iptables -A INPUT -p tcp –dport 22 -s 192.168.1.14 -j ACCEPT
# 如果要允许或限制一段IP地址可用 192.168.1.0/24 表示 192.168.1.1-255 端的所有 IP.

  7、防止同步包洪水(Sync Flood)

代码语言:javascript
复制
iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT

  8、防止各种端口扫描

代码语言:javascript
复制
#iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT

 9、Ping 洪水攻击(Ping of Death)

代码语言:javascript
复制
#iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT

firewalld

基本命令

1、重启系统生效

代码语言:javascript
复制
systemctl enable firewalld
# 启动 
systemctl disable firewalld
# 关闭

2、即时生效,重启后失效

代码语言:javascript
复制
systemctl start firewalld
# 启动
systemctl stop firewalld
# 关闭

 3、查看状态

代码语言:javascript
复制
firewall-cmd --state

4、查看已配置规则

代码语言:javascript
复制
firewall-cmd --list-all

5、更新配置

代码语言:javascript
复制
firewall-cmd --list-all

设定规则

1、拒绝/取消拒绝所有包

代码语言:javascript
复制
firewall-cmd --panic-on
firewall-cmd --panic-off

2、将接口添加到 public 区域

代码语言:javascript
复制
firewall-cmd --zone=public --add-interface=eth0

3、把 tcp 80 端口加入/移除到区域

代码语言:javascript
复制
firewall-cmd --zone=pulic --add-port=80/tcp
firewall-cmd --zone=pulic --remove-port=80/tcp

把 http 服务加入/移除到区域

代码语言:javascript
复制
firewall-cmd --zone=public --add-service=http
firewall-cmd --zone=public --remove-service=http

5、设置永久生效

代码语言:javascript
复制
# 命令中加上 --permanet 参数则永久生效,比如 
firewall-cmd --zone=public --add-service=http --permanent

高级应用

  1、仅允许部分 IP 访问特定服务

代码语言:javascript
复制
firewall-cmd  --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"  --permanent

   2、仅允许部分 IP 访问特定端口

代码语言:javascript
复制
firewall-cmd  --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24" port protocol="tcp" port="8080" accept"    --permanent

  3、查看 FTP 服务设置 

代码语言:javascript
复制
firewall-cmd --query-service ftp

   4、查看激活的区域以及切换区域

代码语言:javascript
复制
firewall-cmd --get-active-zones
firewall-cmd --set-default-zone=public

   5、限制每分钟只有两个连接到ftp服务

代码语言:javascript
复制
firewall-cmd --add-rich-rule='rule service name=ftp limit value=2/m accept'
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • iptables
    • 基本命令
      • 设定规则
      • firewalld
        • 基本命令
          • 设定规则
            • 高级应用
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档