linux系统设置-防火墙
基础知识
Linux系统内核内建了netfilter防火墙机制。Netfilter(数据包过滤机制),所谓的数据包过滤,就是分析进入主机的网络数据包,将数据包的头部数据提取出来进行分析,以决该连接为放行或阻挡的机制。Netfilter提供了iptables这个程序来作为防火墙数据包过滤的命令。Netfilter是内建的,效率非常高。
我们可以通过iptables命令来设置netfilter的过滤机制。
iptables里有3张表:
> Filter(过滤器),进入Linux本机的数据包有关,是默认的表。
> NAT(地址转换),与Linux本机无关,主要与Linux主机后的局域网内计算机相关。
> Mangle(破坏者),这个表格主要是与特殊的数据包的路由标志有关(通常不用涉及到这个表的修改,对这个表的修改破坏性很大,慎改之)。
每张表里都还有多条链:
Filter:INPUT, OUTPUT, FORWARD
NAT:PREROUTING, POSTROUTING, OUTPUT
Mangle:PREROUTING, OUTPUT, INPUT, FORWARD
iptables命令的使用
基本格式:iptables [-t table] -CMD chain CRETIRIA -j ACTION
-t table:3张表中的其中一种filter, nat, mangle,如果没有指定,默认是filter。
CMD:操作命令。查看、添加、替换、删除等。
chain:链。指定是对表中的哪条链进行操作,如filter表中的INPUT链。
CRETIRIA:匹配模式。对要过滤的数据包进行描述
ACTION:操作。接受、拒绝、丢弃等。
举例:
①添加
格式:iptables [-t table] -A chain CRETIRIA -j ACTION
将新规则加入到表table(默认filter)的chain链的最后位置
②插入
格式:iptables [-t table] -I chain pos CRETIRIA -j ACTION
将新规则插入到table表(默认filter)chain链的pos位置。原来之后的规则都往后推一位。pos的有效范围为:1 ~ num+1
③替换
格式:iptables [-t table] -R chain pos CRETIRIA -j ACTION
用新规则替换table表(默认filter)chain链的pos位置的规则。pos的有效范围为:1 ~ num
④删除
格式:iptables [-t table] -D chain pos
删除table表(默认filter)chain链的pos位置的规则。pos的有效范围为:1 ~ num
⑤包匹配(CRETIRIA)
介绍CRETIRIA的规则。包匹配就是用于描述需要过滤的数据包包头特殊的字段。
指定网口:
-i :数据包所进入的那个网络接口,例如 eth0、lo等,需与INPUT链配合
-o: 数据包所传出的那么网络接口,需与OUTPUT链配合
指定协议:
-p:tcp, udp, icmp或all,比如经常使用测试网络连通性的ping就使用的icmp协议。
因为每个协议的规则不太相同,当不明白时,别忘了,--help。比如:
iptables -p icmp --help
iptables -p tcp --help
对于tcp,udp的协议,因为这些协议有很多端口,当希望打开某些服务时,开放对应的端口即可.比如:
ssh服务:-p tcp --dport 22;
telnet服务:-p tcp --dport 23;
postgresql服务:-p tcp --dport 5432;
web服务:-p tcp --dport 80;
当然,这些只是默认的端口,实际过程中需要设置实际的端口号。
指定IP网络:
-s:来源网络。可以是IP或网络
IP: 192.168.0.100
网络: 192.168.0.0/24 或 192.168.0.0/255.255.255.0 均可
可以在前加 ! 表示取反
-d:目标网格。同 -s
指定端口:
--sport:指定来源端口。可以是单个端口,还可以是连续的端口,例如:1024:65535。
--dport:指定目标端口。同--sport
注意:要指定了tcp或udp协议才会有效。
指定MAC地址:
-m mac --mac-source aa:bb:cc:dd:ee:ff
指定状态:
-m state --state STATUS
STATUS可以是:
> INVALID,无效包
> ESTABLISHED,已经连接成功的连接状态
> NEW,想要新立连接的数据包
> RELATED,这个数据包与主机发送出去的数据包有关,(最常用)
例如:只要已建立连接或与已发出请求相关的数据包就予以通过,不合法数据包就丢弃
-m state --state RELATED,ESTABLISHED
⑥操作(ACTION)
DROP,丢弃
ACCEPT,接受
REJECT,拒绝
LOG,跟踪记录,将访问记录写入 /var/log/messages
⑦保存配置
将新设置的规则保存到文件
格式:iptables-save [-t table]
将当前的配置保存到 /etc/sysconfig/iptables
⑧清楚规则
格式:iptables [-t table] [-FXZ]
-F :请除所有的已制订的规则
-X :除掉所有用户“自定义”的chain
-Z :将所有的统计值清0
linux下IPTABLES配置详解
①查看本机关于IPTABLES的设置情况
Chain INPUT (policy ACCEPT)
target prot opt source destination
target prot opt source destination
target prot opt source destination
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口.
②清除原有规则.
[root@tp ~]# iptables -X 清除预设表filter中使用者自定链中的规则
Chain INPUT (policy ACCEPT)
target prot opt source destination
target prot opt source destination
target prot opt source destination
③设定预设规则(采取什么策略,如默认是drop的,或者是accept)
含义:
④添加规则
如果做了邮件服务器,开启25,110端口.
[root@tp ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
如果做了FTP服务器,开启21端口
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)
linux系统设置-防火墙的更多相关文章
- linux关闭防火墙
查看防火墙状态: sudo service iptables status linux关闭防火墙命令: sudo service iptables stop linux启动防火墙命令: sudo se ...
- linux系统设置服务开机启动3种方法,Linux开机启动程序详解
linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图 方法2:利用命令行chkconfig命令进行设置 简要说明 ...
- 写了个Linux包过滤防火墙
花几天写了个so easy的Linux包过滤防火墙,估计实际意义不是很大.防火墙包括用户态执行程序和内核模块,内核模块完全可以用iptable代替.由于在编写的过程一开始写的是内核模块所以就直接用上来 ...
- Linux关闭防火墙、SELinux
使用root权限: Linux关闭防火墙: 1. chkconfig –list|grep iptables 2. chkconfig iptables off 永久关闭防火墙 3. chkconfi ...
- SpringCloud的应用发布(四)vmvare+linux,防火墙和selinux
一.vmvare网络配置为nat模式 二.vmvare的网络设置为桥接bridge模式 1.linux 网卡的ip获取方式dhcp 三.关闭linux的防火墙和selinux 1.临时关闭防火墙 sy ...
- Linux配置防火墙,开启80端口、3306端口
Linux配置防火墙,开启80端口.3306端口 起因是因为想使用Navicat连接一下数据库,发现连接不上 通过查阅许多资料和多次测试发现是因为防火墙没有配置3306端口 话不多说,开整,同理, ...
- Linux firewalld 防火墙
Linux firewalld 防火墙 简介 RHEL 7 系统中集成了多款防火墙管理工具,其中 firewalld(Dynamic Firewall Manager of Linux system ...
- Linux上防火墙开放对应的端口
在Linux上防火墙开放对应的端口的命令如下: 方式一: [root@localhost sbin]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACC ...
- 转:linux关闭防火墙iptables
ref:https://jingyan.baidu.com/article/066074d64f433ec3c21cb000.html Linux系统下面自带了防火墙iptables,iptables ...
随机推荐
- C# 枚举显示中文
转自:http://www.cnblogs.com/yank/archive/2011/09/08/EnumDisplayInChinese.html using System; using Sy ...
- 可视化日志分析工具Gltail的安装与使用
可视化日志分析工具Gltail的安装与使用 GlTail.rb 是一款带有浓郁的 Geek 风格的可视化日志分析工具,它采用 Ruby 技术构建,并利用 OpenGL 图形技术进行渲染,呈现 ...
- VC7 HTML Dialog开发实例讲解
开发环境:VS7,Windows XP,Windows 2K 在VS7中添加了一种新的对话框类:CDHtmlDialog,顾名思义就是能够显示DHTML内容的对话框,但不同与以前的CHTMLView不 ...
- HTTP长连接200万尝试及调优
对于一个server,我们一般考虑他所能支撑的qps,但有那么一种应用, 我们需要关注的是它能支撑的连接数个数,而并非qps,当然qps也是我们需要考虑的性能点之一.这种应用常见于消息推送系统,也称为 ...
- 可自定义导航条功能案例ios项目源码
可定制的navigationitem ,当我们使用系统的方法设置navigationItem的leftItem或者rightItem时,我们会 发现item位置会有偏差(左边的偏右,右边的偏左).当设 ...
- c++对象模型以及内存布局的研究
先引出问题,看一段代码: #include <iostream> using namespace std; class A { }; class B { public: B() {} ~B ...
- eclipse 中maven项目右键没有maven菜单问题
修改项目.project文件,确保有maven2Builder和maven2Nature2个标签: <?xml version="1.0" encoding="UT ...
- java项目编译有误
classpath component
- winform中嵌入Ppt、Word、Excel
1.下载DsoFramer_KB311765_x86.exe 2.安装,默认路径安装C:\DsoFramer. 3.注册:开始菜单——>运行 输入:regsvr32 C:\DsoFramer\d ...
- 别不拿里程碑当石头---------IT项目管理之项目计划(转)
如果说做项目不需要计划,恐怕没人会认同.是否每个项目计划都起到了作用呢?却不尽然.知道要做计划,但不知道为什么做计划,如何做计划的还是大有人在.所以很多计划沦为依样画葫芦,成了摆设. IT项目计划的用 ...