IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> iptables防火墙策略 -> 正文阅读

[系统运维]iptables防火墙策略

iptables的四表五链:
四表:raw,mongon,nat,filter
五链:PREROUTING, POSTROUTING, FORWAROD, INPUT, OUTPUT

iptables 后的几种状态: ACCEPT 接收 REJECT 拒绝 DROP 丢弃 默认为 DROP
-A 在链尾追加一条新的规则
append -I 在指定位置插入一条新的服务
insert -R 修改、替换指定位置或内容的规则
replace 拒绝性 reject 给与回复
-P 设置指定链的默认策略
-L 列表查看各条规则信息
–line-numbers 查看规则信息时显示股则的行号
-n 以数字形式显示 IP 地址、端口等信息
-v 显示数据包个数、字节数等详细信息
–sport 源端口
–dport 目的端口
–sport 源端口:目标端口 一个端口范围
-m multiport 加载多端口的模块
m:match -m iprange --src-range 规定一个网段 *
iptables 常见的操作命令 链名必须放在前面并且大写 * iptables 语法格式: iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 目标动作或则跳转] iptables -L -t 表名 可以查看表中使用了哪些链 iptables -L 默认查看 filter 表 iptables -L --line-num -v 显示规则的编号 -v 显示规则的详细信息 iptables -I INPUT 1 -s 192.168.29.124/32 -p tcp --dport 80 -j ACCEPT 插入数据放在第一 行 iptables -L --line -v -n 可以查看规则 用数字并且显示详细信息 iptables -I INPUT 1 -s 192.168.29.24/24 -p tcp --dport 22 -j ACCEPT iptables -R INPUT 1 -s 192.168.29.24/24 -p tcp --dport 22 -j ACCEPT 修改这个规则 iptables -P INPUT ACCEPT 修改默认规则 iptables -F 清除的规则是不会清除默认的规则的 需要 iptables -P 链名 状态 iptables -A INPUT -s 192.168.24.29 -j DROP 丢弃针对一个 IP 地址 iptables -A INPUT -s 192.168.24.29/32 -j DROP 丢弃针对一个 IP 地址 iptables -A INPUT -s 192.168.24.29/24 -j DROP 丢弃针对一个 IP 网段 iptables -I INPUT -p icmp --icmp-type 0 -j ACCEPT 可以接收 可以 ping 的通 iptables -I INPUT -p icmp --icmp-type 0 -j DROP 不可以接收 iptables -I INPUT -p icmp -j LOG 可以形成 log 日志 tailf /var/log/messages iptables -D INPUT 4 删除第 4 条规则

Linux内核是linux内部最核心的软件
包括过滤机制netfilter:是linux内核里面的一个模块,对进出网卡的数据进行管理
iptables给netfilter传参(人–》iptables–》netfilter)

firewalld 新式防火墙 iptables 老式防火墙
firewalld 是对iptables进行新的封装,底层仍然是是使用的是iptables的基本命令

uname -r 查看linux内核版本
防火墙是防止别人攻击,对进出的数据进行限制。防火墙不能检查病毒,查看病毒

sys和user
iptables的四表五链

四表

mangle表:–》给数据打标记
nat表:–》dnat和snat
表是链的集合 表的优先级:raw–>mangle–>nat–>filter

-L list 列出来
-t 指定名字
nat 具体表的名字
iptables -t 表名 -L(查看表里的链规则)

数据包的流走机制:表是链的集合 表的优先级:raw–>mangle–>nat–>filter

#!/bin/bash

#清空iptables规则
iptables -t filter -F

#不允许其他机器ping本机,但是本机可以ping其他机器
iptables -t filter -A INPUT -p icmp --icmp-type 8 -j DROP

#不允许访问80端口
iptables -t filter -A INPUT -p tcp --dport 80 -j DROP

设置INPUT链的默认规则为DROP

iptables -P INPUT DROP

iptables -t filter -A INPUT -s 192.168.100.88 -p tcp --dport 22 -j ACCEPT

tcpdump -i ens33 -p tcp --dport 3306

#!/bin/bash

清空iptables和nat表的里面的规则

iptables -t filter -F
iptables -t nat -F

设置filter表的默认策略为ACCEPT

iptables -t filter -P INPUT ACCEPT

iptables的命令选项:

-A(为追加,放到末尾)
-I(指定位置添加)

可以man一下iptables查看更多信息

docker
在iptables新建自定义链

-j 有四种选项
ACCEPT
DROP(直接丢弃,不给回复)
REJECT(拒绝但是给回复)
LOG(记录日志功能)

iptables的条件

不允许新的连接过来

总结下iptables的命令语法
[root@web-server nginx]# tcpdump -i ens33 -p icmp -n
抓包
协议: tcp 、udp、icmp、arp等网络层和传输层
-p tcp
-p icmp
-p arp

ip地址:源ip和目的ip
端口号: 源端口和目的端口
	src port 
	dst port

mac地址:源mac和目的mac

===
tcpdump - dump traffic on a networt 导出网络流量的工具

  src  host   源主机--》源ip  source 
  dst  host  目的主机 --》目的ip  destination
  src  net   源网段--》源ip  source   192.168.10.0/24
  dst  net  目的网段 --》目的ip  destination

===========
iptables的条件:
1.协议:tcp udp icmp
-p protocol 小写的p
-p icmp --icmp-type 8 ping请求报文
-p icmp --icmp-type 0 ping响应报文
2.端口号:
-p tcp --sport
-p tcp --dport
-p udp --sport
-p udp --dport
-p tcp --sport 20:80
iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
3.ip地址
-s source
-d destination
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP
4.mac地址
5.状态
6.其他
-i in-interface
-o out-interface

iptables -I INPUT -i ens33 -p tcp --tcp-flags SYN,RST,ACK SYN -j REJECT
ens33接口上不接收tcp三次握手的第一个包–》不允许新的连接产生了

-m 加模块
[root@localhost ~]# iptables -A FORWARD -m mac --mac-source 00:0C:29:27:55:3F -j DROP
[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
[root@localhost ~]# iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP

/var/log/message(内核记录的日志)

iptables -t filter -N SWY(新建一个链)
iptables -t filter -A SWY -p tcp --dport 22 -j ACCEPT (给SWY这条链加一条策略)
iptables -A INPUT -p tcp --dport 22 -j SWY(INPUT链把22号端口的tcp协议给SWY这个链处理)

内核的最大并发数:1024个

如何开机让linux去加载保存的iptables配置文件?
iptables-restore < /etc/sysconfig/iptables-config(手动重新加载)
开机手动执行脚本(放到/etc/rc.local里面就开机自动执行脚本)

状态机制:

ftp的连接:service先yum install vsftpd -y 再 service vsftpd start
client先yum install ftp lftp -y 再ftp service的IP名
会产生一个新的传输数据的链路,且数据端口随机

lsmod(查看内核加载了哪些模块)
modprobe(加载模块)

采用状态机制来开放ftp服务的iptables规则
#!/bin/bash
iptables -P INPUT DROP

open ssh

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

open ftp

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

open ftp data link

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

让linux内核加载支持ftp状态的检查的模块

modprobe nf_conntrack_ftp
modprobe nf_nat_ftp

存放linux内核模块路径
/lib/modules/4.18.0-193.el8.x86_64/kernel/net/netfilter

ftp:文件传输协议–》搭建一个文件服务器–》有大量的视频,文档需要共享
linux:ftp,lftp
windows:ftp://ip地址
匿名用户访问会访问到:/var/ftp/pub里(使用的是ftp用户,他的家目录就是/var/ftp/pub)
普通用户访问是到自己的家目录下
root用户是不允许访问的

ftp的主动模式:
命令链路是21号端口
数据链路是20号端口000

脚本:、
#!/bin/bash

截取出日志里面的访问root用户的ip地址

/tmp/denv_ip.txt是专门存放的iptables阻止过的黑名单

for i in $(cat /var/log/secure |awk ‘/Failed password for root/{print $11}’|sort|uniq -c |sort -nr|awk ‘{print $2}’)
do
if grep $i /tmp/deny_ip.txt;then
echo “此ip $i 已经在iptables防火墙里阻止了”
else
iptables -I INPUT -s $i -p tcp --dport 22 -j DROP
echo $i >> /tmp/deny_ip.txt
fi
done

(iptables -I INPUT 放到第一条,如果iptables -A INPUT 追加到末尾的话会被第一条规则给覆盖)

统计加排序命令:cat file |sort|uniq -c |sort -nr
sort -u (去重)
sort -n (排序)
uniq -c (加统计相同的)

在写一个脚本clear的iptables(在规定的时间内)

grep 192.168.0.54 /var/log/secure(查看此文件里是否有此ip地址)

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:57:06  更:2021-09-04 17:57:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 1:36:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码