ubuntu iptables设置
sudo iptables -L
2. 清除已有iptables规则
iptables -F或者iptables --flush
这两条命令是等效的。有的linux不会清除NAT表中的规则,所有需要手动清除iptables -t NAT -F
iptables -X
iptables –Z
将所有iptables以序号标记显示,执行:
iptables –L –n --line-numbers
比如要删除INPUT里序号为8的规则,执行:
iptables –D INPUT 8
3. 开放指定的端口
#允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -i lo –j ACCEPT
# 允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT
# 允许访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许访问80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许FTP服务的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#禁止其他未允许的规则访问
iptables -A INPUT -j REJECT (注意:如果22端口未加入允许规则,SSH链接会直接断开。)
iptables -A FORWARD -j REJECT
4. 屏蔽IP
#如果只是想屏蔽IP的话,开放指定的端口”可以直接跳过。
#屏蔽单个IP的命令是
iptables -I INPUT -s 123.45.6.7 -j DROP
#封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
#封IP段即从123.45.6.1到123.45.6.254的命令是
iptables -I INPUT -s 123.45.6.0/24 -j DROP
5. Iptables的开机启动及规则保存
Ubuntu上iptables是不会保存规则的
先将防火墙规则保存到/etc/iptables.up.rules文件中
#sudo –s
# iptables-save > /etc/iptables.up.rules
然后修改脚本/etc/network/interfaces,使系统能自动应用这些规则(最后一行是我们手工添加的)
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.up.rules
当网络接口关闭后,您可以让iptables使用一套不同的规则集。
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.up.rules #启动自动调用已存储的iptables
post-down iptables-restore < /etc/iptables.down.rules #关机时,把当前的iptables储存
Ip6tables其语法在各方面都和iptables相同。只不过iptables支持128位地址。
#删除原来 iptables 里面已经有的规则
iptables -F
iptables -X
#抛弃所有不符合三种链规则的数据包
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#设置:本地进程 lo 的 INPUT 和 OUTPUT 链接 ; eth1的 INPUT链
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -m state --state NEW,INVALID -j LOG
iptables -A OUTPUT -o lo -j ACCEPT
#对其他主要允许的端口的 OUTPUT设置:
# DNS
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 53 -j ACCEPT
iptables -A OUTPUT -o eth1 -p UDP --sport 1024:65535 --dport 53 -j ACCEPT
#HTTP
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 80 -j ACCEPT
#HTTPS
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 443 -j ACCEPT
#Email 接受 和发送
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 110 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 25 -j ACCEPT
# FTP 数据和控制
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 20 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 21 -j ACCEPT
#DHCP
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 68 -j ACCEPT
iptables -A OUTPUT -o eth1 -p UDP --sport 1024:65535 --dport 68 -j ACCEPT
#POP3S Email安全接收
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 995 -j ACCEPT
#时间同步服务器 NTP
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 123 -j ACCEPT
#拒绝 eth1 其他剩下的
iptables -A OUTPUT -o eth1 --match state --state NEW,INVALID -j LOG
iptable NAT应用
1. 源NAT(SNAT)
比如,更改所有来自192.168.1.0/24的数据包的源ip地址为1.2.3.4:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -jSNAT--to 1.2.3.4
这里需要注意的是,系统在路由及过虑等处理直到数据包要被送出时才进行SNAT。
有一种SNAT的特殊情况是ip欺骗,也就是所谓的Masquerading,通常建议在使用拨号上网的时候使用,或者说在合法ip地址不固定的情况下使用。比如
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
可以看出,这时候我们没有必要显式的指定源ip地址等信息。
2. 目的SNAT(DNAT)
比如,更改所有来自192.168.1.0/24的数据包的目的ip地址为1.2.3.4:
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -i eth1 -jDNAT--to 1.2.3.4
这里需要注意的是,系统是先进行DNAT,然后才进行路由及过虑等操作。
有一种DNAT的特殊情况是重定向,也就是所谓的Redirection,这时候就相当于将符合条件的数据包的目的ip地址改为数据包进入系统时的网络接口的ip地址。通常是在与squid配置形成透明代理时使用,假设squid的监听端口是3128,我们可以通过以下语句来将来自192.168.1.0/24,目的端口为80的数据包重定向到squid监听
端口:
iptables -t nat -A PREROUTING -i eth1 -p tcp -s192.168.1.0/24--dport 80
-j REDIRECT --to-port 3128
参考文档:
http://forum.ubuntu.org.cn/viewtopic.php?t=62432
http://wiki.ubuntu.org.cn/IptablesHowTo
http://blog.chinaunix.net/uid-22120556-id-75158.html
转载于:https://www.cnblogs.com/chengliu/archive/2013/05/08/3636393.html
ubuntu iptables设置相关推荐
- 阿里云服务器上使用iptables设置安全策略
公司的产品一直运行在云服务器上,从而有幸接触过aws的ec2,盛大的云服务器,最近准备有使用阿里云的弹性计算(云服务器).前两种云服务器在安全策略这块做的比较好,提供简单明了的配置界面,而且给了默认的 ...
- ubantu 添加防火墙策略_linux - 如何在Ubuntu上设置简单的防火墙? - Ubuntu问答
问题描述 有人可以通过配置示例给出一些简单步骤,如何在Ubuntu上设置简单防火墙(仅使用控制台)吗?仅应允许ssh,http和https访问. 最佳方案 sudo ufw默认拒绝 sudo ufw允 ...
- SSH 连接远端 Ubuntu 服务器设置防火墙,实现只允许白名单访问
SSH 连接远端 Ubuntu 服务器设置防火墙,实现只允许白名单访问 环境情况 需求 实现 需求1-只允许白名单访问 需求2-设置服务器禁止 PING 记录时间:2021/6/25 环境情况 服务器 ...
- 【Ubuntu】在Ubuntu中设置永久的DNS
1.问题描述 ping不通域名,比如"ping www.baidu.com"时,报错"ping: unknown host www.baidu.com".这是因 ...
- 【转载】ATI显卡在Ubuntu下设置方法(很全面)
[转载]ATI显卡在Ubuntu下设置方法(很全面) //终于看到了一个解决ATI显卡在linux的解决方法,先转载一个. 原文地址:http://forum.ubuntu.com.cn/viewto ...
- 乌班图linux分辨率不能调,ubuntu不能设置高分辨率问题的解决方法,
ubuntu不能设置高分辨率问题的解决方法, 在ubuntu12.10上安装gnome切换到经典模式后,分别率最高只有1024*768,以为是没有安装显卡驱动导致的,上网搜索了N多方法,安装了各种nv ...
- Ubuntu中设置静态IP和DNS
在Ubuntu中设置静态IP共两步:1>设置IP:2>设置DNS 1>设置IP 编辑 /etc/network/interface文件: sudo vi /e ...
- Ubuntu用户设置文件说明
Ubuntu用户设置文件说明 Ubuntu作为Linux的一个发行版本,自然具有Linux系统的多用户特性.因为经常会使用和管理Ubuntu的用户,现将Ubuntu系统下的User的个性化配置整理如下 ...
- [快速技巧]通过命令在 Debian/Ubuntu 中设置默认浏览器
[快速技巧]通过命令在 Debian/Ubuntu 中设置默认浏览器 img 嘿,伙计们! 在这篇文章中,我们将使用终端设置默认浏览器. 虽然,使用浏览器主界面来设置默认浏览器很方便,但是有时,你需要 ...
最新文章
- Ubuntu配置远程访问的xrdp协议和teamviewer软件
- sql语句的学习(2)
- 数据分析入门_char01
- java命令行参数工具_Java方法中的参数太多,第8部分:工具
- python从列表随机取出多个数据_【python】从数组随机取数据
- Hive Shell
- # 57. 插入区间
- 03 Java 修饰符
- 静态检查------SourceMonitor的学习和使用
- 使用sql语句查询access数据库
- 高性能mysql之慎用BLOB与TEXT
- 【App设计】互联网+商业计划书
- 计算机网络的商业价值和应用,计算机网络建模数学工具的分析与比较
- 使用PopWindow时距离边界有间隙的解决办法
- EasyExcel 冻结固定表头 和搜索
- 计算机视觉 图像算法工程师 面试问题总结
- 七上八下猜数字_[转]适宜导游在旅游车载途中讲述的故事及互动游戏合集
- 【Python项目】你们还在冲会员看电影电视剧嘛?Python带你免费看电影电视剧资源 | 附源码
- 域格EVB开发板使用说明
- 春哥博客 - Day01 - Python基础之print
热门文章
- pg_lightool-postgres数据分布查看工具
- solidity语言介绍以及开发环境准备
- 知识点026-rsync命令的使用
- SylixOS下移植glib时clock_gettime函数分析
- 怎么做办公室网络布线
- SQL Server 2008 R2 性能计数器详细列表(三)
- 台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep?
- 【深度学习】全连接层or卷积层
- tf.contrib.data.Dataset 读取数据的原理--buffer
- tensorflow: 图像处理模块 tf.image