1.    查看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设置相关推荐

  1. 阿里云服务器上使用iptables设置安全策略

    公司的产品一直运行在云服务器上,从而有幸接触过aws的ec2,盛大的云服务器,最近准备有使用阿里云的弹性计算(云服务器).前两种云服务器在安全策略这块做的比较好,提供简单明了的配置界面,而且给了默认的 ...

  2. ubantu 添加防火墙策略_linux - 如何在Ubuntu上设置简单的防火墙? - Ubuntu问答

    问题描述 有人可以通过配置示例给出一些简单步骤,如何在Ubuntu上设置简单防火墙(仅使用控制台)吗?仅应允许ssh,http和https访问. 最佳方案 sudo ufw默认拒绝 sudo ufw允 ...

  3. SSH 连接远端 Ubuntu 服务器设置防火墙,实现只允许白名单访问

    SSH 连接远端 Ubuntu 服务器设置防火墙,实现只允许白名单访问 环境情况 需求 实现 需求1-只允许白名单访问 需求2-设置服务器禁止 PING 记录时间:2021/6/25 环境情况 服务器 ...

  4. 【Ubuntu】在Ubuntu中设置永久的DNS

    1.问题描述 ping不通域名,比如"ping www.baidu.com"时,报错"ping: unknown host www.baidu.com".这是因 ...

  5. 【转载】ATI显卡在Ubuntu下设置方法(很全面)

    [转载]ATI显卡在Ubuntu下设置方法(很全面) //终于看到了一个解决ATI显卡在linux的解决方法,先转载一个. 原文地址:http://forum.ubuntu.com.cn/viewto ...

  6. 乌班图linux分辨率不能调,ubuntu不能设置高分辨率问题的解决方法,

    ubuntu不能设置高分辨率问题的解决方法, 在ubuntu12.10上安装gnome切换到经典模式后,分别率最高只有1024*768,以为是没有安装显卡驱动导致的,上网搜索了N多方法,安装了各种nv ...

  7. Ubuntu中设置静态IP和DNS

    在Ubuntu中设置静态IP共两步:1>设置IP:2>设置DNS 1>设置IP     编辑 /etc/network/interface文件:         sudo vi /e ...

  8. Ubuntu用户设置文件说明

    Ubuntu用户设置文件说明 Ubuntu作为Linux的一个发行版本,自然具有Linux系统的多用户特性.因为经常会使用和管理Ubuntu的用户,现将Ubuntu系统下的User的个性化配置整理如下 ...

  9. [快速技巧]通过命令在 Debian/Ubuntu 中设置默认浏览器

    [快速技巧]通过命令在 Debian/Ubuntu 中设置默认浏览器 img 嘿,伙计们! 在这篇文章中,我们将使用终端设置默认浏览器. 虽然,使用浏览器主界面来设置默认浏览器很方便,但是有时,你需要 ...

最新文章

  1. Ubuntu配置远程访问的xrdp协议和teamviewer软件
  2. sql语句的学习(2)
  3. 数据分析入门_char01
  4. java命令行参数工具_Java方法中的参数太多,第8部分:工具
  5. python从列表随机取出多个数据_【python】从数组随机取数据
  6. Hive Shell
  7. # 57. 插入区间
  8. 03 Java 修饰符
  9. 静态检查------SourceMonitor的学习和使用
  10. 使用sql语句查询access数据库
  11. 高性能mysql之慎用BLOB与TEXT
  12. 【App设计】互联网+商业计划书
  13. 计算机网络的商业价值和应用,计算机网络建模数学工具的分析与比较
  14. 使用PopWindow时距离边界有间隙的解决办法
  15. EasyExcel 冻结固定表头 和搜索
  16. 计算机视觉 图像算法工程师 面试问题总结
  17. 七上八下猜数字_[转]适宜导游在旅游车载途中讲述的故事及互动游戏合集
  18. 【Python项目】你们还在冲会员看电影电视剧嘛?Python带你免费看电影电视剧资源 | 附源码
  19. 域格EVB开发板使用说明
  20. 春哥博客 - Day01 - Python基础之print

热门文章

  1. pg_lightool-postgres数据分布查看工具
  2. solidity语言介绍以及开发环境准备
  3. 知识点026-rsync命令的使用
  4. SylixOS下移植glib时clock_gettime函数分析
  5. 怎么做办公室网络布线
  6. SQL Server 2008 R2 性能计数器详细列表(三)
  7. 台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep?
  8. 【深度学习】全连接层or卷积层
  9. tf.contrib.data.Dataset 读取数据的原理--buffer
  10. tensorflow: 图像处理模块 tf.image