iptables简单使用
1、安装iptables
yum install iptables-services
2、iptables简单使用
iptables防火墙文件路径/etc/sysconfig/iptables
systemctl start iptables #启动服务
systemctl stop iptables #停止服务
systemctl restart iptables # 重启服务
systemctl enable iptables #设置iptables为开机启动项
3、规则
规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。
当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept),拒绝(reject)和丢弃(drop)等。配置防火墙的主要工作是添加,修改和删除等规则。
其中:
匹配(match):符合指定的条件,比如指定的 IP 地址和端口。
丢弃(drop):当一个包到达时,简单地丢弃,不做其它任何处理。
接受(accept):和丢弃相反,接受这个包,让这个包通过。
拒绝(reject):和丢弃相似,但它还会向发送这个包的源主机发送错误消息。这个错误消息可以指定,也可以自动产生。
目标(target):指定的动作,说明如何处理一个包,比如:丢弃,接受,或拒绝。
跳转(jump):和目标类似,不过它指定的不是一个具体的动作,而是另一个链,表示要跳转到那个链上。
规则(rule):一个或多个匹配及其对应的目标。
4、实际应用
4.1、安装完成后修改默认配置
#### 关闭防火墙
/usr/bin/systemctl stop iptables
#### 清除当前所有链表规则
iptables -F
#### 清除用户自定义引用计数为0的空链
iptables -X
#### 设置默认策略为全部 DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#### 接受本地回环地址
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -s 127.0.0.0/8 -j DROP
#### 接收入站 出站已经建立的连接
iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -m state --state NEW,ESTABLISHED -j ACCEPT
# start commented by xujunyang
# iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED -j ACCEP
# end commented
# start added
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED -j ACCEPT
# end added by xujunyang
iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT
iptables-save > /etc/sysconfig/iptables
#### 重启iptables 防火墙
/usr/bin/systemctl start iptables
/usr/bin/systemctl enable iptables
4.2、使用
#开放指定端口给指定主机(多个主机之间用,隔开)
iptables -A INPUT -p tcp -s [主机] --dport [端口] -j ACCEPT
#开放端口给所有主机
iptables -I INPUT -p tcp --dport [端口] -j ACCEPT
#开放所有端口给指定ip
iptables -A INPUT -s [主机] -p all -j ACCEPT
注意每次使用命令行操作都需要执行保存然后重启iptables
service iptables save
systemctl restart iptables
直接操作文件的话执行重启即可
systemctl restart iptables