วันพุธที่ 13 มิถุนายน พ.ศ. 2561

ftp vsftp login incorrect 530 can't login

Hey there,

I just wanted to share a problem I had with my ftpdaemon with you and which I didn't find in this forum.

My ftp server always throw an error, trying to log in with new created ftp accounts. I'm not sure since when this error occurred, a user of mine pointed me on that issue. But I would say the Vestacp version is not essential in that case.

My ftp client acted as if I just entered wrong user data.
CODE: SELECT ALL
Befehl:       USER ******
Antwort:     331 Please specify the password.
Befehl:       PASS *******
Antwort:     530 Login incorrect.
So I checked the vsftp logs in /var/log/vsftpd.log
CODE: SELECT ALL
Sun Mar 25 12:04:01 2018 [pid 2] CONNECT: Client "87.123.193.139"
Sun Mar 25 12:04:04 2018 [pid 1] [*********] FAIL LOGIN: Client "87.123.193.139"
Actually looked like wrong user data. But I entered them correctly.
I checked /etc/passwd and in the meantime I also googled a bit. So I found this article, which described exactly my problem.
https://github.com/serghey-rodin/vesta/issues/1437

New users got a different path to the "nologin" shell than before.
Initially it was /sbin/nologin. New users got the path to /usr/sbin/nologin
That path was not registered in /etc/shells.
CODE: SELECT ALL
nano /etc/shells
Looked like this:
CODE: SELECT ALL
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/sbin/nologin
/usr/bin/rssh
/usr/bin/tmux
and I easily added this line
CODE: SELECT ALL
/usr/sbin/nologin
saved the file and everything worked fine again afterwards.

Cheers and have a nice Sunday!



/etc/init.d/vsftpd restart

วันอังคารที่ 5 มิถุนายน พ.ศ. 2561

MikroTik ป้องกันการ Login ซ้อน

MikroTik ป้องกันการ Login ซ้อน

หลายท่านที่เป็น admin คงเคยเจออาการการ login ซ้อนกันมานะคัรบที่จะมีข้อความแจ้งเตือนว่า simultaneous session limit reached for user กันมาบ้างวันนี้ผมจะเอา script จาก MikroTik forum มาบอกเล่ากันคัรบ (https://forum.mikrotik.com/viewtopic.php?t=123434)


:local uname $user;
:local usercount 0;
:local usertime "00:00:00";
:local kickable;
:local maxuser 3;

:foreach i in=[/ip hotspot active find user=$uname] do= {
  :local curup [/ip hotspot active get $i uptime];
  :if ( $curup > $usertime ) do={
        :set usertime $curup;
        :set kickable $i;
   }
  :set usercount ($usercount+1);
}
:if ($usercount >= $maxuser) do={
  :log info "Login user: $uname ($usercount/$maxuser) - Oldest $usertime will be logout!";
  /ip hotspot active remove numbers=$kickable;
} else {
   :log info "Login user: $uname ($usercount/$maxuser)";
}

จากตัวอย่างใน script เราจะต้องเอาไปวางไว้ในส่วนของ winbox => ip => hotspot => user profile แล้วตั้ง maxuser ให้ตามจำนวนที่ต้องการเช่นในตัวอย่างตั้ง 3 เพราะต้องการให้ login ได้ใช้งานแค่ 2 คนเท่านั่น


จากนั่นก็ไปแก้ที่ Shared Users ให้เท่ากับจำนวน maxuser ที่ใน script


เพียงเท่านี้เวลามีการ login ซ้อนเกิดขึ้นมา user แกสุดก็จะโดนเตะออกละคัรบ



# base function Sourcecode: Mikrotik Forum
# Local Variables Section
:local uname $user;
:local usercount 0;
:local usertime "00:00:00";
# Variable for user who is previously logged in
:local kickable;
# Variable for max session allowed, 2 means only one session is allowed at a time
:local maxuser 2;
# Load all active users in hotspot
:foreach i in=[/ip hotspot active find user=$uname] do= {
# Load UPTIME for all users to be matched later
:local curup [/ip hotspot active get $i uptime];
# If previous logged user is matched using UPTIME [above then 0] then set global variables for disconnection
:if ( $curup > $usertime ) do={
:set usertime $curup;
:set kickable $i;
}
:set usercount ($usercount+1);
}
# IF Function for user who is already logged in,
:if ($usercount >= $maxuser) do={
:log info "Login user: $uname ($usercount/$maxuser) - Oldest $usertime will be logout!";
# Kick previous logged users (if same ID)
/ip hotspot active remove numbers=$kickable;
# If not, do nothing, just log, You can modify this function as well / JZ
} else {
:log info "Login user: $uname ($usercount/$maxuser)";