iptables 配置INPUT policy DROP git pull 失败 今天,vps发现修改了INPUT的默认policy后,git pull无法使用。 ``` iptables -P INPUT DROP git pull # 失败,报 ssh: Could not resolve hostname github.com: Temporary failure in name resolution fatal: Could not read from remote repository. ``` 现象是长时间阻塞。 ## 添加日志 ``` iptables -A INPUT -m limit --limit 40/min -j LOG --log-prefix "Iptables" --log-level 7 ``` 注意,这条要用-A的方式添加在最下面,使得上面放通的规则被匹配。 此时可以在 ``` /var/log/syslog /var/log/message ``` 中找到iptables的日志。 ## 定位问题 发现日志如下: ``` Feb 1 16:52:44 localhost kernel: [26544901.701341] IptablesIN=eth0 OUT= MAC=aa:aa:00:12:15:13:30:7c:5e:84:9a:01:08:00 SRC=1.1.1.1 DST=104.243.28.195 LEN=72 TOS=0x00 PREC=0x00 TTL=59 ID=58349 DF PROTO=UDP SPT=53 DPT=47599 LEN=52 Feb 1 16:52:44 localhost kernel: [26544901.701442] IptablesIN=eth0 OUT= MAC=aa:aa:00:12:15:13:30:7c:5e:84:9a:01:08:00 SRC=1.1.1.1 DST=104.243.28.195 LEN=140 TOS=0x00 PREC=0x00 TTL=59 ID=58350 DF PROTO=UDP SPT=53 DPT=47599 LEN=120 Feb 1 16:52:49 localhost kernel: [26544906.706491] IptablesIN=eth0 OUT= MAC=aa:aa:00:12:15:13:30:7c:5e:84:9a:01:08:00 SRC=1.0.0.1 DST=104.243.28.195 LEN=72 TOS=0x00 PREC=0x00 TTL=59 ID=61408 DF PROTO=UDP SPT=53 DPT=57553 LEN=52 Feb 1 16:52:49 localhost kernel: [26544906.706638] IptablesIN=eth0 OUT= MAC=aa:aa:00:12:15:13:30:7c:5e:84:9a:01:08:00 SRC=1.0.0.1 DST=104.243.28.195 LEN=140 TOS=0x00 PREC=0x00 TTL=59 ID=61409 DF PROTO=UDP SPT=53 DPT=57553 LEN=120 ``` 和 ``` Feb 1 16:56:27 localhost kernel: [26545124.797668] IptablesIN=eth0 OUT= MAC=aa:aa:00:12:15:13:30:7c:5e:84:9a:01:08:00 SRC=192.30.255.113 DST=104.243.28.195 LEN=60 TOS=0x00 PREC=0x00 TTL=55 ID=0 DF PROTO=TCP SPT=22 DPT=51254 WINDOW=65535 RES=0x00 ACK SYN URGP=0 ``` 添加规则如下: ``` iptables -A INPUT -p tcp --dport 53 -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT iptables -A INPUT -p tcp --sport 22 -j ACCEPT iptables -A INPUT -p udp --sport 22 -j ACCEPT iptables -A INPUT -s 1.1.1.1 -j ACCEPT iptables -A INPUT -s 1.0.0.1 -j ACCEPT ``` 如果还不行,添加下面规则 ``` iptables -A INPUT -p tcp -m multiport --dports 22,80,443,3000,9418 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443,3000,9418 -m state --state ESTABLISHED -j ACCEPT ``` 不太理解,为什么git pull git服务器会以22端口向我发入包。不过这么操作后,git pull问题解决。 来自 大脸猪 写于 2023-02-01 19:08 -- 更新于2023-02-01 19:15 -- 0 条评论