ubuntu iptables设置

摘要:
)iptables-AFORWARD-jREJECT4.屏蔽IP#如果只是想屏蔽IP的话,开放指定的端口”可以直接跳过。autoeth0ifaceeth0inetdhcppre-upiptables-restore˂/etc/iptables.up.rules#启动自动调用已存储的iptablespost-downiptables-restore˂/etc/iptables.down.rules#关机时,把当前的iptables储存Ip6tables其语法在各方面都和iptables相同。只不过iptables支持128位地址。比如#iptables-tnat-APOSTROUTING-oppp0-jMASQUERADE可以看出,这时候我们没有
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

免责声明:文章转载自《ubuntu iptables设置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇指数基金梳理matlab中imwrite函数详解(imwrite的输出格式)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何通过 WebP 自适应方案减少图片资源大小

前言 我们知道,理想的网页应该在 1 秒内打开,而在页面的整体大小中,图片往往是所占比例最大的一部分(大约占到 60% 以上,更多了解请点击),也可以参照如下图所示。优化图片不仅可以加快页面显示,还能降低移动网络的流量费用。原图产生的 PNG、JPEG、GIF 和 SVG 图片一般都有很大的压缩余地。下文将重点介绍一款图片新格式:WebP,从而揭开它神秘的...

easy ui 给表单元素赋值input,combobox,numberbox

①给input控件 class="easyui-textbox" <input data-options="required:true" type="text" name="RelCompanyName" />$("#RelCompanyName").attr('resize','140px');//设置宽度$("#RelCompanyName...

jquery--监听checkbox多选框是否选中,展示输入框

<div> <input type="checkbox" name="add_choice" onchange="javascript:oBtAddChoice();"> 是否添加姓名 &nbsp; &nbsp; &nbsp; <input type="text" name="nam...

jquery中选择器input:hidden和input[type=hidden]的差别

jquery中选择器input:hidden和input[type=hidden]的差别 关于选择器:hidden的申明,在jquery申明文档中是如许说的:匹配所有不成见元素,或者type为hidden的元素。而[type=hidden]是查找所有type属性便是hidden的元素。两者是有雷同之处和不合之处的。:hidden匹配所有不成见元素,或者...

pytorch中nn.RNN()总结

nn.RNN(input_size, hidden_size, num_layers=1, nonlinearity=tanh, bias=True, batch_first=False, dropout=0, bidirectional=False) 参数说明 input_size输入特征的维度, 一般rnn中输入的是词向量,那么 input_siz...

TCP/IP网络编程系列之三(初级)

TCP/IP网络编程系列之三-地址族与数据序列 分配给套接字的IP地址和端口 IP是Internet Protocol (网络协议)的简写,是为首发网络数据而分配给计算机的值。端口号并非赋予计算机值,而是为了区分程序中创建的套接字而分配给套接字的序号。 网络地址 网络地址分为IPV4和IPV6,分别你别为4个字节地址簇和6个字节地址簇。IPV4标准的4个字...