Recent Posts

Pages: [1] 2 3 ... 10
1
Excellent post! We are linking to this particularly great article on our website. Keep up the great writing.
ebet
3
command , shell script ,tool , crontab / Re: basic command for xargs
« Last post by golfreeze on กรกฎาคม 28, 2021, 10:22:31 PM »
1.txt
2.txt
3.txt
4.txt
5.txt

ทำการ rename นามสกุลไฟล์จาก .txt -> .text

ls | cut -d. -f1 | xargs -I {} mv {}.txt {}.text

เท่านี้ก็จะได้เป็น
1.text
2.text
3.text
4.text
5.text

 8)
4
หรือจะเขียนให้ อนุญาตแค่ ไฟล์ตระกูลรูปภาพ ที่เหลือ deny ทั้งหมดก็
order allow,deny
<Files ~ "\.(jpg|jpeg|png|gif|pdf|txt|bmp)$">
   allow from all
</Files>
5
all application on unix knowledges by golfreeze / force drop database on postgres cli command line
« Last post by golfreeze on กรกฎาคม 12, 2021, 01:29:43 PM »
=== postgres force drop database
If found error :
 database "boss_v2" is being accessed by other users
 DETAIL:  There are 2 other sessions using the database.

==fixed by force drop
REVOKE CONNECT ON DATABASE boss_v2 FROM public;
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'bot’;
==and drop again
drop database boss_v2;

===when create found problem try to template0
CREATE DATABASE dbname TEMPLATE template1;
=If template1 is not available or corrupted, you can use template0 as last resort:
CREATE DATABASE dbname TEMPLATE template0;

ลองกันดูนะครับผม  8)
6
นำค่าของตำแหน่งสุดท้าย(จำนวนเงิน) มารวมกัน และเอาค่า , ออก แล้วมา sum ดูว่าเป็นทั้งหมดเท่าไร เช่น
sum.txt
05/06   20.00 USD CLOUDFLARE HTTPSWWW.CLOU US   06/06   641.84
07/06   TOPS-PIN KLAO BANGKOK TH        07/06   2,127.50

cat sum.txt | awk -F/ '{print $NF}' | awk '{print $2}' | sed 's/,//g' |  paste -sd+ | bc
7
==== Do on agent site ====
##download checkMYSQLProcesslist.sh
https://support.nagios.com/forum/download/file.php?id=3124&sid=a03b04c54e4889c5a0b37aeff9bc9027

==add in nrpe.cfg
command[check_mysql_query]=/usr/local/nagios/libexec/check_mysql.sh

==create 1 db and 1 table and insert 1 query to check access
CREATE TABLE `status_nagios` (
  `id` int(3) NOT NULL,
  `name` varchar(14) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `status_nagios`
--
INSERT INTO `status_nagios` VALUES (1,'statusnagios');

==== Do on nagios server =====
# Define check mysql_query on devnagios
define service{
        use                             local-service         ; Name of service template to use
        host_name                       devnagios.packetlove.com
        service_description             Check_Mysql_query
        check_command                   check_nrpe!check_mysql_query
        }
8
ในกรณีถ้า ไม่สามารถรัน recovery mode 1-6 แล้วยัง error อยู่ให้ทำการตั้งสติให้มั่น และใช้วิธี ใช้ tool
ในการดึงข้อมูลครับ ซึ่งบอกเลยว่าวิธีนี้ จะ advance หน่อย
แต่ถ้ามีพื้นฐานในการ compile source มาดีก็จะผ่านได้ครับ เริ่มจาก download tool undrop
https://twindb.com/undrop-for-innodb/
https://twindb.com/recover-corrupt-mysql-database/

ผมใช้ env เป็น centos 7.x และลง Mysql-server 5.6 ครับซึ่งจะมี tool innodb ให้ใช้งานค่อนข้างเยอะและเสถียรแล้ว

==== install new Mysql 5.5
http://repo.mysql.com/yum/mysql-5.5-community/el/7/x86_64/
https://www.cyberithub.com/install-mysql/

==== install undrop
git clone git@github.com:twindb/undrop-for-innodb.git
yum install make gcc flex bison

ทำการ make ก่อนเพื่อให้ได้
หลังจาก make เสร็จ ก็จะได้
 
stream_parser
c_parser

มาครับ
ทำการ copy ibdata1 จากเครื่องที่ corrupted หรือ harddisk มีปัญหามา ในกรณีของผมเป็นการรวมไฟล์ อยู่ในไฟล์เดียวคือ ibdata1
และ innodb_file_per_table=0 
แล้วทำการ รัน
./stream_parser -f ibdata1

จะได้ไฟล์ตัวที่เป็น INDEX และ BLOB มาครับ ใน folder
/root/undrop-for-innodb/pages-ibdata1
[PKL@db2 pages-ibdata1]# ls -lah
drwxr-xr-x  2 root root 300K Jun  6 19:56 FIL_PAGE_INDEX
drwxr-xr-x  2 root root 4.2M Jun  6 19:56 FIL_PAGE_TYPE_BLOB

ซึ่งถ้าเราเข้าไป string file ดูก็จะเห็นเป็น raw data อยู่ใน folder: FIL_PAGE_INDEX ครับ
# strings 0000000008664211.page
String 0000000008664211.page
==check  innodb
show variables like 'innodb_file_per_table';
./c_parser -f pages-ibdata1/FIL_PAGE_INDEX/0000000008671378.page -t dictionary/member_golf.sql

==== step1 begin here =====
./stream_parser -f ibdata1

===ทำการเชคจาก table name จาก 0000000000000001.page ก่อน
./c_parser -4 -f pages-ibdata1/FIL_PAGE_INDEX/0000000000000001.page -t dictionary/SYS_TABLES.sql
000082B5C909    5400001D8F1CD8  SYS_TABLES      "PKL\_sabye/member"        3336397 69      1       0       0       ""      0
000082B5C912    59000185BB2B9C  SYS_TABLES      "PKL\_sabye/received\_thb" 3336398 3       1       0       0       ""      0
000082B5CAB0    6A0000E78C06CE  SYS_TABLES      "PKL\_sabye/transfer\_transaction" 3336399 42    3336398

==== step2 for ทำการค้นหา INDEX ของ table: member
./c_parser -4 -f pages-ibdata1/FIL_PAGE_INDEX/0000000000000003.page -t dictionary/SYS_INDEXES.sql | grep 3336398
000082B5C90D    D600019E61014F  SYS_INDEXES     3336398 8671379 "PRIMARY"       1       3       0       41052
SET FOREIGN_KEY_CHECKS=0;
LOAD DATA LOCAL INFILE '/home/centos/undrop-for-innodb/dumps/default/SYS_INDEXES' REPLACE INTO TABLE `SYS_INDEXES` CHARACTER SET UTF8 FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"' LINES STARTING BY 'SYS_INDEXES\t' (`TABLE_ID`, `ID`, `NAME`, `N_FIELDS`, `TYPE`, `SPACE`, `PAGE_NO`);
-- STATUS {"records_expected": 7615, "records_dumped": 7457, "records_lost": true} STATUS END
Primary = 8671379

====step3 : for received_thb.sql dump export to sql file with position 0000000008671379
./c_parser -6f pages-ibdata1/FIL_PAGE_INDEX/0000000008671379.page -t dumps/received_thb.sql > dumps/default/received_thb 2> dumps/default/received_thb.sql

==step4: for member.sql
./c_parser -4 -f pages-ibdata1/FIL_PAGE_INDEX/0000000000000003.page -t dictionary/SYS_INDEXES.sql | grep 3336397
000082B5C904    D10001532C06B9  SYS_INDEXES     3336397 8671378 "PRIMARY"       1       3       0       152194

===step5: generate and import data
./c_parser -6f pages-ibdata1/FIL_PAGE_INDEX/0000000008671378.page -t dumps/member.sql -b pages-ibdata1/FIL_PAGE_TYPE_BLOB -o dumps/default/member5 -l dumps/default/member5.sql

===step6: load data to file
cd dump
mysql --local-infile -uroot -p
source member5.sql
show create table member;

เท่านี้ก็จะได้ข้อมูลจาก table: member ออกมาละครับผม
ขอจงอย่าล้มเลิก ยาก แปลว่าทำได้ สู้ๆ ครับ ^_^  8)

ทีมงาน R&D
กอล์ฟ [at] Packetlove[dot]com
9
command , shell script ,tool , crontab / Re: set proxy client command on freebsd / linux ครับ
« Last post by golfreeze on มิถุนายน 08, 2021, 07:16:29 PM »
ถ้าเป็น ubuntu18 สามารถตั้งค่าในนี้ ได้ หรือจะมาเชคก่อนก็ได้ว่าค่าเป็นอะไรนะครับผม
==/etc/apt/apt.conf.d/90curtin-aptproxy
Acquire::http::Proxy "http://user:pass@proxy.com:8080";
Acquire::https::Proxy "http://user:pass@proxy.com:8080;

ทำการ netplan apply แล้วลองออกเนตดูนะครับ
10
===step after dashboard done => https://docs.securityonion.net/en/2.3/logstash.html
ถ้าเจอว่า master node ไม่สามารถค้นหาได้ และเกิด error
"Error: Could not locate that index-pattern-field (id: @timestamp)"

# ls -la /opt/so/conf/logstash/pipelines/manager
total 20
drwxr-xr-x 2 logstash socore 4096 May 22 23:57 .
drwxr-xr-x 4 logstash socore 4096 May 29 23:42 ..
-rw-r--r-- 1 logstash socore   69 May 22 23:57 0009_input_beats.conf
-rw-r--r-- 1 logstash socore 1065 May 22 23:57 0010_input_hhbeats.conf
-rw-r--r-- 1 logstash socore  206 May 22 23:57 9999_output_redis.conf

# ls -la /opt/so/conf/logstash/pipelines/search
total 44
drwxr-xr-x 2 logstash socore 4096 May 29 23:42 .
drwxr-xr-x 4 logstash socore 4096 May 29 23:42 ..
-rw-r--r-- 1 logstash socore  180 May 29 23:42 0900_input_redis.conf
-rw-r--r-- 1 logstash socore  372 May 29 23:42 9000_output_zeek.conf
-rw-r--r-- 1 logstash socore  351 May 29 23:42 9002_output_import.conf
-rw-r--r-- 1 logstash socore  342 May 29 23:42 9034_output_syslog.conf
-rw-r--r-- 1 logstash socore  392 May 29 23:42 9100_output_osquery.conf
-rw-r--r-- 1 logstash socore  341 May 29 23:42 9400_output_suricata.conf
-rw-r--r-- 1 logstash socore  370 May 29 23:42 9500_output_beats.conf
-rw-r--r-- 1 logstash socore  338 May 29 23:42 9600_output_ossec.conf
-rw-r--r-- 1 logstash socore  359 May 29 23:42 9700_output_strelka.conf

2. ใส่ค่าเพิ่มใน /opt/so/saltstack/local/pillar/global.sls
logstash:
  pipelines:
    manager:
      config:
        - so/0009_input_beats.conf
        - so/0010_input_hhbeats.conf
        - so/9999_output_redis.conf.jinja
    search:
      config:
        - so/0900_input_redis.conf.jinja
        - so/9000_output_zeek.conf.jinja
        - so/9002_output_import.conf.jinja
        - so/9034_output_syslog.conf.jinja
        - so/9100_output_osquery.conf.jinja
        - so/9400_output_suricata.conf.jinja
        - so/9500_output_beats.conf.jinja
        - so/9600_output_ossec.conf.jinja
        - so/9700_output_strelka.conf.jinja

3. restart logstash
# so-logstash-restart

4. restart elasticsearch
# so-elasticsearch-restart

====located for salt pipeline config
/opt/so/saltstack/default/salt/logstash/pipelines/config/so

===>after configure pipeline into global.sls then docker will start on choose pipeline and keep configure on path below.
 /opt/so/conf/logstash/pipelines/search

===docker command check inspect 
docker inspect so-logstash

เท่านี้พวก log ใน dashboard kibana ก็จะแสดงขึ้นมาครับผม
Pages: [1] 2 3 ... 10