iptables

在学习iptables前我们先来了解下/etc/hosts.allow和.deny文件。它们是控制远程访问设置的,通过它们可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务,hosts.allow优先于deny。
将ssh远程连接server端的主机信息显示
在hosts.deny文件做如下修改:
这里写图片描述
其他主机远程连接时:
这里写图片描述
在hosts.allow文件做如下修改:
这里写图片描述
当254网段主机连接上server时,server会有显示:(ps可查看显示器端口号)
这里写图片描述
which   查看可执行文件的位置。
whereis  查看文件的位置。
locate   配合数据库查看文件位置。
find    实际搜寻硬盘查询文件名称。
ldd 打印程序或者库文件所依赖的共享库列表

IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。
虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。
netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。
netfilter/iptables 的最大优点是它可以配置有状态的防火墙,有状态的防火墙能够指定并记住为发送或接收信息包所建立的连接的状态。防火墙可以从信息包的连接跟踪状态获得该信息。在决定新的信息包过滤时,防火墙所使用的这些状态信息可以增加其效率和速度。这里有四种有效状态,名称分别为 ESTABLISHED 、 INVALID 、 NEW 和 RELATED。
iptables防火墙默认的规则表、链结构:
简称三表五链
filter:input,output,forward
nat:input, output,postrouting,prerouting
mangle:input, output,forward,postrouting,prerouting
在做实验之前需要stop,disable,mask防火墙,然后start,enable iptables
/etc/sysconfig/iptables存放其策略

iptable
-t ##指定表名称
-n ##不作解析
-L ##列出指定表中解析后的策略
-A ##增加策略
-p ##网络协议
–dport ##端口
-s ##数据来源
-j ##动作
-i ##端口
-d ##目的地址
ACCEPT ##允许
REJECT ##拒绝,一般设置为reject,如果设置为drop,客户端会一直发送请求,占用资源
DROP ##丢弃
-N ##增加链
-E ##修改链名称
-X ##删除链
-D ##删除指定策略
-I ##插入
-R ##修改策略
-P ##修改默认策略
iptables -t filter -nL #查看filter表中的策略,默认为filter表
iptable -P INPUT DROP ##把INPUT链中的默认策略改为drop
iptable -F #刷掉filter表中的所有策略,当没有用-t指定表名称时默认时filter,不做save的话,下次开机机后之前设置仍在
service iptables save #保存当前策略
这里写图片描述
这里写图片描述

链策略的更改:
iptables -A INPUT -i lo -j ACCEPT #允许lo回环接口
iptables -A INPUT -p tcp –dport 22 -j ACCEPT ##允许访问22端口
iptables -A INPUT -s 172.25.254.250 -j ACCEPT ##允许250主机访问本机所有端口
iptables -A INPUT -j REJECT ##拒绝所有主机的数据来源
iptable -D INPUT 2 ##删除INPUT链中的第二条策略
iptables -I INPUT 1 -p tcp –dport 80 -j REJECT ##插入策略到INPUT中的第一条
iptables -R INPUT 1 -p tcp –dport 80 -j ACCEPT ##修改第一条策略

自定义链:
iptables -N westos ##增加链redhat
iptables -E westos mj ##改变链名称
iptables -X mj ##删除westos链
这里写图片描述
这里写图片描述
这里写图片描述
主机iptables的设定:
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
先将之前设置的策略清除掉
这里写图片描述
再添加策略
这里写图片描述
这里写图片描述
这里写图片描述

将ftp的端口改为1025,客户端能访问到服务器端的vsftpd服务端首先在配置文件将自己的端口改为1025,再在iptables中添加火墙策略
vim /etc/vsftpd/vsftpd.conf
这里写图片描述
这里写图片描述
客户端的测试:
这里写图片描述
NAT:
sysctl -a | grep forward
echo “net.ipv4.ip_forward = 1” >>/etc/sysctl.conf
sysctl -p ##刷新
iptables -t nat -A PREROUTING -i eth0 -j DNAT ——to-dest 172.25.29.129 ##目的地址转换
iptables -t nat -A POSTROUTING -o eth0 -j SNAT ——to-source 172.25.254.229##源地址伪装
这里写图片描述
这里写图片描述

测试:
当29.129主机ssh连接254.29主机时,29主机显示被254.229主机远程登陆
这里写图片描述
这里写图片描述

当254.29主机远程连接254.229主机时,其实是连接到29.129主机
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值