|
|
Lấy đúng đoạn log cần lấy trên server khi ssh từ Linux Mint và Ubuntu rồi `vimdiff` xem.
|
|
|
- Nhiều Retransmission thế. Bạn thử mạng ở đâu cũng thế à? Bạn thử một máy khác chưa?
- Đoạn log ở trên không có IP nào là .179 cả, kiểu như:
Code:
sshd[7354]: Connection from 1.2.3.179 port 45678
Có vẻ việc lấy đúng đoạn log trên server từ lúc Linux client ssh lên với bạn hơi khó thì phải. Mấy post đầu toàn thấy Zimbra, giờ thì có mỗi Windows mà lại từ lúc đã gõ xong password rồi.
|
|
|
emdinoiay wrote:
Em có thử một số hàm như sau nhưng không được :
shell_exec("service mysqld stop"
exec("service mysqld stop"
system("service mysqld stop"
Bạn thiếu `sudo` rồi. PHP chạy trên một web server nào đó. Web server này chạy dưới quyền của user apache, nginx, ... Đoạn code trên của bạn sẽ tương đương với:
Code:
su - apache -s /bin/bash -c '/sbin/service mysqld stop'
Thử chạy từ command line xem, nó sẽ ý kiến ngay.
Cách đơn giản là thêm `sudo` vào và nhớ sửa lại `/etc/sudoers` để cho phép apache user restart những dịch vụ đó:
Code:
apache ALL=(ALL:ALL) NOPASSWD:/etc/init.d/mysqld
emdinoiay wrote:
Theo em được biết các Web control cho linux chủ yếu dựa trên php, ví dụ như Kloxo, plesk, Webuzo (mới)...
Thế nên em muốn hỏi làm sao họ viết được control restart (php-fpm, nginx, apache...) bằng php và việc này hoàn toàn thao tác trên web mà không dùng quyền root trong terminal (php code.php).
Thú thật là mình chưa dùng mấy cái đó bao giờ. Hôm qua rảnh ngồi vọc Vagrant rồi cài Kloxo lên xem thử.
OK. Cài xong, chỉnh sang bridged network, start lên, ssh vào.
Đầu tiên, kiểm tra xem process đang listen trên port 7778 chạy dưới quyền của user nào:
Code:
# fuser -v 7778/tcp
USER PID ACCESS COMMAND
7778/tcp: lxlabs 14188 F.... kloxo.httpd
`lxlabs` user có trong `/etc/sudoers` hay thuộc `wheel` group không nhỉ:
Code:
# grep lxlabs /etc/sudoers
# groups lxlabs
lxlabs : lxlabs
Giờ `strace` thử theo PID này xem nó làm gì khi mình thao tác một lệnh trên web interface:
Code:
# strace -e trace=open,stat -p 14188
Sau đó, trên giao diện web, vào Server --> Command Center, gõ `id` rồi Execute bạn được Output là:
uid=0(root) gid=0(root)
Quay lại Terminal:
Code:
Process 14188 attached - interrupt to quit
stat("/usr/local/lxlabs/kloxo/httpdocs/display.php", {st_mode=S_IFREG|0644, st_size=464, ...}) = 0
open("/usr/local/lxlabs/kloxo/httpdocs/display.php", O_RDONLY) = 9
stat("/usr/local/lxlabs/kloxo/file/phpsuexec.sh", {st_mode=S_IFREG|0755, st_size=156, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0
Process 14188 detached
À, nó gọi đến `/usr/local/lxlabs/kloxo/file/phpsuexec.sh`. Mở file này ra xem có gì:
Code:
#!/bin/sh
export MUID=0
export GID=0
export TARGET=/usr/local/lxlabs/ext/php/bin/php_cgi
export NON_RESIDENT=1
exec /usr/local/lxlabs/kloxo/cexe/lxphpsu $*
Kiểm tra permission của `/usr/local/lxlabs/kloxo/cexe/lxphpsu` xem nào:
Code:
# ls -l /usr/local/lxlabs/kloxo/cexe/lxphpsu
-rwsr-sr-x 1 root root 8068 Mar 4 2012 /usr/local/lxlabs/kloxo/cexe/lxphpsu
2 chữ "s" ở đây có nghĩa gì nhỉ ?
emdinoiay wrote:
Anh nào giải thích hộ em hoặc có tài liệu nào liên quan thì gúp em nhé.
Google: Kloxo security model.
|
|
|
startbkhn wrote:
Vậy ngày trước anh học về cái này, kinh nghiệm của anh là gì? anh đã làm những gì vậy?
/hvaonline/posts/list/0/22561.html#134266
|
|
|
datkhmt wrote:
Em đặt backup mysql theo 15 phút một,-> một giờ có 4 file backup, em muốn đặt tên và lưu lại các file đó sao cho ko overwrite lên nhau
Code:
mysqldump ... > db_$(date +%F_%T).sql
datkhmt wrote:
và làm thế 7 ngày lại quay vòng.
Không rõ rotate theo ý bạn có phải là chỉ giữ lại 1 tuần gần nhất không hay là thế nào?
Code:
/bin/nice -19 /usr/bin/ionice -c2 -n7 find /path/to/backup/dir -type f -name '*.sql' -mtime +7 -delete
Nếu bạn đang chạy Master-Slave thì có thể dùng Zmanda, còn nếu chỉ có 1 server thì nên tham khảo Percona Xtrabackup.
|
|
|
suxanero wrote:
fstab ở clients: (192.168.249.1)
Code:
none /proc/fs/nfs.d nfsd auto,defaults 0 0
Dòng này có ý nghĩa gì vậy? Nó phải được thêm vào trên client hay server?
|
|
|
Không sao cả. Đơn giản là nó đã được started rồi thôi. Bạn chưa trả lời mấy câu hỏi ở post #2 của mình.
|
|
|
`netstat --inet -nlp | grep :111` xem thằng nào đang chiếm mất port 111. Có khi nào là... portmap không.
|
|
|
- Bạn cần share cho client nào thì để IP của client đó thôi, không nên để *.
- Cho mình xem kết quả khi chạy `showmount -e` trên server?
- `/etc/fstab` trên client có nội dung như nào?
suxanero wrote:
hic: lúc nãy viết xong gửi đi , gặp null phát thế là mât hết bài phải viết lại
https://addons.mozilla.org/en-us/firefox/addon/lazarus-form-recovery/
|
|
|
conmale wrote:
Không có gì lạ đâu. Nếu bồ mở trình duyệt ra và có 1 "tab" là hvaonline.net thì thỉnh thoảng trình duyệt sẽ gởi một cái "ping" đến HVA site để duy trì sự hiện diện của bồ.
Nhưng theo em hiểu thì trên trình duyệt của bạn ấy lại xuất hiện Download dialog:
howtogeek16 wrote:
Em duyệt HVA trên firefox 18.0.1 (Windows 8 64 bit build 9200) và có mở thêm một vài Tab để duyệt site khác. Khi đang duyệt trên các site khác (không có tác động vật lý nào lên tab duyệt HVA) thì xuất hiện thông báo có muốn lưu file: ping_session.html trên máy tính hay không?
...
|
|
|
thanhtamntp wrote:
1-2-3 em sẽ up lại sau
Nhanh đi. Mình nóng lòng muốn biết nguyên nhân của tình trạng này là gì.
thanhtamntp wrote:
4. Em thử 2 mạng khác nhau vẫn bị vậy
Bạn chạy PuTTY từ command line ở verbose mode (-v) rồi gửi kết quả lên đây.
thanhtamntp wrote:
5. Mạng ở nhà thì e dùng wifi qua 1 con TP-Link & Draytek.
Và Security mode đang là WPA(2)? Nếu vậy, bạn thử chuyển sang WEP xem thế nào: https://answers.launchpad.net/ubuntu/+source/openssh/+question/188947
thanhtamntp wrote:
Mạng cty thì dây chắc là qua 1 đống cisco.
https://nowhere.dk/articles/natty-narwhal-problems-connecting-to-servers-behind-cisco-firewalls-using-ssh
Thông báo lỗi có hơi khác "Connection reset by peer" thay vì "Connection timed out" nhưng biết đâu có liên quan.
|
|
|
Em cũng đã thử với Openssh 4.3 kết quả vẫn như thế.
- Cho mình xem output khi chạy `ssh -vv -c 3des-cbc -m hmac-sha1,hmac-ripemd160 root@mail.domain.local` với version 5.5p1 nhé http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-5.5p1.tar.gz).
- Trên server, tạm thời chỉnh LogLevel sang DEBUG2 rồi cho mình xem đoạn log tương ứng nhé. (xong nhớ chỉnh lại thành INFO không nó lặi "ăn" hết ổ cứng)
- Mà bạn sniff thử trong quá trình ssh đi xem Packet length là bao nhiêu.
- Quên mất, bạn thử đề nghị này của mình chưa:
- Vác mấy máy Linux không ssh được này đến một chỗ khác (mạng khác) để thử xem.
- Bạn đang dùng wifi à? Mạng chỗ bạn có đi qua con Cisco nào không?
|
|
|
- Trên Linux Mint, thêm dòng sau vào `/etc/ssh/ssh_config` hoặc `$HOME/.config/ssh`:
Code:
HostKeyAlgorithms ssh-rsa,ssh-dss
sau đó chạy `ssh -vv -c aes128-ctr -m hmac-md5,hmac-sha1,hmac-ripemd160 root@mail.domain.local` rồi gửi kết quả lên đây xem nó treo ở đâu.
- Thử với 1 phiên bản OpenSSH trước 5.7p1 (5.5p1 chẳng hạn) xem có được không.
- Vác mấy máy Linux không ssh được này đến một chỗ khác (mạng khác) để thử xem.
|
|
|
conmale wrote:
Cũng có thể do phía server ấn định protocol 2 nhưng phía (linux) client lại dùng ssh với protocol 1.
Không anh. Nếu thế, lỗi sẽ khác:
Protocol major versions differ: 1 vs. 2
conmale wrote:
Cũng xem thêm "Ciphers" và "MACs" settings cho cả hai phía client và server trùng nhau. Ví dụ:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr,arcfour256,aes128-cbc
MACs hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
cho cả sshd_config (server side) và ssh_config (cho client side).
Em thấy Ciphers và MACs trên client và server không cần phải trùng nhau vẫn ssh bình thường mà. Vấn đề bạn thanhtamntp đang gặp "có vẻ" là bug, nó liên quan đến độ dài của Ciphers list, chứ không phải là dùng Cipher nào.
@thanhtamntp: nếu `ssh -c aes128-ctr root@mail.domain.local` mà được thì bạn sniff thử một ít packets trong cả 2 trường hợp:
Code:
tcpdump -vv -s0 -i interface tcp and host mail.domain.local -w $HOME/openssh_ciphers.pcap
Sau đó, dùng Wireshark mở ra, chọn Client: Key Exchange Init ở trên (Packet List) rồi so sánh packet length ở dưới (Packet Details) xem nhé:
|
|
|
OpenSSH - Key Exchange Init
|
|
|
Mình vừa tìm thấy ít manh mối. Bạn thử `ssh -c aes128-ctr root@mail.domain.local` xem có được không?
|
|
|
/hvaonline/posts/list/23321.html
|
|
|
Đoạn log ở trên chỉ có thông tin đã ssh thành công từ Windows thôi.
Nếu Windows và Linux Mint đang "ở" cạnh nhau thì chia làm 2 cửa sổ đi: cái trên, `tail -f /var/log/secure`, ở dưới `ssh -vvv root@mail.domain.com`, rồi nhìn lên trên xem log có gì.
|
|
|
@thanhtamntp: chắc anh conmale gõ nhầm. Bạn gửi lại `/var/log/secure` trên CentOS lúc ssh từ Linux Mint lên đây nhé.
|
|
|
khang0001 wrote:
mình dùng ssh được không cậu
chạy
Code:
strace -e trace=signal -p 5198 -o /tmp/webmin.strace
thì hiện ra
Process 5198 attached - interrupt to quit
mình tắt ssh đi đến khi webmin tự động tắt thì mình vào lại chắc là được phải ko cậu
Không được đâu. Sau khi bạn tắt ssh thì `strace` cũng chết luôn. Thế nên, đến lúc Webmin bị stop thì trong `/tmp/webmin.strace` cũng không có gì cả. Vậy mới phải dùng `screen` hoặc `tmux`.
1. ssh vào server
2. screen -S webmin
3. strace -e trace=signal -p $webmin_pid -o /tmp/webmin.strace
4. Ctrl-a d
5. exit ssh
...
Webmin bị stop
6. ssh vào lại
7. screen -r webmin
8. Gửi nội dung /tmp/webmin.strace lên đây (có thể dùng `pastebinit`, `fpaste`, ... cho tiện)
|
|
|
Perl module AuthenAM needed for PAM is not installed : Can't locate Authen/PAM.pm in @INC...
Mình không nghĩ lỗi này có thể kill được Webmin. Nhưng thôi, để loại trừ, bạn cứ cài lên nhé (trên Red Hat based là `perl-Authen-PAM`, còn Debian based là `libauthen-pam-perl`)
Có vài nguyên nhân có thể dẫn đến một process bị chết bất đắc kỳ tử:
- Out of memory
- Segfault
- Vượt `ulimit`
- Ai đó stop
- ...
Giờ bạn bật screen (hoặc tmux) lên rồi chạy `strace -e trace=signal -p $PID -o /tmp/webmin.strace` (thay `$PID` bằng process ID của webmin), đợi cho Webmin chết rồi paste `/tmp/webmin.strace` lên đây.
|
|
|
khang0001 wrote:
làm sao để giám sát được memory lúc đó có tăng hay giảm đột biến ko cậu, có ct nào ghi log vụ nầy hông
Nhiều lắm: atop, Ganglia, Nagios, ...
khang0001 wrote:
mình đã thử chạy echo -17 > /proc/$webmin_pid/oom_adj nhưng lại báo lỗi
-bash: /proc//oom_adj: No such file or directory
mình nghĩ là $webmin_pid là process id của webmin nên dùng lệnh ps aux để xem pid của webmin thì thấy
Code:
root 5198 0.0 0.9 15768 9612 ? Ss Jan14 0:02 /usr/bin/perl /usr/libexec/webmin/miniserv.pl /etc/webmin/miniserv.conf
root 8113 0.8 0.0 0 0 ? Z 12:27 0:00 [miniserv.pl] <defunct>
thế 5198 và 8113 vào cấu lệnh trên nhưng ko chạy được
8113 bị defunct rồi, thử lại với 5198. Mỗi khi nói "không được" thì phải kèm theo thông báo lỗi chứ người đọc làm sao đoán được.
khang0001 wrote:
làm cách nào để giám sát ai là người cuối cùng tác động đến webmin cậu, voiwsw khi lại thao tác của user có ai chạy kill $(cat /var/webmin/miniserv.pid) . mình chưa hề có kn trong vụ giám sát và ghi log nầy
Bắt tay vào cài auditd, psacct lên rồi đọc tài liệu.
|
|
|
anonymous_itop wrote:
Dựa vào port kiếm được process nào mở port.
Thủ phạm là "ai" vậy bạn?
|
|
|
khang0001 wrote:
- lúc webmin bị stop thì các services khác trên server vẫn bình thường
Còn memory?
khang0001 wrote:
- khi kiểm tra file /etc/syslog.conf để xem những file dạng nào sẽ lưu vào /var/log/messages thì chỉ thấy dòng nầy *.info;mail.none;authpriv.none;cron.none
Để loại trừ khả năng Webmin bị killed do OOM, bạn có thể chạy:
Code:
echo -17 > /proc/$webmin_pid/oom_adj
khang0001 wrote:
- đã thử chạy lệnh grep -i 'killed process' /var/log/messages* để tìm kiểm nhưng không hiện kết quả gì.
Có khả năng ai đó chui vào server và chạy `/etc/init.d/webmin stop` không?
khang0001 wrote:
- đang nghiên cứu thêm về auditd , psacct
- Giám sát `/etc/init.d/webmin` xem ai là người cuối cùng tác động đến nó.
- Ghi lại mọi thao tác của users xem có ai chạy `kill $(cat /var/webmin/miniserv.pid)` không.
khang0001 wrote:
Thực ra mình chỉ dùng webmin để quản lý cron job thôi, không biết có soft nào quản lý cron job trực quan theo giao diện web như webmin không nhỉ
Mình quen dùng `crontab -e -u <user>` nên không biết, bạn thử search xem.
|
|
|
- Lúc Webmin bị stopped, tất cả các thứ trên server có bình thường không?
- Kiểm tra cả các files đã rotated của `/var/log/messages` nữa, để ý những thời điểm trùng với timestamp trong`/var/webmin/miniserv.error`.
Code:
grep -i 'killed process' /var/log/messages*
- Tìm hiểu: auditd, psacct (acct), ...
|
|
|
Nếu đặt tiêu đề tốt hơn (ví dụ: ping thì timed out nhưng truy cập http vẫn ngon như thường?), thì có thể sẽ tự hỏi tiếp: "Ơ, vậy ping có liên quan gì đến HTTP không nhỉ?", và rồi có thể tự tìm hiểu ra vấn đề.
PS: mình nhớ là trước đây cũng có vài câu hỏi tương tự với hvaonline.net.
|
|
|
Thế còn `/var/webmin/miniserv.error` thì sao?
|
|
|
mr.tee wrote:
Sever mình đang dùng centos 6.3 64bit. Hiện giờ mình đã thử cài proftpd
File cấu hình có nội dung như nào?
mr.tee wrote:
nhưng khi dùng client như filezilla vào thì nó đều chuyển sang sftp,
Cho mình xem log.
mr.tee wrote:
còn cuteftp thì không connect được .
Lỗi gì?
mr.tee wrote:
Tắt sftpd thì bị lỗi đều không connect được.
Bạn kiểm tra xem còn cái gì listen trên port 21 không.
mr.tee wrote:
Còn cài vsftpd thì bị lỗi passivemode.
Lỗi như nào?
mr.tee wrote:
sftp thì vẫn sử dụng được nhưng nó lại cấp full access server cho user( có /bin/bash vì user không có /bin/bash không thể connect đến được)
Sửa shell thành `/usr/libexec/openssh/sftp-server` rồi xác thực qua key cũng là một cách.
mr.tee wrote:
Tuy nhiên trong các trường hợp trên dùng command của window ftp đến thì vẫn được với cả user không có /bin/bash.
Bạn cho mọi người xem bằng chứng nhé.
mr.tee wrote:
Mình muốn nhờ ai có kinh nghiệm hướng dẫn trong trường hợp như này thì nên cài ftp sever nào và config như nào?
Cái nào cũng được nhưng nên dùng virtual users. Nếu dùng FTP để upload code thì có thể tìm hiểu cách auto deployment với Subversion, git, ...
|
|
|
Bạn kiểm tra `/var/log/messages` xem có thông báo "Out of memory" nào không.
|
|