# OpenTaxii配置教程
## 安装过程中注意点
- 官方给出的service.yml配置文件中默认使用https作为请求方式,所以如果不能提供https服务的话,请注释掉
- opentaxii默认安装是0.1.9,但是0.1.9有个关于格式的问题,所以,如果实际环境中发现无法push 和pull 数据,请使用0.1.8版本
- 经测试,opentaxii+mysql 不如 opentaxii+sqllite的性能,很是奇怪。所以实际使用过程中可以都测试看看。
## 环境需求:
python版本:2.7,3.4
pip:python包管理工具
mysql: 无版本需求
nginx: 无版本需求
## 安装步骤:
1. pip install taxii gunicorn
2. 创建mysql数据库:taxii_data,taxii_auth
3. 修改配置文件taxii.yml文件,9行和15行里的mysql连接信息配置
4. 修改配置文件taxii.yml第一行域名为实际的域名
5. 运行命令export OPENTAXII_CONFIG=taxii.yml文件的路径
6. 根据实际的情况,修改service.yml和collections.yml
7. 创建服务:opentaxii-create-services -c services.yml
8. 创建集合:opentaxii-create-collections -c collections.yml
9. 添加一个用户名密码:opentaxii-create-account -u username -p password
10. 运行opentaxii(注意修改日志路径):gunicorn opentaxii.http:app --workers 2 --log-level debug --log-file /home/worker/log/opentaxii.log --timeout 30 --bind 0.0.0.0:19000 -D
## 测试安装是否成功
1. pip install cabby
2. taxii-discovery --path http://localhost:9000/services/discovery-a:discovery-a为service.xml里配置的discovery,没有输出错误信息,则成功
3. taxii-collections --path http://localhost:9000/services/collection-management-a:collection-management-a为service.xml里配置的collection_management,没有输出错误信息,则成功
## HTTPS配置
1. 准备好https证书
2. 生成dbparam:openssl dhparam -out dhparam.pem 2048
3. nginx 增加server配置如下(注意修改 cert.pem,cert.key,ssl_dhparam,access_log,error_log配置项的文件路径):
server {
listen 443 ssl;
server_name taxii.example.com;
ssl_certificate /usr/local/nginx/ssl/cert.pem;
ssl_certificate_key /usr/local/nginx/ssl/cert.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
access_log /var/log/nginx/taxii_access.log;
error_log /var/log/nginx/taxii_error.log;
location / {
proxy_pass http://127.0.0.1:19000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
4. 重启nginx
## [转载自我的博客](http://www.bugcode.cn/opentaxii-install-nginx-mysql.html)