iptables
CentOS 中 iptables 的实现
安装和基本设置
在 CentOS 中,iptables 通常是自带的。如果没有,可以使用命令安装。
yum install iptables -y
查看 iptables 规则,使用命令。
iptables -L
初始状态下,它会显示类似以下内容(以默认策略为例):
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
设置默认策略,例如,将 INPUT 链的默认策略设置为 DROP(拒绝所有进入的连接,除非有明确的允许规则),可以使用
iptables -P INPUT DROP
注意,这样设置后,如果没有后续的允许规则,系统将无法接收外部连接。
添加规则
允许特定端口的访问,比如允许 SSH 访问(SSH 默认端口是 22),使用
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
这条规则的意思是,在 INPUT 链中添加(-A)一条规则,对于 TCP 协议(-p tcp),目标端口(--dport)是 22 的连接,采取接受(-j ACCEPT)的动作。
允许本地回环接口访问,使用
iptables -A INPUT -i lo -j ACCEPT
这里的-i lo表示输入接口(-i)是本地回环(lo)接口,这种规则是为了确保本地程序之间的通信正常。
保存规则
在 CentOS 中,使用命令
service iptables save
可以将当前的 iptables 规则保存,以便系统重启后规则仍然生效。这些规则通常会保存在/etc/sysconfig/iptables文件中。
CentOS 中 firewalld 的实现
安装和基本设置
如果系统没有安装 firewalld,可以使用命令安装。
yum install firewalld -y
安装完成后,启动服务
systemctl start firewalld
并且设置开机自启
systemctl enable firewalld
查看 firewalld 状态,使用
firewall -cmd --state
正常情况下会显示running。
添加规则
允许特定端口访问,例如允许 HTTP 访问(HTTP 默认端口是 80),使用
firewall -cmd --add - port = 80/tcp --permanent
这里的--permanent表示永久添加规则,添加规则后需要重新加载规则才能生效,使用
firewall -cmd --reload
允许特定服务访问,例如允许 SSH 服务访问,使用
firewall -cmd --add - service = ssh --permanent
然后同样需要重新加载规则。
Ubuntu 中 iptables 的实现
安装和基本设置
在 Ubuntu 中,iptables 也是自带的。查看 iptables 规则同样是使用
iptables -L
设置默认策略的方式和 CentOS 类似,例如设置 INPUT 链默认策略为 DROP,使用
iptables -P INPUT DROP
添加规则
允许特定 IP 访问特定端口,例如允许 IP 地址为192.168.1.100访问本地的 3306 端口(假设是 MySQL 服务端口),使用
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 3306 -j ACCEPT
其中-s表示源 IP 地址。
限制 ICMP(ping)请求,例如只允许内部网络(假设内部网络网段是192.168.1.0/24)的主机 ping 本地主机,使用
iptables -A INPUT -p icmp -s 192.168.1.0/24 -j ACCEPT
并且设置其他外部网络的 ICMP 请求为拒绝,使用
iptables -A INPUT -p icmp -j DROP
保存规则
在 Ubuntu 中,要保存 iptables 规则,可以使用
iptables - save >/etc/iptables. rules
将规则保存到文件,并且在系统启动脚本中添加加载这些规则的命令,例如在/etc/rc.local文件中添加iptables -restore < /etc/iptables.rules(需要确保/etc/rc.local有执行权限)。
Ubuntu 中 ufw(Uncomplicated Firewall,基于 iptables 的简单防火墙)的实现(替代 firewalld 部分功能)
安装和基本设置
使用命令安装 ufw
apt - get install ufw
安装完成后,启用 ufw,使用
ufw enable
在启用之前可以先使用查看当前状态
ufw status verbose
添加规则
允许特定端口访问,例如允许 HTTPS 访问(默认端口 443),使用
ufw allow 443/tcp
允许特定服务访问,例如允许 OpenSSH 服务访问,使用
ufw allow OpenSSH