本文作者:阿豪

Linux之防火墙介绍

阿豪 6个月前 ( 01-19 ) 9

selinux

selinux是Linux系统特有的安全机制,因为这种机制限制太多了,配置也繁琐,几乎是没有人真正用它,一般装完系统都关闭

selinux临时关闭 setenforce 0

如果要 selinux永久关闭,需要编辑下面文件

# vi /etc/selinux/config

image.png

吧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

image.png

# 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

image.png

这里没有加-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

image.png

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

image.png

# 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


文章版权及转载声明

作者:阿豪本文地址:https://www.ahaoyw.com/article/44.html发布于 6个月前 ( 01-19 )
文章转载或复制请以超链接形式并注明出处阿豪运维笔记

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

分享