您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
马哥linux运维学习笔记-iptables系列之nat及其过滤功能
发布时间:2019-03-06 18:41:53编辑:雪饮阅读()
添加自定义链
[root@mail ~]# iptables -N clean_in
添加规则到自定义链
[root@mail ~]# iptables -A clean_in -d 255.255.255.255 -p icmp -j DROP
链的返回
返回到其父规则并继续向父规则的下一条规则继续匹配
[root@mail ~]# iptables -A clean_in -d 192.168.1.11 -j RETURN
链与链的关系-将处理方法交给指定链
一般与链的返回结合使用
[root@mail ~]# iptables -I INPUT -j clean_in
抵御dos攻击
[root@mail ~]# iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP
利用connlimit模块将单IP的并发设置为3;会误杀使用NAT上网的用户,可以根据实际情况增大该值
[root@mail ~]# iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name ssh
记录访问tcp 22端口的新连接,记录名称为SSH
[root@mail ~]# iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name ssh -j DROP
SSH记录中的IP,300s内发起超过3次连接则拒绝此IP的连接。
这样以来用ssh客户端同时打开3个会话发现就开始卡了第四个就直接打不开了,这样就防止暴力破解了。
route的使用
[root@localhost ~]# route del -net 0.0.0.0
删除一条路由,-net指定一个网域
[root@localhost ~]# route add default gw 192.168.1.11
添加一条路由,gw表示网关
ip_forward应用-跨网段访问
现有如下3个设备
linux redhat设备A:
网卡1桥接,ip地址192.168.1.11
网卡2仅主机,ip地址192.168.128.130
linux redhat设备B:
网卡桥接,ip地址192.168.1.7,默认网关192.168.1.11
windowsxp设备C
网卡仅主机,ip地址192.168.128.131,默认网关192.168.128.130
现在要想实现设备C能够ping通设备B。
因为b设备和c设备不在一个网段,但他们各自的网关都分别是a设备的两个网卡,所以他们各自都可以ping通a设备,而c设备要想ping通b设备,就需要a设备开启ip_forward。
永久性开启ip_forward
编辑/etc/sysctl.conf文件将net.ipv4.ip_forward的值修改为1
然后执行如下命令
[root@mail ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
临时开启ip_forward
[root@mail ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@mail ~]# cat /proc/sys/net/ipv4/ip_forward
1
此时c设备便可以ping通与它不同网段的设备b了。
配置网关服务器禁止通过forward转发进行ping
[root@mail ~]# iptables -A FORWARD -s 192.168.128.0/24 -p icmp -j REJECT
目标地址转换实例-跨网段访问web服务
现在有这样的需求,还是上面的那3个设备,而在设备b上面有web服务,需要做到通过设备c访问到web服务
而上面的这种情况就已经可以做到了,直接访问设备b即可,但是这种情况下若将设备c的默认网关修改了,则直接访问设备b同样无法进入web服务。
那么此时在设备a出做目标地址转发如:
[root@mail ~]# iptables -t nat -A PREROUTING -d 192.168.128.130 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.7
这里将设备a的仅主机ip地址作为访问目标,将该目标转发至设备b的ip地址了,由于设备c虽然在没有默认网关的情况下不能直接访问设备b,但可以访问设备a,通过设备a进行目标地址转发进而就实现了访问的是设备a而得到了设备b的web服务。
关键字词:linux,iptables,nat