Tena koutou katoa, koinei taku wheako tuatahi mo Habré. Kei te hiahia ahau ki te tuhi me pehea te whakahaere i nga taputapu whatunga i runga i te whatunga o waho i te huarahi kore-paerewa. He aha te tikanga kore-paerewa: i te nuinga o te waa, ki te whakahaere taputapu i runga whatunga o waho ka hiahia koe:
- Wāhitau IP tūmatanui. Ana, ki te mea kei muri te taputapu i te NAT o tetahi, katahi he IP whanui me te tauranga "whakamua".
- Tunnel (PPTP/OpenVPN/L2TP+IPSec, etc.) ki te pona pokapū e uru atu ai.
No reira, ka hiahia koe ki "taku paihikara" ka kore e pai nga tikanga paerewa ki a koe, hei tauira:
- Ko nga taputapu kei muri i te NAT, engari mo te http o mua (tauranga 80), kua kati nga mea katoa. He ahuatanga noa tenei mo nga whatunga umanga a-taringa nui. Ka taea e ratou te rehita tauranga, engari kaore i te wa tonu, kaore i te tere, kaore hoki mo koe.
- Te hongere whakawhitiwhiti korero kore iu, "kuiti" ranei. Te tere iti, te ngaro tonu. Te mamae me te pouri i te wa e ngana ana ki te whakarite i te kauhanga.
- He hongere korero utu nui, kei reira nga megabyte katoa e tatau. Hei tauira, ko nga whakawhitiwhiti korero amiorangi. Me te roa o nga wa roa me te roopu "kuiti".
- He ahuatanga ka hiahia koe ki te "whakatika" i te maha o nga pouara iti, i tetahi taha, ka whakauruhia a OpenWrt / Lede ki te whakawhānui ake i nga kaha, a, i tetahi atu ringa, kaore i te nui nga rauemi (mahara) o te pouara. mo nga mea katoa.
Tuhia nga wa tau He aha te aukati i a koe ki te whakauru i te puku kohiko ki roto i te tauranga USB o te pouara me te whakawhänui i te mahara o te pouara?
Ko te nuinga o nga wa, ko nga whakaritenga mo te utu mo te otinga katoa, engari i etahi wa ka whai waahi nui te ahua o te ahua. Hei tauira, he TP-Link ML3020 kei te waahi, ko tana tauranga USB anake e whakamahia ana mo te pouwhanga 2G/3G, ka takai enei katoa ki etahi momo putea kirihou iti ka tuu ki tetahi waahi teitei, teitei (i runga i te mast), tawhiti, tawhiti (i te mara, 30 kiromita mai i te teihana turanga o te kaiwhakahaere pūkoro tata). Ae, ka taea e koe te whakauru i te USB USB me te whakawhānui ake i te maha o nga tauranga, engari e whakaatu ana te wheako he uaua tenei, he kore pono.
Na, ka ngana ahau ki te whakaahua ki a koe i taku ahuatanga: "i tetahi waahi tawhiti, tawhiti, he tino nui, mokemoke me te iti te pouara e whakahaere ana i te Linux. He mea nui kia mohio koe i te iti rawa i te ra e "ora ana" a, ki te tika, ka tukuna atu nga whakahau ki a ia, hei tauira, "honi, whakaaraara!"
Me haere tatou ki te whakatinanatanga:
1) I te taha o te pouara, ma te cron, ia 5/10/1440 meneti, i nga wa katoa e hiahia ana koe, me tuku he tono http ki te kaimau ma te whakamahi i te wget, tiakina te hua o te tono ki tetahi konae, mahia te konae hei whakahaere. , a mahia.
He penei te ahua o taku raina cron:
Kōnae /etc/crontabs/root:
*/5 * * * * wget "http://xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai/a.php?u=user&p=password" -O /tmp/wa.sh && chmod 777 /tmp/wa.sh && /tmp/wa.sh
, kei hea:
xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai te rohe o taku tūmau. Kia mahara tonu ahau: ae, ka taea e koe te tautuhi i tetahi wahitau IP motuhake o te tūmau, i mahi matou i tenei tae noa ki to taatau whenua, i runga i te hiahia o te pakanga, ka kii ahau, kaore au e mohio, kua aukatihia te uru ki te raiona. wahi o te DigitalOcean me Amazon "kapua". Mena kei te whakamahi koe i te rohe tohu, mena ka pa mai he raru, ka taea e koe te whakaara ake i te kapua taapiri, te huri i te rohe ki reira ka whakahoki mai i te aro turuki taputapu.
Ko a.php te ingoa o te tuhinga taha-tumau. Ae, e mohio ana ahau he he te whakaingoa i nga taurangi me nga ingoa konae me te reta kotahi... Ko taku whakaaro me penei te penapena i etahi paita ka tukuna he tono :)
u - ingoa kaiwhakamahi, takiuru taputapu
p - kupuhipa
"-O /tmp/wa.sh" he konae kei runga i te pouara mamao ka tiakina te whakautu a te tūmau, hei tauira ko te whakahau whakaara ano.
Tuhipoka nama tuarua: Ahhh, he aha matou ka whakamahi ai i te wget me te kore e korikori, na te mea ma te curl ka taea e koe te tuku tono https ehara i te GET, engari me POST? Ahhh no te mea, pera i roto i te kata tawhito "Ka piki a NE ki roto i te ipu!" Kei roto i te curl nga whare pukapuka whakamunatanga tata ki te 2MB te rahi, na tenei karekau pea ka taea e koe te kohi whakaahua mo te TP-LINK ML3020 iti, hei tauira. A me te wget - koa.
2) I te taha tūmau (kei a au te Ubuntu) ka whakamahia e matou a Zabbix. He aha: Ko taku hiahia kia ataahua (me nga kauwhata) me te waatea (tuku tono ma te tahua horopaki). He mea whakamiharo a Zabbix penei i te kaihoko zabbix. Na roto i te kaihoko, ka waeahia e matou he tuhinga PHP i runga i te tūmau, ka whakahoki mai i nga korero mo te rehitatanga o to maatau pouara i roto i te waa e hiahiatia ana. Hei rokiroki korero mo te wa rehitatanga, whakahau mo nga taputapu, ka whakamahi ahau i a MySQL, he kaiwhakamahi ripanga motuhake me nga mara e whai ake nei:
CREATE TABLE `users` (
`id` varchar(25) NOT NULL,
`passwd` varchar(25) NOT NULL,
`description` varchar(150) NOT NULL,
`category` varchar(30) NOT NULL,
`status` varchar(10) NOT NULL,
`last_time` varchar(20) NOT NULL, // время последнего соединения
`last_ip` varchar(20) NOT NULL, // IP последнего соединения
`last_port` int(11) NOT NULL, // порт последнего соединения
`task` text NOT NULL, // задача которую получает роутер
`reg_task` varchar(150) NOT NULL, // "регулярная" задача, если мы захотим чтобы задача выполнялась всегда при регистрации
`last_task` text NOT NULL, // лог задач
`response` text NOT NULL, // сюда пишется ответ устройства
`seq` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Ka taea te tango i nga puna katoa mai i te putunga Git i:
Inaianei kua tukuna nga tuhinga PHP ki te taha tūmau (mo te pai, ka taea te whakanoho ki roto i te kōpaki /usr/share/zabbix/):
a.php kōnae:
<?php
// Получаем входные параметры: имя пользователя, пароль и сообщение от удаленного роутера
// Зачем нужен message ? Это способ ответа роутера, например если вы захотите посмотреть содержимое файла роутера
$user=$_REQUEST['u'];
$password=$_REQUEST['p'];
$message=$_REQUEST['m'];
// Подключаемся к нашей базе данных (MySQL)
$conn=new mysqli("localhost","db_login","db_password","DB_name");
if (mysqli_connect_errno()) {
exit();
}
$conn->set_charset("utf8");
// здесь ищем наш роутер в таблице базы данных
$sql_users=$conn->prepare("SELECT task, reg_task, response, last_time FROM users WHERE id=? AND passwd=? AND status='active';");
$sql_users->bind_param('ss', $user, $password);
$sql_users->bind_result($task, $reg_task, $response, $last_time);
$sql_users->execute();
$sql_users->store_result();
if (($sql_users->num_rows)==1){
$sql_users->fetch();
// здесь мы роутеру отправляем его задачи
echo $task;
echo "n";
echo $reg_task;
// вот здесь мы пишем время ответа и сам ответ роутера
$response_history="[".date("Y-m-d H:i")."] ".$message;
// задачу отправили, теперь надо ее удалить,а после удаления отметить в логах, что такая-то задача выполнена
$last_ip=$_SERVER["REMOTE_ADDR"];
$last_port=$_SERVER["REMOTE_PORT"];
$ts_last_conn_time=$last_time;
$sql_users=$conn->prepare("UPDATE users SET task='', seq=1 WHERE (id=?);");
$sql_users->bind_param('s', $user);
$sql_users->execute();
if (strlen($message)>1){
$sql_users=$conn->prepare("UPDATE users SET response=?, seq=1 WHERE (id=?);");
$sql_users->bind_param('ss', $response_history, $user);
$sql_users->execute();
}
// теперь надо сохранить время регистрации пользователя, его айпи и сообщение от него. Пока только сообщение
$ts_now=time();
$sql_users=$conn->prepare("UPDATE users SET last_time=?, last_ip=?, last_port=? WHERE (id=?);");
$sql_users->bind_param('ssss', $ts_now, $last_ip, $last_port, $user);
$sql_users->execute();
}
// если мы не нашли роутер в нашей базе данных, или его статус "неактивный", то ему ... будет отправлена команда reboot....
// Почему так жестоко ? Потому что роутеры иногда пропадают, а это маленький способ проучить "новых владельцев".
else
{
echo "reboot";
}
$sql_users->close();
?>
Kōnae Agent.php (koinei te tuhinga o te kaihoko zabbix e kiia ana):
<?php
// файл агента Zabbix. Данный скрипт обращается к таблице users и получает "1" если устройство регистрировалось с момента последнего обращения
// user и password - учетные данные оборудования
$user = $argv[1];
$password = $argv[2];
// подключаемся к нашей базе данных
$conn=new mysqli("localhost","db_user","db_password","db_name");
if (mysqli_connect_errno()) {
exit();
}
$conn->set_charset("utf8");
$sql_users=$conn->prepare("SELECT seq FROM users WHERE id=? AND passwd=? AND status='active';");
$sql_users->bind_param('ss', $user, $password);
$sql_users->bind_result($seq);
$sql_users->execute();
$sql_users->store_result();
// обмен данными происходит через поле seq. При регистрации железка ставит данное поле в "1"
if (($sql_users->num_rows)==1){
$sql_users->fetch();
echo $seq;
}
// обнуляем $seq.
$sql_users=$conn->prepare("UPDATE users SET seq=0 WHERE id=? AND passwd=? AND status='active';");
$sql_users->bind_param('ss', $user, $password);
$sql_users->execute();
$sql_users->close();
?>
Ana, te waahanga whakamutunga: te rehita i tetahi kaihoko me te taapiri i nga raarangi.
Mena kaore ano kia whakauruhia e koe te kaihoko zabbix, na:
apt-get install zabbix-agent
Whakatikaina te kōnae /etc/zabbix/zabbix_agentd.conf.
Tāpirihia te raina:
UserParameter=test,php /usr/share/zabbix/agent.php user password
, kei hea:
Ko te whakamatautau te ingoa o to maatau kaihoko
“php /usr/share/zabbix/agent.php kupuhipa kaiwhakamahi” - he hōtuhi karanga e tohu ana i te raraunga rehitatanga taputapu.
Te taapiri i nga tūtohi: whakatuwhera te atanga tukutuku zabbix, tohua mai i te tahua:
Tautuhinga -> Node Whatunga -> Waihangahia he node whatunga. I konei ka nui ki te tohu i te ingoa o te kaihautu whatunga, tona roopu, me te atanga kaihoko taunoa:
Inaianei me taapiri he huānga raraunga mo tenei node whatunga. Kia whai whakaaro ki nga mara e rua: "matua" - koinei tonu te tawhā i tuhia e matou i roto i te konae /etc/zabbix/zabbix_agentd.conf (i roto i ta maatau he whakamatautau), me te "whakahou i te waa" - I whakaturia e ahau ki te 5 meneti , no te mea kua rehitatia hoki nga taputapu ki runga i te tūmau kotahi i ia rima meneti.
Ana, me taapiri he kauwhata. Ka tūtohu ahau ki te whiriwhiri "Whakakiia" hei ahua whakaputa.
Ko te putanga he mea tino laconic, hei tauira penei:
Ki te patai whaitake: "he mea utu?", Ka whakautu ahau: he pai, ko te tikanga, tirohia "nga take mo te hanga pahikara" i te timatanga o te tuhinga.
Mena ka whakaohohia e taku wheako graphomaniac tuatahi te hiahia o nga kaipanui, na i nga tuhinga e whai ake nei ka hiahia ahau ki te whakaahua me pehea te tuku whakahau ki nga taputapu mamao. I whakahaere ano matou ki te whakatinana i te kaupapa katoa mo nga taputapu i runga i te RouterOS (Mikrotik).
Source: will.com