DD-WRT也能防御网络攻击, 使用简单自定义脚本实现增强防火墙功能
许多人以为DD-WRT内置的防火墙是个鸡肋, 并没有多大作用, 甚至提倡关闭DD-WRT内置的防火墙来节省路由器的资源.
其实路由器的防火墙看似简单, 没多大功能, 其实就算最简单的几项都可以让网络更加安全, 何况DD-WRT内置iptables防火墙, 可以设置定制出非常严厉的的防火墙规则.
但是iptables规则对一般人来说并不简单, 而且几乎每台PC上都已经安装了个人防火墙, 所以路由上的防火墙主要用来防护一些比较容易可能影响到网络的威胁即可, 这样一来就不会太过于影响路由器的性能, 毕竟DD-WRT的防火墙也会消耗路由器的CPU和内存.
我们可以用简单的脚本命令来实现DD-WRT上的DoS保护, 过载保护, 中间人攻击(MITMA, man in the middle attack), PING攻击等主要的防火墙功能, 这些不需要任何特定参数和IP规则, 对于家庭网络的保护最好不过了.
命令部分来之DDWRT官方Wiki, 点击查看
符号"#"后的内容为注释, 实际使用时可以把"#"后面的内容整句删除.
复制下面的命令, 粘贴到DD-WRT的启动命令上即可.
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/ip_forward
# 下面两个注释掉的参数会影响eMule等软件, 请自行调试后决定是否开启.
#echo 1024 > /proc/sys/net/ipv4/ipfrag_high_thresh
#echo 512 > /proc/sys/net/ipv4/ipfrag_low_thresh
echo 64000 > /proc/sys/net/ipv4/ipfrag_high_thresh
echo 48000 > /proc/sys/net/ipv4/ipfrag_low_thresh
echo 10 > /proc/sys/net/ipv4/ipfrag_time
echo 5 > /proc/sys/net/ipv4/icmp_ratelimit
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 0 > /proc/sys/net/ipv4/conf/eth1/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/eth1/accept_redirects
echo 1 > /proc/sys/net/ipv4/conf/eth1/log_martians
echo 10 > /proc/sys/net/ipv4/neigh/eth1/locktime
echo 0 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
echo 50 > /proc/sys/net/ipv4/neigh/eth1/gc_stale_time
#
# 下面的命令确保提供最后保护和对于"中间人"MITM攻击提供适当的防御
#
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/secure_redirects
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 5 > /proc/sys/net/ipv4/igmp_max_memberships
echo 2 > /proc/sys/net/ipv4/igmp_max_msf
echo 1024 > /proc/sys/net/ipv4/tcp_max_orphans
echo 2 > /proc/sys/net/ipv4/tcp_syn_retries
echo 2 > /proc/sys/net/ipv4/tcp_synack_retries
echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow
echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 0 > /proc/sys/net/ipv4/route/redirect_number
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/eth1/rp_filter
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 61 > /proc/sys/net/ipv4/ip_default_ttl
# 调整超时防御DoS攻击
echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_time
echo "0" > /proc/sys/net/ipv4/tcp_window_scaling
echo "0" > /proc/sys/net/ipv4/tcp_sack
# 类似Windows XP的包检查防火墙功能
echo 4096 87380 4194304 >/proc/sys/net/ipv4/tcp_rmem
echo 4096 87380 4194304 >/proc/sys/net/ipv4/tcp_wmem
# 检查网络超载 (详细的拥堵通知)
echo 1 > /proc/sys/net/ipv4/tcp_ecn
# 修改外出流量的端口范围
echo "30000 60000" > /proc/sys/net/ipv4/ip_local_port_range
EI测试DD-WRT Wiki原代码中的LED提示指示没有成功, 原代码上的一些可有可无的命令已经去除.
直接添加到DD-WRT启动命令后路由应该会自动重启, 测试是否成功的最简单方式就是直接Ping路由的IP地址, 返回的是超时或者无法连接就表示已经成功.
标签: ARP, Protection
链接: DD-WRT也能防御网络攻击, 使用简单自定义脚本实现增强防火墙功能
本站所有文章,除特别标明外, 皆为原创. 如需转载, 请复制粘贴下面的代码到文章底部.
转载自 <a href="http://www.ei2u.com/dd-wrt/407.html" title="DD-WRT也能防御网络攻击, 使用简单自定义脚本实现增强防火墙功能" rel="bookmark">DD-WRT也能防御网络攻击, 使用简单自定义脚本实现增强防火墙功能 | e网软摘</a>
请问为什么是eth1?
ifconfig后有多个网卡:br0 br0:0 eth0 eth1 vlan0 vlan1
比如我的vlan1接入外网地址,是不是要相应的改成vlan1?
命令部分来至DD-WRT官方的wiki.
我现在用的是Tomato, 所有无线连接到路由器上的电脑都会归类到eth1上.
eth*的指的是局域网. 不难理解, 保护的对象就是路由器内的局域网.
其实我也是刚接触DDWRT...