linux日常运维2

10.12 firewalld和netfilter

Centos7中默认将原来的防火墙iptables升级为了firewalld,firewalld跟iptables比起来至少有两大好处: 
1、firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效; 
2、firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。

mark

  • 关闭selinux
临时关闭:          setenforce 0
获取selinux状态:   getenfore
永久关闭:
# vi /etc/selinux/config  ##永久关闭要改配置文件
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing  ##把这行改成这样SELINUX=disabled,重启系统就好。
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

# getenforce  ##重启系统后状态
Disabled
  • firewalld

firewalld自身并不具备防火墙的功能 和iptables一样需要通过内核的netfilter来实现 
firewalld和 iptables一样,作用都是用于维护规则,真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了

  • 关闭centos7中firewalld,开启iptables工具
[root@localhost ~]# systemctl disable firewalld  ##先停掉,不让它开机启动
[root@localhost ~]# systemctl stop firewalld.service ##关闭服务,让服务停止
[root@localhost ~]# yum install -y iptables-services ##先安装个包,装完后就会产生一个服务。
[root@localhost ~]# systemctl start iptables.service##把iptables服务开启
[root@localhost ~]# iptables -nvL  ##这个命令可以查看默认规则
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   37  2508 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
​
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
​
Chain OUTPUT (policy ACCEPT 23 packets, 2028 bytes)
 pkts bytes target     prot opt in     out     source               destination 
​

10.13 iptables 5表5链

iptables内置了4个表,即filter表、nat表、mangle表、raw表、security表(centos6版本无该表),分别用于实现包过滤,网络地址转换、包重构(修改)、数据跟踪处理、安全管理

  • 表和链的关系

mark

链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一 条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据 该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定 义的默认策略来处理数据包。

  • 规则表

1.filter表——三个链:INPUT、FORWARD、OUTPUT 作用:过滤数据包 内核模块:iptables_filter.

2.Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT 作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat

3.Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD 作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle(别看这个表这么麻烦,咱们设置策略时几乎都不会用到它)

4.Raw表——两个链:OUTPUT、PREROUTING 作用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw

  • 规则链

1.INPUT——进来的数据包应用此规则链中的策略

2.OUTPUT——外出的数据包应用此规则链中的策略

3.FORWARD——转发数据包时应用此规则链中的策略

4.PREROUTING——对数据包作路由选择前应用此链中的规则 (记住!所有的数据包进来的时侯都先由这个链处理)

5.POSTROUTING——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

mark


10.14 iptables语法

规则配置文件路径为:/etc/sysconfig/iptables 
- 常用参数

iptables -nvL                   查看规则
iptables -F                     暂时清除规则,重启后失效
service iptables save           保存当前规则
iptables -Z                     清除iptables过滤计数器
  • iptables的基本语法格式 

mark

iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作]

  • 增加、删除一条规则
[root@localhost ~]# iptables -A INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 --dport 80 -j DROP
省略-t 针对filter 表
-A 表示增加一条规则
-I 表示插入一条规则
-D 删除一条规则
-s 源地址
-p 协议(tcp, udp, icmp)
 --sport/--dport 后跟源端口/目标端口
 -d 目的地址
 -i 指定网卡
 -j 动作(DROP 即把包丢掉,REJECT即包拒绝,ACCEPT 即允许包)。
 -i 指定网卡
  • 更改默认规则

iptables -P INPUT DROP

  • 快速删除一条规则

# iptables -nvL --line-numbers

# iptables -D INPUT 1

利用iptables计数器实现基于端口的网络流量统计


10.15 iptables案例

  • vi /usr/local/sbin/iptables.sh //加入以下内容 
#! /bin/bash

ipt="/usr/sbin/iptables" ##定义变量

$ipt -F ##首先把之前的规则清空

$ipt -P INPUT DROP ##把默认策略定义下

$ipt -P OUTPUT ACCEPT

$ipt -P FORWARD ACCEPT

$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ##加规则

$ipt -A INPUT -s 192.168.106.0/24 -p tcp --dport 22 -j ACCEPT

$ipt -A INPUT -p tcp --dport 80 -j ACCEPT

$ipt -A INPUT -p tcp --dport 21 -j ACCEPT

如果想开机启动时初始化防火墙*规则,则需要在 /etc/rc.d/rc.local 中添加一行 ―/bin/sh /usr/local/sbin/iptables.sh

  • icmp示例

iptables -I INPUT -p icmp --icmp-type 8 -j DROP // 开启本机禁ping效果,但是本机可以ping通别人

service iptables restart  ##在没有保存规则的情况下重启服务可以恢复默认规则

10.16 iptales nat表应用

  • 需求1

A机器两块网卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联 
1.需求一:可以让B机器连接外网

A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward 或者在/etc/sysctl.conf文件添加net.ipv4.ip_forward = 1 这行然后sysctl -p 永久生效
A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE 
  • 需求2:

C机器只能和A通信,让C机器可以直接连通B机器的22端口

A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward
A上执行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
A上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130
B上设置网关为192.168.100.1

课堂笔记:

永久关闭SELINUX:

永久关闭SELINUX需要修改SELINUX的配置文件/etc/selinux/config

  • 修改方法1:

 vim /etc/selinux/config   #使用vim编辑器编辑/etc/selinux/config文件。      

将文件中的SELINUX=enforce修改为SELINUX=disabled后,保存退出。

 
修改方法2:执行下面这条命令:     

 sed ­i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config 
检查修改结果:    

 [root@long01 ~]# grep ­i "selinux=disabled" /etc/selinux/config      

SELINUX=disabled 
grep能过滤出结果,表示修改正确。然后重启系统就能完全关闭SELINUX了。 

查看iptables服务是否正常开启:

# systemctl status iptables

命令:service iptables save 

说明:执行这条命令会把当前iptables的所有规则保存到/etc/sysconfig/iptables文件中。 
 

关 于 icmp 包 类 型 参 考 说 明 : https://blog.csdn.net/noooooorth/article/details/51636482

扩展(selinux了解即可)

selinux教程 http://os.51cto.com/art/201209/355490.htm

selinux pdf电子书 http://pan.baidu.com/s/1jGGdExK

iptables应用在一个网段 http://www.aminglinux.com/bbs/thread-177-1-1.html

sant,dnat,masquerade http://www.aminglinux.com/bbs/thread-7255-1-1.html

iptables限制syn速率 http://www.aminglinux.com/bbs/thread-985-1-1.html http://jamyy.us.to/blog/2006/03/206.html

猜你喜欢

转载自blog.csdn.net/xzl18779631005/article/details/82085741