基本必要规则:所有链默认允许,指定部分允许其它全部拒绝vi /etc/sysconfig/iptables
#对nat表的操作:
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
#:INPUT ACCEPT [0:0]
#本机端口转换访问10000端口 自动跳到22端口,filter链,input表放通22端口.
-A PREROUTING -i eth0 -p tcp -m tcp --dport 10000 -j DNAT --to-destination :22
#这两条是访问192.168.1.221:17777跳到192.168.1.220:7777 (两台机器都是内网)
-A PREROUTING -i eth0 -p tcp -d 192.168.1.221 --dport 17777 -j DNAT --to 192.168.1.220:7777
-A POSTROUTING -d 192.168.1.220 -p tcp --dport 7777 -j SNAT --to-source 192.168.1.221
#外网电脑访问外网服务器IP,跳转到另一台内网服务器的端口.(83.62.9.66,192.168.1.221为同一台机器)
-A PREROUTING -p tcp -d 83.62.9.66 --dport 20022 -j LOG --log-prefix "ssh---" --log-level debug //该条记录日志
-A PREROUTING -p tcp -s starsliao.no-ip.org -d 83.62.9.66 --dport 20022 -j DNAT --to 192.168.1.210:20022 //-s部分表示做源地址限制, ! -s则是排除指定的地址(取反),根据iptables的版本不同,有的取反!是在IP前面(! IP),具体查看 iptables --help
-A POSTROUTING -d 192.168.1.210 -p tcp --dport 20022 -j SNAT --to-source 192.168.1.221
#iptables做网关配置(-s 需要使用该网关的IP,-o 网关的对外网络接口,SNAT --to需要对外显示的IP(外网IP:183.62.9.67),如果是与对外接口不一样的IP需要先增加该IP:ifconfig eth1:1 183.62.9.68 netmask 255.255.255.248),需要使用多个对外IP使用"-",另外转发功能需要开启(echo 1 > /proc/sys/net/ipv4/ip_forward),filter链,FORWARD表需要允许:-A FORWARD -s 192.168.1.26/32 -j ACCEPT;-A FORWARD -i eth0(内网接口) -m state --state ESTABLISHED,RELATED -j ACCEPT :
-A POSTROUTING -s 192.168.1.26 -o eth0 -j LOG --log-prefix "--GW--" --log-level debug //增加日志记录
-A POSTROUTING -s 192.168.1.26 -o eth0 -j SNAT --to-source 192.168.1.218 //做网关(内网网关)
-A POSTROUTING -s 192.168.1.26/32 -o eth1 -j SNAT --to 183.62.9.67-183.62.9.68 //做网关 nat出去的源地址多个
#如果对外的是动态IP使用以下规则:
-A POSTROUTING -s 192.168.1.26/32 -o eth1 -j MASQUERADE
#使192.168.1.26 访问任何地址都跳转到210:80
-A PREROUTING -s 192.168.1.26 -d 0.0.0.0/0-p tcp --dport 80 -j DNAT --to 192.168.1.210:80
COMMIT
*filter //filter表
:INPUT ACCEPT [0:0] //input链允许,计数器 [0:0]
:FORWARD ACCEPT [0:0] //forward链默认允许
:OUTPUT ACCEPT [0:0] //output链默认允许
:RH-Firewall-1-INPUT - [0:0] //RH-Firewall-1-INPUT链增加以下规则
-A INPUT -j RH-Firewall-1-INPUT //input链使用RH-Firewall-1-INPUT链
-A FORWARD -j RH-Firewall-1-INPUT //forward链使用RH-Firewall-1-INPUT链
-A RH-Firewall-1-INPUT -i lo -j ACCEPT // -i 接网口 lo表示到本机的请求 -j 后面接操作 表示允许
-A RH-Firewall-1-INPUT -p icmp -s 192.168.10.26 --icmp-type any -j ACCEPT // -p 接协议,-s 接源地址 --icmp-type 接icmp的类型
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT //允许ping
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT // -m state --state 接连接状态
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT // -m tcp 表示使用tcp模块(可省略) --dport 22 表示请求端口
-A RH-Firewall-1-INPUT -s 210.245.191.162 -p TCP --dport 80 -j DROP //禁止某IP访问本机80端口
-A RH-Firewall-1-INPUT -p tcp -s 220.181.125.72 -j DROP //禁止某IP访问本机所有端口
-A RH-Firewall-1-INPUT -m iprange --src-range 192.168.1.120-192.168.1.199 -j DROP //禁止某连续IP段访问本机所有端口
-A RH-Firewall-1-INPUT -s 192.168.1.26 -m limit --limit 200/s -j ACCEPT //限制某源ip 200个包一秒(包括上传,下载)
-A RH-Firewall-1-INPUT -s 192.168.1.26 -j DROP //这条也需要
-A RH-Firewall-1-INPUT -m state --state NEW -m multiport -p tcp --dport 20022,3306,80 -j ACCEPT //允许多个IP
-A OUTPUT -s 192.168.0.98 -p tcp --sport 1:65534 -d 61.172.240.188 --dport 5900 -j DROP(拒绝自己连到该IP的5900)
-A OUTPUT -s 192.168.0.98 -p tcp --sport 1:65534 -d 0.0.0.0 --dport 5900 -j DROP(拒绝自己连接到任何的5900端口)
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited //拒绝所有 --reject-with 返回信息.
COMMIT
例子:
*filter
:INPUT DROP [192:13436]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [149:12648]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 60022 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 38080 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2625 -j ACCEPT
-A INPUT -p tcp -m multiport --destination-port 2626,2627,2628 -j ACCEPT
-A INPUT -s 192.168.200.150/32 -j ACCEPT
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth1 -j ACCEPT
-A RH-Firewall-1-INPUT -s 111.22.33.44 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
-A RH-Firewall-1-INPUT -s 111.66.55.22 -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8083 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 12345 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
增加单独日志记录功能
vi /etc/syslog.conf
# Iptables logging
kern.debug /var/log/iptables
service syslog restart
例子:
*nat
:PREROUTING ACCEPT [2:469]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 10000 -j LOG --log-prefix "SL---" --log-level debug
-A PREROUTING -i eth0 -p tcp -m tcp --dport 10000 -j DNAT --to-destination :22
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [178:19181]
:RH-Firewall-1-INPUT - [0:0]
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 22 -j LOG --log-prefix "---SSH---" --log-level debug
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT
COMMIT
一些基础
- 下面是三条预先设置好了的chains,他们是不被能删除的:
- input – 用于处理进入路由器的数据包,即数据包目标IP地址是到达路由器一个接口的IP地址,经过路由器的数据包不会在input-chains处理。
- forward – 用于处理通过路由器的数据包
- output – 用于处理源于路由器并从其中一个接口出去的数据包。
- 它们具体的区别如下:
- 当处理一个chain(数据链),策略是从chain列表的顶部从上而下执行的。如果一个数据包满足策略的条件,这时会执行该操作。
echo 1 > /proc/sys/net/ipv4/ip_forward //nat 表需要该条
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
//清空所有规则
ubuntu iptables 规则开机生效
vi /etc/network/interfaces
auto eth0
iface eth0 inet static
pre-up /sbin/iptables-restore</etc/iptables.conf //启动网络运行
post-down /sbin/iptables-restore</etc/iptables2.conf //关闭网络运行
一些常用的规则
只能收发邮件,别的都关闭
iptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -j DROP
iptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -p udp --dport 53 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -p tcp --dport 25 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -p tcp --dport 110 -j ACCEPT
FTP服务器的NAT
iptables -I PFWanPriv -p tcp --dport 21 -d 192.168.100.200 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 21 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:21
只允许访问指定网址
iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -d www.3322.org -j ACCEPT
iptables -A Filter -d img.cn99.com -j ACCEPT
iptables -A Filter -j DROP
开放一个IP的一些端口,其它都封闭
iptables -A Filter -p tcp --dport 80 -s 192.168.100.200 -d www.pconline.com.cn -j ACCEPT
iptables -A Filter -p tcp --dport 25 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 109 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 110 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -j DROP
###多个端口
iptables -A Filter -p tcp -m multiport --destination-port 22,53,80,110 -s 192.168.20.3 -j REJECT
###连续端口
iptables -A Filter -p tcp -m multiport --source-port 22,53,80,110 -s 192.168.20.3 -j REJECT iptables -A Filter-p tcp --source-port 2:80 -s 192.168.20.3 -j REJECT
指定时间上网
iptables -A Filter -s 10.10.10.253 -m time --timestart 6:00 --timestop 11:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROP
iptables -A Filter -m time --timestart 12:00 --timestop 13:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT
iptables -A Filter -m time --timestart 17:30 --timestop 8:30 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT
###禁止多个端口服务
iptables -A Filter -m multiport -p tcp --dport 21,23,80 -j ACCEPT
###只允许PING 202.96.134.133,别的服务都禁止
iptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT
iptables -A Filter -j DROP
禁用BT配置
iptables –A Filter –p tcp –dport 6000:20000 –j DROP
禁用QQ防火墙配置
iptables -A Filter -p udp --dport ! 53 -j DROP
iptables -A Filter -d 218.17.209.0/24 -j DROP
iptables -A Filter -d 218.18.95.0/24 -j DROP
iptables -A Filter -d 219.133.40.177 -j DROP
基于MAC,只能收发邮件,其它都拒绝
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -j DROP
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 25 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 110 -j ACCEPT
禁用MSN配置
iptables -A Filter -p udp --dport 9 -j DROP
iptables -A Filter -p tcp --dport 1863 -j DROP
iptables -A Filter -p tcp --dport 80 -d 207.68.178.238 -j DROP
iptables -A Filter -p tcp --dport 80 -d 207.46.110.0/24 -j DROP
###只允许PING 202.96.134.133其它公网IP都不许PING
iptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT
iptables -A Filter -p icmp -j DROP
禁止某个MAC地址访问internet:
iptables -I Filter -m mac --mac-source 00:20:18:8F:72:F8 -j DROP
禁止某个IP地址的PING:
iptables –A Filter –p icmp –s 192.168.0.1 –j DROP
禁止某个IP地址服务:
iptables –A Filter -p tcp -s 192.168.0.1 --dport 80 -j DROP
iptables –A Filter -p udp -s 192.168.0.1 --dport 53 -j DROP
只允许某些服务,其他都拒绝(2条规则)
iptables -A Filter -p tcp -s 192.168.0.1 --dport 1000 -j ACCEPT
iptables -A Filter -j DROP
禁止某个IP地址的某个端口服务
iptables -A Filter -p tcp -s 10.10.10.253 --dport 80 -j ACCEPT
iptables -A Filter -p tcp -s 10.10.10.253 --dport 80 -j DROP
禁止某个MAC地址的某个端口服务
iptables -I Filter -p tcp -m mac --mac-source 00:20:18:8F:72:F8 --dport 80 -j DROP
禁止某个MAC地址访问internet:
iptables -I Filter -m mac --mac-source 00:11:22:33:44:55 -j DROP禁止某个IP地址的PING:
iptables –A Filter –p icmp –s 192.168.0.1 –j DROP
如果您喜欢本站,点击这儿可以捐赠本站
这些信息可能会帮助到你: 联系作者 | 报毒说明
修改版本软件,加群提示等均为修改者自留,非本站信息,注意鉴别
这些信息可能会帮助到你: 联系作者 | 报毒说明
修改版本软件,加群提示等均为修改者自留,非本站信息,注意鉴别
评论(0)