iptables
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptables相关的知识,希望对你有一定的参考价值。
防火墙 RHEL6 操作系统防火墙服务iptablesiptables 的组成:内核态:集成在内核里的功能
用户态:安装服务的软件包后提供的管理命令
[[email protected] ~]# rpm -q iptables
iptables-1.4.7-16.el6.x86_64
]# service iptables start|status|stop
]# chkconfig iptables on
]# which iptables
/sbin/iptables
[[email protected] ~]# man iptables
iptables 命令的功能 : 查看/修改/删除/添加规则
iptables 命令格式:
]#iptables -t 表名 管理选项 链名 匹配规则 -j 处理动作
iptables服务的功能:
功能 表
ip包过滤 filter
网络地址转换 nat
对ip包打标记 mangle
做状态跟踪 raw
ip包传输的路径(方向)(以防护墙主机位参照物)
方向 链
进入防火墙主机的 INPUT
从防火墙本机出去 OUTPUT
经过防火墙主机的 FORWARD
路由前 PREROUTING
路由后 POSTROUTING
管理选项 -L -F -D -A -I -P
查看指定表中有哪些链?
iptables -t 表 -L
]# iptables -t filter -L
]# iptables -t nat -L
]# iptables -t mangle -L
]# iptables -t raw -L
查看表中指定链的所有规则并给规则加编号
]# iptables -t filter -nL INPUT --line-numbers
查看链中规则是显示行号
]# iptables -t filter -nL --line-numbers
删除表中指定链的某1条规则
]# iptables -t filter -D INPUT 2
]# iptables -t filter -nL --line-numbers
删除表中指定链的所有规则
]# iptables -t filter -F INPUT
删除表中所有链的规则
]# iptables -t filter -F
让设置永久生效
]# service iptables save
]# cat /etc/sysconfig/iptables //保存到的文件
处理动作
ACCEPT 允许
DROP 丢弃
REJECT 拒绝
修改链的默认规则 (ACCEPT 或丢弃 DROP)
]#iptables -t filter -P INPUT DROP
]#iptables -t filter -L INPUT
匹配条件选项
-p 协议 udp tcp
--sport 源端口号
--dport 目标端口
--source / -s 源地址
--destination / -d 目标地址
主机型防火墙 (自己保护自己)
]#iptables -t filter -P INPUT DROP
]#iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
]#iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
]#iptables -t filter -Ln INPUT --line-numbers
]#service iptables save
]# iptables -t filter -I INPUT 1 --source 192.168.4.104 -p tcp --dport 22 -j DROP
]#iptables -t filter -Ln INPUT --line-numbers
]# iptables -t filter -I INPUT 1 --source 192.168.4.254 -p tcp --dport 22 -j ACCEPT
]#iptables -t filter -Ln INPUT --line-numbers
]#iptables -t filter -D INPUT 2
]#iptables -t filter -Ln INPUT --line-numbers
]#iptables -t filter -D INPUT 2
]#service iptables save
]#iptables -t filter -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
在108主机上设置如下防火墙规则。并在客户端测试。
允许所有主机访问本机的网站服务,只允许从254主机连接本机的ssh服务,可以ping其他主机,其他主机不可以ping 自己。INPUT链默认策略是DROP.
108:
]#service iptables start ; chkconfig iptables on
]#iptables -t filter -nL --line-numbers
]#iptables -t filter -F
]#service iptables save
]#iptables -t filter -P INPUT DROP
]#iptables -t filter -A INPUT -s 192.168.4.254 -p tcp --dport 22 -j ACCEPT
]#iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
]#iptables -t filter -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
]#service iptables save
]#iptables -t filter -nL --line-numbers
++++++++++++++++++++++++++++++++++++++++
网络型防火墙 (架设在2个网络之间的服务器,提供防火墙服务。保护内网网络)
iptables 103:
#eth0 192.168.4.103
#eth1 192.168.2.103
#sed -i ‘7s/0/1/‘ /etc/sysctl.conf
#sysctl -p
]#iptables -t filter -P INPUT ACCEPT
]#iptables -F
]#service iptables save
host250 :
ifdown eth0
eth1 192.168.2.250
route add default gw 192.168.2.103
host104
eth0 192.168.4.104
route add default gw 192.168.4.103
host250 : ping -c 2 192.168.4.104
host104 : ping -c 2 192.168.2.250
103 编写防火墙规则
]#iptables -t filter -P FORWARD DROP
]#iptables -t filter -A FORWARD -p tcp --dport 22 -j ACCEPT
]#iptables -t filter -A FORWARD -p tcp --sport 22 -j ACCEPT
]#iptables -t filter -A FORWARD -p tcp --dport 80 -j ACCEPT
]#iptables -t filter -A FORWARD -p tcp --sport 80 -j ACCEPT
host105
eth0 192.168.4.105
route add default gw 192.168.4.103
yum -y install elinks
elinks --dump http://192.168.2.250/test.html
iptables 103 : 不允许105主机访问 250主机上的web服务
]# iptables -nL FORWARD --line-numbers
]# iptables -t filter -I FORWARD 3 -s 192.168.4.105 -p tcp --dport 80 -j DROP
+++++++++++++++++++++++++++++++++++++
]#iptables -F
iptables -t filter -P FORWARD ACCEPT
service iptables save
nat表 (转换源地址 转换目标地址)
转换源地址:让内网所有主机共享一个公网ip地址上网
host250 #yum -y install httpd
echo web250 > /var/www/html/test.html
#service httpd start ;chkconfig httpd on
tail -1 /etc/httpd/log/access.log
iptables103
//允许192.168.4.0/24网段的所有主机上网。(思考:但 不允许主机192.168.4.105上网)
#iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -p tcp --dport 80 -o eth1 -j SNAT --to-source 192.168.2.103
]# iptables -t nat -nL POSTROUTING --line-numbers
]#service iptables save
host104/105
#route add default gw 192.168.4.103
elinks --dump http://192.168.2.250/test.html
+++++++++++++++++++++++++++++++++++++++++++
转换目标地址,发布内网服务器。
104/105 是内网网站服务器
iptables103]#
]# service httpd stop
]# chkconfig httpd off
//编写转换80端口的请求规则
]# iptables -t nat -A PREROUTING
-i eth1 -d 192.168.2.103 -p tcp --dport 80
-j DNAT --to-destination 192.168.4.104
]# iptables -t nat -nL PREROUTING --line-numbers
]#service iptables save
思考:编写转换22222端口的请求给192.168.4.104 主机的规则
]#iptables -t nat -A PREROUTING -i eth1 -d 192.168.2.103 -p tcp --dport 22222 -j DNAT --to-destination 192.168.4.104
]#service iptables save
host250]# elinks --dump http://192.168.2.103/test.html
host250]# ssh -p 22222 192.168.2.103 //可以连接到104主机
以上是关于iptables的主要内容,如果未能解决你的问题,请参考以下文章