本文是在WMware上的 CentOS-7-x86_64 计算机上测试的。使用 iptables 的步骤是:
开启IP转发。
先用yum安装iptables
yum install iptables-services
启动iptables
systemctl enable iptables #开启启动
systemctl start iptables.service #重启
systemctl [start|stop|restart] iptables.service
4.再清空旧规则(依据情况而定)
#清空防火墙规则
iptables -F
#显示防火墙规则
iptables -L
5.添加新规则
由 netfilter
和 iptables
构成。
netfilter
组件也叫内核空间( kernelspace
),接收指令和读取防火墙配置文件使配置生效。
iptables
组件也叫用户空间( userspace
),执行防火墙命令或修改配置文件。
个人理解:真正的防火墙是
netfilter
,iptables
只是一个规则表。
iptables
有三张表:
filter
表:不修改数据,只过滤。nat
表:对数据报的源地址进行转发。mangle
表:修改数据报。执行 iptables
前需激活 IP 数据包的转发功能,激活 IP 转发功能的命令如下。
在 /usr/lib/sysctl.d/50-default.conf
添加配置:
net.ipv4.ip_forward = 1
#sysctl -p #运行时修改系统内核参数
IP转发配置是否生效,没有检测,但 iptables 生效了。
参数很多,先只记主要的。
亲测可用。
先用yum安装iptables
yum install iptables-services
启动iptables
systemctl enable iptables #开启启动
systemctl start iptables.service #重启
systemctl [start|stop|restart] iptables.service
3.再清空旧规则(依据情况而定)
#清空防火墙规则
iptables -F
#显示防火墙规则
iptables -L
4.添加新规则
#屏蔽 IP 192.168.88.1 的访问
iptables -I INPUT -s 192.168.88.1 -j DROP
#删掉防火墙规则中 INPUT 为1的那条
iptables -D INPUT 1
在centos7检测结果,不需要重启iptables,防火墙配置就生效了。遇到不生效的情况,试着重启防火墙。
#禁止某个IP访问本机
iptables -I INPUT -s 192.168.88.1 -j DROP
iptables -A INPUT -s 192.168.88.1 -j DROP
#禁止本机访问某个IP
iptables -A OUTPUT -d 192.168.88.1 -j REJECT
还有一些复杂的实例,以后再学习。
root@localhost conf]# systemctl restart iptables.service
Failed to issue method call: Unit iptables.service failed to load: No such file or directory.
解决:安装iptables
yum install iptables-services
root@localhost conf]# systemctl restart iptables.service
ln -s '/usr/lib/systemd/system/iptables.service' '/etc/systemd/system/basic.target.wants/iptables.service'
解决:用 systemctl 启动
systemctl restart iptables.service #也可执行,执行后没有任何输出信息
配置之前,先删除旧规则,命令:
iptables -F
With RHEL 7 / CentOS 7, firewalld was introduced to manage iptables. IMHO, firewalld is more suited for workstations than for server environments.
It is possible to go back to a more classic iptables setup. First, stop and mask the firewalld service:
systemctl stop firewalld
systemctl mask firewalldThen, install the iptables-services package:
yum install iptables-services
Enable the service at boot-time:
systemctl enable iptables
Managing the service
systemctl [stop|start|restart] iptables
Saving your firewall rules can be done as follows:
service iptables save
or
/usr/libexec/iptables/iptables.init save
How can i use iptables on centos 7?
iptables-apply(8), iptables-save(8), iptables-restore(8), iptables-extensions(8)
这些命令的作用是什么?