您的位置:首页 > 其它

iptables学习笔记:2

2014-08-15 17:28 155 查看
前提:查看iptables

iptables -nv --line-numbers

1、允许SSH链接(在进行所有操作前优先执行此操作,尤其是设置默认策略前):

添加INPUT录: iptables -A INPUT -p tcp --dport 22 -j ACCEPT

添加OUTPUT记录: iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

2、设置默认策略(此处将默认策略设置为丢弃):

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

3、开放80端口:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

4、允许服务器使用DNS(由于DNS既包含TCP的53号端口,又包含UDP的53号端口,所以需要写4条,另外,如果包含服务器为DNS服务器,则要写8条):

iptables -A INPUT -p tcp -m tcp --sport 53 -j ACCEPT

iptables -A INPUT -p udp -m udp --sport 53 -j ACCEPT

iptables -A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT

iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

DNS服务器还需要写如下4条规则:

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

iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT

iptables -A OUTPUT -p tcp -m tcp --sport 53 -j ACCEPT

iptables -A OUTPUT -p udp -m udp --sport 53 -j ACCEPT

5、允许192.168.1.0/16网段ping服务器:

iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type 8 -j ACCEPT

iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT

若允许服务器ping其他服务器,则icmp-type的编号调换,8为icmp echo-request ,0为icmp echo-reply

6、允许本地回环地址:

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -i lo -j ACCEPT

7、处理IP碎片数量,防止攻击,允许每秒100个

iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

8、设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包

iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

9、drop非法连接

[root@tp ~]# iptables -A INPUT -m state --state INVALID -j DROP

[root@tp ~]# iptables -A OUTPUT -m state --state INVALID -j DROP

[root@tp ~]# iptables-A FORWARD -m state --state INVALID -j DROP

10、

允许所有已经建立的和相关的连接

[root@tp ~]# iptables-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

[root@tp ~]# iptables-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables应用举例

1、共享上网

目标:使局域网的用户都可以访问外网的服务器

[root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward

[root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

说明: SNAT 和 MASQUERADE 区别

SNAT : 不管是几个地址,必须明确的指定要SNAT的ip,适合网关服务器有固定地址或者是固定地址范围. MASQUERADE : 是针对ADSL动态拨号这种场景而设计,从服务器的网络接口上,自动获取当前ip地址来做NAT,这样就实现了动态SNAT地址转换

2、内网的服务器对外服务(端口映射)

目标:使外网用户可以访问到局域网192.168.138.21这台HTTP服务

[root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward

[root@localhost]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.138.21

[root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

3、在网关服务器进行透明代理

目标: 使局域网用户,访问外网web服务时,自动使用squid作web透明代理服务器。

[root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward

[root@localhost]# iptables -t nat -A PREROUTING -s 192.168.138.0/24 -p tcp --dport 80 -i eth0 -j DNAT --to 192.168.138.1

[root@localhost]# iptables -t nat -A PREROUTING -s 192.168.138.0/24 -p tcp --dport 80 -i eth0 -j REDIRECT --to 3128

[root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: