llinux 防火墙(selinux 防火墙firewalld netfilter (iptables))及iptables 规则备份和恢复
Posted 想剪个寸头
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了llinux 防火墙(selinux 防火墙firewalld netfilter (iptables))及iptables 规则备份和恢复相关的知识,希望对你有一定的参考价值。
selinux 防火墙
getenforce 查看防火墙状态
setenforce 0 临时关闭 (0关闭 1开启)
#状态
enforcing:强制模式,代表 SELinux 运作中,且已经正确的开始限制 domain/type 了;
permissive:宽容模式:代表 SELinux 运作中,不过仅会有警告讯息并不会实际限制 domain/type 的存取。这种模式可以运来作为 SELinux 的 debug 之用;
disabled:关闭,SELinux 并没有实际运作。
关闭SELinux的方法:
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。
如果不想重启系统,使用命令setenforce 0
注:
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux
firewalld 、netfilter
firewalld 、netfilter 这两个 统称 iptables
注: centos7 之前使用的是netfilter centos7之后使用的firewalld
centos7上默认使用的firewalld netfilter是默认没有开启的
如何在centos7上使用netfilter
例:
systemctl disable firewalld 关闭开机启动firewalld服务
systemctl stop firewalld 关闭firewalld服务
yum -y install iptables-services 安装iptables 安装后会产生一个服务
systemctl enable iptables 设置iptables服务开启自启动
systemctl start iptables 启动iptables服务 (即开启了netfilter)
iptables -nvL 可以查看iptables的默认规则
(可理解为firewalld 和 netfilter 名字是防火墙,iptables只是一个工具)
netfilter常用的两个表
filter表用于过滤包,最常用的表,有INPUT、FORWARD、OUTPUT三个链
nat表用于网络地址转换,有PREROUTING、OUTPUT、POSTROUTING三个链
防火墙-netfilter
iptables -nvL 查看规则 如图所示
cat /etc/sysconfig/iptables 查看这个文件可看到默认规则保存的信息 如图二所示
iptables -F 清空所有规则
使用iptables -nvL 查看默认规则不会再有,当时查看/etc/sysconfig/iptables文件
文件中保存的规则还是存在
service iptables restart 重启服务之后 还是会把它加载出来
service iptables save 保存规则至/etc/sysconfig/iptables文件中
(iptables防火墙规则以/etc/sysconfig/iptables文件中保存的为准,重启之后就会加载该文件信息)
iptables -t nat -t指定nat表
iptables -Z (大写的Z) 清零计数器
iptables -A INPUT -s 192.168.44.128 -p tcp --sport 123 -d 192.168.44.131 --dport 80 -j DROP
指定规则 不加-t指定 默认是filter表
-A 增加一个规则 (放到后面去) 或者使用-I 表示插入 -D 删除
INPUT 表示针对的是 INPUT 链
-s 指定来源ip -p指定协议(这里是tcp协议)(tcp、udp……)
--sport 来源ip的端口 123
-d 指定目标ip --dport 目标ip的端口 80
-j 指定DEOP 或者 REJECT
iptables -nvL 查看 如图所示
快捷方便删除iptables规则的方法
iptables -nvL --line-numbers 列出所有规则的序号 如图所示
iptables -D INPUT 1 使用数字进行删除
iptables -P OUTPUT ACCEPT 大写的-P指定 OUTPUT表为 ACCEPT
icmp示例
iptables -I INPUT -p icmp --icmp-type 8 -j DROP
使用这条命令可以让别人无法ping通自己这个ip地址(禁ping)
需求:放行80、21、22端口 且22端口指定一个IP段都能访问别的ip无法访问。
以shell脚本形式完成
#!/bin/bash
a="/usr/sbin/iptables" 定义变量
$a -F 清空亏则
$a -P INPUT DROP 禁掉 INPUT 表
$a -P OUTPUT ACCEPT 指定OUTPUT FORWARD表为ACCEPT
$a -P FORWARD ACCEPT
$a -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 使用-m指定 state(状态)指定 --state RELATED,ESTABLISHED 为ACCEPT状态
$a -A INPUT -s 192.168.44.0/24 -p tcp --dport 22 -j ACCEPT -s放行这个ip段 访问22端口
$a -A INPUT -p tcp --dport 80 -j ACCEPT 放行80、21端口
$a -A INPUT -p tcp --dport 21 -j ACCEPT
执行脚本如图所示
iptables 规则备份和恢复
iptables-save > beifen.txt
表示将/etc/sysconfig/iptables 文件中的iptables规则导入到 beifen.txt
iptables-restore < beifen.txt 使用restore 恢复
以上是关于llinux 防火墙(selinux 防火墙firewalld netfilter (iptables))及iptables 规则备份和恢复的主要内容,如果未能解决你的问题,请参考以下文章