您的位置:首页 > 运维架构 > Linux

第十五天 : 防 火 墙

2015-09-26 14:16 519 查看
小Q:工欲行其事,必先行其路;工欲善其事,必先利其器。
================================================================

今天要深入了解一下Linux中自带的防火墙功能了。如今的许多人都会去关闭它,因为不太了解吧,在工作中多多少少会有阻碍;我也不太熟,但是我感觉他既然是系统这些年一直自带的,一定有他的优势,而且还可以帮我理解网络传输形式。
初步认识:
网络走向:个人机(私有IP192.168)>>> 网关(路由器,用的公网)>>> 外网
第一防火墙 :selinux 来自于美国国家安全局

文件 : /etc/selinux/config
命令 : 看此时的状态 getenforce
永久关闭 :修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器
临时关闭: setenforce 1 设置成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式望采纳
安装命令: yum install -y Libselinux-utils
扩 展 : https://linuxtoy.org/archives/selinux-introduction.html
= http://os.51cto.com/art/201105/265956.htm
以上两个网址内容一样,主要担心某一个问文章dang 掉。
第二防火墙: netfilter (他的工具名也就是规则和这个防火墙的命令都是 iptables)
三个概念 : table 表 chain 链 rule 规则
查看三表 : iptables -t filter -nvl 不指定文件默认查看就是filter
iptables -t nat -nvl
iptables -t mangle -nvl
显示格式 : 匹配包的数量 所有包大小(字节) 协议类型 源IP 目的IP

重置匹配包数: iptables -Z
清空所有规则: iptables -F
制定规则要保存,否则重启后会丢失。
保存配置规则 : service iptables save 或 直接写入 /etc/sysconfig/iptables
重启配置规则 : service iptables restart
备份规则 : iptables-save > 1.txt 恢复备份:iptables-restore < 1.txt
常用命令 :-A INPUT 按顺序设置规则,始终在下边
-I IINPUT 插队设置规则 , 始终在上边
-D INPUT 删除设置的规则,要指定
-j REJCET 在过滤包的时候先看看怎么样,再扔
-j DROP / ACCEPT 前者是直接过滤,不看;后者直接通过
指定端口的时候必须同时指定网络协议,反之则不需要;
功能就是过滤某个端口 IP不让他访问本机:
iptables -t filter -I INPUT -p tcp --dport 80 -s 来源ip -j REJECT

以上主要是input功能,另外的output用得少,功能过滤某个IP包不让他发出去:
用法异曲同工 :将 -I INUPUT -s 来源IP 改为 -I OUTPUT -d 目标IP
扩展知识:http://blog.chinaunix.net/uid-26495963-id-3279216.html

nat :用于网络地址的转换,其实可以看作网络路由器。
三个链的功能:
PREROUTING :在包刚刚到达防火墙时改变它的目的地址,如果需要的话。
POSTROUTING :在包就要离开防火墙之前改变其源地址。
OUTPUT :改变本地产生的包的目的地址。
扩展知识:http://www.cnblogs.com/hyzhou/archive/2011/11/26/2264343.html

mangle:为数据包做标记
扩展:http://blog.jobbole.com/90008/
作者还有对nat 和 filter 的详解,不过偏重开发环节了。
默认配置举例:
针对 iptables 的脚本操作:
vim 1.ipt.sh 建文件
# ! /bin/bash
ipt="/sbin/iptables"
$ipt -F 清空规则,避免和以前的规则重复
$ipt -P INPUT DROP 不要轻易设置drop,否则会切断所有的链接;
$ipt -P INPUT ACCEPT -P 就代表police 默认规则,
$ipt -P INPUT ACCEPT
$ipt -A INPUT -s 192.168.0.0/24 -p tcp --dport 80 -j ACCEPT (-s 是一个网段)
$ipt -A INPUT -p tcp --dport 22 -j REJECT 排队拒绝访问22端口的tcp包
$ipt -I INPUT -p udp --dport 21 -j ACCEPT 插队接受访问21端口的udp包
退出并执行脚本:sh 1.ipt.sh
个人认为更改nat或mangle的默认配置业相同,不了解的话还是别别动他了。
我特别喜欢这一篇文章,有兴趣的朋友可以好好看看啊!!!
总扩展: http://blog.sina.com.cn/s/blog_6aad8abe01011u7c.html
问题集:












内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux iptables