|
Iptables入门与提高
ptables基础(规则,链,表)
规则rules:就是网络管理员预定的条件,这些规则分别指定了源地址,目的地址,传输协议(tcp,udp,icmp),和服务类开型(HTTP,FTP,SMTP)
定义一些动作:acccept,reject,drop
链chains:是数据包的传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一条规则.
表tables:filter,nat,mangle三个表.
fitler:是iptables默认的表,主要用于包过滤.
nat:主要用于NAT网络地址转换,访表可以实现一对一,一对多,多对多等NAT工作(PREROUTING,OUTPUT,POSTROUTING)
mangle:主要用于对指定的包进行修改,因为某些特应用可能需要去改写数据包的一些传输特性,如更改数据包的TTL和TOS等,
不过在实际应用中访表的使用率不高.
网关功能的实现
二,使用iptables实现NAT服务:
NAT服务器安装双网卡:
eth0 企业内部,内部网卡
eth1 企业外部(通过eth1连接到ADSL modem通过pppoe协议拨号到internet)
画出图:
1.#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
HWADDR=.....
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
OBOOT=yes
type=Ethernet
2.#vi /etc/sysconfig/network-scripts/ifcfg-eth1:
DEVICE=eth1
BOOTPROTO=static
BROADCAST=172.16.1.255
HWADDR=.....
IPADDR=172.16.1.1
NETMASK=255.255.255.0
NETWORK=172.16.1.0
OBOOT=yes
type=Ethernet
注:eth1与adsl moden相连,然后通过pppoe拨号接入到internet,系统在启动时需要分配一个IP给eth1,默认是通过DHCP自动获取,为了加快
系统的启动速度,可以为eth1手动指定一个ip地址172.16.1.1,这个地址最好是私有的面明这个地址不能与局域网机器使用的IP位于同一个子网
3.为系统指定DNS服务器:
#vi /etc/resolv.conf
nameserver 61.143.12.101
nameserver 202.92.128.86
#servcie network restart
三,建立ADSL连接:
1.#rpm -qa |grep rp-ppoe
2.#adsl-setup
LOGIN NAME: 输入账户名
INTERFACE:eth1(与adsl modem相连网卡的名称)
设置是否按需拨号,如果设置按需拨号,输入闲置多少秒后自动断开连接,对于包用户永久在线,输入:no
输入"server",表示使用adsl拨号时自动从ISP获取得DNS服务器IP地址.
PASSWORD:输入密码
设置是否允许一般用户连接断开adsl连接:no
firewall:0 不启用,以后可以配.
系统动启时是否自动进行拨号:no (为了以后方便调试)
确认保存设置:y
#adsl-status
#adsl-start,adsl-stop
#tail -n 20 /var/log/messages
四,使用iptables实现NAT
1,打开NAT路由功能和IP为装
echo "1">/proc/sys/network/ipv4/ip_forward
或者#vi /etc/sysctl.conf
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE 实现IP为装.
#iptables -t nat -L
2.设置客户端:
Linux:vi /etc/sysconfig/network,/etc/resolv.conf
windows:网络连接,属性.
3.启动时自动拨号和配置NAT:
#vi /etc/rc.d/rc.local
/sbin/adsl-start
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables技巧实例:
1.禁止局域网内的用户访问不健康的网站:www.playboy.com
#iptables -A FORWARD -d www.play.com -j DROP
2.禁止用户访为IP为210.12.19.3的网站
#iptables -A FORWARD -d 210.12.19.3 -j DROP
3.禁止192.168.1.20客户机上网:
#iptables -A FORWARD -s 192.168.1.20 -j DROP
4.禁止192.168.1.0子网里的所有客户机上网:
#iptables -A FORWARD -s 192.168.1.0/24 -j DROP
5.禁止客户机访问某些服务:
#iptables -A FORWARD -s 192.168.0.1/24 -p tcp --dport 21 -j DROP 禁止局网内使用FTP下载,即把21端口封啦.
#iptables -A FORWARD -s 192.168.0.1 -p tcp --dport 23 -j DROP 禁止所有的客户端使用telnet协议连接远程主机.
#iptables -t filter -L FORWARD
6.强制访问指定的站点
#iptalbes -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 210.10.11.19:80
#iptalbes -t nat -L PREROUTING 强制所有的客户机访问210.10.11.19:80这台WEB服务器.
注:强制访问的站点技术注意事项:
1.只能使用网站的IP地址,不能使用网站的域名:
2.不适于使用虚拟主机技术的网站,因这种网站的IP地址是由多个网站共用的.
7,禁止客户机使用QQ(config.db里面的服务和端口,好像这个加密啦关键找到服务的IP地址)
#iptables -A FORWARD -p tcp --dport 8000 -j DROP
#iptables -A FORWARD -p udp --dport 8000 -j DROP
#iptables -A FORWARD -d tcpconn.tencent.com -j DROP
#iptables -A FORWARD -d tcpconn2.tencent.com -j DROP
#iptables -A FORWARD -d tcp.....
...............................4...
#iptables -A FORWARD -d http.tencent.com -j DROP
#iptables -A FORWARD -d http2.tencent.com -j DROP
8.禁止使用ICMP协议:
#iptables -A INPUT -i ppp0 -p icmp -j DROP
9.发布部服务器:
#iptables -t nat -I PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.22:80
#iptables -t nat -I PREROUTING -i ppp0 -p tcp --dport 3389 -j DNAT --to-destination 192.168.0.36:3389
10.智能DNS服务:
#iptables -t nat -I PREROUTING -i eth0 -p upd --dport 53 -j DNAT --to-destination 61.144.56.101:53
#iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 53 -j DNAT --to-destination 61.144.56.101:53 |
|