一、简介一下iptables

iptables命令中ACCEPT(允许流量通过)、LOG(记录日志信息)、REJECT(拒绝流量通过)、DROP(拒绝流量通过)。允许动作和记录日志工作都比较好理解,着重需要讲解的是这两条拒绝动作的不同点,其中REJECT和DROP的动作操作都是把数据包拒绝,DROP是直接把数据包抛弃不响应,而REJECT会拒绝后再回复一条“您的信息我已收到,但被扔掉了”,让对方清晰的看到数据被拒绝的响应。下图是iptables的选项。

二、我们今天分别演示

  • 设置拒绝规则链(默认只能是DROP不能是REJECT);
  • 向规则链中添加icmp包流入允许策略(就是允许别人通过ping命令来查看我们的主机是否在线);
  • 只允许本机指定端口被指定网段访问,其他流量均被拒绝; – 拒绝所有人访问本机指定端口;
  • 拒绝指定主机访问本机指定端口;
  • 拒绝所有人访问本机指定的端口段;
  • 删除指定策略;
  • 最后保存设置的防火墙策略。

1、设置拒绝规则链(默认只能是DROP不能是REJECT)。首先我们输入“iptables -F”清空所有防火墙策略(一定要在实验环境下做,不然会把配置好的策略清除)。然后输入“iptables -P INPUT DROP”。设置好以后我们用“iptables -L”命令查看一下策略列表。然后用ping命令验证一下是否设置成功。可以看到已经拒绝了。成功之后我们为了下面的演示,把INPUT策略设置为允许通过“iptables -P ACCEPT”。

2、向规则链中添加icmp包流入允许策略(就是允许别人通过ping命令来查看我们的主机是否在线)。输入命令:

iptables -I INPUT -p icmp -j ACCEPT 

然后我们用ping命令测试一下,可以看到ping通了。

3、只允许本机22端口被192.168.1.0/24网段访问,其他流量均被拒绝。我们输入命令:

iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT 

和命令:

iptables -A INPUT -p tcp --dport 22 -j REJECT 

同学们都知道22端口是ssh服务占用的资源。我们用ssh测试一下,可以看到能够连接到远程主机。

4、拒绝所有人访问本机8888端口,输入命令:

iptables -I INPUT -p tcp --dport 8888 -j REJECT 

和命令:

iptables -I INPUT -p udp --dport 8888 -j REJECT 

5、拒绝指定主机192.168.1.200访问本机80端口,输入命令:

iptables -I INPUT -s 192.168.1.200 -p tcp --dport 80 -j REJECT 

6、拒绝所有人访问本机4444到5555端口,输入命令:

iptables -A INPUT -p tcp --dport 4444:5555 -j REJECT 

和命令:

iptables -A INPUT -p udp --dport 4444:5555 -j REJECT 

7、删除INPUT链中的第2条策略,首先我们看一下防火墙策略中的第二条策略是什么“iptables -L”,然后输入命令删除第2条策略:

iptables -D INPUT 2 

可以看到第2条策略被删除了。

8、设置的防护墙策略在重启系统之后会消失,所有我们要保存设置好的策略,输入命令:

service iptables save 

好了,今天的演示就到这里了。


发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

浅谈Linux系统中的7种运行级别及其原理知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。