常用命令
添加防火墙规则 禁止ip的端口访问
解决方法:
禁止特定ip访问8501端口的命令0:iptables -I INPUT -s 192.168.0.232 -ptcp --dport 8501 -j DROP
允许特定ip访问8501端口的命令1:iptables -D INPUT -s 192.168.0.232 -ptcp --dport 8501 -j DROP
允许特定ip访问8501端口的命令2:iptables -I INPUT -s 192.168.0.232 -ptcp --dport 8501 -j ACCEPT
iptables -A INPUT -s 192.168.109.10 -j DROP:拒绝192.168.109.10主机访问本服务器;
其中命令1执行的次数要和命令0相等才能访问,比如命令0执行了2次,那么命令1也得执行2次才有效,但命令2执行一次即可
清除防火墙规则
-- 查找所有规则
iptables -L INPUT --line-numbers
-- 删除一条规则
iptables -D INPUT 11 (注意,这个11是行号,是iptables -L INPUT --line-numbers 所打印出来的行号)
注意:-A:添加一条规则,默认是加在最后。
注意:"拒绝给192.168.109.10主机提供服务",最好使用INPUT链。使用PREROUTING,也可以满足要求,但是如果用户的要求是让服务器提供转发功能,添加到PREROUTING链中,"转发"功能也将被拒绝掉。
注意:链名要大写;
注意:-s:指定源地址,可以是IP地址,也可以是网段"192.168.109.10/24";"-s 为空",表示拒绝所有;
注意:-j:指定所需要的操作;
注意:iptables -A INPUT -j DROP,表示拒绝所有。不过加规则的时候,不要将自己的ssh给拒绝掉。
设置禁止访问的区别 “REJECT"和"DROP”
注意:拒绝有两种方式,一种是"REJECT",还有一种是"DROP";DROP是不回应,REJECT是拒绝;
1.、REJECT动作会返回一个拒绝(终止)数据包(TCP FIN或UDP-ICMP-PORT-UNREACHABLE),明确的拒绝对方的连接动作。
连接马上断开,Client会认为访问的主机不存在。
REJECT在IPTABLES里面有一些返回参数,参数如下:ICMP port-unreachable、ICMP echo-reply 或是 tcp-reset(这个封包会要求对方关闭联机),进行完此处理动作后,将不再比对其它规则,直接中断过滤程序。
2、DROP动作只是简单的直接丢弃数据,并不反馈任何回应。需要Client等待超时,Client容易发现自己被防火墙所阻挡。
至于使用DROP还是REJECT更合适一直未有定论,因为的确二者都有适用的场合:
1、REJECT是一种更符合规范的处理方式,并且在可控的网络环境中,更易于诊断和调试网络/防火墙所产生的问题;
2、DROP则提供了更高的防火墙安全性和稍许的效率提高,但是由于DROP不很规范(不很符合TCP连接规范)的处理方式,可能
会对你的网络造成一些不可预期或难以诊断的问题。
因为DROP虽然单方面的中断了连接,但是并不返回任何拒绝信息,因此连接客户端将被动的等到tcp session超时才能判断连接是否成功,这样早企业内部网络中会有一些问题,例如某些客户端程序或应用需要IDENT协议支持(TCP Port 113, RFC 1413),如果防
火墙未经通知的应用了DROP规则的话,所有的同类连接都会失败,并且由于超时时间,将导致难以判断是
由于防火墙引起的问题还是网络设备/线路故障。
注:在部署防火墙时,如果是面向企业内部(或部分可信任网络),那么最好使用更绅士REJECT
方法,对于需要经常变更或调试规则的网络也是如此;而对于面向危险的Internet/Extranet的防火墙,
则有必要使用更为粗暴但是安全的DROP方法,可以在一定程度上延缓黑客攻击的进度(和难度,至少,DROP
可以使他们进行TCP-Connect方式端口扫描时间更长)。