1.CentOS 7 防火墙修改为iptables(防火墙相关命令和配置)

目录

CentOS7默认的防火墙不是iptables,而是firewalle.

Centos 7 使用firewall :

Centos 7 使用iptables:

iptables常用命令


CentOS7默认的防火墙不是iptables,而是firewalle.

Centos 7 firewall 命令:

查看已经开放的端口:

firewall-cmd --list-ports

开启端口 (CentOS7下添加防火墙例外端口,即使用firewalle)

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload             #重新加载策略配置,以使新配置生效

命令含义:

–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

防火墙设置

//查看状态
service firewalld status

//重启firewall
firewall-cmd --reload 
//停止firewall
systemctl stop firewalld.service 
//禁止firewall开机启动
systemctl disable firewalld.service 

Centos 7 使用iptables:

禁用/停止自带的firewalld服务

扫描二维码关注公众号,回复: 2705199 查看本文章
//临时关闭
systemctl stop firewalld
//禁止开机启动
systemctl disable firewalld
//禁用firewalld服务
systemctl mask firewalld

安装iptable iptable-service

//先检查是否安装了iptables
service iptables status
//安装iptables
yum install -y iptables
//升级iptables
yum update iptables 
//安装iptables-services
yum install iptables-services

CentOS6添加防火墙例外端口(即使用iptables)

vim /etc/sysconfig/iptables
//增加相同代码,修改为所需要的端口(顺序很重要,新增代码需放置在原有代码后面)
-A INPUT -m state--state NEW -m tcp -p tcp --dport 22 -j ACCEPT 
//然后重启防火墙服务:
service iptables restart/start/stop

CentOS6关闭防火墙使用以下命令(即使用iptables)

//关闭防火墙 
//1、永久性生效,重启后不会复原
chkconfig iptables on      #开启
chkconfig iptables off     #关闭
//2、即时生效,重启后复原
service iptables start     #开启
service iptables stop      #关闭
//禁止开机启动
chkconfig iptables off

iptables常用命令

//查看帮助
iptables -h
man iptables

//列出iptables规则
iptables -L -n
//列出iptables规则并显示规则编号
iptables -L -n --line-numbers

//列出iptables nat表规则(默认是filter表)
iptables -L -n -t nat

//清除默认规则(注意默认是filter表,如果对nat表操作要加-t nat)
//清楚所有规则
iptables -F 

//重启iptables发现规则依然存在,因为没有保存
service iptables restart

//保存配置
service iptables save

//禁止ssh登陆(若果服务器在机房,一定要小心)
iptables -A INPUT -p tcp --dport 22 -j DROP
//删除规则
iptables -D INPUT -p tcp --dport 22 -j DROP

-A, --append chain	#追加到规则的最后一条
-D, --delete chain [rulenum]	Delete rule rulenum (1 = first) from chain
-I, --insert chain [rulenum]	Insert in chain as rulenum (default 1=first) #添加到规则的第一条
-p, --proto  proto	protocol: by number or name, eg. 'tcp',#常用协议有tcp、udp、icmp、all
-j, --jump target #常见的行为有ACCEPT、DROP和REJECT三种,但一般不用REJECT,会带来安全隐患

//注意:INPUT和DROP这样的关键字需要大写

//禁止192.168.33.0网段从eth0网卡接入
iptables -A INPUT -p tcp -i eth0 -s 192.168.33.0 -j DROP
iptables -A INPUT -p tcp --dport 22 -i eth0 -s 192.168.33.61  -j ACCEPT

//禁止ip地址非192.168.10.10的所有类型数据接入
iptables -A INPUT ! -s 192.168.10.10 -j DROP

//禁止ip地址非192.168.10.10的ping请求
iptables -I INPUT -p icmp --icmp-type 8 -s 192.168.50.100 -j DROP

//扩展匹配:1.隐式扩展 2.显示扩展
	#隐式扩展
	-p tcp
		--sport PORT 源端口
		--dport PORT 目标端口

	#显示扩展:使用额外的匹配规则
	-m EXTENSTION --SUB-OPT
	-p tcp --dport 22 与 -p tcp -m tcp --dport 22功能相同

	state:#状态扩展,接口ip_contrack追踪会话状态
		NEW:        #新的连接请求
		ESTABLISHED:#已建立的连接请求
		INVALID:    #非法连接
		RELATED:    #相关联的连接
	

//匹配端口范围
iptables -I INPUT -p tcp --dport 22:80 -j DROP

//匹配多个端口
iptables -I INPUT -p tcp -m multiport --dport 22,80,3306 -j ACCEPT

//不允许源端口为80的数据流出
iptables -I OUTPUT -p tcp --sport 80 -j DROP

设置现有规则 

#查看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

 其他规则设定

#如果要添加内网ip信任(接受其所有TCP请求)
iptables -A INPUT -p tcp -s 45.96.174.68 -j ACCEPT
#过滤所有非以上规则的请求
iptables -P INPUT DROP
#要封停一个IP,使用下面这条命令:
iptables -I INPUT -s ***.***.***.*** -j DROP
#要解封一个IP,使用下面这条命令:
iptables -D INPUT -s ***.***.***.*** -j DROP

保存规则设定 

#保存上述规则
service iptables save 

开启iptables服务

#注册iptables服务
#相当于以前的chkconfig iptables on
systemctl enable iptables.service
#开启服务
systemctl start iptables.service
#查看状态
systemctl status iptables.service

解决vsftpd在iptables开启后,无法使用被动模式的问题

1.首先在/etc/sysconfig/iptables-config中修改或者添加以下内容
#添加以下内容,注意顺序不能调换
IPTABLES_MODULES="ip_conntrack_ftp"
IPTABLES_MODULES="ip_nat_ftp"
2.重新设置iptables设置
iptables -A INPUT -m state --state  RELATED,ESTABLISHED -j ACCEPT

以下为完整设置脚本

#!/bin/sh
iptables -P INPUT ACCEPT
iptables -F
iptables -X
iptables -Z
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
service iptables save
systemctl restart iptables.service

猜你喜欢

转载自blog.csdn.net/weixin_38702350/article/details/81200329