运维学习之iptables防火墙基本设定

iptables

一、简介

IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。

虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。

netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。

二、安装iptables服务

三、参数用法解释与示例

iptable

-t ##指定表名称

-n ##不作解析

-L ##列出指定表中的策略

-A ##增加策略

-p ##网络协议

--dport ##端口

-s ##数据来源

-j ##动作

ACCEPT ##允许

REJECT  ##拒绝

DROP ##丢弃

-N ##增加链

-E ##修改链名称

-X ##删除链

-D ##删除指定策略

-I ##插入

-R ##修改策略

-P ##修改默认策略

iptables  -t filter -nL #查看filter表中的策略

iptable  -F #刷掉filter表中的所有策略,当没有用-t指定表名称时默认时filter

service iptables save #保存当前策略

进行IP解析

不进行IP解析

刷掉filter表中的策略,不加-t默认为filter表,保存当前策略

变为空

iptables -A INPUT -i lo -j ACCEPT #允许lo

iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##允许访问22端口

允许回环接口,把默认策略改为丢弃所有数据包,无法正常访问http

更改为通过所有,可以正常访问

拒绝所有主机来源

iptables -A INPUT -s 172.25.254.250 -j ACCEPT ##允许250主机访问本机所有端口

iptables -A INPUT -j REJECT ##拒绝所有主机的数据来源

iptables -N redhat ##增加链redhat

iptables -E redhat westos ##改变链名称

iptables -X westos ##删除westos链

iptable -D INPUT 2 ##删除INPUT链中的第二条策略

iptables -I INPUT  -p tcp --dport 80  -j REJECT ##插入策略到INPUT中的第一条

iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT ##修改第一条策略

iptable -P INPUT DROP ##把INPUT表中的默认策略改为drop

允许访问22端口

删除INPUT链中的第二三条

在第三条的位置插入允许访问80端口

第一条插入26可以访问80端口

不能连接126

增加链westos

修改westos链名称为redhat

删除Redhat链

四、数据包状态策略

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

iptables -A INPUT -i lo -m state --state NEW -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT

iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT

iptables -A INPUT -j REJECT

策略第一次通过后状态变为RELATED或ESTABLISHED,减缓访问压力

五、vsftpd在iptables开启下的配置

ftp主动模式会随机打开大于1024的端口,开启防火墙后会被禁止,无法正常使用

vsftpd配置文件中修改端口为7000

添加iptables允许通过7000端口策略

可以登录ftp

六、iptables伪装和端口装换

sysctl -a | grep forward

echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf

sysctl -p

iptables -t nat -A PREROUTING  -i eth1 -j DNAT --to-dest 172.25.0.11

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.100

客户机修改IP为172.25.26.226,添加网关

刷掉iptables现有的策略,保存策略

设置从客户端从服务端eth0出去的数据伪装成源数据为172.25.254.126

测试,暂时未连通

查看网络功能表

启动内核路由转发功能

测试,可以连通

客户端连接真机,显示登陆用户为www.westos.com,查看hosts本地解析,知其为服务端的主机名

设置将真机从服务端eth0进去的数据伪装成源数据为172.25.26.226

真机连接服务端,显示IP为172.25.26.226

时间: 2024-08-06 19:55:44

运维学习之iptables防火墙基本设定的相关文章

运维学习之firewall防火墙服务

firewalld 一.定义和对比 FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具.它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项.它也支持允许服务或者应用程序直接添加防火墙规则的接口.以前的 system-config-firewall/lokkit 防火墙模型是静态的,每次修改都要求防火墙完全重启.这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等.而模块的卸载将

运维学习之文件&目录权限的设定等

文件权限 1.文件属性的查看 ls -l filename -|rw-r--r--.|1| root| root|   46 |Oct  1 05:03 |filename - ---------  -  ----  ----    --  ------------  -------- 1    2     3    4      5      6      7             8 1."-":文件类型 -               ##普通文件 d            

DayDayUP_Linux运维学习_oracle11g安装教程

1. 安装环境介绍 系统环境 虚拟机测试机 系统版本 linux redhat 6.5 x64 软件版本 linux.x64_oracle_11gR2 系统内存 2G 系统存储 40G 主机名 vmdbs ip地址 192.168.1.189 192.168.128.189 笔者当时安装操作系统时所选的安装包 1.1 Base System Base System 安装 8 个套件 Base System > Base Base System > Client management tools

运维学习之网络管理&IP设置&网关、DNS、DHCP的设置

11.管理网络 1.ip基础知识 1.ipv4 2进制32位-----10进制 172.25.0.10/255.255.255.0 172.25.0.10:ip地址 255.255.255.0:子网掩码 子网掩码255位对应的ip位为网络位 子网掩码0对应的ip位为主机位 2.配置ip <<图形化>> 1.图形界面 nm-connection-editor 2.文本化图形 nmtui <<命令>> ifconfig 网卡 ip netmask ##临时设定

[ Linux运维学习 ] 路径及实战项目合集

我们知道运维工程师(Operations)最基本的职责就是负责服务的稳定性并确保整个服务的高可用性,同时不断优化系统架构.提升部署效率.优化资源利用率,确保服务可以7*24H不间断地为用户提供服务. 如果你想从事Linux运维相关工作,那么你可以来实验楼,因为实验上有: [Linux运维技术路径]:一条学习路径,多个阶段.若干课程带你一步步成为Linux运维工程师: [Linux运维与Devops实战]:12周时间,带你0基础到运维工程师,涵盖Linux运维常用技术和DevOps相关技术: --

运维学习路线2

运维学习需要分为四个阶段: Linux初级入门 > Linux中级进阶 > Linux高级提升 > 资深细分方向进阶 第一阶段:初级入门 初级阶段需要把linux学习路线搞清楚,任何学习都是循序渐进的,所以学linux也是需要有一定的路线,个人建议学习的路线如下: Linux基础知识.基本命令(起源.组成.常用命令如cp.ls.file.mkdir等常见操作命令) Linux用户及权限基础 Linux系统进程管理进阶 Linux高效文本.文件处理命令(vim.grep.sed.awk.f

运维学习之加密和解密

运维学习之加密与解密: 众所周知,在网络的世界里不存在绝对的安全性.各种钓鱼网站,病毒等等危害着我们的网 络环境.所以,作为一个运维人员,在我们利用网络进行通信时,保证通信的机密性.完整性.可用性是必要的. 我们的日常生活中有以下三点威胁网络安全的行为: 1.威胁机密性的攻击行为,它的途径是窃听.嗅探.扫描和通信量分析 2.威胁完整性的攻击行为,它的途径是更改.伪装.重放.否认 3.威胁可用性的攻击行为,它的途径是拒绝服务 为应对以上问题,我们在技术和服务两方面提出了解决方案: 从技术上我们使用

运维学习第四弹

运维学习第四弹之shell(bash): 一. hell可以翻译成壳,大多指能够对内部核心起到保护作用的一种装置或结构.在计算机科学中shell的实际意义为操作者提供的.能够通过系统调用或库调用使用整个计算机资源的访问接口. 它既是一种命令解析器又是一种程序设计语言.作为命令解析器,它可以解释和执行用户输入的命令,也可以自动地解释和执行预先编写好并保存在某个文本文件中的一系列的命令:作为程序设计语言,shell特别定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和条件分支

Linux运维学习之 —— 搭建本地yum源

yum是RPM的前端工具,通过yum命令可以帮我们自动解决安装rpm包之间的依赖关系.下面是搭建本地yum仓库的步骤: 1.挂载光盘(光盘为CentOS-6.5-x86_64-bin-DVD2.iso)     mount /dev/cdrom1 /media ls一下/media这个目录,可以看到以下内容 2.创建本地文件夹,将Packages下的rpm包全部拷贝到本地文件夹     mount /dev/cdrom1 /media/     cp -r /media/Packages/* /