使用Linux搭建软路由

朱雀 2021-10-23 20:32 922阅读 0赞

环境:Ubuntu 16.0.4\6网卡、电信光猫一个、交换机N个,无线路由器N个

1.使用电信账号连接Internet,这里使用一张网卡即可,即eth0

  1. 配置网卡eth0固定IP:
  2. vim /etc/network/interfaces
  3. auto eth0
  4. iface eth0 inet static
  5. address 192.168.1.1
  6. netmask 255.255.255.0
  7. 配置pppoe拨号:
  8. sudo pppoeconf
  9. 1.等待检测网卡,如果检测失败,可能是由于有其它设备正在尝试拨号(PC,路由器)
  10. 2.输入宽带账号
  11. 3.输入密码
  12. 4.剩下的选择YES即可
  13. 连接ADSL:
  14. sudo pon dsl-provider
  15. 断开ADSL连接:
  16. sudo poff
  17. 查看日志:
  18. plog
  19. 查看接口信息:
  20. ifconfig ppp0(一般是这个,如果你之前有配置VPN占用了ppp0,则ADSL端口可能会变成ppp1,详细可以看plog)

2.配置iptables规则,转发网络请求

  1. 检测内核是否开启路由转发:
  2. sudo sysctl -p #输出:net.ipv4.ip_forward = 1
  3. 如果没有开启,vim /etc/sysctl.conf
  4. 添加 net.ipv4.ip_forward = 1
  5. 再次执行 sysctl -p
  6. 配置iptables:
  7. iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
  8. iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
  9. iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
  10. #把eth0网卡的数据包通过nat转发到ppp0,根据自己的需要修改相应的网卡
  11. iptables-save > /etc/iptables.rules #保存规则到文件

3.配置iptables规则,禁止不必要的访问

  1. 禁止ping:
  2. iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
  3. 禁止原先服务端口:
  4. 1.SSH端口禁止外网访问
  5. iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
  6. iptables -A INPUT -p tcp --dport 22 -j DROP
  7. 2.禁止其他端口外网访问80
  8. iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT
  9. iptables -A INPUT -p tcp --dport 80 -j DROP

4.添加开机自启动

  1. 添加开机启动:
  2. vim /etc/rc.local 或者是 /etc/init.d/rc.local #添加:
  3. sudo /usr/bin/pon dsl-provider
  4. sudo /sbin/iptables-restore < /etc/iptables.rules

5.iptables命令参考:

  1. 参数含义:
  2. -P 代表协议(PROTOCOL
  3. 指明当前规则针对的传输协议(如 TCPUDPICMP 等)
  4. 可能的参数值有:tcp, udp, icmp, all
  5. 使用 all 表示适用于所有协议。而如果在规则中不指定 -p 参数,则默认使用 all 参数。一般不使用 all 这个值,要么指定某个特定的协议,要么就指定 -p 参数。
  6. -p 的参数值既可以用名称(如 tcp)也可以用协议对应的数值(如 6 代表 tcp 协议)
  7. /etc/protocols 文件中包含了所有允许的协议名称和相应数值
  8. 也可以用长的参数名 protocol
  9. -S 代表源地址(SOURCE
  10. 指定数据包的源地址
  11. 可以是 ip 地址,或者网络地址,或者主机名(hostname
  12. 例如:-s 192.168.1.101 表示针对特定的 ip 地址
  13. 对于网络掩码,使用 /mask。例如,“-s 192.168.1.0/24 表示网络掩码为 255.255.255.0 的所有 192.168.1.x 地址都匹配。
  14. 如果不指定 -s 参数,默认匹配所有源地址
  15. 也可以用长参数名 src 或者 source
  16. -D 代表目的地址(DESTINATION
  17. 指定数据包的目的地址
  18. 使用方式与上面的 “-s 一样(不同之处仅在于 -s 指源,而 -d 表示目的地址)
  19. 也可以用长参数名 dst 或者 destination
  20. -J 代表跳转(TARGET
  21. j 的意思是 jump”(跳转) 到目标
  22. 指定当某个数据包满足该规则的时候的就跳转到的下一个处理规则,而不再顺序执行后面的规则判断
  23. 可能的值有:ACCEPT, DROP, QUEUE, RETURN,分别表示接受、丢弃、进入队列,返回(跳出,通常是从某个 chain 中跳回到调用该 chain 的上层 chain
  24. 也可以跳转到某个自定义的 chain 中,使用该 chain 的名称做为跳转目标
  25. -I 代表 IN INTERFACE(入站接口)
  26. i 表示 input interface”(输入接口,即,指定网络数据处理的网卡,一般 eth0 即表示第一块有线网卡的外网接口,lo 表示局域网接口)
  27. 可以直接理解为 “-i 表示接口。不过,-i -o 都表示接口,-i 表示输入时的接口,而 -o 特指输出用的接口。
  28. 指定数据包进入 INPUTFORWARD PREROUTING 链时经由的接口。
  29. 例如:-i eth0 表示该规则应该针对从 eth0 接口进来的数据包。
  30. 如果不指定 -i 参数,则经由系统中所有可用的接口进入的数据包都可以匹配该规则。
  31. 也可以使用长参数 in-interface
  32. -O 代表 OUT INTERFACE(出站接口)
  33. o 表示 output interface”(出站经由接口)
  34. 指定发送出去的数据包进入 INPUTFORWARD PREROUTING 链时经由的接口。
  35. 如果不指定 -o 参数,则经由系统中所有可用的接口发出的数据包都可以匹配该规则。
  36. 也可以使用长参数 out-interface
  37. 常用选项:
  38. 注意:下面所有这些选项前面都是 –(2个短横线 )。
  39. SPORT 表示 SOURCE PORT (源端口,用于 -P TCP, 或者 -P UDP)
  40. 默认匹配所有端口(未特别指定时)
  41. 可以指定端口号(数字),也可以指定端口名称。例如,默认的 SSH 端口号码为 22,名称为 ssh,可以表示为 “–sport 22 或者 “–sport ssh”。
  42. /etc/services 文件包含了所有允许的端口名称和对应的端口号码。
  43. 在规则中使用号码比使用名称要好(效率高些)
  44. 要匹配一个端口范围,使用英文半角冒号(:),如 22:100 匹配从 22 100 的所有端口号。
  45. 也可以使用长名称 source-port
  46. DPORT 表示 DESTINATION PORT (目的端口,-P TCP, 或者 -P UDP)
  47. sport 的用法相同,区别仅在于对象是目的端口
  48. 也可以使用长名称 destination-port
  49. TCP-FLAGS 表示 TCP FLAGS (用于 -P TCP)
  50. 可以使用英文半角逗号(,)来指定多个 TCP 状态标识
  51. 可能值有:SYN, ACK, FIN, RST, URG, PSH。可以全用,也可以不用。
  52. ICMP-TYPE 表示 ICMP TYPE (ICMP 类型,用于 -P ICMP)
  53. 当使用 icmp 协议 “-p icmp 的时候,可以使用 “–icmp-type 特别指定 ICMP 类型
  54. 例如,使用 “–icmp-type 0 表示 Echo Reply”,“–icmp-type 8 表示 Echo”。
  55. 参考自:https://cnzhx.net/blog/common-iptables-cli/

发表评论

表情:
评论列表 (有 0 条评论,922人围观)

还没有评论,来说两句吧...

相关阅读

    相关 react

    一、路由—概念: 实现spa(单页面应用)应用:整个项目只有一个完整的页面,页面切换不会刷新整个页面(不会感觉到页面闪烁,更加贴近原生应用的体验) 二、路由—分类:

    相关 VirtualBoxOpenWrt

    当一个普通路由器刷了定制的OpenWrt后,其功能即可大大的拓展,而且还可以自己配置好看的界面,瞬间升级成强大的智能路由器,使用各种开源软件,让普通路由器拥有几千元网络设备才具

    相关 系统收集

    1. PFsense 一个老牌的opensource的防火墙系统,官网地址大家自己找,软件免费,硬件收费。 系统的特点是路由和防火墙功能比较强大,而且集成了入侵检测、漏洞扫

    相关 使用Linux

    环境:Ubuntu 16.0.4\\6网卡、电信光猫一个、交换机N个,无线路由器N个 1.使用电信账号连接Internet,这里使用一张网卡即可,即eth0 配置网