Iptables#Iptables加固服务器安全
Iptables加固服务器安全
文章目录
- Iptables加固服务器安全
- 一、信息安全概述系统方面
- 二、信息安全概述网络方面
- 1、网络防火墙
- 2、上网安全行为
- 3、入侵检测
- 4、传输安全VPN 虚拟专用网
- 三、信息安全概述Linux防火墙的建议
- 四、Iptables主机型防火墙概述
- 1、概述:
- 2、Iptabiles工作在TCP/IP2、3、4层模型
- 3、Iptables防火墙缺点
- 五、Iptables的table&Chain&police(四表五链一堆策略)
- 1、四个表
- 2、五个链
- 3、一堆策略
- 4、Iptables数据包过滤架构图和表链关系结构图
- 5、表链关系
- 6、表的应用顺序
- 7、链之间的顺序
- 8、规则的应用顺序
- 六、Iptables主机型防火墙规则语法
- 七、Iptables主机型防火墙配置规则示例:(宽进严格出,没有明确的允许皆为拒绝)
- 1、添加和删除禁止自己被ping的规则
- 2、第一行添加
- 3、第二行添加
- 4、A最后一行添加
- 5、以数字形式显示端口、每行显示行号产看规则
- 6、通过行号删除规则
- 7、清空规则
- 8、修改默认规则
- 八、Iptables主机型防火墙规则进阶(条件匹配)
- 1、通用匹配(协议、ip地址、网络接口可以独立使用)
- 2、隐含匹配--sport/--dport(源地址端口和目的地址端口),需要协议的前提
- 3、显示匹配(通过调用模块:lsmod | grep xt_ 来加载内核扩展模块,如端口匹配,IP范围,MAC地址,状态等特殊匹配)
- 4、新的Web服务器的iptables规则示例
- 九、Iptables网络型防火墙SNAT(源地址网络地址转换)技术
- 1、配置IP,将同一网段打通。注意配置网关地址
- 2、启动CENTOS7B的路由转发功能,后测试内外网互通。成功
- 3、删除CENTOS7C的网关,模拟私有IP没有路由的情况。尝试通信失败
- 4、建立SNAT。通信成功
- 十、Iptables网络型防火墙MASQUERADE(地址伪装)技术
- 十一、Iptables网络型防火墙DNAT(目标地址转换)技术
- 十二、Iptables网络型防火墙PNAT(端口映射)技术
一、信息安全概述系统方面
系统安全策略:SSH端口修改、SUDO、禁止ROOT登录
文件指纹:数据安全(加密认证)
Selinux:系统对内的防护,自身程序用于自身文件的访问(文件指纹),修改删除监控
Linux软件防火墙:系统对外的防护
前身:ipfwadm,ipchains
centos6:iptables(服务器自身和网络通信流量控制)
centos7:firewall
二、信息安全概述网络方面
1、网络防火墙
应用安全防火墙
WAF => Web Application Firewall ,可以用来屏蔽常见的网站漏洞攻击,如SQL注入,XML注入、XSS等。一般针对的是应用层而非网络层的入侵,从技术角度应该称之为Web IPS。其防护重点是SQL注入。
网络防火墙(UTM)
思科ASA5550、华为USG6650、启明星辰 天清汉马 USG-2000C
UTM安全设备的定义是指一体化安全设备,它具备的基本功能包括网络防火墙、网络入侵检测/防御和网关防病毒功能,但这几项功能并不一定要同时得到使用,不过它们应该是UTM设备自身固有的功能。
防毒墙
垃圾邮件病毒邮件过滤、国信冠群Yorton-2000应用安全网关 、趋势科技
2、上网安全行为
网康NI3200-50
3、入侵检测
IDS,IPS(网络扫描,网络嗅探)
绿盟,华为,天融信,启明星辰
4、传输安全VPN 虚拟专用网
三、信息安全概述Linux防火墙的建议
关闭Linux自身防火墙。(解决安全问题尽量不给服务器配置外网IP.需要访问的话,就使用代理转发。)因为高并发,iptables会加大延迟。除非并发小,服务器必须处于公网。考虑开启防火墙。
四、Iptables主机型防火墙概述
1、概述:
linux提供了大量的网络服务,FTP,WEB,EMAIL.DB等,保护互联网应用访问。通过linux防火墙,防火墙有:netfilter和iptables可以有效控制进出服务器的流量和流经服务器的流量。今天主要掌握墙的结构,匹配流程和编写规则。
netfilter:内核态,即不以文件和形式存在(kernal space)的防火墙。
iptables:用户态,在/sbin/iptables存在(User space)的防火。操作上二者没有区分
2、Iptabiles工作在TCP/IP2、3、4层模型
linux-iptables主机型防火墙工作在2,3,4层,对TCP/IP数据包进行过滤和限制。属于包过滤型防火墙(无法过滤病毒)。(除非编译内核才可以使iptables支持7层)
3、Iptables防火墙缺点
(1)防火墙虽然可以过滤互联网的数据包,但却无法过滤内部网络的数据包。因此若有人从内部网络攻击时,防火墙没有作用。
(2)电脑本身的操作系统亦可能因一些系统漏洞,使入侵者可以利用这些漏洞绕过防火墙过滤,从而入侵电脑。
(3)防火墙无法有效阻挡病毒攻击,尤其是隐藏在数据中的病毒。
(4)正常状况下,所有互联网的数据包软件都应经过防火墙的过滤,这将造成网络交通的瓶颈。例如在攻击性数据包出现时,攻击者会不时寄出数据包,让防火墙疲于过滤数据包,而使一些合法数据包软件亦无法正常进出防火墙。
PS:没有绝对安全的操作系统,虽然防火墙有这些缺点,但还是能阻挡大多数来自于外网的攻击!
五、Iptables的table&Chain&police(四表五链一堆策略)
1、四个表
filter过滤/nat装换/mangle碾压/raw生的
主要是filter和nat
表像安防小队
2、五个链
PREROUTING预路由
POSTROUTING已路由
INPUT入站
OUTPUT出站
FORWARD转发
主要是INPUT、OUTPUT、POSTROUTING
链像安防小队中的安防员
3、一堆策略
Iptables的防火墙规则
4、Iptables数据包过滤架构图和表链关系结构图
5、表链关系
filter表
INPUT:访问本机的数据包进行过滤
FORWARD:途径本机的数据包进行过过滤
OUTPUT:本机访问互联网的数据包进行过滤
总结:根据规则来处理数据包,如转或者丢。就是实现主机型防火墙的主要表。内核模块 iptable_filter
nat
PREROUTING:修改目的地址
POSTTOUTING:修改源地址
OUTPUT:主要是控制内部
总结:转换地址的表(改IP,改端口。当网关使用的linux。保护内外网流量。内核模块叫iptable_nat)
mangle
PREROUTING,POSTROUTING,INPUIT,OUTPUT,FORWARD
流量整形的表。路由标记用的表。改TOS,TTL,Mark标记策略路由等,内核模块iptables_mangle
raw:PREROUTING,OUTPUT,新表,数据包跟踪 iptables_raw
6、表的应用顺序
raw → mangle → nat → filter
7、链之间的顺序
入站
比如访问自身的web服务流量。先PREROUTING(是否改地址),再INPUT(是否允许)到达程序。
转发
经过linux网关的流量。先PREROUTING(是否改地址),然后路由。转发给FORWARD(转发或者丢弃),最后经过POSTROUTING(看看改不改地址。如NAT)
出站
源自linux自身的流量。先OUTPUT,然后路由。再给POSTROUTING(是否改IP)。
8、规则的应用顺序
ACL(访问控制列表)逐条匹配,匹配即停止。(除了LOG规则)
六、Iptables主机型防火墙规则语法
iptables -t 表名 管理选项 [链名] [匹配条件] [-j 控制类型]
表名:filter(默认)、nat、mangle、raw
管理选项:
添加新的规则
-I:在链的开头(或指定序号)插入一条规则
-A:在链的末尾追加一条规则
查看规则列表
-L:列出所有的规则条目
-n:以数字形式显示地址、端口等信息
-v:以更详细的方式显示规则信息
--line-numbers:查看规则时,显示规则的序号(方便之处,通过需要删除规则-D INPUT 1
删除、清空规则
-D:删除链内指定序号(或内容)的一条规则
-F:清空所有的规则(-X是清理自定义的链,用的少;-Z清零规则序号)(-F -X -Z连用,删除干净)
设置默认策略
-P:为指定的链设置默认规则
链名:PREROUTING、POSTROUTING、INPUIT、OUTPUT、ORWARD
匹配条件:数据包特征ip,端口等
控制类型:数据包处理方式,ACCEPT允许、REJECT拒绝、DROP丢弃、LOG日志(log不适用匹配即停止,记录后下一条)等
七、Iptables主机型防火墙配置规则示例:(宽进严格出,没有明确的允许皆为拒绝)
链名和控制类型名要用大写,默认的规则优先级最低
同一个表中的同一个链的配置规则中
优先级高的规则放行之后,后面的拒绝规则无效
优先级高的规则拒绝之后,后面的放行规则无效
1、添加和删除禁止自己被ping的规则
[root@iptables ~]# iptables -t filter -I INPUT -p icmp -j REJECT
[root@iptables ~]# iptables -t filter -D INPUT -p icmp -j REJECT
2、第一行添加
[root@iptables ~]# iptables -t filter -I INPUT -p udp -j ACCEPT
3、第二行添加
[root@iptables ~]# iptables -t filter -I INPUT 2 -p icmp -j ACCEPT
4、A最后一行添加
[root@iptables ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT
5、以数字形式显示端口、每行显示行号产看规则
[root@iptables ~]# iptables -L -n --line-number
6、通过行号删除规则
[root@iptables ~]# iptables -D INPUT 3
7、清空规则
[root@iptables ~]# iptables -F
[root@iptables ~]# iptables -X
[root@iptables ~]# iptables -Z
8、修改默认规则
[root@iptables ~]# iptables -t filter -P INPUT DROP
[root@iptables ~]# iptables -t filter -P INPUT ACCEPT
八、Iptables主机型防火墙规则进阶(条件匹配)
1、通用匹配(协议、ip地址、网络接口可以独立使用)
协议,不让别人ping自己
[root@iptables ~]# iptables -t filter -I INPUT -p icmp -j DROP
禁止10.11.67.85的主机ping自己(-s)
[root@iptables ~]# iptables -t filter -I INPUT -p icmp -s 10.11.67.85 -j REJECT
禁止10.11.67.0/24的网段ping自己
[root@iptables ~]# iptables -t filter -I INPUT -p icmp -s 10.11.67.0/24 -j REJECT
禁止物理接口eth0的数据包(-i)
[root@iptables ~]# iptables -t filter -I INPUT -i eth0 -j REJECT
2、隐含匹配–sport/–dport(源地址端口和目的地址端口),需要协议的前提
先设置默认拒绝所有,然后放行个别端口
[root@iptables ~]# iptables -t filter -P INPUT DROP
或者先设置默认允许所有,然后拒绝个别端口
[root@iptables ~]# iptables -t filter -P INPUT ACCEPT
端口匹配:允许个别端口,如网站端口,网站访问放行(–dport 80)
[root@iptables ~]# iptables -t filter -I INPUT -s 10.11.67.85 -p tcp --dport 80 -j ACCEPT
端口匹配:10:21表示端口范围,放行FTP(–dport 20:21)
[root@iptables ~]# iptables -t filter -I INPUT -p tcp --dport 20:21 -j ACCEPT
[root@iptables ~]# iptables -t filter -I INPUT -p tcp --dport 24500:24600 -j ACCEPT
标记位匹配(TCP连接类型SYN,ACK,RST)(–tcp-flags)
[root@iptables ~]# iptables -t filter -I INPUT -p tcp --tcp-flags SYN,RST,ACK SYN -j DROP
ICMP类型匹配(请求8,回应0)(–icmp-type)
自己可以ping别人反过来不可以(input进口禁掉8)
[root@iptables ~]# iptables -t filter -A INPUT -p icmp --icmp-type 8 -j DROP
自己不能ping别人了。别人可以ping自己。。
[root@iptables ~]# iptables -t filter -A INPUT -p icmp --icmp-type 0 -j DROP
拒绝任何ping请求
[root@iptables ~]# iptables -t filter -I INPUT -p icmp -j DROP
3、显示匹配(通过调用模块:lsmod | grep xt_ 来加载内核扩展模块,如端口匹配,IP范围,MAC地址,状态等特殊匹配)
多端口匹配,一次放行多个端口(-m multiport --sports -m multiport --dports)
[root@iptables ~]# iptables -t filter -I INPUT -p tcp -m multiport --dport 18,21,20 -j DROP
IP地址范围匹配,自定义ip地址范围(-m iprange --src-range)
[root@iptables ~]# iptables -t filter -I INPUT -p tcp -m iprange --src-range 10.11.67.2-10.11.67.89 -j ACCEPT
MAC地址匹配,放行一个MAC地址(-m mac --mac-source)
[root@iptables ~]# iptables -t filter -A INPUT -p tcp -m mac --mac-source 00:0c:29:43:38:28 -j ACCEPT
TCP状态匹配,根据iptables跟踪链接状态,来定义链接的3个状态new新,established相应,related已有(-m state --state)
[root@iptables ~]# iptables -t filter -I INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
4、新的Web服务器的iptables规则示例
IPT="/usr/sbin/iptables"
$IPT --delete-chain
$IPT --flush
$IPT -P INPUT DROP #1
$IPT -P FORWARD DROP#1
$IPT -P OUTPUT DROP #1
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #2
$IPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT #3
$IPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT #3
$IPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT#3
$IPT -A INPUT -p tcp -m tcp --dport 873 -j ACCEPT #3
$IPT -A INPUT -i lo -j ACCEPT #4
$IPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT#5
$IPT -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT #5
$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #6
$IPT -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT #7
$IPT -A OUTPUT -o lo -j ACCEPT #4
$IPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT #8
$IPT -A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT #9
$IPT -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT#10
$IPT -A OUTPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT #10
service iptables save
service iptables restart
存为脚本iptables. sh,执行sh iptables. sh自动配置防火墙。
解释:
#1、设置INPUT,FORWARD,OUTPUT链默认target为DROP,也就是外部与服务器不能通信。
#2、设置当连接状态为RELATED和ESTABLISHED时,允许数据进入服务器。
#3、设置外部客户端连接服务器端口80,22,21,873。
#4、允许内部数据循回。
#5、允许外部ping服务器。
#6、设置状态为RELATED和ESTABLISHED的数据可以从服务器发送到外部。
#7、允许服务器使用外部dns解析域名。
#8、设置服务器连接外部服务器端口80。
#9、允许服务器发送邮件。
#10、允许从服务器ping外部。
iptables保存:iptables-save
iptables还原:iptables-restore
九、Iptables网络型防火墙SNAT(源地址网络地址转换)技术
filter表主要做服务器流量控制。控制别人访问服务器的。
nat表主要做网关路由器的。网络地址转换。SNAT和DNAT
前言:
internet访问,在没有NAT(network address translation)时,外部服务器对内部的私有地址是无法进行路由的。做了SNAT就可以转换地址,进行路由通信。(注意:您的网卡名称不是ens32;注意:您的虚拟网络名称不是VMNET1)
环境:
CENTOS7A:内网客户机:192.168.100.10 ens32 VMnet1 GATEWAY:192.168.100.20
CENTOS7B:网关内网 :192.168.100.20 ens32 VMnet1 GATEWAY:无
CENTOS7B:网关外网 :192.168.200.10 ens33 VMnet2 GATEWAY:无
CENTOS7C:WEB服务器:192.168.200.20 ens32 VMnet2 GATEWAY:192.168.200.10 (WEB 服务器)
原理:
1、配置IP,将同一网段打通。注意配置网关地址
配置网关,就可以进行不同网段的打通
谁带我上网,谁就是我的网关
2、启动CENTOS7B的路由转发功能,后测试内外网互通。成功
echo “net.ipv4.ip_forward = 1” >>/usr/lib/sysctl.d/50-default.conf (重启一下,永久开启)
sysctl -a | grep ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward(临时开启)
3、删除CENTOS7C的网关,模拟私有IP没有路由的情况。尝试通信失败
4、建立SNAT。通信成功
iptables -FXZL(清空一下,分开执行)
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to-source 192.168.200.10
Linux-CentOS7做路由器的Iptables加上这个规则
参数
-t nat NAT表
-A POSTROUTING 追加,已路由链
-s 192.168.100.0/24 源地址
-o ens33 接口33,出方向
-j SNAT 动作:源地址转换
--to-source 192.168.200.10 源地址转成 200.10
通过CENTOS7Cweb主机的访问日志,可以看出来访者。
less /var/log/httpd/access_log
十、Iptables网络型防火墙MASQUERADE(地址伪装)技术
MASQUERADE —— 地址伪装
地址伪装:适用于外网IP地址非固定的情况
因为:对于ADSL拨号连接,接口通常为 ppp0、ppp1
所以:将SNAT规则改为MASQUERADE即可,使动态地址作为SNAT的目标地址。效果同前一个实验
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
参数 -t nat -A POSTROUTING -s 92.168.100.0/24 -o ens33 -j MASQUERADE
十一、Iptables网络型防火墙DNAT(目标地址转换)技术
发布内网服务器,DNAT转换目标地址
①先部署内网服务器。100.10部署成web/ssh
②在网关配置DNAT,外网访问内网测试成功。
iptables -t nat -A PREROUTING -i ens33 -d 192.168.200.10 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.10
参数
-t nat
-A PREROUTING
-i ens33
-d 192.168.200.10
-p tcp --dport 80
-j DNAT
--to-destination 192.168.100.10
十二、Iptables网络型防火墙PNAT(端口映射)技术
DAT端口转换(映射)。安全性更高,比如内网服务器的SSH程序的22号端口。发布时SSH使用2345端口。
演示配置端口映射
iptables -t nat -A PREROUTING -i ens33 -d 192.168.200.10 -p tcp --dport 2345 -j DNAT --to-destination 192.168.100.10:22
参数
-t nat NAT表
-A PREROUTING 预路由链
-i ens33 接口33 ,入方向
-d 192.168.200.10 目的地址 200.10
-p tcp --dport 2346 协议,端口2346
-j DNAT 目标地址转换
--to-destination 192.168.100.10:22 转成目标地址100.10
那么外网访问的时候,就要访问改过的外网地址和端口了。
ssh -p 2345 192.168.200.10
Iptables#Iptables加固服务器安全相关推荐
- 服务器安全之iptables iptables
服务器安全之iptables 感谢老男孩老师为我们讲解iptables 优化之路 iptables防火墙简介 Netfilter/Iptables(以下简称Iptables)是unix/linux自 ...
- 多服务器虚拟化 map_兆芯双路刀片加固服务器简介
一.需求 服务器作为信息处理.存储.传输的基础装备,随着武器装备国产化要求越来越高,对军用服务器软硬件装备型谱的发展提出了明确的规划和指标要求. 二.兆芯刀片加固服务器 为适应舰艇信息系统基础设施建设 ...
- 专业服务器加固系统价格,实惠的加固服务器哪家靠谱
嵌入式加固计算机外壳一般采用铝型材制造,很坚固,散热性能也很好,可以安置在设备内.车载.桌面等,对抗震.防尘.防水.宽温等要求严格的环境,如下是B+F嵌入式加固计算机技术规格.从上个世纪90年代至今, ...
- linux 防火墙加固,Iptables 加固服务器安全
防火墙在做信息滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息滤表中,而这些表集成在Linux内核中.在信息滤表中,规则被分组放在我们所谓的链(Chain)中.Iptables组件是一种工具 ...
- CentOS 6.9使用iptables搭建网关服务器(转)
条件: 网关服务器IP:172.16.0.1,并且可以连接到外网 客户端IP:172.16.0.0/24 1.开启转发支持forward /etc/sysctl.conf net.ipv4.ip_fo ...
- iptables —— Iptables防火墙规则使用梳理
iptables是组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤.封包重定向和网络地址转换(NAT)等功能 ...
- 【加固服务器】修改默认ssh端口
前言 作为一名对Web安全感兴趣的人,怎么能没有一台自己的服务器呢?最好还是购买国外的服务器.最近一段时间,发现我的服务器特别卡,于是我想找一下原因(内心想应该是被DDOS),就用SSH登录上了服务器 ...
- android 加固服务器,Python 脚本构建Android APK 自动加固、打渠道包并上传服务器
Python 脚本构建Android APK 自动加固.打渠道包并上传服务器 常规流程 打出原始apk 使用乐固工具加固并打出响应渠道包 将生成的渠道包上传对应服务器,生成推广链接 因为每一步都需要人 ...
- android 加固服务器,服务器加固工具
1.高危服务项扫描 检测到有高危服务未禁用,如果服务器环境不需要此服务,建议将其彻底禁止: 禁用方法: 1)开始--控制面板--管理工具,打开服务管理器,找到对应的服务: 2)双击打开属性,点击停止服 ...
- Iptables防火墙详细介绍与实战增强服务器安全
Iptables防火墙详细介绍与实战增强服务器安全 一:Iptables的概述及应用 iptables概述: netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfi ...
最新文章
- ASP.NET Core 1.0 使用 MySQL for EF Core 1.0 (.NET Core 1.0)
- java Web 文件上传
- MongoDB Driver:使用正确的姿势连接复制集
- 2015.5.28 面试题1:赋值运算符函数
- SAP Spartacus 4.0 ng serve 之后,localhost 4200 会后面自动添上 electronics-spa 吗?
- 精通 Oracle+Python,第 4 部分:事务和大型对象
- 数组求最大公约数c语言,C语言辗转相除法求2个数的最小公约数
- python tuple
- python安装库pandas_安装python的第三方库 geopandas
- Activity去Title的几种方式
- 从后台获取的数据渲染到页面中的dom操作
- MVC5 + EF6 + Bootstrap3 (13) 查看详情、编辑数据、删除数据
- html字体加粗且变色,简单的html代码 加粗 加亮 字型加大 变色 分别是写什么`
- [每日一氵]Latex 的通讯作者怎么搞
- 拉普拉斯变换的性质 - 对查表
- 常见的一些代码编辑器
- 10 个快速提升技术水平的方法
- 微信小程序开通流量主,流量主收入却是个坑
- 0 嵌入式-ARM简介
- 基于GPT硬盘模式重装win10操作系统
热门文章
- 课题研究——HTML
- 计算机————你是准备拿高薪?还是准备做廉价劳动力?
- 常用机器学习算法优缺点分析
- 每日java笔试五小题-2020-9-18
- 【增强版】《Java面试笔试题全面含答案中篇》涉及java/数据库/框架/系统/设计模式相关-中篇
- HPE公司“The Machine”项目深度剖析
- Python里最神秘的一个魔法函数!
- PostgreSQL 9.5 BRIN 索引
- vue中this.$set()的用法----更新数组和对象的值
- bfs广度优先搜索matlab,【BFS】广度优先搜索,在归简法中的应用