selinux
selinux是Linux系统特有的安全机制,因为这种机制限制太多了,配置也繁琐,几乎是没有人真正用它,一般装完系统都关闭
selinux临时关闭 setenforce 0
如果要 selinux永久关闭,需要编辑下面文件
# vi /etc/selinux/config

吧SELINUX=enforcing 改为SELINUX=disabled 最后保存,更改完要重启系统才会生效
# getenforce 可以获取当前selinux的状态
centos7中的防火墙为firewalld,很多人吧linux防护墙叫做iptables
关闭firewalld开启netfilter方法
关闭firewalld服务: systemctl stop firewalld
禁止firewalled开机启动:systemctl disable firewalled
安装iptables: yum install -y iptables-services
使其开机启动:systemctl enable iptables
启动iptables服务:systemctl start iptables
netfilter5表5链介绍
netfilter的5个表
filter表用于过滤包,最常用的表,是系统预设的表
有INPUT链作用于进入本机的包
FORWARD链用于那些和本机无关的包
OUTPUT 本机产生的包,用于本机发送出去的包
nat表用于网络地址转换,有PREROUTING、OUTPUT、POSTROUTING三个链
managle表用于给数据包做标记,几乎用不到
raw表可以实现不追踪某些数据包,阿铭从来不用
security表在centos6中并没有,用于强制访问控制(MAC)的网络规则,
参考文章 http://www.cnblogs.com/metoy/p/4320813.html
数据包流向与netfilter的5个链
PREROUTING:数据包进入路由表之前
INPUT:通过路由表后目的地为本机
FORWARD:通过路由表后,目的地不为本机
OUTPUT:由本机产生,向外发出
POSTROUTING:发送到网卡接口之前
iptables语法
查看iptables规则:iptables -nvL
[root@localhost ~]# iptables -nvL

# cat /etc/sysconfig/iptables 规则配置文件
iptables -F 这里的-F表示吧所有规则全部删除,如果不加-t指定表,默认只清除filter表的规则
iptables -Z 可以把包和计数器清零
service iptables save 保存规则
iptables -t nat //-t指定表
增加一条规则用法如下
# iptables -A INPUT -s 192.168.137.1 -p tcp --sport 1234 -d 192.168.137.128 --dport 80 -j DROP

这里没有加-t选项,所以针对的是filter表,这条规则各选项作用如下
-A/-D:表示增加或者删除一条规则
-I :表示插入一条规则,插入后显示在最上面,-A是插入在最后
-p :指定协议,可以是tcp,udp,或者icmp
--dport:跟-p一起使用,表示指定目标端口
--sport :跟-p一起使用,表示指定的源端口
-s :指定源ip,可以是一个段
-d ;指定目标ip,可以是一个段
-j:后面跟动作,其中ACCEPT表示允许包,DROP表示丢掉包,REJECT表示拒绝包
例子
吧1.1.1.1所有包丢弃掉
# iptables -I INPUT - 1.1.1.1 -j DROP
删除一条规则
# iptables -D INPUT - 1.1.1.1 -j DROP
拒绝2.2.2.2发送的tcp到本机的80端口数据包丢弃掉
# iptables -I INPUT -s 2.2.2.2 -p tcp --dport 80 -j DROP
允许一个网段192.168.1.0/24这个网段且在eth0网卡上生效方形
# iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT

iptables -nvL --line-numbers 查看序列号
iptables -D INPUT 1 删除第一条规则
iptables -P INPUT DROP 干掉全部,,,慎用!!!!!,拒绝之前记得添加授权ip
需求:
值针对filter表,预设的INPUT链接DROP,其中两个链接ACCEPT,然后针对192.168.5.1开放22端口,对所有网段开放80和21端口,这个需求并不复杂,建议是写成脚本方式运行,脚本如下
# vi /usr/local/sbin/iptables.sh
#!/bin/bash ipt="/usr/sbin/iptables" $ipt -P INPUT DROP $ipt -P OUTPUT ACCEPT $ipt -P FORWARD ACCEPT $ipt -A INPUT -s 192.168.5.1 -p tcp --dport 22 -j ACCEPT $ipt -A INPUT -p tcp --dport 80 -j ACCEPT $ipt -A INPUT -p tcp --dport 21 -j ACCEPT
完成脚本后直接运行/bin/sh /usr/local/sbin/iptables.sh即可,如果想开机初始化防火墙规则,则需要在/etc/rc.d/rc.local中添加一行
/bin/sh /usr/local/sbin/iptables.sh

# iptables -I INPUT -p icmp --icmp-type 8 -j DROP
这里的--icmp-type选项要跟-p icmp 一起使用,后面指定类型的编号。这个8指的是能在本机ping通其他ip,而其他ip不能ping通本机
iptables规则备份和恢复
保存和备份iptables规则
service iptables save //会把规则保存到/etc/sysconfig/iptables
一旦我们清除防火墙规则后,规则就会不存在了这个时候我们要备份一份
把iptables规则备份到my.ipt文件中
iptables-save > my.ipt
恢复刚才备份的规则
iptables-restore < my.ipt

