iptables、firewall、selinux

本文详细介绍了CentOS 6与7中iptables和firewalld的使用,包括规则设置、端口开放、服务控制等。同时,探讨了SELinux的强制访问控制功能及其配置,提供了一系列命令行操作示例,帮助理解与管理系统的安全策略。
摘要由CSDN通过智能技术生成

centos 6中常用iptables

iptables用于过滤数据包,属于网络层防火墙,设置iptables后需要重启iptables,会破坏数据链接,可能需要重新启动程序。配置文件/etc/sysconfig/iptables

service iptables [ stop | start | status | restart ]
chkconfig iptables off | on  #开机不自启和自启
iptables -L                  #查看防火墙设置
iptables -A INPUT -p tcp  --dport ssh -j        #允许ssh端口传入数据
iptables -A INPUT -p tcp  --dport 22 -j ACCEPT  #开放端口
iptables -A INPUT -p tcp  --dport 22 -j DROP    #关闭端口
iptables -A INPUT -p udp  --dport 30001:30004 -j ACCEPT  #添加多个端口
iptables -A INPUT -s 192.168.12.12 -j           #禁止某个IP地址访问
iptables -D INPUT  3   #删除第3条规则
iptables -vnL            #查看禁用的IP
iptables -F         #清除所有添加的防火墙规则
service  iptables  save    #将iptables规则写入文件保存/etc/sysconfig/iptables

-p  设置默认策略
-F  清空策略链
-L  查看规则链
-A  在规则链的末尾加入新的规则
-I  在规则链的头加入新的规则
-D  删除某一条规则链
-s  匹配来源地址IP/MASK,加!表示除这个之外
-d  匹配目标地址
-i  网卡名,匹配这块网卡流入的数据
-o  网卡名,匹配这块网卡流出的数据
-p  匹配协议,如tcp、udp、icmp

常用显示匹配:
	多端口匹配:
	-m  multiport  --sport   源端口列表
	-m  multiport  --dport   目的端口列表
	IP范围匹配:
	-m  iprange  --src-range   IP范围
	MAC地址匹配:
	-m  mac  -macl-source   MAC地址
	状态匹配:
	-m  state  --state   连接状态

centos7中默认使用firewall,取代iptables

yum install iptables-services   #安装iptables使用

vim /etc/sysconfig/iptables-config   #iptables配置文件

systemctl restart iptables.service   #重启
systemctl enable iptables.service   #开机自启
[start | restart | stop | status | disable | enable] #开启,重启,停止,状态,关闭自启,开机自启		

firewall可以允许哪些服务可用,端口可用,底层使用iptables进行数据过滤,建立在iptables之上,动态防火墙,修改配置不会破坏已有数据链接

yum install firewall
yum install firewall-config  #图形界面安装
firewall-cmd command   #命令模式
firewall-config        #进入图形模式
firewall-cmd  --state  #查看状态
systemctl stop firewalld.service     #停止firewall
systemctl disable firewalld.service  #禁止firewall开机启动  [ start | restart | stop | status | disable | enable ]

firewall-cmd  --reload             #重新加载firewall配置
firewall-cmd  --completely-reload  #更新规则,重启服务
firewall-cmd  --list-all
firewall-cmd  --get-service       #查看所支持的服务,服务之间以空格隔开
firewall-cmd  --get-active-zones  #查看已激活的zone信息

	zone值指定:
		drop      丢弃所有进入的包,不给出任何响应
		block     拒绝所有外部发起的连接,允许内部发起连接
		public    允许指定的进入连接
		external  允许指定连接,对伪装的进入连接,一般由路由转发
		dmz       允许受限制的进入连接
		work      允许受信任的计算机被限制的进入连接
		trusted   信任所有连接
	
firewall-cmd  --zone=public  --add-port=80/tcp --permanent     #开启80端口 --permanent表示永久生效,不加表示临时有效
firewall-cmd  --zone=public  --remove-port=80/tcp --permanent  #删除80端口
firewall-cmd  --permanent --zone=public --add-port=100-500/tcp #添加多个端口
firewall-cmd  --zone=public  --add-service=https  --permanent  #开启https服务
firewall-cmd  --zone=public  --remove-service=https  --permanent  #关闭https
firewall-cmd  --zone=public --list-ports     #查看所有开启的端口
firewall-cmd  --zone=public --list-services  #查看所有开启的服务
firewall-cmd  --zone-public --add-forward-port=port=22:proto=tcp:toport=80            #将tcp22端口转发至80
firewall-cmd  --zone=public --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.1   #将22端口数据转发到另一个ip相同的端口上
firewall-cmd  --zone=public --add-forward-port=port=22:proto=tcp:toport=90:toaddr=192.168.1.2  #将22端口数据转至另一IP的90端口上
firewall-cmd  --panic-on     #开启应急模式阻断所有网络连接
firewall-cmd  --panic-off    #关闭应急模式
firewall-cmd  --query-panic  #查看应急模式的状态

# 针对某个 IP开放端口
firewall-cmd  --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="6379" accept"
firewall-cmd  --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.233" accept"
 
# 删除某个IP
firewall-cmd  --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.51" accept"
 
# 针对一个ip段访问
firewall-cmd  --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept"
firewall-cmd  --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"

selinux对于强制访问控制的实现

配置文件/etc/selinux/config,另一个链接文件/etc/sysconfig/selinux
使用config文件配置selinux(状态永久修改,系统重启才生效)
	SELINUX=enforcing  #状态
	enforcing启用 disabled关闭,直接在文件中修改
	SELINUXTYPE=targeted  #定义使用什么策略模块保护系统,默认政策,针对网络服务限制较多,仅针对本机限制较少
	SELINUXTYPE=minimum   #针对选择的程序来保护
	SELINUXTYPE=mls       #完整的SELinux限制,限制比较严格
常用命令
	#sestatus    #查询selinux工作状态
	#selinuxenabled
	#echo $?     #检查selinux是否开启,返回值0为开启,1关闭
	#getenforce  #查看selinux状态
	#setenforce  0   #设定运行状态0或1,enforce开启(1)permissive关闭(0)

ls -Z  查询文件或目录的安全上下文
	例:system_u : object_r : public_content_t : s0
		用户       角色     类型        级别
restorecon  将文件或目录安全上下文恢复到默认值
	-v   打印过程
	-R   递归操作
semanage  fcontext -l  | grep /var/ftp    查询ftp服务selinux默认目录的安全上下文
chcon   修改文件的安全上下文
	-u    修改安全上下文件的用户字段
	-r    修改安全上下文的角色字段
	-t    修改安全上下文的类型字段
	-l    修改安全上下文的级别字段
	--reference  修改与指定文件或目录一致的安全上下文
	-R    递归
	-h    修改软连接安全上下文,不加则修改软连接对应文件
	chcon  -t  public_context_t  -R  /document  临时修改
semanage fcontext –a –t  安全上下文   /目录"(/.*)?"      添加目录的默认安全上下文
restorecon   恢复selinux文件属性的安全上下文
	-i   忽略不存在的文件
	-e   排除目录
	-F   强制恢复文件安全语境
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值