linux防火墙

Tcp_Wrappers

1.简介
Tcp_Wrappers是一个用来分析TCP/IP封包的软件,linux默认都安装了此软件,作为一个安全的系统,Linux本身有两层安全防火墙,通过IP过滤机制的iptables实现第一层防护,iptables防火墙通过直观地监视系统的运行状况,阻挡网络中的一些恶意攻击,保护整个系统正常运行,免遭攻击和破坏。如果通过了第一层防护,那么下一层防护就是tcp_wrappers了,通过Tcp_Wrappers可以实现对系统中提供的某些服务的开放与关闭、允许和禁止,从而更有效地保证系统安全运行
tcp_wrappers防火墙的局限性:
某个服务是否可以使用tcp_wrappers防火墙,取决于该服务是否应用了libwrapped库文件,如果应用了就可以使用tcp_wrappers防火墙。sendmail、sshd、tcpd、xinetd、gdm、portmap都可以使用
命令: ldd /usr/sbin/httpd | grep libwrap 可用来查看是否支持
2.两个主配置文件
两个配置文件:/etc/hosts.allow和/etc/hosts.deny
(注意:allow和deny冲突时,allow生效)
3.格式:
service:host(s) [:action]
服务名 主机名(或多个) 动作,符合条件后所采取的动作
ALL:ALL EXCEPT 192.168.0.8除了这台机器,所有的执行所有服务时被允许或拒绝。
service代表服务名,就是使用ps -e看到的服务名。
host(s)形式:192.168.0.0 192.168.1. abc.com def.com
action的写法:vsftpd:ALL:spawn /bin/echo date %c %d >> /var/log/tcp_wrappers 表示在telnet请求时执行特定的命令,通常是向某个日志文件中写入一天信息
spawn代表执行一个命令,%c、%d以及其它参数的用法可以使用man hosts.allow或man host.deny
允许某人访问你的sshd服务,但对该访问进行日志
SSHD:172.16.10.1:spawn echo date %c %d >> /tmp/aa.log
4 例子:当别人尝试登陆你的sshd服务时将其访问动作记录到日志,并且区分允许和拒绝信息
SSHD:172.16.10.0/255.255.255.0:spawn echo deny date %c %d >> /tmp/tcp.log
SSHD:172.16.10.0/255.255.255.0:spawn echo deny date %c %d >> /tmp/tcp.log

iptables

(核心是input SNAT DNAT)
系统新装需要先关闭防火墙。
service iptables -F (清空防火墙)
service iptables save (保存防火墙规则)
service iptables start (启动服务)
永久关闭防火墙 : chkconfig iptables off
永久关闭后启用 : chkconfig iptables on
6的系统 # vi /etc/sysconfig/iptables #编辑防火墙配置文件

(1)规则   iptables [-t TABLE] COMMAND CHAIN [num] 匹配标准 -j 处理办法
          Iptables –t filter       -A 添加    INPUT          -p tcp|udp !tcp(非tcp)
          nat        -D删除     OUTPUT        -s 192.168.1.1 192.168.1.0/24
               mangle     -I 插入   FORWORD      -s ! 192.168.0.0/24 取反
          row        -R 替换   PREROUTING    -d 192.168.1.1 
          -P 默认   POSTROUTING   -i eth0
              -N 自定义                        -X 删除自定义
               -E 自定义重命名
             --sport  22                   -j  ACCEPT
             --sport  22:80                   DROP   
                        :80                   REJECT      
                        22:                    LOG 
                       !22                    USER CHAIN
                       !22:80                 REDRECT
             --dport   22
(2)匹配条件   通用匹配		
		-s, --src: 指定源地址
	-d, --dst:指定目标地址
	  	-p {tcp|udp|icmp}:指定协议
	    -i INTERFACE: 指定数据报文流入的接口
		可用于定义标准的链:PREROUTING,INPUT,FORWARD
		-o INTERFACE: 指定数据报文流出的接口
	    可用于标准定义的链:OUTPUT,POSTROUTING,FORWARD
(3)扩展匹配	隐含扩展
			  -p tcp
			  --sport PORT[-PORT]: 源端口
			  --dport PORT[-PORT]: 目标端口
		       --tcp-flags mask comp: 只检查mask指定的标志位,是逗号分隔的标志位列表;comp:此列表中出现的标记位必须为1,comp中没出现,而mask中出现的,必须为0;
			   --tcp-flags SYN,FIN,ACK,RST SYN = --syn
			    --syn
   			-p icmp
				--icmp-type 
			    0: echo-reply
				8: echo-request
			-p udp
				    --sport
			    	--dport
			-p tcp --dport
		显式扩展: 使用额外的匹配机制
			-m EXTESTION --spe-opt
     			state: 状态扩展
		     		结合ip_conntrack追踪会话的状态
					NEW: 新连接请求
					ESTABLISHED:已建立的连接
					INVALID:非法连接
					RELATED:相关联的
				-m state --state NEW,ESTABLISHED -j ACCEPT
				iptables -A INPUT -d 172.16.100.7 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
			multiport: 离散的多端口匹配扩展
			    	--source-ports
			    	--destination-ports
				    --ports
			-m multiport --destination-ports 21,22,80 -j ACCEPT
			例:iptables -A INPUT -p tcp -m multiport--sport 20,21,22,23,80
            按源端口多端口匹配,最多可以指定15个端口,以英文逗号分隔,注意没有空格。使用时必须指定协议 
          条件取反:!,-s ! 172.16.100.6
(4)命令:
	  管理规则
	      -A:附加一条规则,添加在链的尾部
		  -I CHAIN [num]: 插入一条规则,插入为对应CHAIN上的第num条;
	      -D CHAIN [num]: 删除指定链中的第num条规则;
	      -R CHAIN [num]: 替换指定的规则;
	   管理链:
	        -F [CHAIN]:flush,清空指定规则链,如果省略CHAIN,则可以实现删除对应表中的所有链
	        -P CHAIN: 设定指定链的默认策略;
	        -N:自定义一个新的空链
	        -X: 删除一个自定义的空链
	        -Z:置零指定链中所有规则的计数器;
	        -E: 重命名自定义的链;
    查看类:
		 	 -L: 显示指定表中的规则;
	         -n: 以数字格式显示主机地址和端口号;
	         -v: 显示链及规则的详细信息
	          -vv: 
	          -x: 显示计数器的精确值
	          --line-numbers: 显示规则号码
(5)动作(target):
	   ACCEPT:放行
	   DROP:丢弃
	   REJECT:拒绝
	   DNAT:目标地址转换
	   SNAT:源地址转换
	   REDIRECT:端口重定向
	   MASQUERADE:地址伪装
	   LOG:日志
	   MARK:打标记

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
在这里插入图片描述
7的系统 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙步骤
1、关闭firewall:

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

在这里插入图片描述
2、安装iptables防火墙

#yum install iptables-services #安装
#vi /etc/sysconfig/iptables #编辑防火墙配置文件
#systemctl restart iptables.service #最后重启防火墙使配置生效
#systemctl enable iptables.service #设置防火墙开机启动

firewall

#yum install firewalld firewall-config –y  --安装
查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
1、查看所有区域
# firewall-cmd --get-zones 
2、查看默认区域
# firewall-cmd --get-default-zone 
3、修改默认区域
# firewall-cmd --set-default-zone=home 
# firewall-cmd --reload 
4、查看区域的规则  
# firewall-cmd --list-all --zone=work
启动: systemctl start firewalld
查看状态: systemctl status firewalld 
禁用: systemctl disable firewalld
停止: systemctl stop firewalld

配置firewalld-cmd
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
开启一个端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
重新加载生效
firewall-cmd –reload
查看
firewall-cmd --zone= public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp –permanent
firewall-cmd --reload
在Public默认区域中放行http服务的访问
# firewall-cmd --permanent --zone=public --add-service=http 
# firewall-cmd --reload
在Public默认区域中删除http服务的访问
# firewall-cmd --permanent --zone=public --remove-service=http
# firewall-cmd --reload
将客户端192.168.122.0/24所有访问请求引导到work区域,放行http服务的访问
# firewall-cmd --permanent --add-source=192.168.122.0/24 --zone=work
# firewall-cmd --permanent --add-port=80/tcp --zone=work
# firewall-cmd --reload

selinux

安装管理工具: yum install setools-console -y
SELinux的策略与规则管理相关命令:
seinfo查询SELinux的策略提供多少相关规则
sesearch
getsebool
-a:列出目前系统上面的所有布尔值条款设置为开启或关闭值。
setsebool
setsebool [-P] 布尔值=[0|1]
semanage
-l:查询。 
fcontext:主要用在安全上下文方面。
  -a:增加,你可以增加一些目录的默认安全上下文类型设置。
  -m:修改。 
-d:删除。
放行端口
semanage port -a -t http_port_t -p tcp 888
semanage port -a -t mysqld_port_t -p tcp 6606
查看那放行端口:
临时生效:setenforce  0    查看 getenforce    
        永久生效:vim  /etc/selinux/config  修改为disabled
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值