由于工作需要,需要给别人在离线环境下部署suricata,并且要求使用Redhat 7系统,因此在这里记录一下离线软件源的制作和使用。首先需要在一台可以联网的Redhat 7上制作软件源,因为Redhat的官方源是收费的,所以首先需要更换软件源,不然无法下载相关的软件包。制作完成以后,在一台离线的Redhat上测试一遍看一下是否正常。
- 更换阿里云软件源
- 查询已安装的yum
rpm -qa | grep yum
- 使用root权限卸载已安装的yum
rpm -qa | grep yum | xargs rpm -e --nodeps
- 下载并安装阿里云的yum源rpm包
# 创建安放rpm包的文件夹
cd /etc/yum.repos.d/
mkdir yum-rpm && cd yum-rpm
# 下载rpm包
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-161.el7.centos.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-50.el7.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/python-urlgrabber-3.10-9.el7.noarch.rpm
- 安装rpm包
cd /etc/yum.repos.d/yum-rpm
rpm -ivh *.rpm --force --nodeps
- 下载阿里镜像到/etc/yum.repos.d/目录下
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- 修改Centos-7.repo文件将所有$releasever替换为7
vim /etc/yum.repos.d/CentOS-Base.repo
:%s/$releasever/7/g
- 运行以下命令
yum clean all
yum makecache
yum update
sudo yum-config-manager --disable rhel-7-server-rpms
- 添加Fedora的epel仓库,避免有些软件下载不到
sudo yum install epel-release
- 离线源制作
首先使用下面的命令离线下载需要的包和依赖,下载完成后存放在packages目录下
yumdownloader --resolve --destdir=packages/ gcc libpcap-devel pcre-devel libyaml-devel file-devel zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make libnetfilter_queue-devel hiredis-devel redis wireshark python-devel python-pip darkstat
安装createrepo:创建yum仓库
yum -y install createrepo
这部分可以提前下好包和依赖,然后直接执行如下命令安装
sudo rpm -iv *
使用下载的安装包和依赖,创建yum仓库
createrepo -v packages/
压缩创建好的仓库,从而方便传输
tar -zcvf packages.tar.gz packages/
配置离线yum源
解压文件
tar -xzf packages.tar.gz
备份/etc/yum.repos.d/下的所有.repo
创建备份文件夹
mkdir -p /etc/yum.repos.d/repo.bak
转移文件
mv *.repo repo.bak
制作yum源.repo,指定yum源位置
vi /etc/yum.repos.d/packages.repo
yum clean all
yum makecache
添加
#additional packages that extend functionality of existing packages
[packages]
name=CentOS-7 - Plus
baseurl=file:///home/colin/packages
gpgcheck=0
enabled=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
查询
yum list | grep packages
安装
yum install -y 包名称
- suricata环境搭建
- 依赖安装
sudo yum -y install gcc libpcap-devel pcre-devel libyaml-devel file-devel zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make libnetfilter_queue-devel hiredis-devel wireshark redis python-devel python-pip darkstat
- 编译安装
./configure --prefix=/usr --sysconfdir=/opt --localstatedir=/var --enable-hiredis
make
sudo make install
sudo ldconfig
sudo make install-full
- 流量统计工具darkstat
$ sudo apt-get install darkstat # Debian/Ubuntu
$ sudo yum install darkstat # RHEL/CentOS
$ sudo dnf install darkstat # Fedora 22+
# config file
$ sudo vi /etc/darkstat/init.cfg
$ sudo vi /etc/sysconfig/darkstat
修改内容
OPTIONS="-i ens33 -p 8888 -b 0.0.0.0 --no-dns"
修改完记得重启
sudo systemctl restart darksta
- redis远程连接配置
vi /etc/redis/6379.conf
做如下修改:
# bind 127.0.0.1
protected-mod no
- 防火墙配置
# 查看防火墙状态
systemctl status firewalld
# 临时关闭防火墙命令。重启电脑后,防火墙自动起来。
systemctl stop firewalld
# 永久关闭防火墙命令。重启后,防火墙不会自动启动。
systemctl disable firewalld
# 打开防火墙命令。
systemctl enable firewal
- Mysql 5.7安装顺序
# 先卸载mariadb
rpm -e 包名 --nodeps
mysql-community-common-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-5.7.24-1.el7.x86_64.rpm
mysql-community-client-5.7.24-1.el7.x86_64.rpm
mysql-community-server-5.7.24-1.el7.x86_64.rpm
mysql-community-devel-5.7.24-1.el7.x86_64.rpm
mysql安装完毕后,是不会自动启动的,但是第一次启动后,以后开机都是自启的,没有第一次启动之前,也是没有密码的。当你第一次启动MySQL服务器的时候,mysql自己就会自己做很多事情,其中之一重要的就是初始密码,
- 启动mysql
systemctl start mysqld.service
systemctl status mysqld.service
- 查看初始密码
cat /var/log/mysqld.log
- supervisor配置
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
修改supervisord.conf文件末尾
[include]
files = /etc/supervisor/conf/*.ini
mkdir /etc/supervisor/conf
在conf目录下添加配置文件,处理不同的进程,例如suricata.ini中添加
[program:suricata]
user=root
command=suricata -i ens33
stdout_logfile=/var/log/suricata/out.log
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
启动supervisor
$ supervisord
命令行管理
$ supervisor
输入命令 supervisorctl 进入 supervisorctl 的 shell 交互界面(还是纯命令行),就可以在下面输入命令了。:
* help # 查看帮助
* status # 查看程序状态
* stop program_name # 关闭 指定的程序
* start program_name # 启动 指定的程序
* restart program_name # 重启 指定的程序
* tail -f program_name # 查看 该程序的日志
* update # 重启配置文件修改过的程序(修改了配置,通过这个命令加载新的配置)
- 配置supervisor开机启动
进入/lib/systemd/system目录,并创建supervisor.service文件
vim supervisor.service
//文件内容:
[Unit]
Description=supervisor
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.tar
- 设置开机启动
systemctl enable supervisor.service
systemctl daemon-reload
- 修改文件权限为766
chmod 766 supervisor.service
- 相关命令
启动/停止supervisor服务
service supervisor start|stop
与服务端交互
supervisorctl
查看任务状态
supervisorctl status
重启/关闭远程supervisord
supervisorctl reload|shutdown
supervisord 重新加载
supervisorctl reread # 重新加载守护进程的配置文件,新添加的程序不会重启
supervisorctl update # 重启配置文件修改过的程序
启动/停止/重启某一进程
supervisorctl start|stop|restart program_name
启动/停止/重启全部进程
supervisorctl start|stop|restart all
注意:显示用stop停止掉的进程,用reload或者update都不会自
- 系统时间修改
// 设置时区
timedatectl set-timezone "Asia/Shanghai"
// 同步网络时间
sudo ntpdate -u ntp.api.bz
// 设置日期2019年8月5号
date -s 08/05/19
// 设置时间10:13:50
date -s 10:13:50
// 写入CMOS
clock -w