私人项目代码不想放到git、码云等服务器上,所以自建SVN服务,用于存储代码,后来文件越来越多,有了存储文件的需求,然后自建了NAS服务。
服务器系统:Ubuntu20.04 LTS
安装的服务有:
- SSH服务:远程管理。
- SVN服务:私人代码仓储。
- Bind9服务:用于家庭DNS广告过滤,自动从adblock 下载黑名单,然后添加进去。
- DHCP服务:家庭里的物联网设备分配IP。
- Commafeed: RSS阅读器
- NextCloud: 文件存储,家庭照片,资料等。
- Samba服务:实在不想用,投影上就它访问速度最快。
- 千千静听歌词服务:千千静听的死粉,自写的服务,搜索、下载、上传歌词
那么该如何做的安全防护呢?
1. 首先IPv6不允许国外IP访问,虽然在内网IPv4也一样不允许国外IP访问,国外数据包一律丢弃。
然后开放22端口,后面配置连接ssh时,采用证书的方式登录。
# IPv4 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT # local iptables -A INPUT -m set ! --match-set chnroute4 src -j DROP # not china ip iptables -A INPUT -p icmp -j ACCEPT # ping iptables -A INPUT -p tcp --dport 22 -j ACCEPT # ssh #IPv6 ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ip6tables -A INPUT -i lo -j ACCEPT # local ip6tables -A INPUT -m set ! --match-set chnroute6 src -j DROP # not china ip ip6tables -A INPUT -p icmp -j ACCEPT # ping ip6tables -A INPUT -p ipv6-icmp -j ACCEPT # ping ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT # ssh
关于 SSH 仅允许指定用户远程登录,参考这篇文章 : Linux SSH 仅允许指定用户远程登录
关于 SSH 仅允许证书登录,参考这篇文章 : Ubuntu Linux SSH 仅允许证书登录
#IPv4 仅允许光猫后面的内网访问,网络上不可见 iptables -A INPUT -s 192.168.1.0/24 -p tcp -m multiport --dports 137,138 -j ACCEPT # samba iptables -A INPUT -s 192.168.1.0/24 -p udp -m multiport --dports 137,138 -j ACCEPT # samba #IPv6 # 不允许远程访问
3. 开放SVN、NextCloud、千千静听服务到所有网络,安全使用Fail2ban来防护,最多重试5次,否则屏蔽该IP。
#IPv6(IPv4 相同,使用iptables命令) ip6tables -A INPUT -p tcp --dport 81 -j ACCEPT # nginx代理: nextcloud,parse server, 千千, onlyoffice, feed ip6tables -A INPUT -p tcp --dport 3690 -j ACCEPT # svn
https服务统一采用81端口,针对不同的服务使用子域名,或者子路径的方式来保护,并且服务里禁止纯IP的访问。 这样当用nmap及其他扫描的时候,很难根据IP探测出来该端口后面的服务。
4. DHCP,Bind9,Emby,jellfin等 同Samba一样,仅允许内网IPv4、IPv6访问。
# IPv6配置仅允许特定IP访问(IPv4格式见samba配置) ip6tables -A INPUT -s 2409:8a3c:xxxx:xxxx::/64 -p tcp --dport 53 -j ACCEPT # named ip6tables -A INPUT -s 2409:8a3c:xxxx:xxxx::/64 -p udp --dport 53 -j ACCEPT # named # log #ip6tables -p udp --dport 53 -j LOG --log-prefix "ip4 udp input: " --log-level 7
iptables 配置的IP级防护完成。
安全相关文章:
文章评论