Linux 使用 IPtables 命令阻止端口
在Linux操作系统下如何使用iptables封锁端口号?
端口号是 Internet 和其他网络协议识别的,使计算机能够与其他计算机交互。每个 Linux 服务器都有一个端口号(请参阅/etc/services文件)。例如:
端口号是 Internet 和其他网络协议识别的,使计算机能够与其他计算机交互。每个 Linux 服务器都有一个端口号(请参阅/etc/services文件)。例如:
- TCP 端口 80 – HTTP 服务器
- TCP 端口 443 – HTTPS 服务器
- TCP 端口 25 – 邮件服务器
- TCP 端口 22 – OpenSSH(远程)安全 Shell 服务器
- TCP 端口 110 – POP3(邮局协议 v3)服务器
- TCP 端口 143 – 互联网消息访问协议 (IMAP) – 电子邮件消息管理
- TCP/UDP 端口 53 – 域名系统 (DNS)
Linux 使用 IPtables 阻止传入端口
使用 IPtables 阻止传入端口的语法如下:
/sbin/iptables -A INPUT -p tcp --destination-port {PORT-NUMBER-HERE} -j DROP ### interface section - use eth1 ### /sbin/iptables -A INPUT -i eth1 -p tcp --destination-port {PORT-NUMBER-HERE} -j DROP ### only drop port for given IP or Subnet ## /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port {PORT-NUMBER-HERE} -s {IP-ADDRESS-HERE} -j DROP /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port {PORT-NUMBER-HERE} -s {IP/SUBNET-HERE} -j DROP
要阻止端口 80(HTTP 服务器),请输入(或添加到您的 iptables shell 脚本):有关更多信息,
请参阅如何在 Linux 上永久保存 iptables 防火墙规则。
# /sbin/iptables -A INPUT -p tcp --destination-port 80 -j DROP
# /sbin/service iptables save
阻止传入端口 80(IP 地址 1.2.3.4 除外)
# /sbin/iptables -A INPUT -p tcp -i eth1 ! -s 1.2.3.4 --dport 80 -j DROP
阻止传出端口
语法如下:
/sbin/iptables -A OUTPUT -p tcp --dport {PORT-NUMBER-HERE} -j DROP ### interface section use eth1 ### /sbin/iptables -A OUTPUT -o eth1 -p tcp --dport {PORT-NUMBER-HERE} -j DROP ### only drop port for given IP or Subnet ## /sbin/iptables -A OUTPUT -o eth0 -p tcp --destination-port {PORT-NUMBER-HERE} -s {IP-ADDRESS-HERE} -j DROP /sbin/iptables -A OUTPUT -o eth0 -p tcp --destination-port {PORT-NUMBER-HERE} -s {IP/SUBNET-HERE} -j DROP
要阻止传出端口 #25,请输入:
您只能为 IP 地址 192.168.1.2 阻止端口 #1234:
# /sbin/iptables -A OUTPUT -p tcp --dport 25 -j DROP
# /sbin/service iptables save
# /sbin/iptables -A OUTPUT -p tcp -d 192.168.1.2 --dport 1234 -j DROP
# /sbin/service iptables save
如何记录丢弃端口的详细信息?
使用以下语法:
# Logging # ### If you would like to log dropped packets to syslog, first log it ### /sbin/iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "PORT 80 DROP: " --log-level 7 ### now drop it ### /sbin/iptables -A INPUT -p tcp --destination-port 80 -j DROP
如何阻止破解者(IP:123.1.2.3)访问 UDP 端口 #161?
/sbin/iptables -A INPUT -s 123.1.2.3 -i eth1 -p udp -m state --state NEW -m udp --dport 161 -j DROP # drop students 192.168.1.0/24 subnet to port 80 /sbin/iptables -A INPUT -s 192.168.1.0/24 -i eth1 -p tcp -m state --state NEW -m tcp --dport 80 -j DROP
如何查看阻止的端口规则?
使用 iptables 命令:
示例输出:
# /sbin/iptables -L -n -v
# /sbin/iptables -L -n -v | grep port
# /sbin/iptables -L -n -v | grep -i DROP
# /sbin/iptables -L OUTPUT -n -v
# /sbin/iptables -L INPUT -n -v
图01:查看阻止的端口/IP