由于工作需要,需要给别人在离线环境下部署suricata,并且要求使用Redhat 7系统,因此在这里记录一下离线软件源的制作和使用。首先需要在一台可以联网的Redhat 7上制作软件源,因为Redhat的官方源是收费的,所以首先需要更换软件源,不然无法下载相关的软件包。制作完成以后,在一台离线的Redhat上测试一遍看一下是否正常。

  1. 更换阿里云软件源
  • 查询已安装的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环境搭建
  1. 依赖安装
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



  1. 编译安装
./configure --prefix=/usr --sysconfdir=/opt --localstatedir=/var --enable-hiredis


make
sudo make install
sudo ldconfig
sudo make install-full



  1. 流量统计工具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



  1. redis远程连接配置
vi /etc/redis/6379.conf
做如下修改:
# bind 127.0.0.1
protected-mod no



  1. 防火墙配置
# 查看防火墙状态
systemctl status firewalld


# 临时关闭防火墙命令。重启电脑后,防火墙自动起来。 
systemctl stop firewalld


# 永久关闭防火墙命令。重启后,防火墙不会自动启动。 
systemctl disable firewalld


# 打开防火墙命令。 
systemctl enable firewal



  1. 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





乌班图离线安装mariadb 乌班图离线安装rpm_ubuntu 离线安装dvb


  • 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


乌班图离线安装mariadb 乌班图离线安装rpm_ubuntu 离线安装dvb_02


输入命令 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