Informix数据库在Linux环境下的安全设置需要从多个层面进行配置,以下是一份全面的安全设置方案:
# 创建专用的informix用户组和用户
sudo groupadd informix
sudo useradd -g informix -d /opt/informix -s /bin/bash informix
sudo passwd informix # 设置强密码
# 设置目录权限
sudo chown -R informix:informix /opt/informix
sudo chmod -R 750 /opt/informix
/etc/fstab
中Informix目录的挂载选项为noexec,nosuid
# 以informix用户安装
su - informix
./ids_install --i silent --optionfile /path/to/response_file
chmod 640 $INFORMIXDIR/etc/*
chmod 600 $INFORMIXDIR/etc/sqlhosts
chmod 600 $INFORMIXDIR/etc/onconfig.*
# 认证相关
AUTHENTICATION PAM
# 禁用远程DBA访问
REMOTE_SERVER_CFG disallow_new_connections
# 设置密码策略
PASSWORD_LIFETIME 90
PASSWORD_MIN_LEN 8
PASSWORD_HISTORY 5
# 审计设置
AUDIT_MODE 1
AUDIT_SYSLOG 1
# 在sqlhosts文件中限制IP访问
demo_on onipcshm hostname sqlexec
demo_net onsoctcp 192.168.1.100 9088
-- 创建角色
CREATE ROLE app_read_only;
CREATE ROLE app_read_write;
-- 创建用户并设置密码
CREATE USER app_user WITH PASSWORD 'ComplexP@ssw0rd!123'
IN GROUP app_read_write;
-- 密码策略
SET PASSWORD POLICY LIFETIME 90 MIN_LENGTH 8 HISTORY 5;
-- 给角色授权
GRANT CONNECT TO app_read_only;
GRANT SELECT ON customer TO app_read_only;
GRANT ALL ON sales TO app_read_write;
-- 撤销public角色的默认权限
REVOKE ALL ON DATABASE FROM PUBLIC;
-- 创建审计表
CREATE AUDIT TABLE sysaudit;
-- 启用关键操作的审计
AUDIT SELECT, INSERT, UPDATE, DELETE ON customer;
AUDIT ALL ON DATABASE;
AUDIT ROLE;
AUDIT USER;
# 配置日志轮转
logrotate -f /etc/logrotate.d/informix
# 示例logrotate配置
/opt/informix/logs/*.log {
weekly
missingok
rotate 12
compress
delaycompress
notifempty
create 640 informix informix
sharedscripts
postrotate
/bin/kill -HUP `cat /opt/informix/etc/online.pid 2>/dev/null` 2>/dev/null || true
endscript
}
# 只允许特定IP访问Informix端口
sudo iptables -A INPUT -p tcp --dport 9088 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 9088 -j DROP
# 保存iptables规则
sudo iptables-save > /etc/sysconfig/iptables
# 生成SSL证书
openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 365 -nodes
# 在onconfig中配置
NETTYPE socssl,1,50,NET
SSL_KEY_FILE /opt/informix/ssl/server.key
SSL_CERT_FILE /opt/informix/ssl/server.crt
#!/bin/bash
# 检查异常登录
grep -i "failed" /opt/informix/logs/online.log
# 检查权限变更
find $INFORMIXDIR -type f -perm /o+rwx -ls
# 检查空密码用户
dbaccess sysuser - <<EOF
SELECT username FROM sysusers WHERE password IS NULL;
EOF
# 定期检查并应用补丁
./ids_install --i patch --optionfile /path/to/patch_response_file
# 加密备份
ontape -s -L 0 -e -K "encryption_key" -o /secure/backup/location
通过以上多层次的配置,可以显著提高Linux环境下Informix数据库的安全性。建议定期复查安全设置并根据最新的安全威胁进行调整。