在部署云平台服务器安装操作系统(centos7.6)后我们检查iptables服务发现是没有的,但是可以查询到iptables的rpm包,但/etc/sysconfig/下没有iptables配置文件
原因是centos7 默认不是iptables,而是firewalld。其实不安装iptables-services其实也可以使用,别的软件也可以调用iptables创建规则,如firewalld;但如果要用iptables-save或者是需要通过添加配置文件来实现iptables的,建议就需要安装iptables-services;另外针对上述情况systemctl查询不到可能还是没有使用systemd管理
# whereis iptables
[root@test3 sysconfig]# whereis iptables
iptables: /usr/sbin/iptables /usr/share/man/man8/iptables.8.gz
如果不用systemd管理的话是不知道怎么生效配置文件里面的规则,如果可以写个iptables.service文件来daemon-reload一下。
因此需要使用iptables-services服务的就需要进行安装部署,可以通过yum源或者是rpm包方式部署
方式一、yum源方式
# yum install -y iptables
升级iptables
# yum update iptables
安装iptables-service
# yum install -y iptables-service
方式二、通过rpm包安装,具体rpm包文件见
链接:https://pan.baidu.com/s/1EN2myFi6LB9ug2magoXPcA
提取码:hlbf
如有ARM架构的服务器使用对应目录下的rpm包进行安装
# rpm -Uvh iptables-services-XXX.rpm
关闭系统自带的防火墙firewalld
# systemctl stop firewalld
关闭firewalld开机自启动
# systemct disable firewalld
启动iptables服务
# systemctl start iptables.services
设置iptables服务开机自启动
# systemctl enable iptables.services
查询iptables服务
# systemctl status iptables.services
查询iptables相关规则
# iptables -nvL
查询iptables配置文件配置
# cat /etc/sysconfig/iptables
附带:
iptables常用语法
-A:追加到规则的最后一条
-D:删除记录
-I:添加到规则的第一条
-p:(proto)规定通信协议,常见的协议有:tcp、udp、icmp、all
-j:(jump)指定要跳转的目标,常见的目标有:ACCEPT(接收数据包)、DROP(丢弃数据包)、REJECT(重定向)三种,但是一般不适用重定向,会带来安全隐患
#查看iptables现有规则
iptables -L -n
#先允许所有,不然有可能会杯具
iptables -P INPUT ACCEPT
#清空所有默认规则
iptables -F
#清空所有自定义规则
iptables -X
#所有计数器归0
iptables -Z
#允许来自于lo接口的数据包(本地访问)
iptables -A INPUT -i lo -j ACCEPT
#开放22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#开放21端口(FTP)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#开放80端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#开放443端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#允许ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
#允许接受本机请求之后的返回数据 RELATED,是为FTP设置的
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#其他入站一律丢弃
iptables -P INPUT DROP
#所有出站一律绿灯
iptables -P OUTPUT ACCEPT
#所有转发一律丢弃
iptables -P FORWARD DROP