IPsec (Internet Protocol Security) 是一种用于保护 IP 数据包的协议,可以在 Linux 系统中通过使用 iptables 和 iproute2 等工具来实现网络访问控制
在大多数 Linux 发行版中,IPsec 已经预装。如果没有,可以使用以下命令安装:
对于基于 Debian 的系统(如 Ubuntu):
sudo apt-get install ipsec libipsec-dev iptables iproute2
对于基于 RHEL 的系统(如 CentOS):
sudo yum install ipsec iptables iproute
创建一个名为 /etc/ipsec.conf
的配置文件,并添加以下内容:
config setup
protos = esp aes-sha-256
auth = esp-sha-256
keyexchange = diffie-hellman
conn my_connection
left = your_local_ip
right = their_remote_ip
leftsubnet = 192.168.1.0/24
rightsubnet = 192.168.2.0/24
auto = start
将 your_local_ip
和 their_remote_ip
替换为实际的本地和远程 IP 地址。根据需要修改子网掩码。
在 /etc/iptables/rules.v4
文件中,添加以下内容以允许 IPsec 流量:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A IPSEC_INBOUND -j ACCEPT
-A IPSEC_OUTBOUND -j ACCEPT
COMMIT
使用以下命令启动 IPsec 服务:
sudo systemctl start ipsec
sudo systemctl enable ipsec
使用以下命令测试 IPsec 连接是否正常工作:
sudo ipsec verify
现在,您已经成功设置了 IPsec 来控制网络访问。只有经过身份验证的 IPsec 连接才能访问您的网络资源。