• Последнее обновление было в 11:00:11 2016-08-27 MSK
  • AWS: миграция RTFM, часть #1: ручное создание инфраструктуры
    setevoy в 01:04:45 с метками Amazon web service, FreeBSD, GNU/Linux, Networking, Operation systems, Setups, Virtualization, Web-services, AWS, AWS EC2, CoreOS, network, OpenBSD, RTFM
     

    aws-logo-square-02В рамках подготовки перезда RTFM на нормальную инфраструктуру (вместо простого EC2 с NGINX/PHP-FPM/MySQL) – описание процесса ручного создания этой ифрастуктуры.

    По сути – тут описываются те же шаги, что и в посте AWS: VPC – EC2 в public и private подсетях, NAT и Internet Gateway, плюс интересные примеры применения AWS CLI.

    Использоваться будут EC2 с OpenBSD и CoreOS.

    Причина выбора – интерес.

    FreeBSD я не использовал со времени переезда RTFM на CentOS – осени 2014, когда в версии 9.1 ввели pkgng.

    А CoreOS – из-за Docker. Хотя вполне вероятно, что окончательным решением для обеих (и будущих) машин станет всё-таки Debian. Почитать о CoreOS можно тут>>>, а найти номер последней стабильной версии – тут>>>.

    EC2 инстансы:

    • Bastion – “фронтенд” с NGINX, Fail2ban, PSAD etc;
    • Zeus – “бекенд” с Docker.

    Схема планируется следующая:

    • В публичной сети:
      • EC2:
        • Name: Bastion
        • OS: OpenBSD;
        • Soft: NGINX, Fail2ban, PSAD
    • В приватной сети:
      • EC2:
        • Name: Zeus
        • OS: CoreOS
        • Soft: Docker:
          • PHP-FPM (WordPress)

    Позже – к EC2 подключим EBS-разделы и создадим RDS MySQL и S3 корзины для файлов и CloudFront CDN.

    Процесс создания инфраструктуры включает в себя шаги:

    1. ручное создание “голого” окружения с помощью AWS CLI (этот пост);
    2. обновление “голого” окружения – добавление S3, CNDRDS;
    3. создание шаблона CloudFormation для автоматизации развёртывания “голого” окружения;
    4. обновление шаблона CloudFormation для установки NGINX и прочего ПО на Bastion;
    5. обновление шаблона CloudFormation для установки Docker на Zeus;

    Содержание этой части:

    1. VPC
      1. Security group
      2. Subnets
      3. Internet gateway
      4. NAT gateway
      5. Routes
    2. EC2

    VPC

    Начинаем с создания VPC:

    $ aws ec2 create-vpc --cidr-block 10.0.0.0/16
    {
        "Vpc": {
            "VpcId": "vpc-1cc04778", 
            "InstanceTenancy": "default", 
            "State": "pending", 
            "DhcpOptionsId": "dopt-8645a9e3", 
            "CidrBlock": "10.0.0.0/16", 
            "IsDefault": false
        }
    }

    И сразу ставим теги:

    $ aws ec2 create-tags --resources vpc-1cc04778 --tags Key=Name,Value=rtfm_migrate_vpc

    Проверяем:

    $ aws ec2 describe-vpcs --vpc-ids vpc-1cc04778
    {
        "Vpcs": [
            {
                "VpcId": "vpc-1cc04778", 
                "InstanceTenancy": "default", 
                "Tags": [
                    {
                        "Value": "rtfm_migrate_vpc", 
                        "Key": "Name"
                    }
                ], 
                "State": "available", 
                "DhcpOptionsId": "dopt-8645a9e3", 
                "CidrBlock": "10.0.0.0/16", 
                "IsDefault": false
            }
        ]
    }

    Security Group

    По vpc-id находим Security Group, которая была создана при добавлении VPC:

    $ aws ec2 describe-security-groups --filters Name=vpc-id,Values=vpc-1cc04778 --query '[SecurityGroups[*].GroupId]' --output text
    sg-914e7ef6

    Используя ID группы sg-914e7ef6 добавляем три правила – доступ по 80, 443 и 22 портам:

    $ aws ec2 authorize-security-group-ingress --group-id sg-914e7ef6 --protocol tcp --port 80 --cidr 0.0.0.0/0
    $ aws ec2 authorize-security-group-ingress --group-id sg-914e7ef6 --protocol tcp --port 443 --cidr 0.0.0.0/0
    $ aws ec2 authorize-security-group-ingress --group-id sg-914e7ef6 --protocol tcp --port 22 --cidr 194.***.***.0/24

    Subnets

    Создаём новую подсеть в VPC – это будет наша публичная сеть для Bastion-хоста:

    $ aws ec2 create-subnet --vpc-id vpc-1cc04778 --cidr-block 10.0.1.0/24
    {
        "Subnet": {
            "VpcId": "vpc-1cc04778", 
            "CidrBlock": "10.0.1.0/24", 
            "State": "pending", 
            "AvailabilityZone": "eu-west-1b", 
            "SubnetId": "subnet-04ae0d5c", 
            "AvailableIpAddressCount": 251
        }
    }

    Добавляем теги:

    $ aws ec2 create-tags --resources subnet-04ae0d5c --tags Key=Name,Value=rtfm_migrate_pub_net

    Добавляем приватную сеть, для RDS и Docker-хоста Zeus:

    $ aws ec2 create-subnet --vpc-id vpc-1cc04778 --cidr-block 10.0.2.0/24
    {
        "Subnet": {
            "VpcId": "vpc-1cc04778", 
            "CidrBlock": "10.0.2.0/24", 
            "State": "pending", 
            "AvailabilityZone": "eu-west-1b", 
            "SubnetId": "subnet-f7ae0daf", 
            "AvailableIpAddressCount": 251
        }
    }

    Добавляем теги:

    $ aws ec2 create-tags --resources subnet-f7ae0daf --tags Key=Name,Value=rtfm_migrate_priv_net

    Проверяем:

    $ aws ec2 describe-subnets --filters Name=vpc-id,Values=vpc-1cc04778
    {
        "Subnets": [
            {
                "VpcId": "vpc-1cc04778", 
                "Tags": [
                    {
                        "Value": "rtfm_migrate_pub_net", 
                        "Key": "Name"
                    }
                ], 
                "CidrBlock": "10.0.1.0/24", 
                "MapPublicIpOnLaunch": false, 
                "DefaultForAz": false, 
                "State": "available", 
                "AvailabilityZone": "eu-west-1b", 
                "SubnetId": "subnet-04ae0d5c", 
                "AvailableIpAddressCount": 251
            }, 
            {
                "VpcId": "vpc-1cc04778", 
                "Tags": [
                    {
                        "Value": "rtfm_migrate_priv_net", 
                        "Key": "Name"
                    }
                ], 
                "CidrBlock": "10.0.2.0/24", 
                "MapPublicIpOnLaunch": false, 
                "DefaultForAz": false, 
                "State": "available", 
                "AvailabilityZone": "eu-west-1b", 
                "SubnetId": "subnet-f7ae0daf", 
                "AvailableIpAddressCount": 251
            }
        ]
    }

    VPC Internet Gateway

    Создаём Internet Gateway дл VPC – через него будет работать Bastion:

    $ aws ec2 create-internet-gateway
    {
        "InternetGateway": {
            "Tags": [], 
            "InternetGatewayId": "igw-a82821cd", 
            "Attachments": []
        }
    }

    Подключаем его к VPC:

    $ aws ec2 attach-internet-gateway --internet-gateway-id igw-a82821cd --vpc-id vpc-1cc04778

    Добавляем теги:

    $ aws ec2 create-tags --resources igw-a82821cd --tags Key=Name,Value=rtfm_migrate_igw

    NAT Gateway

    Для доступа из private подсети в Интернет – добавляем NAT Gateway. Его создаём в открытой подсети (subnet-04ae0d5c), в которой будет и Bastion-хост.

    Получаем новый публичный IP для этого шлюза:

    $ aws ec2 allocate-address --domain vpc
    {
        "PublicIp": "52.210.114.208", 
        "Domain": "vpc", 
        "AllocationId": "eipalloc-f86a5c9d"
    }

    И создаём шлюз, указав allocation-id и subnet-id для подключения к шлюзу внешнего IP:

    $ aws ec2 create-nat-gateway --subnet-id subnet-04ae0d5c --allocation-id eipalloc-f86a5c9d
    {
        "NatGateway": {
            "NatGatewayAddresses": [
                {
                    "AllocationId": "eipalloc-f86a5c9d"
                }
            ], 
            "VpcId": "vpc-1cc04778", 
            "State": "pending", 
            "NatGatewayId": "nat-0c045849a609991d3", 
            "SubnetId": "subnet-04ae0d5c", 
            "CreateTime": "2016-08-24T11:58:18.868Z"
        }
    }

    Route table

    Создаём новую таблицу маршрутизации в VPC:

    $ aws ec2 create-route-table --vpc-id vpc-1cc04778
    {
        "RouteTable": {
            "Associations": [], 
            "RouteTableId": "rtb-b7f8bcd3", 
            "VpcId": "vpc-1cc04778", 
            "PropagatingVgws": [], 
            "Tags": [], 
            "Routes": [
                {
                    "GatewayId": "local", 
                    "DestinationCidrBlock": "10.0.0.0/16", 
                    "State": "active", 
                    "Origin": "CreateRouteTable"
                }
            ]
        }
    }

    Используя route-table-id и gateway-id – добавляем правило маршрутизации для публичной сети (10.0.1.0/24, subnet-04ae0d5c) в сеть 0.0.0.0/0 (весь Интернет) через Internet Gateway:

    $ aws ec2 create-route --route-table-id rtb-b7f8bcd3 --destination-cidr-block 0.0.0.0/0 --gateway-id igw-a82821cd
    {
        "Return": true
    }

    Подключаем эту таблицу к публичной подсети (не забываем это делать 🙂 ):

    $ aws ec2 associate-route-table --route-table-id rtb-b7f8bcd3 --subnet-id subnet-04ae0d5c
    {
        "AssociationId": "rtbassoc-c84194af"
    }

    Аналогично – создаём таблицу маршрутизации для приватной сети:

    $ aws ec2 create-route-table --vpc-id vpc-1cc04778
    {
        "RouteTable": {
            "Associations": [], 
            "RouteTableId": "rtb-dbf9bdbf", 
            "VpcId": "vpc-1cc04778", 
            "PropagatingVgws": [], 
            "Tags": [], 
            "Routes": [
                {
                    "GatewayId": "local", 
                    "DestinationCidrBlock": "10.0.0.0/16", 
                    "State": "active", 
                    "Origin": "CreateRouteTable"
                }
            ]
        }
    }

    Добавляем правило для маршрутизации трафика из приватной сети через созданный NAT Gateway в интернет:

    $ aws ec2 create-route --route-table-id rtb-dbf9bdbf --nat-gateway-id nat-0c045849a609991d3 --destination-cidr-block 0.0.0.0/0
    {
        "Return": true
    }

    Подключаем таблицу к приватной подсети:

    $ aws ec2 associate-route-table --route-table-id rtb-dbf9bdbf --subnet-id subnet-f7ae0daf
    {
        "AssociationId": "rtbassoc-6f409508"
    }

    EC2

    Переходим к созданию инстансов. Сначала – Bastion.

    Создаём пару ключей для использования в этом стеке:

    $ aws ec2 create-key-pair --key-name rtfm_migrate --query 'KeyMaterial' --output text > ~/.ssh/rtfm_migrate.pem

    Проверяем и устанавливаем права доступа:

    $ head -n 3 ~/.ssh/rtfm_migrate.pem
    -----BEGIN RSA PRIVATE KEY-----
    MIIEogIBAAKCAQEAgM5rUbkNL8ZYaZayRVNy7Vf1Gqp0bGgv9W7IEHGvFcQbomFxQ2DekfVgjvet
    HRCfPR+hJ42+r+BE3J1fC+Iae5oBQb7b6z0TZX3oSHq36ehrSTTocvlkl9K8QGWHZ7kcB+xGFi4g
    $ chmod 400 ~/.ssh/rtfm_migrate.pem
    Создаём EC2 Bastion:
    • --image-id ami-170b6064: AMI с OpenBSD;
    • --instance-type t2.nano: описание типов можно посмотреть тут>>>;
    • --subnet-id subnet-04ae0d5c: созданная публичная подсеть.

    Запускаем:

    $ aws ec2 run-instances --image-id ami-170b6064 --count 1 --instance-type t2.nano --key-name rtfm_migrate --security-group-ids sg-914e7ef6 --subnet-id subnet-04ae0d5c                                                          
    {
        "OwnerId": "264418146286",
        "ReservationId": "r-40bbd9cd",
        "Groups": [],
        "Instances": [
            {
                "Monitoring": {
                    "State": "disabled"
                },
                "PublicDnsName": "",
                "RootDeviceType": "ebs",
                "State": {
                    "Code": 0,
                    "Name": "pending"
                },
                "EbsOptimized": false,
                "LaunchTime": "2016-08-24T12:22:33.000Z",
                "PrivateIpAddress": "10.0.1.243",
                "ProductCodes": [],
                "VpcId": "vpc-1cc04778",
                "StateTransitionReason": "",                                                                                                                                                                                                                                       
                "InstanceId": "i-8c7a7c00",
                "ImageId": "ami-170b6064", 
                "PrivateDnsName": "ip-10-0-1-243.eu-west-1.compute.internal",
                "KeyName": "rtfm_migrate",
                "SecurityGroups": [
                    {
                        "GroupName": "default",
                        "GroupId": "sg-914e7ef6"
                    }
                ],
                "ClientToken": "",
                "SubnetId": "subnet-04ae0d5c",
                "InstanceType": "t2.nano",
                "NetworkInterfaces": [
                    {
                        "Status": "in-use",
                        "MacAddress": "0a:a7:06:1e:63:97",
                        "SourceDestCheck": true,
                        "VpcId": "vpc-1cc04778", 
                        "Description": "",
                        "NetworkInterfaceId": "eni-cbbcd994",
                        "PrivateIpAddresses": [
                            {
                                "Primary": true,
                                "PrivateIpAddress": "10.0.1.243"
                            }
                        ],
                        "Attachment": {
                            "Status": "attaching",
                            "DeviceIndex": 0,
                            "DeleteOnTermination": true,
                            "AttachmentId": "eni-attach-a194877e",
                            "AttachTime": "2016-08-24T12:22:33.000Z"
                        },
                        "Groups": [
                            {
                                "GroupName": "default",
                                "GroupId": "sg-914e7ef6"
                            }
                        ],
                        "SubnetId": "subnet-04ae0d5c",
                        "OwnerId": "264418146286",
                        "PrivateIpAddress": "10.0.1.243"
                    }
                ],
                "SourceDestCheck": true,
                "Placement": {
                    "Tenancy": "default",
                    "GroupName": "",
                    "AvailabilityZone": "eu-west-1b"
                },
                "Hypervisor": "xen",
                "BlockDeviceMappings": [],
                "Architecture": "x86_64",
                "StateReason": {
                    "Message": "pending", 
                    "Code": "pending"
                },
                "RootDeviceName": "/dev/sda1",
                "VirtualizationType": "hvm",
                "AmiLaunchIndex": 0
            }
        ]
    }

    Добавляем теги:

    $ aws ec2 create-tags --resources i-8c7a7c00 --tags Key=Name,Value=rtfm_migrate_ec2_bastion

    Получаем Elastic IP для этой машины:

    $ aws ec2 allocate-address --domain vpc
    {
        "PublicIp": "52.31.64.42", 
        "Domain": "vpc", 
        "AllocationId": "eipalloc-3f5e685a"
    }

    Подключаем его к созданному инстансу:

    $ aws ec2 associate-address --public-ip 52.31.64.42 --instance-id i-8c7a7c00
    {
        "AssociationId": "eipassoc-df2670b9"
    }

    После того, как машина поднялась – проверяем её доступность:

    $ aws ec2telnet 52.31.64.42 22
    Trying 52.31.64.42...
    Connected to 52.31.64.42.
    Escape character is '^]'.
    SSH-2.0-OpenSSH_7.3
    ...

    Находим подходящий AMI:

    $ aws ec2 describe-images --owners aws-marketplace  --filters Name=architectureValues=x86_64,Name=virtualization-type,Values=hvm,Name=name,Values=CoreOS-stable-1068* --query '[Images[*].{Name:Name,ImageId:ImageId,Description:Description}]' --output text
    CoreOS stable 1068.6.0 (HVM)    ami-03cea870    CoreOS-stable-1068.6.0-hvm-0d1e0bd0-eaea-4397-9a3a-c56f861d2a14-ami-edc744fa.3
    CoreOS stable 1068.9.0 (HVM)    ami-068bfe75    CoreOS-stable-1068.9.0-hvm-0d1e0bd0-eaea-4397-9a3a-c56f861d2a14-ami-6d138f7a.3

    Запускаем второй инстанс – Zeus, в приватной подсети subnet-f7ae0daf:

    $ aws ec2 run-instances --image-id ami-068bfe75 --count 1 --instance-type t2.nano --key-name rtfm_migrate --security-group-ids sg-914e7ef6 --subnet-id subnet-f7ae0daf                                                                         
    {
        "OwnerId": "264418146286",
        "ReservationId": "r-b589eb38",
        "Groups": [],
        "Instances": [
            {
                "Monitoring": {
                    "State": "disabled"
                },
                "PublicDnsName": "",
                "RootDeviceType": "ebs",
                "State": {
                    "Code": 0,
                    "Name": "pending"
                },
                "EbsOptimized": false,
                "LaunchTime": "2016-08-24T13:51:21.000Z",
                "PrivateIpAddress": "10.0.2.101",
                "ProductCodes": [],
                "VpcId": "vpc-1cc04778",                                                                                                                                                                                                                                           
                "StateTransitionReason": "",
                "InstanceId": "i-0113158d",
                "ImageId": "ami-068bfe75", 
                "PrivateDnsName": "ip-10-0-2-101.eu-west-1.compute.internal", 
                "KeyName": "rtfm_migrate", 
                "SecurityGroups": [
                    {
                        "GroupName": "default", 
                        "GroupId": "sg-914e7ef6"
                    }
                ], 
                "ClientToken": "", 
                "SubnetId": "subnet-f7ae0daf", 
                "InstanceType": "t2.nano", 
                "NetworkInterfaces": [
                    {
                        "Status": "in-use", 
                        "MacAddress": "0a:26:1d:6a:a4:cf", 
                        "SourceDestCheck": true, 
                        "VpcId": "vpc-1cc04778", 
                        "Description": "", 
                        "NetworkInterfaceId": "eni-03c3a65c", 
                        "PrivateIpAddresses": [
                            {
                                "Primary": true, 
                                "PrivateIpAddress": "10.0.2.101"
                            }
                        ], 
                        "Attachment": {
                            "Status": "attaching", 
                            "DeviceIndex": 0, 
                            "DeleteOnTermination": true, 
                            "AttachmentId": "eni-attach-be5a4861", 
                            "AttachTime": "2016-08-24T13:51:21.000Z"
                        }, 
                        "Groups": [
                            {
                                "GroupName": "default", 
                                "GroupId": "sg-914e7ef6"
                            }
                        ], 
                        "SubnetId": "subnet-f7ae0daf", 
                        "OwnerId": "264418146286", 
                        "PrivateIpAddress": "10.0.2.101"
                    }
                ], 
                "SourceDestCheck": true, 
                "Placement": {
                    "Tenancy": "default", 
                    "GroupName": "", 
                    "AvailabilityZone": "eu-west-1b"
                }, 
                "Hypervisor": "xen", 
                "BlockDeviceMappings": [], 
                "Architecture": "x86_64", 
                "StateReason": {
                    "Message": "pending", 
                    "Code": "pending"
                }, 
                "RootDeviceName": "/dev/xvda", 
                "VirtualizationType": "hvm", 
                "AmiLaunchIndex": 0
            }
        ]
    }

    Добавляем теги:

    $ aws ec2 create-tags --resources i-0113158d --tags Key=Name,Value=rtfm_migrate_ec2_zeus

    Проверяем.

    Копируем ключ на Bastion:

    $ scp -i ~/.ssh/rtfm_migrate.pem ~/.ssh/rtfm_migrate.pem root@52.31.64.42:/root/.ssh/
    The authenticity of host '52.31.64.42 (52.31.64.42)' can't be established.
    ECDSA key fingerprint is 50:e8:0f:71:e2:68:55:18:d5:eb:49:e8:75:ae:ee:ce.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '52.31.64.42' (ECDSA) to the list of known hosts.
    rtfm_migrate.pem                           100% 1671     1.6KB/s   00:00

    Подключаемся на Bastion, и с него – на Zeus:

    # ssh core@10.0.2.101 -i .ssh/rtfm_migrate.pem  
    The authenticity of host '10.0.2.101 (10.0.2.101)' can't be established.
    ECDSA key fingerprint is SHA256:AuRuYQ10QzHAMU9C3mDu2AxVK4ruajAHMrjZR2O5OfQ.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.0.2.101' (ECDSA) to the list of known hosts.
    CoreOS stable (1068.9.0)
    Last login: Wed Aug 24 13:57:57 2016 from 10.0.1.243
    core@ip-10-0-2-101 ~ $

    Проверяем Интернет с Zeus:

    core@ip-10-0-2-101 ~ $ ping ya.ru
    PING ya.ru (213.180.204.3) 56(84) bytes of data.
    64 bytes from www.yandex.ru (213.180.204.3): icmp_seq=1 ttl=46 time=67.0 ms
    64 bytes from www.yandex.ru (213.180.204.3): icmp_seq=2 ttl=46 time=66.9 ms

    Готово.

  • Nagios и check_snmp не выводит Warning, Critical
    Thug в 12:07:04 с метками freebsd, monitoring
    Доброго дня, почтенные. Прошу помощи в решении вопроса с nagios и проверкой по snmp хоста.
    Тут понадобилось мониторить LA и память сервака, решил пойти по пути наименьшего сопротивления - залезть в nagios, настроенный лет так 5 назад, да и влепить ему проверки через snmp.

    commands.cfg
    # 'check_snmp' command definition
    define command{
            command_name    check_snmp
            command_line    $USER1$/check_snmp -H $HOSTADDRESS$ -o $ARG1$  -d $ARG2$  -M $ARG3$  -W $ARG4$ -w $ARG5$ -m $ARG6$ -C $ARG7$
            }

    define command{
            command_name    snmp_1minute_load
            command_line    $USER1$/check_snmp -o .1.3.6.1.4.1.2021.10.1.3.1 -H $HOSTADDRESS$ $ARG1$
    }
    .
    define command{
            command_name    snmp_5minute_load
            command_line    $USER1$/check_snmp -o .1.3.6.1.4.1.2021.10.1.3.2 -H $HOSTADDRESS$ $ARG1$
    }

    define command{
            command_name    snmp_15minute_load
            command_line    $USER1$/check_snmp -o .1.3.6.1.4.1.2021.10.1.3.3 -H $HOSTADDRESS$ $ARG1$
    }

    testhost.cfg
    define host{
            use             freebsd-server          ; Inherit default values from a template
            host_name       teststor                        ; The name we're giving to this host
            alias           Test snmp server        ; A longer name associated with the host
            address                   ; IP address of the host
            hostgroups              ; Host groups this host is associated with
            contacts       nagiosadmin
            }

    define service{
            use             generic-service         ; Inherit default values from a template
            host_name       teststor
            service_description     SSH
            check_command   check_ssh
            }

    define service{
            use                     generic-service
            host_name               teststor
            service_description     CPU 1 Minute Average
            check_command           snmp_1minute_load!-C public -w 100 -c 180 (тут пробовал ставить и нормальные числа, и умножать на 100
    }

    define service{
            use                     generic-service
            host_name               teststor
            service_description     CPU 5 Minute Average
            check_command           snmp_5minute_load!-C public -c 2
    }

    define service{
            use                     generic-service
            host_name               teststor
            service_description     CPU 15 Minute Average
            check_command           snmp_15minute_load!-C public
    }



    Так вот, имеем рандомно включение или не включение статуса warning, critical ни разу не случился, хотя:
    ./check_snmp -o .1.3.6.1.4.1.2021.10.1.3.1 -H <ip> -C public -w 1 -c 2
    SNMP CRITICAL - *3.21* | iso.3.6.1.4.1.2021.10.1.3.1=3.21;1;2;1;2;
    В панели нагиоса:
    CPU 1 Minute Average    WARNING     24-08-2016 11:58:00     0d 0h 13m 41s     3/3     Result: 3.43
    CPU 5 Minute Average OK     24-08-2016 11:57:46     4d 18h 43m 47s     1/3     Result: 2.93
  • Второй подход к seafile
    в 01:15:08 с метками cloud, jail, nas, nas4free
    Отложенный в сторону в апреле seafile тем временем вроде как был доведён до ума. То есть в портах уже 6 версия, а в пакетах 5 с чем-то, но на практике разница минимальная. Решил ставить, два вечера проваландался.

    Ставится запросто.

    pkg install seafile seahub mysql56-server nano

    Благо из переписки с майнтайнером помню, что под фрёй только вариант с mysql поддерживается, sqlite и postgress он не тестил.

    Но вот прогнать установочный скрипт я до конца пока не сподобился. Хоть убей скрипт не хочет подключаться к mysql. И пытался без mysql_secure_installation, только пароль задать, и руками создавал требуемые базы и пользователя

    mysql -u root -p

    create database `ccnet-db` character set = 'utf8';
    create database `seafile-db` character set = 'utf8';
    create database `seahub-db` character set = 'utf8';
    create user 'seafile'@'localhost' identified by 'seafile';
    GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@localhost;
    GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@localhost;
    GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@localhost;
    exit


    - отлуп и всё...
    Либо я mysql неправильно готовлю, надо посмотреть привилегии, либо придется снова писать майнтайнеру... :(
  • Повис NAS
    в 13:04:02 с метками nas, nas4free
    Сегодня наблюдал редкую и неприятную штуку - на NAS светодиод горит, ни по одному протоколу система не видна.

    Перегружаю отключением. В логе видно только сообщение о крахе Plex Media Scanner


    Aug 20 12:23:31 syslogd: kernel boot file is /boot/kernel/kernel
    Aug 20 02:09:01 kernel: pid 65134 (Plex Media Scanner), uid 972: exited on signal 8
    Aug 19 23:04:58 transmission-daemon[4393]: zzz.mkv Piece 1267, which was just downloaded, failed its checksum test (torrent.c:3327)


    signal 8 вроде гуглится как Arithmetic exception.

    Посмотрел версию плекса - всё актуально.
  • CentOS 7 установка MySQL
    admin в 16:42:13 с метками FreeBSD, *nix
    После выхода операционной системы CentOS версии 7 с портов “исчезла” БД MySQL. Как так? MySQL является очень популярной системой управления базами данных для веб-приложений и серверов. Компания Oracle изменила лицензионное соглашение и многие группы начали мигрировать на другие продукты. Не стала исключением и CentOS и перешла на сервер базы данных MariaDB. Это копия MySQL, но [...]
  • Запуск виртуальной машины с помощью VirtualBox на FreeBSD
    Воронов Глеб в 23:17:35 с метками FreeBSD
    Наверное у каждого читателя данного материала не раз возникала необходимость заиметь ненадолго(а может и на долго) виртуалочку для различных целей, будь то тестирование программного продукта (иногда и вирусов на Windows 😉 ) или какие либо другие цели. Ещё больше такое желание возникает в случае если дома простаивает мощный сервер на котором мало чего запущено. Именно… Читать далее »
  • Настраиваем фаервол во FreeBSD при помощи ipfw
    Eax в 10:00:12 с метками Прочее, FreeBSD, Безопасность, Сети
    Когда-то давно мы настраивали фаервол в Linux с помощью iptables. При этом отмечалось, что утилиту iptables я нахожу исключительно неудобной по сравнению с FreeBSD’шным ipfw. Сегодня мы наконец-то познакомимся с этим ipfw и постараемся ответить на вопрос, действительно ли он удобнее. Отмечу, что на момент написания этих строк FreeBSD предлагает аж три фаервола на выбор — [...]
  • Выпуск операционной системы MidnightBSD 0.8
    в 09:46:11
    Представлен релиз десктоп-ориентированной операционной системы MidnightBSD 0.8, основанной на FreeBSD, с элементами, портированными из DragonFly BSD, OpenBSD и NetBSD. Базовое десктоп-окружение построено на основе GNUstep, но пользователи имеют возможность установить WindowMaker, GNOME или Xfce (в процессе интеграции порт с Lumina). Для загрузки подготовлен установочный образ размером 782 МБ (x86, amd64).
  • Проверка параметров SSL/TLS-серверов в консоли FreeBSD
    SergeySL в 19:45:54 с метками FreeBSD, Защита данных и трафика, OpenSSL

    Проверка параметров SSL/TLS Если Вы захотите выяснить параметры SSL/TLS некоторого публичного HTTPS-сервера, Вам поможет не нуждающийся в представлении SSL Server Test от Qualys SSL Labs. А что делать, если потребуется проверить аналогичные параметры HTTPS-серверов, доступ к которым ограничен, или серверов FTP, IRC, IMAP, POP3, SMTP, XMPP и PostgreSQL, которые поддерживают SSL/TLS? Не думаю, что Вы сильно удивитесь, если я предложу воспользоваться популярными в мире Linux и Unix инструментами, к числу которых относятся OpenSSL, nmap и SSLScan.

    Какие параметры мы будем проверять?

    Эта заметка описывает относительно простые в использовании и доступные в большинстве операционных систем семейства Linux / Unix способы проверки таких параметров SSL/TLS-серверов, как свойства и отсутствие ошибок установки их собственных SSL-сертификатов (далее — сертификатов), свойства и корректность работы цепочек сертификатов, в состав которых входят серверные сертификаты, поддержка TLS-расширений Server Name Indication и OCSP stapling, поддержка SSL/TLS-протоколов (далее — протоколов), а также соответствующих им наборов шифров, и, наконец, наличие некоторых опасных уязвимостей. Невзирая на то, что для решения перечисленных задач хватит функциональности OpenSSL, я рекомендую Вам не игнорировать соответствующие возможности nmap и SSLScan, использование которых не требует специальной подготовки, а результаты работы предоставляются в более простой для восприятия форме.
    Продолжить чтение Проверка параметров SSL/TLS-серверов в консоли FreeBSD »


    Рубрики: FreeBSD, Защита данных и трафика | Теги: | © SergeySL.ru

  • Кандидат в релизы FreeBSD 11
    в 05:02:23
    Представлен первый кандидат в релизы FreeBSD 11.0. Выпуск FreeBSD 11.0-RC1 доступен для архитектур amd64, i386, powerpc, powerpc64, sparc64 и armv6 (BANANAPI, BEAGLEBONE, CUBIEBOARD, CUBIEBOARD2, CUBOX-HUMMINGBOARD, GUMSTIX, RPI-B, RPI2, PANDABOARD, WANDBOARD). Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2. Релиз FreeBSD 11.0 запланирован на 9 сентября.
  • wtf?
    Alexander Titaev в 15:32:35 с метками freebsd
    root@proxy:/usr/local/etc/exim # grep ng_so /var/log/*
    /var/log/messages:Aug 12 15:22:29 proxy kernel: KLD ng_socket.ko: depends on kernel - not available or version mismatch
    /var/log/messages:Aug 12 15:22:29 proxy kernel: KLD ng_socket.ko: depends on kernel - not available or version mismatch
    /var/log/messages:Aug 12 15:24:58 proxy kernel: KLD ng_socket.ko: depends on kernel - not available or version mismatch
    /var/log/messages:Aug 12 15:24:58 proxy kernel: KLD ng_socket.ko: depends on kernel - not available or version mismatch
    /var/log/messages:Aug 12 15:25:55 proxy kernel: KLD ng_socket.ko: depends on kernel - not available or version mismatch
    /var/log/messages:Aug 12 15:25:55 proxy kernel: KLD ng_socket.ko: depends on kernel - not available or version mismatch
    root@proxy:/usr/local/etc/exim # strings /boot/kernel.new/kernel | grep NETGRA
    M_NETGRAPH_MSG
    M_NETGRAPH
    options NETGRAPH_TEE
    options NETGRAPH_TCPMSS
    options NETGRAPH_SOCKET
    options NETGRAPH_PPTPGRE
    options NETGRAPH_PPPOE
    options NETGRAPH_PPP
    options NETGRAPH_MPPC_ENCRYPTION
    options NETGRAPH_KSOCKET
    options NETGRAPH_IFACE
    options NETGRAPH_ETHER
    options NETGRAPH
  • zpool import assertion failed или повод агрейдиться
    в 20:46:07 с метками nas, nas4free, разбор полётов
    Сегодня в рубрике Разбор Полётов случай камрада Barracuda , благополучно завершившийся только что, детали в ветке оффорума.
    Кстати, исправление багов - одна из основных причин не сидеть на старых версиях, а использовать современные.


    Анамнез. После нештатного выключения NAS не удаётся получить доступ к zfs пулу. Слово пострадавшему

    Всем доброго времени суток.
    Имеется HP Microserver gen 7 и 3hddx2tb zfs
    Все работало. Было занято около 3тб информации. Через файловый менеджер дал команду на удаление 2тб. Удаление прошло успешно - наблюдал по сети за исчезновением файлов из директории. Минут через 5 сервак перестал отзываться на пинг и т.д.
    После принудительной перезагрузки на мониторе проходит инфа о распаковке rc. Начинается монтирование и сервак фризится.
    Последние строки загрузки:

    Mounting local file system:.
    Load NOP GEOM class
    6
    Как вытащить инфу? Помогите плиззз!

    Версия 9-ка какая-то октябрьская.


    Обследование.
    Ту же версию нашли, загрузка с чистой флешки. Диски импортируются, попытка синхронизации пулов не удаётся.
    Пытаемся импортировать



    То есть при отображении пулов, доступных для импорта, лезет дрянь. Попытка импортировать пул вроде завершается сообщением об успехе - но это неправда, данных не видно.

    Диагноз
    Гуглим zpool import assertion failed
    Есть такое. Solved for now. It seems to be fixed in 10.0-STABLE-amd64-20140506.

    Лечение
    В целом понятно - поднимать на версии, свободной от этого бага. Например на текушей.
    Пострадавший: Всем спасибо. Поднял следующим образом:
    На резервную флешку накатил последнейшую версию nas4free. Загрузил. Из SHELL, не стартуя GUI дал команду
    zpool import -f (Имя пула)
    Подождал минут 10 - команда прошла - появилось приглашение работать дальше. Погасил командой сервер.
    Воткнул рабочую флешку с 9.3 и все поднялось!
  • Первый стабильный выпуск рабочего стола Lumina
    в 20:25:36
    После четырёх лет разработки увидел свет релиз легковесного окружения рабочего стола Lumina 1.0, развиваемого проектом TrueOS (бывший PC-BSD). Lumina 1.0 позиционируется как выпуск, ознаменовавший стабилизацию проекта и переход на новый график формирования, при котором новые версии будут выходить чаще, с еженедельными или ежемесячными промежуточными выпусками.
  • Использование DTrace на примере FreeBSD и Linux
    Eax в 10:00:21 с метками Прочее, FreeBSD, Linux, Оптимизация, Отладка
    DTrace — это такая штука, присутствующая во FreeBSD, NetBSD, MacOS, Solaris и Linux. DTrace предназначен для динамической трассировки ядра системы и приложений в реальном времени, главным образом с целью их профайлинга и отладки. Сегодня мы попробуем поработать с DTrace во FreeBSD. Кроме того, мы установим DTrace и в Ubuntu, хотя по поводу стабильности такой конфигурации [...]
  • Волшебная кнопка для расширений nas4free
    в 21:26:54 с метками nas, nas4free
    Камраду crest удалось сильно продвинуться на пути реализации вековой мечты человечества - создания Волшебной Кнопки.



    Его расширение OneButtonInstaller (ОднокнопочныйУстановщик) предназначен для установки всех прочих расширений nas4free путём нажатия одной кнопки.

    Расширение по словам автора (перевод мой):
    - Показывает все известные доступные / установленные расширения / дополнения на одной странице с кратким описанием и ссылками на соответствующие темы форума
    - Допускает установку всех известных расширений / дополнений из WebGUI nas4free с единым интерфейсом
    - Производит установку в один клик, просто выберите одно или несколько расширений нажмите "Установить"
    - Осуществляет предварительные проверки и отображение совместимости расширения с используемыми вами архитектурой / платформой / релизом
    - Даёт возможность ручного / автоматического обновления списка расширений с получением обновлённого списка
    - Основано на процедуре установки известных в настоящее время расширений
    - Работает на всех архитектурах / платформах / релизах
    - Не нуждается в jail или pkg_add.
    - Добавляет страницы в nas4free WebGUI
    - Отличается простотой установки, обновления и удаления конфигурации и расширение управления

    Процедура установки
    1. Сохранить текущий конфиг в  SYSTEM | BACKUP/RESTORE | Download configuration.

    2. Выбрать папку, где будут стоять расширения. Если вы настраивали по этому бложику, то у вас как и у меня это /mnt/Pool/Ext/Extensions. В любом случае эта папка должна быть на диске, который переживёт перезагрузку. При необходимости создайте такую папку.

    3. Вариант А. Через ADVANCED | COMMAND выполнить код из из оригинального источника.
        Вариант Б. Через командную строку (обычно putty) выполнить следующие команды
    cd /usr/local/www
    fetch https://raw.github.com/crestAT/nas4free-onebuttoninstaller/master/OBI.php
    mkdir -p ext/OBI
    echo '{a href="OBI.php"}OneButtonInstaller{/a}' } ext/OBI/menu.inc && echo -e "\nDONE"

    ВАЖНО. ЖЖ не позволяет корректно отобразить html коды, использованные в нижней строке. Поэтому я заменил знак меньше на { а знак больше - на }
    Исправьте все пять штук фигурных скобок
    Сама строка должна выглядеть как на скриншоте ниже



    4. Обновить вебгуй nas4free, откройте в меню EXTENSIONS | OneButtonInstaller, выбрать папку из п 2., нажать  'Save' для завершения установки или  'Cancel' для отказа от установки и удаления установщика из системы.


    5. После завершения установки вы можете использовать расширение через  EXTENSIONS | OneButtonInstaller.


    После включения расширения система написала, что требуется перезагрузка, я её сделал.

    Использование
    После перезагрузки могу отметить, что уже установленные у меня расширения подхватились как установленные.


    Посмотрел поддержку русского - она пока сильно частичная. Но файл языковой выложен, поправлю.

    Разработчику, crest, большой респект. Кажется мне, что долго это расширение не проживёт. Не потому, что плохое. Наоборот, это надо включать в коробочную функциональность.
  • Началось альфа-тестирование проекта TrueOS, пришедшего на смену PC-BSD
    в 07:11:50
    Объявлено о начале альфа-тестирования операционной системы TrueOS, доступной в вариантах для серверов и рабочих столов. TrueOS продолжает развитие PC-BSD и является результатом переименования проекта. ISO-образы сформированы для архитектуры AMD64. Альфа-выпуск основан на кодовой базе FreeBSD HEAD. Релиз ожидается в начале сентября.
  • Про FreeIPA
    You never can tell with bees в 16:28:09 с метками debian, windows, linux, freebsd, authentication
    Кто-нибудь этой штукой пользуется? Какие у неё есть недостатки? Про достоинства-то на родном сайте много написано, но практическое использование обычно позволяет найти скрытые особенности.

    И на чём оно, собственно, работает? Я правильно понял, что сервер только на Федоре и RHEL? Или всё же можно его поставить и на другие дистрибутивы (а на какие)?
    А клиенты подо что есть? Меня интересуют конкретно под Дебиан, Убунту, 7/8/10 винду, и FreeBSD в виде pfSense.
  • Выпуск операционной системы DragonFly BSD 4.6
    в 06:03:41
    После восьми месяцев разработки представлен релиз DragonFlyBSD 4.6, операционной системы с гибридным ядром, созданной в 2003 году с целью альтернативного развития ветки FreeBSD 4.x. Из особенностей DragonFly BSD можно выделить распределённую версионную файловую систему HAMMER, поддержку загрузки "виртуальных" ядер системы как пользовательских процессов, возможность кэширования данных и мета-данных ФС на SSD-накопителях, учитывающие контекст вариантные символические ссылки, возможность заморозки процессов с сохранением их состояния на диске, гибридное ядро, использующее легковесные потоки (LWKT).
  • CentOS не работает автозагрузка
    admin в 13:49:22 с метками FreeBSD, *nix
    Сразу нужно оговориться, что скорее всего этот способ сработает на большинстве Linux систем т.к. практически все они имеют один и тот же метод автозагрузки. Если вам нужно выполнять произвольные команды в конце процесса загрузки ОС, то для этого в системе предусмотрен файл rc.local. В этом файле для автоматического запуска нужно указать полный путь к скрипту [...]
  • Выпуск LibreSSL 2.4.2 и 2.3.7
    в 06:56:19
    Разработчики проекта OpenBSD представили выпуск переносимой редакции пакета LibreSSL 2.4.2, в рамках которого развивается форк OpenSSL, нацеленный на обеспечение более высокого уровня безопасности. Одновременно доступно корректирующее обновление прошлой ветки - 2.3.7. Проект LibreSSL ориентирован на качественную поддержку протоколов SSL/TLS с удалением излишней функциональности, добавлением дополнительных средств защиты и проведением значительной чистки и переработки кодовой базы.
  • Управление портами FreeBSD
    Admin в 15:46:11 с метками FreeBSD
    FreeBSD

    Коллекция Портов и Пакетов FreeBSD даёт пользователям и администраторам простой метод установки приложений. Дерево портов – это тематический список расположения дистрибутивов программ, патчей и библиотек на серверах поддержки FreeBSD в сети Интернет. То есть, если вам нужно установить какую-либо программу, вы заходите по дереву портов в определённый каталог и выполняете всего две команды – make (скачать всё, что нужно из сети и подготовить к установке) и make install (установить в систему).
    Для управления системой портов FreeBSD существуют дополнительные утилиты, удобные и функциональные.
  • Отчёт о развитии FreeBSD за второй квартал 2016 года
    в 08:30:49
    Опубликован отчёт о развитии проекта FreeBSD с апреля по июнь 2016 года.
  • Выпуск дистрибутива для создания межсетевых экранов OPNsense 16.7
    в 18:20:08
    Состоялся релиз дистрибутива для создания межсетевых экранов OPNsense 16.7, в рамках которого развивается форк проекта pfSense. Исходные тексты компонентов дистрибутива, а также используемые для сборки инструменты, распространяются под лицензией BSD. Готовые сборки подготовлены в форме LiveCD и системного образа для записи на Flash-накопители (219 Мб).
  • Когда в руке молоток - все кажется гвоздями
    lexa в 11:49:02

    Наконец я могу, не ограничиваясь скоростью источника, померять скорость своих Samba-ящиков:

    Сначала оно жрет его в ARC - и оттуда горб (1+Gb/sec) на первые гигабайт 8, потом легкий провал (сброс кэша), потом sustained на ~600.

    Конфиг:

    • 8x1Tb WD Re (дискам 4 года, они ~100+ со шпинделя выдают, надо будет поменять постепенно на те, которые 150+ могут, а больше и не надо уже)
    • Adaptec 5805 (и
    • ...
  • В OpenBSD из соображений безопасности удалены systrace и прослойка совместимости с Linux
    в 08:53:06
    В дополнение к прекращению поддержки монтирования файловых систем непривилегированным пользователем разработчики OpenBSD удалили ряд подсистем, которые потенциально могут оказывать негативное влияние на безопасность, создавая дополнительные цели для проведения атак. В состав OpenBSD 6.0, релиз которого намечен на 1 сентября, не войдёт система ограничения системных вызовов systrace и компоненты эмуляции Linux. В OpenBSD 6.0 также будет включён по умолчанию механизм защиты W^X и добавлены настройки sysctl net.inet.tcp.rootonly и net.inet.udp.rootonly, позволяющие выборочно запретить приём соединений по указанным в списке сетевым портам непривилегированными процессами.
  • Собственный Dynamic DNS сервер на базе Cloudflare
    DeathStar в 23:46:19 с метками CentOS, Debian, FreeBSD, Linux, MyBookLive, OS X, Сетевое оборудование, api, BSD, centos, clouflare, dynamic dns, dyndns, ip change, mybooklive

    В дополнение к статье Собственный Dynamic DNS сервер на базе Bind решил написать статью, для тех у кого есть домен c использованием Clouflare.com. В настройках CF получаем API Key. Допустим zone называется deathstar.name , мне нужно было для домашнего файлохранилища как и в предыдущей статье менять IP по крону ( метод получения внешнего немного изменен, но можно и использовать метод с предыдущей статьи )

    Собственно скрипт


    #!/bin/sh
    IP=`dig +short myip.opendns.com @resolver1.opendns.com`
    OLDIP=`cat /tmp/myBookLiveIP`
    if [ "$IP" = "$OLDIP" ]
    then
    echo "Nothing to do..."
    else
    curl https://www.cloudflare.com/api_json.html \
    -d 'a=rec_edit' \
    -d 'tkn=ТУТ ВАШ API КЛЮЧ' \
    -d 'email=deathstar@deathstar.name' \
    -d 'z=deathstar.name' \
    -d 'id=ID записи netdisk' \
    -d 'type=A' \
    -d 'name=netdisk' \
    -d 'ttl=1' \
    -d "content=$IP"
    echo $IP > /tmp/myBookLiveIP
    fi

    ID всех записей можно узнать командой:

    curl https://www.cloudflare.com/api_json.html   -d 'a=rec_load_all'   -d 'tkn=ВАШ API ключ'   -d 'email=deathstar@deathstar.name'   -d 'z=deathstar.name'

    тут находим запись netdisk.deathstar.name и левее названия будет rec_id. Ставим в крон аналогично предыдущей статьи и радуемся.

  • Как автоматически перезапустить сервис в Linux
    admin в 11:27:00 с метками FreeBSD, *nix
    Если у вас на сервере или рабочей станции бывает так, что какой-либо процесс самостоятельно завершает свою работу и автоматически не восстанавливается эта статья для вас. Для того, чтобы восстановить работоспособность упавшего процесса, приходится каждый раз запускать сервис руками. Иногда даже выяснить причину такой проблемы до конца выяснить не представляется возможным ввиду отсутствия знаний или той [...]
  • Второй бета-выпуск FreeBSD 11.0
    в 08:11:19
    Доступен второй бета-выпуск FreeBSD 11.0. Выпуск FreeBSD 11.0-BETA2 доступен для архитектур amd64, i386, powerpc, powerpc64, sparc64 и armv6 (BANANAPI, BEAGLEBONE, CUBIEBOARD, CUBIEBOARD2, CUBOX-HUMMINGBOARD, GUMSTIX, RPI-B, RPI2, PANDABOARD, WANDBOARD). Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2. Релиз FreeBSD 11.0 запланирован на 2 сентября.
  • ZFS L2ARC performance
    lexa в 12:12:52

    Преамбула:

    (У одного моего друга) есть ZFS-pool такой вот конфигурации:

    • i5-2400 CPU @ 3.10GHz
    • avail memory = 16477163520 (15713 MB)
    • FreeBSD 12.0-CURRENT #4 r302772M
    • 8xTb SATA в RAIDZ2.
      Подключены к Adaptec 5805, сделаны simple volumes по одному диску
    • 3 консумерских SSD-шки (OCZ Vertex4, OCZ Agility 3, Intel 520) в L2ARC
      • я пробовал объединять их в gstripe, счастья не увидел особого
      • и сейчас они как отдельные диски подключены.

    На пуле лежат RAW-фоточки к которым я хожу...

  • Выпуск LibertyBSD 5.9
    в 06:41:57
    Доступен выпуск операционной системы LibertyBSD 5.9, в рамках которого развивается ответвление от OpenBSD, избавленное от элементов загрузки прошивок и драйверов, содержащих несвободные бинарные компоненты. По мнению разработчиков LibertyBSD, поставка бинарных прошивок несёт скрытую угрозу для безопасности системы из-за возможного наличия в бинарных прошивках закладок и непредвиденной функциональности. Участниками проекта также ведётся работа по созданию очищенного от блобов варианта коллекции портов и пакетов. Сборки подготовлены для архитектур i386 и AMD64. Новый выпуск примечателен обновлением кодовой базы до OpenBSD 5.9 и появлением сборки для 32-разрядных систем.
  • В OpenBSD прекращена поддержка монтирования непривилегированным пользователем
    в 20:53:11
    Под впечатлением от серии уязвимостей, о которых сообщалось утром, разработчики OpenBSD приняли решение об удалении функции монтирования файловых систем непривилегированным пользователем (sysctl kern.usermount=1). Из соображений безопасности начиная со следующего выпуска OpenBSD 6.0 монтировать разделы можно будет только с правами root, а sysctl-параметр kern.usermount будет игнорироваться.
  • Серия уязвимостей в ядре OpenBSD
    в 07:43:45
    Разработчики системы Triforce, созданной для fuzzing-тестировния системных вызовов ядра Linux, адаптировали свой инструмент для других систем и провели проверку ядра OpenBSD. В результате проверки в ядре OpenBSD было выявлено пять уязвимостей, которые могут использоваться для инициирования отказа в обслуживании через вызов краха ядра после определённых манипуляций со стороны непривилегированного пользователя. Ещё две проблемы могут эксплуатироваться пользователями, которым предоставлено право монтирования накопителей.
  • mount_smbfs и smbutil не работают с конфигом
    Alex Povolotsky в 21:00:22
    после замены древнего Win2003 на Win2012, возникла странная проблема.

    smbutil и mount_smbfs не работают с конфигом. Если в /etc/nsmb.conf не прописывать пароль для пользователя, и хост для имени - mount_smbfs требует пароль либо не логинится (если с -N)

    Если прописать (правильно, по инструкции) - то отрабатывает мгновенно, ошибок не написав, но и ничего не смонтировав. tshark не показывает никакого обмена данными.

    Беглое гугление результата не дало.
  • Началось бета-тестирование FreeBSD 11.0
    в 09:02:33
    Представлен первый бета-выпуск FreeBSD 11.0. Выпуск FreeBSD 11.0-BETA1 доступен для архитектур amd64, i386, powerpc, powerpc64, sparc64 и armv6 (BANANAPI, BEAGLEBONE, CUBIEBOARD, CUBIEBOARD2, CUBOX-HUMMINGBOARD, GUMSTIX, RPI-B, RPI2, PANDABOARD, WANDBOARD). Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2. Релиз FreeBSD 11.0 запланирован на 2 сентября.
  • Во FreeBSD появились ветки 11-STABLE и 12-CURRENT
    в 03:31:15
    В svn-репозитории FreeBSD сегодня выделены ветки 11-STABLE и 12-CURRENT, а также началось формирование первой бета версии FreeBSD 11.0. Стоит отметить, что ветка 11-STABLE появилась в строгом соответствии с планом выпуска 11-ой ветки. Релиз FreeBSD 11.0 запланирован на 2 сентября.
  • Основы использования NFS на примере FreeBSD
    Eax в 10:00:13 с метками Прочее, FreeBSD
    NFS (Network File System) — сетевая файловая система, или, если другими словами, протокол, позволяющий получать доступ к файлам по сети так, словно они находятся у вас локально. NFS можно использовать как альтернативу Samba, например, для хранения ваших фоточек. А системы вроде PVA и Proxmox, к примеру, используют NFS для хранения ISO-образов операционных систем, шаблонов виртуальных машин, [...]
  • Запись образа на DVD в FreeBSD 10
    Воронов Глеб в 03:06:05 с метками FreeBSD, cdcontrol, dd, dvd, freebsd, growisofs, iso
    Вот уж не думал, что возникнет необходимость, но потребовалось записать установочный образ семёрки на DVD Привод был только на машине с FreeBSD. Установка необходимого порта: # cd /usr/ports/sysutils/dvd+rw-tools/ # make -DBATCH install clean # rehash Переходим в каталог с образом и даём команду # growisofs -dvd-compat -Z /dev/cd0=win7.iso Вывод получается примерно следующий Executing 'builtin_dd if=win7.iso… Читать далее »
  • Samba 10G Performance
    lexa в 12:47:39

    Картинка для привлечения внимания. Сервер FreeBSD+Samba, клиент: Windows 8.1 ,

    Есть у меня FreeBSD-шный бокс с ZFS к которому я хожу по Samba по 10G-линку. И до вчерашнего дня производительность не радовала, 200Mb/sec получались только изредка, а вообще типичная скорость была лишь немногим выше гигабита. При этом

    • MTU 9000 на этом линке - глючило (временами отваливалась сеть)
    • А практически такой же бокс (сторадж -
    • ...
  • Краткая шпаргалка по использованию GNU screen
    Eax в 09:00:04 с метками Прочее, FreeBSD, Linux
    Сегодня я хотел бы поделиться небольшой шпаргалкой по screen. Пользуюсь я этой утилитой крайне редко. Поэтому я постоянно забываю, что и как делается. Отсюда и потребность в шпаргалке. Напомню, что screen — это программа, которая позволяет открывать несколько терминалов в одном. Это очень удобно, если вы работаете по SSH или просто без иксов. Также в [...]
  • Памятка по отладке ядра и драйверов во FreeBSD
    Eax в 09:00:10 с метками Прочее, FreeBSD, Ring0, Отладка
    Недавно мы научились собирать FreeBSD из исходных кодов. Этих знаний достаточно, если вы хотите просто попробовать самые свежие фичи системы или оптимизировать FreeBSD под конкретное железо. Но если вы собираетесь как следует порыться в кишках системы, дабы лучше разобраться в ее работае, или даже что-то изменить в ней, необходимо уметь цепляться к системе отладчиком. Да [...]
  • Собираем ядро и мир FreeBSD из исходников
    Eax в 09:00:44 с метками Прочее, FreeBSD, Ring0
    Сегодня мы научимся собирать ядро и мир (основные исполняемые файлы, библиотеки и тд) FreeBSD из сходных кодов. Ранее в заметке PostgreSQL: сборка из исходников и настройка под Linux мы выясняли, зачем нужно уметь собирать что-то из исходников. Основными сценариями являются оптимизация под конкретное железо и получение самого свежака прямо из ветки master. Кроме того, вы [...]
  • Профилирование кода на C/C++ в Linux и FreeBSD
    Eax в 09:00:19 с метками Прочее, C/C++, FreeBSD, Linux, Оптимизация
    Рассмотрим типичную ситуацию — приходит пользователь и говорит «я делаю в приложении то-то и то-то и у меня все сильно тормозит». Как понять, в чем проблема, и исправить ее? Вот об этом мы и поговорим в данной заметке. Приведенный список методов не претендует на полноту, однако это то, что в настоящее время я чаще всего использую [...]
  • Nginx не передает Apache реальный IP пользователя
    admin в 23:53:50 с метками FreeBSD, *nix
    Понадобилось на одном проекте сделать определения страницы пользователя по гео-данным и анализу php переменной HTTP_ACCEPT_LANGUAGE для корректного направления домена на язык пользователя. Скрипт был написан и успешно протестирован на работоспособность на локальном сервере. После загрузки на сервер и внедрения – эффекта не было. При анализе выяснилось, что IP-адрес пользователя в переменной $_SERVER['REMOTE_ADDR'] был 127.0.0.1 Apache [...]
  • [ZFS] Замена сбойного диска сбойным
    skeletor в 12:38:02 с метками FreeBSD, Solaris
    Не знаю, проявляется ли это на новых версиях ZFS, но достаточно интересный хак. И так, ситуация следующая: при замене диска в пуле, в процесс перестройки, выпал заменяемый диск. Тогда пул навсегда замирает в состоянии DEGRADED. Как быть? Вот здесь подсмотрел хак. Приведу цитатой: echo zfs_no_scrub_io/W0t1 | mdb -kw После этого надо дать resilver закончиться (он пройдёт […]
  • Управление пакетами во FreeBSD при помощи утилиты pkg
    Eax в 09:00:25 с метками Прочее, FreeBSD
    Как известно, во FreeBSD можно использовать пакеты как бинарные, так и собранные из исходных кодов при помощи портов. Устройство портов за последнее время ничем не изменилось. А вот на смену утилитам для управления бинарными пакетами pkg_add, pkg_info и прочим pkg_* в последних версиях FreeBSD пришел новый пакетный менеджер pkg (также известный как pkgng). Данная небольшая [...]
  • OpenBSD SNMP check
    anaumov в 13:55:38 с метками OpenBSD, python

    It seems like there are no OpenBSD SNMP checks on exchange.nagios.org or exchange.icinga.org. I found few checks for this operating system, but NO scripts which use SNMPv2c. Nobody trusts SNMPv2c? Well, as we know, the most common alternative acronym for SNMP is “Security? Not My Problem!”, right? On the other hand, SNMP is the de facto standard for gathering information from network devices or servers.
    Anyway, I have this free operating system at home and on this weekend I spent a bit time to play with SNMP. It makes fun to learn something new. SNMP servers on different systems support different OIDs/MIBs. OpenBSD includes an SNMP agent, snmpd(8), which supports all of the usual SNMP functions, and also offers visibility into OpenBSD-specific feautures such as packet filtering.

    I concentrated on standard MIBs and wrote a small python script to monitor the memory usage, the CPU load average and the file system space usage. It looks like a common nagios plugin. In addition, it also shows information about network interfaces, file systems in tabular form and the list of running processes. Make it sense for people?🙂

    These 3 functions are info functions and was implemented just to show the system’s status overview and to help to configure checks. For example, we can get storage information to see the list of all mounted file systems. Use file-systems option for that:

    > ./check_snmp_openbsd.py 192.168.0.2 public file-systems
    
        SIZE                USED                AVALIABLE           FILE SYSTEM
    ==================================================================================
     1004.7 Mb         46.2 Mb (4.59 %)       958.6 Mb (95.41 %)    /                             
       47.3 Gb         20.0 Kb (0.00 %)        47.3 Gb (100.00 %)   /home                         
        3.9 Gb          8.0 Kb (0.00 %)         3.9 Gb (100.00 %)   /tmp                          
        2.0 Gb        316.4 Mb (15.72 %)        1.7 Gb (84.28 %)    /usr                          
     1004.8 Mb        173.6 Mb (17.27 %)      831.2 Mb (82.73 %)    /usr/X11R6                    
        8.6 Gb         10.0 Mb (0.11 %)         8.6 Gb (99.89 %)    /usr/local                    
        2.0 Gb          2.0 Kb (0.00 %)         2.0 Gb (100.00 %)   /usr/obj                      
        2.0 Gb          2.0 Kb (0.00 %)         2.0 Gb (100.00 %)   /usr/src                      
        4.9 Gb          4.8 Mb (0.10 %)         4.9 Gb (99.90 %)    /var

    OpenBSD supports hrStorageTable, which actually shows the same information with the exception of percentage representation. I coped this function from my HP-UX script anyway.
    Now we know about file systems already mounted on own target system and can to configure checks:

    > ./check_snmp_openbsd.py 192.168.0.2 public fs:/usr/X11R6 80 90
    OK: FS usage 17.27 % [ 173.6 Mb / 1004.8 Mb ]|usage=17.27;80;90;0;0
    > echo $?
    0
    
    > ./check_snmp_openbsd.py 192.168.0.2 public fs:/ 4 9
    WARNING: FS usage 4.59 % [ 46.2 Mb / 1004.7 Mb ]|usage=4.59;4;9;0;0
    > echo $?
    1
    

    To monitor memory usage or swap, use mem or swap options:

    > ./check_snmp_openbsd.py 192.168.0.2 public mem 20 90
    WARNING: Memory usage 24.53 % [ 125.4 Mb / 511.3 Mb ]|usage=24.53;20;90;0;0
    > echo $?
    1
    
    > ./check_snmp_openbsd.py 192.168.0.2 public swap 4 9
    OK: Swap usage 0.00 % [ 0.0 b / 767.4 Mb ]|usage=0.00;4;9;0;0
    > echo $?
    0

    These 3 checks (swap, memory and file systems space usage) use the same function storage(). This function returns the integer value and the output string. main() compares this return value to warning and critical input parameters, i.e. the final decision (check state) is taken by main() function. The same logic has the cpu() function. For all values returned to main(), script spawns output with performance data (for creating graphs) with a percentage representation (0..100).

    To check the CPU load average, script has the cpu option:

    > ./check_snmp_openbsd.py 192.168.0.2 public cpu 4 9
    OK: CPU load average 1 % |'1 min'=1;4;9;0;0

    In case of CPU, what does return value means? I think, the CPU performance is one of the easier metrics to measure. The load average is the average number of processes currently ready to run. That is, it is an estimate of the number of processes that are capable of using the CPU at any given time. What tells us the standard? The RFC2790 tells: The average, over the last minute, of the percentage of time that this processor was not idle. Is this description clear?
    I think, to be able to say something concretely about CPU performance, in additions to CPU load average we need also to know how many CPU cores this machine has… Anyway this value is *ALL* what we can get from OpenBSD (did I miss something?). This value will be used to create a graph:

    CPU_OPENBSD
    It’s also possible to monitor the list of processes running on OpenBSD. To get this list, use proc option. It will show you the PID, STATE and TYPE of processes running at this moment:

    > ./check_snmp_openbsd.py 192.168.0.2 public proc
    
    PID        STATE        TYPE            PROC
    ================================================================
    1          runnable     application     init 
    1433       runnable     application     syslogd 
    1455       runnable     application     getty std.9600 ttyC0
    1624       runnable     application     smtpd 
    1972       runnable     application     pflogd 
    2217       runnable     application     dhclient 
    2289       runnable     application     cron 
    3809       runnable     application     xdm 
    5209       running      application     snmpd 
    5531       runnable     application     ksh 
    5599       runnable     application     sshd 
    5683       runnable     application     smtpd 
    5691       runnable     application     ksh 
    7626       runnable     application     snmpd 
    9492       runnable     application     smtpd 
    11095      runnable     application     getty std.9600 ttyC3
    12554      runnable     application     smtpd 
    14171      runnable     application     ksh 
    14960      runnable     application     dhclient 
    15196      runnable     application     smtpd 
    15432      runnable     application     Xorg 
    16474      runnable     application     syslogd 
    16676      runnable     application     xconsole 
    16707      runnable     application     xconsole 
    16897      runnable     application     xdm 
    16942      runnable     application     fvwm 
    17296      runnable     application     sshd 
    17647      runnable     application     getty std.9600 ttyC1
    18782      runnable     application     getty std.9600 ttyC2
    21983      runnable     application     smtpd 
    24911      runnable     application     sshd 
    25946      runnable     application     pflogd 
    29033      runnable     application     snmpd 
    29488      runnable     application     Xorg :0 vt05 -auth /etc/X11/xdm/authdir/authfiles/A:0-THfdBX
    29720      runnable     application     FvwmPager 7 4 /usr/X11R6/lib/X11/fvwm/.fvwmrc 0 8 0 0
    30087      runnable     application     getty std.9600 ttyC5
    30187      runnable     application     xterm 
    30486      runnable     application     sh /etc/X11/xdm/Xsession
    30525      runnable     application     ksh 
    30564      runnable     application     smtpd 
    30656      runnable     application     sndiod
    
    > ./check_snmp_openbsd.py 192.168.0.2 public proc 40 60
    OK: running 28 processes [max 1310]|processes=28;40;60;0;0
    

    If you type 2 parameters more, script will to interpret this as a warning and critical values for check. This check monitors the number of running processes. …if somebody really need it🙂
    PROC_OPENBSD
    To monitor some specific processes (or PIDs) makes no sense, I guess. If you need to know about, for example, Web Server, I will recommend to use HTTP(s) and ask it directly.

    The last information that you can get via this script is the interface configuration. The option interfaces shows you the list of all interfaces found on this system. As you can see, I have 2 configured interfaces on my OpenBSD at home. Do not surprised, the second interface, iwi0, is actually wireless, but SNMP recognizes it as the ethernetCsmacd:

    > ./check_snmp_openbsd.py 192.168.0.2 public interfaces
    
    NAME     STATE   IP              MAC                MTU       TYPE               CONNECTOR  I/O ERROR
    ======================================================================================================
    rl0      up      192.168.0.2     0:3:d:1f:70:73     1500      ethernetCsmacd     true       0/0
    iwi0     up      192.168.3.101   0:e:35:86:8f:a9    1500      ethernetCsmacd     true       0/0
    enc0     down                                       0         other              false      0/0
    lo0      up      127.0.0.1                          32768     softwareLoopback   false      0/0
    pflog0   up                                         33192     other              false      0/0
    

    I’m going to continue to work on this script (for example, using argparse). It has some defects. I also want to support OpenBSD specific MIBs. If you want to test it, you can find it here or here. Feel free to give a feedback or just to send a submit request. It’s free software of course😉


  • bhyve и дебиановский инсталлятор: их можно примирить?
    Alex Povolotsky в 21:55:40
    Насколько я понял, дебиановский инсталлятор по умолчанию запускается в графическом режиме. bhyve таких изысков не поддерживает, и, как следствие, попытка загрузиться останавливается на инициализации дисплея.

    Не удавалось ли кому победить этот конфликт? Указать какой-нибудь хитрый параметр инсталлятору, или на крайний случай собрать все на virtualbox-е, а потом мигрировать?

    Поделитесь положительным опытом

    UPD. Если идти консолью не на /dev/nmdm0A, а на /dev/nmdm0B, то все работает.

    Дальше идут глюки шестерочного инсталлятора, но они уже не относятся к сообществу
  • ZFS: L2ARC кэш перестал использоваться
    Alex Povolotsky в 22:45:55
    Я понимаю, что "подземный стук", но - на одном из серверов, 10.2-RELEASE, без всякой диагностики в логах перестал использоваться L2-кэш.

    L2 ARC Size: (Adaptive)                         9.60    GiB
            Header Size:                    0.06%   5.87    MiB
    
    L2 ARC Breakdown:                               66.85m
            Hit Ratio:                      0.03%   20.10k
            Miss Ratio:                     99.97%  66.83m
            Feeds:                                  1.30m
    


    при том, что кэша порядка 100 гигабайт и обмен с диском активный. Не выключал.

    Куда копать?
  • как указать правильную либу?
    Alexander Titaev в 22:30:03
    процесс сборки валится на
    /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.10 required by /usr/local/src/grpc/third_party/protobuf/src/protoc not found

    нужное содержит другая либа
    # strings /usr/local/lib/gcc48/libstdc++.so.6 | grep GLIBCXX_3
    GLIBCXX_3.4
    GLIBCXX_3.4.1
    GLIBCXX_3.4.2
    GLIBCXX_3.4.3
    GLIBCXX_3.4.4
    GLIBCXX_3.4.5
    GLIBCXX_3.4.6
    GLIBCXX_3.4.7
    GLIBCXX_3.4.8
    GLIBCXX_3.4.9
    GLIBCXX_3.4.10

    запускаю
    CC=gcc48 CXX=g++48 LINK=gcc48 LINKXX=g++48 LD=gcc48 CFLAGS=-Wno-error=sign-conversion LDFLAGS="-L/usr/local/lib/gcc48/ -l/usr/local/lib/gcc48/libstdc++.so.6" gmake

    что делаю не так?
  • Использование FreeBSD на десктопе, версия 2.0
    Eax в 09:00:48 с метками Прочее, FreeBSD
    Прошло три года с тех пор, как я попрощался с FreeBSD, по крайней мере, как с десктопной операционной системой. Сомнений в том, что FreeBSD по большому счету является неплохой серверной ОС, у меня нет. В частности, веб-сервер, отдающий страницы этого блога, работал и продолжает работать на FreeBSD. А вот о том, изменилось ли что-то в мире [...]
  • www.lissyara.su www.lissyara.su igNix.ru OpenNews.opennet.ru Хабрахабр Russian FreeBSD Users Community Hilik Free Black Blog Oleksandr Tymoshenko's blog adminlog.ru Все о FreeBSD skiangel's replace :) Блог системного администратора Subnets.ru blog Andrey V. Elsukov Блог@DeathStar.Name Всякие заметочки Блог простого админа Rulkov.ru Настоящая система ifreebsd.org Nuclear Lightning's Track записки юного БСДешника BSDniR skeletor.org.ua Dreamcatcher.ru iboxjo Записки *NIX Админа rtfm Media UniX Блог Владислава Врублевского Мастерская интернет-разработчика 22:55 Unixzen Блог о FreeBSD HelpDesk jared.kiev.ua Около сетевой Блог How about a nickel bag? Fifteen bucks, lit-tle man. Put that shit in my hand! Клуб Сисадминов hotbits.RU Заметки о виртуализации и не только... www.unix.ck.ua Статьи - .:unix.uz:. - Заметки BSDельника ;) eax.me my.toilet.server infobsd.ru www.info-x.org - FreeBSD Блогосайт Алисы и Alv'а xaxatyxa.ru Сабынич Вадим. Обо всем понемногу Ufa FreeBSD News nix Блог-склерозник ~ArchimeD~'а Блог системного администратора Linux/FreeBSD rednikov system blog Все о ремонте и настройке компьютера Блог о программах для Windows&Linux some little things сисадминство Заметки creasysee 2gusia alex_tesla Сетевое хранилище для дома Ещё один блог сисадмина tedor.kr.ua - блог Информационный портал Noctifer Собрание полезных заметок Shirrma АйТи Лапша Vladus blog - Odmin.info Блог полезных статей о разработке и раскрутке сайтов ЗАПИСКИ АДМИНИСТРАТОРА FREEBSD likeunix Воронов Глеб | TradeNarK LLCВоронов Глеб | TradeNarK LLC Labor omnia vincit BSD MAG (не)структурированные мысли Алексея Тутубалина (blog.lexa.ru)